微機控制技術(shù)及應(yīng)用_第1頁
微機控制技術(shù)及應(yīng)用_第2頁
微機控制技術(shù)及應(yīng)用_第3頁
微機控制技術(shù)及應(yīng)用_第4頁
微機控制技術(shù)及應(yīng)用_第5頁
已閱讀5頁,還剩205頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

電子計算機是由各種電子器件組成的能夠自動、高速、精確地進(jìn)行邏輯控制和信息處理的現(xiàn)代化設(shè)備。1.1微型計算機系統(tǒng)的基本知識按其性能來分:巨型、中型、小型和微型計算機自1946年第一臺電子計算機出現(xiàn)至今,經(jīng)歷了電子管計算機、晶體管計算機、集成電路計算機、大規(guī)模/超大規(guī)模集成電路計算機,并開始了以神經(jīng)網(wǎng)絡(luò)功能為基礎(chǔ)的第五代計算機的研究。每代都向體積小、重量輕、高性能的方向發(fā)展。

微型計算機(簡稱微機)是第四代計算機的典型,于70年代隨著大規(guī)模、超大規(guī)模集成電路的誕生而發(fā)展起來。性能價格比高,且小巧靈活,深受用戶歡迎并發(fā)展迅速。微機的核心部件是微處理器MPU(Microprocessor),也叫中央處理器或中央處理單元CPU(CentralProcessingUnit)。微型計算機的發(fā)展是與微處理器的發(fā)展同步,微處理器的集成度和性能幾乎每2、3年提高一倍,已經(jīng)推出了四代產(chǎn)品,并進(jìn)入第五代。各代的劃分通常是以其字長、位數(shù)和功能,還有速度為主要依據(jù)。1.第一代(1971~1973)——4位和8位機,4004,80082.第二代(1973~1978)——高檔8位機8080,Z80、MC68003.第三代(1978~1984)——16位機:8086,8088、MC680004.第四代(1985~1991)——32位機:80386、80486、MC680405.第五代(1992~1999)——32、64位機:Pentium/PentiumPro/PentiumⅡ/PentiumⅢ/Pentium4/Itanium課程的基本要求:1.課程的性質(zhì):考試課,是專業(yè)基礎(chǔ)課2.課程的輔導(dǎo):輔導(dǎo)教師3.課程的要求:(1)課前要簡單概括地預(yù)習(xí)。(2)課堂要注意聽課,把握重點和難點。必要時要做筆記。(3)課后要注意及時復(fù)習(xí),整理所學(xué)過的內(nèi)容。(4)認(rèn)真獨立地完成作業(yè)。做一些習(xí)題加以鞏固。工業(yè)控制計算機簡介電子計算機是科技發(fā)展的產(chǎn)物計算機的飛速發(fā)展歸功于半導(dǎo)體集成技術(shù)的發(fā)展計算機的發(fā)展趨勢微型化巨型化網(wǎng)絡(luò)化智能模擬化單片機的概念微型機是由LSI、VLSI等組成的具有功能強,結(jié)構(gòu)緊湊、系統(tǒng)可靠性高的特征,它由一片集成電路為主組成的中央處理器(CPU)、存儲器、通用或?qū)S肐/O接口電路等組成的。它分單片微機、單板微機和多板微機。單片機的概念將組成微型計算機的各功能部件:中央處理器、存儲器、I/O接口電路及定時/計數(shù)器等制作在一塊集成電路芯片中從而構(gòu)成完整的微型計算機。故稱作單晶片微型計算機,簡稱單片機(Singlechipmicrocomputer)?;蚍Q微控制器(MCU:Microcontroller)單片機的發(fā)展歷史初級階段(1974~1976)FAIRCHILD兩片集成芯片(集成工藝限制)低性能階段(1976~1978)INTERMCS-48高性能階段(1978~1982)MCS51更高性能階段(1983~多種機型并行發(fā)展單片機的應(yīng)用應(yīng)用特點體積?。夯竟δ懿考M足要求可靠性高:BUS大多在內(nèi)部;易采取電磁屏蔽功能強:實時響應(yīng)速度;I/O直接操作使用方便:硬件設(shè)計簡單;提供開發(fā)工具資料性能價格比高:電路板??;接插件少易產(chǎn)品化:研制周期短應(yīng)用:量大面廣機電一體化:電腦縫紉機智能儀表:測量儀實時控制:汽車家電:(MOTOROLA)網(wǎng)絡(luò)通信:通信協(xié)議集成其中計算機外設(shè):鍵盤、打印機保健產(chǎn)品:按摩器提示單片機的出現(xiàn)使得電路設(shè)計簡單化單片機的應(yīng)用典型單片機產(chǎn)品器件廠家美國:IntelMotorola、Microchip、Atmel荷蘭:Philips德國:Siemens日本:Nec典型單片機產(chǎn)品

?根據(jù)每種型號的存儲器的類型無ROM型:8031ROM型:8051EPROM:8751EEPROM型:8951單片機的發(fā)展趨勢性能不斷提高CPU功能增強:速度、精度內(nèi)部資源增多:A/D、D/A、EEPROM多功能引腳:尋址范圍大高新技術(shù)下移,重點發(fā)展8位機性能單片機的發(fā)展趨勢單片機的多品種:超微型化:MC68HC705:20PIN,2KEPROM、112BYTERAM、15BITTIMERWATCHDOG低功耗,低電壓:CHMOSA工藝、空閑等待和掉電停機方式、電壓2.4~5.5V:單片機系統(tǒng)開發(fā)條件單片機芯片開發(fā)工具資料手冊第三節(jié)計算機中的數(shù)值和編碼

十進(jìn)制到二進(jìn)制的轉(zhuǎn)換整數(shù):除二余數(shù)法小數(shù):乘二取整法二進(jìn)制到十進(jìn)制的轉(zhuǎn)換直接按權(quán)展開二進(jìn)制到十六進(jìn)制的轉(zhuǎn)換十六進(jìn)制到二進(jìn)制的轉(zhuǎn)換第三節(jié)計算機中的數(shù)值和編碼定點數(shù)和浮點數(shù)原碼、反碼和補碼第四章MCS-51單片機的結(jié)構(gòu)和原理主要掌握基本組成(內(nèi)部資源)存儲器的配置I/O口的應(yīng)用功能工作方式時序及電路第一節(jié)MCS-51系列單片機的結(jié)構(gòu)以8051為代表講解基本組成內(nèi)部結(jié)構(gòu)特殊功能寄存器

一基本組成框圖二8051的內(nèi)部結(jié)構(gòu)算術(shù)邏輯部件ALU定時控制部件寄存器組見下頁常用寄存器(PC、ACC、B)

PC:程序地址寄存器,16位,執(zhí)行指令后自動加一,常將PC值設(shè)置成程序第一條指令的內(nèi)存地址。訪問范圍:0000~0FFFFHACC:累加器,8位,特殊用途的寄存器,專門存放操作數(shù)或運算結(jié)果。MOVA,#03HADDA,#05HB:8位,專門為乘除法而設(shè)置的寄存器常用寄存器(PSW、SP、DPTR)PSW:程序狀態(tài)字,8位,存放指令執(zhí)行后的有關(guān)狀態(tài)。(見P79)SP:堆棧指針,8位,專門存放堆棧的棧頂位置。遵循“先進(jìn)后出”的原則。注意:禁止用傳送指令存放數(shù)據(jù)。DPTR:數(shù)據(jù)地址指針,16位,存放程序存儲器的地址和外部數(shù)據(jù)存儲器的地址??煞諨PH和DPL兩個獨立8位寄存器使用寄存器區(qū)的使用內(nèi)部RAM的00~1FH分為4個區(qū),每個區(qū)有8個單元,分別用R0~R7來表示。RS1:RS2=00時:(R0)=20HRS1:RS2=01時:(R0)=20HRS1:RS2=10時:(R0)=20HRS1:RS2=11時:(R0)=20H第二節(jié)存儲器配置5個存儲空間片內(nèi)/片外程序存儲器64K(0000~0FFFFH)P81128B的片內(nèi)數(shù)據(jù)存儲器(00~7FH)128B特殊功能寄存器SFR(80~0FFH離散分布)位尋址區(qū)(20H~2FH)片外數(shù)據(jù)存儲器64K(0000~0FFFFH)第三節(jié)輸入/輸出口(I/O口)四個雙向8位I/O口,共32根I/O口線,每個I/O線均由鎖存器,輸出電路和輸入緩沖器組成。每個I/O既可作輸入又可作輸出,每一條口線可獨立用作輸入又可用作輸出,作輸出時可鎖存數(shù)據(jù),作輸入時可緩沖數(shù)據(jù)。P0口輸出輸入讀--修改-寫操作P0作A/D總線P0口組成結(jié)構(gòu)P0口輸出時接上拉電阻可驅(qū)動8個LSTTL負(fù)載作A/D總線時,分時輸出A0~A7和D0~D7P1口組成結(jié)構(gòu)P2口組成結(jié)構(gòu)P3口組成結(jié)構(gòu)I/O口小結(jié):從應(yīng)用功能上P0:系統(tǒng)擴展;一般I/O口(輸出時,需接上拉電阻。)P1:專供用戶使用的I/O口P2:系統(tǒng)擴展;通用I/O口P3:功能口,每位獨立定義;通用I/O口。I/O口小結(jié):負(fù)載能力P0驅(qū)動8個LSTTL負(fù)載P1~P3驅(qū)動3~4個LSTTL負(fù)載I/O口小結(jié):讀入方式每個I/O口均有兩種讀入方式(用命令區(qū)分)讀鎖存器讀引腳ANLA,#0FHMOVA,P1注意:讀引腳時,需先向鎖存器寫“1”。系統(tǒng)復(fù)位時,所有口鎖存器均置“1”。說明雙向口:可使引腳懸浮作高阻輸入準(zhǔn)雙向口:其引腳具有內(nèi)部拉高電阻,其特點:當(dāng)外部維持在低電平時,準(zhǔn)雙向口輸入要能提供源電流,而外部低電平消失時,又會自動地使自己拉向高電平。第四節(jié)MCS51的引腳功能

各類單片機均兼容,只是功能略有差異。封裝:雙列直插(DIP)方形:PLCC扁平封裝:QFP第四節(jié)MCS51的引腳功能管腳功能P88邏輯符號圖片外三總線AB:P0口經(jīng)地址鎖存后提供低8位地址,P2口直接提供高8位地址DB:P0口提供8位數(shù)據(jù)CB:EA,ALE,PSEN,RD,WR,RST等時序電路及時序時鐘電路內(nèi)部方式P83外部方式時序:注意ALE的地址鎖存T機器=12T時鐘(6個狀態(tài)12拍)取指令執(zhí)行指令復(fù)位電路RST引腳保持兩個機器周期以上的高電平復(fù)位電路上電復(fù)位電路外部復(fù)位電路外部上電復(fù)位電路抗干擾復(fù)位電路單片機的工作方式復(fù)位工作方式正常工作方式單步工作方式編程工作方式省電工作方式思考題片內(nèi)RAM的容量?8051最大可配置的RAM/ROM容量?單片機主要有哪些組成部分?8051的PSEN、RD、WR的作用?ALE線的作用?當(dāng)8051不和RAM/ROM相連時,ALE線的輸出頻率是多少?堆棧的作用?堆棧指示器SP有多少位?時鐘周期、機器周期和指令周期的含義?一個機器周期包含有多少個時鐘周期?第三章MCS-51單片機指令系統(tǒng)重點掌握尋址方式指令分類第一節(jié)概述機器語言匯編語言格式:標(biāo)號段:操作碼段,操作數(shù);注釋段指令系統(tǒng)常用符號含義:P95指令分類數(shù)據(jù)傳送類:28條算術(shù)運算類:24條邏輯運算類:25條控制轉(zhuǎn)移類:17條位操作類:17條第二節(jié)尋址方式七種尋址方式寄存器尋址直接尋址立即尋址寄存器間接尋址變址尋址相對尋址位尋址1立即尋址指令碼中直接含有所需地址的操作數(shù)MOVA,#30HMOVDPTR,#3000H注意:#是唯一區(qū)別與地址的標(biāo)志。2直接尋址指令碼中含有操作數(shù)的地址,機器根據(jù)地址找到操作數(shù)MOVA,30H注意:若直接尋址的地址是SFR中的某一個時,可用名稱符號MOVA,TH0MOVA,8CH3寄存器尋址所需的操作數(shù)在某個工作寄存器中(R0~R7)INCR0注意:指令表中INCRn,n取0~74寄存器間接尋址指令碼中含有操作數(shù)地址的寄存器號。實際上是二次尋址間接尋址采用@Ri或@DPTR,@是區(qū)別寄存器尋址的標(biāo)記若(RO)=30H,(30H)=0FFHMOVA,R0MOVA,@R0寄存器尋址可使單片機尋址擴大到64K5相對尋址指令碼中含有相對地址的偏移量MOVA,40HADDA,#30HSJMPSOUT;PC=PC+2+rel。;。。SOUT:MOV50H,A6變址尋址基地址寄存器和偏移量MOVCA,@A+PCMOVCA,@A+DPTR注意:變址尋址區(qū)是程序存儲器而不是數(shù)據(jù)存儲器。執(zhí)行前,應(yīng)預(yù)先在DPTR和A中存放地址,為指令執(zhí)行提供條件。7位尋址指令中含有位地址位地址和字節(jié)地址的區(qū)分通過指令區(qū)分:MOVA,20HMOVC,20H可供位尋址的區(qū)域片內(nèi)RAM的20H~2FH為位尋址空間(00~7FH)某些SFR:凡是地址能被8整除的SFR,共11個。位地址的表示方法MOVC,ACC.7MOV20H,CMOV24H.0,C第三節(jié)指令系統(tǒng)MCS-51匯編語言是用42種操作碼助記符描述33種操作功能,一種功能可能有幾種助記符,與尋址方式結(jié)合共產(chǎn)生111條指令。數(shù)據(jù)傳送類:28條算術(shù)運算類:24條邏輯運算類:25條控制轉(zhuǎn)移類:17條位操作類:17條1數(shù)據(jù)傳送類28條傳送數(shù)據(jù)可在ACC,R0~R7,內(nèi)部RAM,外部RAM間進(jìn)行,其中A,R0~R7的操作最多傳送類指令不影響PSW(除P位)已知(70H)=60H,(60H)=20HMOVR0,#70HMOVA,@R0MOVR1,AMOV40H,@R1MOV@R0,P1查表指令舉例1ORG8000HMOVA,#40HMOVCA,@A+PC;A=?…ORG8040HDB41H42H43H44H查表指令舉例2ORG8000H…MOVA,#03HMOVDPTR,#8040HMOVCA,@A+DPTR;A=?…ORG8040HDB41H42H43H44H數(shù)據(jù)傳送類指令小結(jié)內(nèi)部RAM的數(shù)據(jù)傳送方式ROM與ACC的數(shù)據(jù)傳送2算術(shù)操作類24條加、減、乘、除、增1、減1影響PSW中的CY、AC、OV、P不帶進(jìn)位加法4帶進(jìn)位加法4帶借位減法4加1指令5減1指令4十進(jìn)制調(diào)整指令1乘除法指令2加、減法指令(ADDADDCSUBBINCDEC)無符號數(shù)和有符號數(shù)由用戶自己決定均以ACC作為目的操作數(shù)帶符號數(shù)運算時,必須檢查溢出位OV若進(jìn)行不帶進(jìn)位的減法時,用CLRC,將進(jìn)位位清零即可。DAA為十進(jìn)制調(diào)整指令,緊跟加法指令BCD碼減法

求BCD碼減數(shù)的補數(shù):9AH-減數(shù)被減數(shù)加補數(shù)結(jié)果用十進(jìn)制加法調(diào)整指令例:91-36=?CLRCMOVA,#9AHSUBBA,#36HADDA,91HDAA乘除法指令只能進(jìn)行無符號的乘除法雖影響0V,但意義不同MULAB;BA,OV=1表示B≠0DIVAB;A…B,0V=1,B=0,除法無意義舉例MOVA,#5AHADDA,#6BH0101101001101011(+---------------------11000101CY=AC=OV=3邏輯運算類24條讀-修改-寫指令對數(shù)據(jù)進(jìn)行邏輯處理模擬各種硬件電路的邏輯功能邏輯與ANL邏輯或ORL邏輯異或XRL邏輯移位RRRRCRLRLC累加器清零與取反CLRCPL帶進(jìn)位移位和不帶進(jìn)位移位例M1和M1+1單元存有16位二進(jìn)制數(shù),試編程將其擴大二倍程序CLRCMOVR1,#M1MOVA,@R1RLCAMOV@R1,AINCR1MOVA,@R1RLCAMOV@R1,A4控制轉(zhuǎn)移指令17條無條件轉(zhuǎn)移絕對轉(zhuǎn)移LJMP、AJMP短轉(zhuǎn)移SJMP間接轉(zhuǎn)移JMP@A+DPTR有條件轉(zhuǎn)移JZ、CJNE、DJNZ子程序調(diào)用與返回ACALL、LCALL、RET中斷返回RETI空操作NOP舉例

MOVR2,#0AHMOVR0,#40HCLRALOOP:ADDA,@R0INCR0DJNZR2,LOOPMOVSUM,A5位操作指令17條位傳送MOVBIT,BIT(錯誤)位邏輯操作與ANL、或ORL、取反CPL位條件轉(zhuǎn)移JC、JNC、JB、JNB、JBC位置位,清零(SETB、CLR)舉例例1將內(nèi)部數(shù)據(jù)存儲器的60H、61H單元中的連續(xù)存放著4位BCD碼。試編寫一段程序?qū)⑦@4位BCD碼倒序排列程序MOVR0,#60HMOVR1,#61HMOVA,@R0SWAPAXCHA,@R1SWAPAMOV@R1,A例2已知外部RAM的3000H開始放一數(shù)據(jù)區(qū),緩沖區(qū)中以回車符0DH結(jié)束,編程將正數(shù)送入片內(nèi)RAM以30H開始的正數(shù)區(qū),將負(fù)數(shù)放入以40H開始的負(fù)數(shù)區(qū)程序法一MOVR0,#30HMOVR1,#40HMOVDPTR,#3000HNEXT:MOVXA,@DPTRMOV10H,ACJNEA,#0DH,END1SJMPOVEREND1:ANLA,#10000000BJZZHSJMPNEGZH:MOV@R0,10HINCR0INCDPTRSJMPNEXTNEG:MOV@R1,10HINCR1INCDPTRSJMPNEXTOVER:RET法二MOVR0,#30HMOVR1,#40HMOVDPTR,#3000HNEXT:MOVXA,@DPTRCJNEA,#0DH,COMPSJMPOVERCOMP:JBACC.7,LOOPMOVR0,#30HMOV@R0,AINCR0INCDPTRSJMPNEXTLOOP:MOV@R1,AINCR1INCDPTRSJMPNEXTOVER:RET第四章匯編語言程序設(shè)計匯編語言的基本知識常用匯編程序設(shè)計方法匯編語言的基本知識

匯編語言的基本知識

匯編語言的格式LABLE:OPCODE,OPRAND;OMMENT匯編語言的構(gòu)成指令性語句指示性語句:偽指令程序設(shè)計流程偽指令ORG:ORG2000HENDEQU: AAAEQU20HMOVA,20H(MOVA,AAA)DATA(可前可后)DB、DWBIT:A1BIT00H(MOVC,A1)程序設(shè)計流程明確要求和要達(dá)到的目的確定解決問題的計算方法和步驟畫出流程圖分配內(nèi)存地址按流程圖編寫程序上機匯編、調(diào)試、修改及最后確定源程序$2簡單程序(順序結(jié)構(gòu))大量使用數(shù)據(jù)傳送類指令注意正確選擇指令以提高效率編程將20單元內(nèi)的兩個BCD熟變換成ACSII碼放在20H,21H單元內(nèi)(EX2.ASM)將20H單元內(nèi)兩個BCD碼變換成相應(yīng)的ASCII碼放在21H:22H中Org0hLjmp2000hORG2000HMOVR0,#22HMOV@R0,#00MOVA,20HXCHDA,@R0ORL22H,#30HSWAPAORLA,#30HMOV21H,ASJMP$END15BYTE,11TMOVA,20HMOVB,#10HDIVABORLB,#30HMOV22H,BORLA,#30HMOV21H,ASJMP$END;15BYTE14T求16位二進(jìn)制補碼的絕對值MOVA,20HCPLAADDA,#01H;INCAMOV20H,AMOVA,21HCPLAADDCA,#0ANLA,#7FHMOV21H,ASJMP$分支程序根據(jù)程序要求無條件或有條件改變程序執(zhí)行執(zhí)行的順序,選擇程序的流向.特點:程序中含有轉(zhuǎn)移類指令關(guān)鍵:正確選用轉(zhuǎn)移指令正確運用轉(zhuǎn)移指令無條件分支程序程序設(shè)計者事先設(shè)計好的LJMP、AJMP、SJMP有條件分支程序根據(jù)已經(jīng)執(zhí)行的程序?qū)?biāo)志位、ACC或內(nèi)部RAM的某些位的影響結(jié)果決定程序的流向JZ/JNZ、CJNE、DJNZ、位控制轉(zhuǎn)移類指令注意使用條件轉(zhuǎn)移指令形成分支前一定安排可供條件轉(zhuǎn)移指令進(jìn)行判別的條件。JCLOOP正確選定所用的轉(zhuǎn)移條件及轉(zhuǎn)移目標(biāo)地址$循環(huán)程序循環(huán)初始化循環(huán)次數(shù)計數(shù)器,工作寄存器設(shè)初值等循環(huán)體盡量簡練;注意地址指針的修改循環(huán)控制檢查結(jié)束條件,及時退出循環(huán)注意循環(huán)嵌套允許外重循環(huán)嵌套內(nèi)重循環(huán)循環(huán)體不能交叉不能從循環(huán)程序外部跳入循環(huán)程序內(nèi)部例例:200名學(xué)生參加考試,成績放在8031的外部RAM的一個連續(xù)存儲單元,95~100分頒發(fā)A級證書,90~94分頒發(fā)B級證書,編一程序,統(tǒng)計獲A、B級證書的人數(shù)。將結(jié)果存入內(nèi)部RAM的兩個單元。注意地址指針的分配ORG0030HEG XDATA1000HGA DATA 20HGB DATA21HMOVGA,#00MOVGB,#00MOVDPTR,#EGMOVR2,#200LOOP:MOVXA,@DPTRCJNEA,#95,LOOP1

LOOP1:JNCNEXT1CJNEA,#90,LOOP2LOOP2:JCNEXTINCGBSJMPNEXTNEXT1:INCGANEXT:INCDPTRDJNZR2,LOOPSJMP$END數(shù)據(jù)排序

常用氣泡法(兩兩比較法)它先使E100和E99進(jìn)行比較,若E100>E99,則兩數(shù)交換,否則不動,然后E99和E98進(jìn)行比較,按同樣的原則,決定是否交換,一直比較下去,最后完成E2和E1的比較及交換。經(jīng)過N-1次比較后,E1位置必然得到數(shù)組中的最大值。猶如一個氣泡冒到水頂。如此下去,經(jīng)過N-1次便完成N個數(shù)據(jù)的排序。例:100個數(shù)據(jù),從小到大進(jìn)行排序

MOVR2,#100BUB:MOVR0,#20HCLRF0DECR2BL:CJNER2,#0,BBMOV7F,R2MOV20H,@R0MOVA,@R0INCR0MOV21H,@R0CJNEA,21H,LOPLOP:JCBMOV@R0,20HDECR0MOV@R0,21HINCR0SETBF0B:DJNZ7FH,BLJBF0,BUBBB:SJMP$$查表程序的設(shè)計

主要用于:復(fù)雜代碼轉(zhuǎn)換顯示數(shù)據(jù)補償:傳感器補償復(fù)雜函數(shù)計算:Y=SIN(X)查表指令在51中有兩條查表指令:MOVCA,@A+DPTR使用MOVCA,@A+PC須注意:1.

使用傳送指令將數(shù)據(jù)表格項數(shù)送入ACC2.

ADDA,#DATA指令對A進(jìn)行修改:PC+DATA=表格首地址3.

MOVCA,@A+PC完成查表.例1ADDA,#01H MOVCA,@A+PCRETDB00,01,04,09,10H,19H,24H,31H,30H,51H…例2設(shè)一巡回報警系統(tǒng),對16路輸入進(jìn)行控制,現(xiàn)根據(jù)測量路數(shù),找出每路的最大允許值.若大于允許值就報警.

TB3: MOVA,R2 ADDA,R2 MOVR3,A ADDA,#6 MOVCA,@A+PC XCHA,R3 ADDA,#3 MOVCA,@A+PC MOVR4,A RETTAB3:DW1520,3721,4256;表格最大長度256 DW…散轉(zhuǎn)程序設(shè)計

JMP@A+DPTR

轉(zhuǎn)移指令表地址偏移量 采用”RET”指令進(jìn)行散轉(zhuǎn)

采用”RET”指令實行散轉(zhuǎn)

RET執(zhí)行后,堆棧的內(nèi)容彈出后并裝入PC中,利用這個特點,將轉(zhuǎn)向地址表存入堆棧,然后執(zhí)行RET指令,即可轉(zhuǎn)向相應(yīng)的操作程序.例采用”RET”指令實行散轉(zhuǎn)

JP5:MOVDPTR,#TAB5 MOVA,R7 ADDA,R7 JNCNADD INCDPHNDD:MOVR3,AMOVCA,@A+DPTRXCHA,R3INCAMOVCA,@A+DPTRPUSHAMOVA,R3PUSHARETTAB3:DW:OPR0,OPR1,OPR2,…,OPRN

子程序的設(shè)計

子程序和運算程序是程序設(shè)計的兩大支柱.1子程序的概念:完成確定任務(wù),并能為其他程序反復(fù)調(diào)用的程序段.要求子程序在結(jié)構(gòu)上具有通用性和獨立性.例如:代碼轉(zhuǎn)換,運算程序等.子程序編寫注意的問題

子程序調(diào)用:ACALLLCALL子程序返回:RET子程序嵌套注意的問題:嵌套深度與堆棧區(qū)大小的問題.子程序第一條必須有標(biāo)號.

正確傳遞參數(shù):入口參數(shù)和出口參數(shù).

注意現(xiàn)場的保護(hù)和恢復(fù)子程序的參數(shù)傳遞

通過寄存器傳遞MAIN:MOVR0,#30H MOVR7,#0AH ACALLSUBR …SUBR:…通過堆棧傳遞參數(shù)主程序用PUSH將參數(shù)壓入堆棧,子程序按棧指針來間接訪問.例

HASC:MOVR0,SPDECR0DECR0XCHA,@R0ANLA,#0FHADDA,#2MOVCA,@A+PCXCHA,@R0RETDB‘01234565789’ DB‘ABCDEF’第五章中斷系統(tǒng)及定時器

中斷的概念在執(zhí)行程序的過程中,由于某種外界的原因,必須盡快終止當(dāng)前的程序執(zhí)行,而去執(zhí)行相應(yīng)的處理程序,待處理結(jié)束后,在回來繼續(xù)執(zhí)行被終止的程序。這個過程叫中斷。微機和外設(shè)數(shù)據(jù)傳送(通過不同的接口電路):同步傳送異步傳送中斷傳送DMA傳送中斷技術(shù)的優(yōu)點:提高CPU的效率。提高實時數(shù)據(jù)的處理時效。故障處理中斷系統(tǒng)的功能:中斷優(yōu)先權(quán)排隊實現(xiàn)中斷嵌套自動響應(yīng)中斷實現(xiàn)中斷返回。8051的中斷系統(tǒng)

5個中斷源,具有二個中斷優(yōu)先級,可實現(xiàn)二級中斷服務(wù)程序的嵌套。每個中斷源均可軟件編程為高優(yōu)先級或低優(yōu)先級中斷,允許或禁止向CPU請求中斷。有關(guān)的特殊功能寄存器(SFR)有:中斷允許寄存器IE中斷優(yōu)先級控制寄存器IP中斷源寄存器(TCON、SCON中的有關(guān)位)注:均可位尋址。中斷系統(tǒng)結(jié)構(gòu)圖

中斷源

外部中斷源INT0、INT1:中斷標(biāo)志和觸發(fā)方式控制位鎖存在TCON的低四位。

IE0(IE1)=1表示正在向CPU申請中斷,響應(yīng)后自動清零。

IT0(IT1)=0:低電平觸發(fā);IT0(IT1)=1:邊沿觸發(fā)注意:電平觸發(fā)時,在中斷返回前應(yīng)撤除中斷源。中斷源內(nèi)部中斷源T0:TF0定時器T0的溢出中斷請求T1:TF1定時器T1的溢出中斷請求串行口中斷:發(fā)送中斷TI和接收中斷RI邏輯或后做為內(nèi)部的一個中斷源。注意:響應(yīng)中斷后,CPU并不清零中斷標(biāo)志位,必須軟件清零。(SCON的低兩位。

中斷控制

中斷使能控制IE(A8H)EA——ESET1EX1ET0EX0實現(xiàn)兩級控制注意:復(fù)位時,禁止所有中斷中斷優(yōu)先級控制IP(B8H)———PSPT1PX1PT0PX0每一中斷源可編程為高優(yōu)先級或低優(yōu)先級中斷,以實現(xiàn)二級嵌套。默認(rèn)的優(yōu)先次序為:INT0、C/T0、INT1、C/T1、串行口中斷(依次從高到低)中斷的響應(yīng)過程

每個機器周期都順序檢查每一個中斷源,若查詢到某個中斷標(biāo)志位為1如果不被下述條件所阻止,則將在下一個機器周期的狀態(tài)1響應(yīng)激活最高中斷請求。阻止條件:1)CPU正在處理相同或更高級的中斷請求;2)現(xiàn)在的機器周期不是執(zhí)行指令的最后一個機器周期(MOVR1,20H)3)正在執(zhí)行的指令是RETI或?qū)E、IP的寫操作指令。(執(zhí)行這些指令后,至少再執(zhí)行一條指令后才會響應(yīng)中斷)CPU響應(yīng)中斷時完成工作置位相應(yīng)的優(yōu)先級狀態(tài)觸發(fā)器執(zhí)行一條硬件子程序調(diào)用(內(nèi)部),使控制轉(zhuǎn)移到相應(yīng)的中斷入口地址;PC的內(nèi)容進(jìn)棧;(斷點地址)被響應(yīng)的中斷服務(wù)程序的入口地址送PC注意

各個中斷源的中斷入口地址均已由系統(tǒng)規(guī)定,不能改動。

中斷源:INT0、C/T0、INT1、C/T1、串行口

入口地址:0003H、000BH、0013H、001BH、0023H

中斷系統(tǒng)初始化開相應(yīng)中斷源的中斷;(IE)設(shè)定中斷優(yōu)先級;(IP)若為外部中斷,設(shè)定外部中斷的觸發(fā)方式。例中斷初始化例CLRIT1 SETBPX1 SETBEX1 SETBEA

ORLIP,#04HANLTCON,#0FBHMOVIE,#84H

中斷服務(wù)程序的一般格式

CLREA ;注意:子程序與中斷服務(wù)PUSHPSW ;程序的區(qū)別(參數(shù)傳遞)PUSHACC…SETBEA中斷服務(wù)程序CLREA…POPACCPOPPSWSETBEARETI例1外部中斷的應(yīng)用:8051單片機的P1口控制8個LED燈,要求8個燈加1移位點亮,當(dāng)中斷來時,燈全滅或全亮,然后繼續(xù)加1移位點亮。

ORG0HAJMPSTORG0003HAJMPEXT0ORG0030HST:MOVSP,#70HMOVIE,#81HMOVIP,#01HMOVTCON,#00HRES:MOVR1,#08H MOVA,#0FFHLOOP:MOVP1,ADECAACALLDELAYACALLDELAYDJNZR1,LOOPSJMPRES 中斷服務(wù)程序EXT0:PUSHACCMOVA,#00 MOVP1,AACALLDELAYACALLDELAYCPLAMOVP1,AACALLDELAYACALLDELAYPOPARETI

例:實驗三定時器實驗org0sjmpstartorg000bhajmpct0org0030hstart: movsp,#70h movtmod,#01h movth0,#3ch movtl0,#0b0h movr1,#14h movr2,#0h movdptr,#tab setbet0 setbea setbtr0loop:cjner1,#0,loop1 movr1,#14h mova,r2 movca,@a+dptr movp1,a incr2loop1:cjneR2,#08h,loop

movr2,#0h sjmploopct0: decr1 movth0,#3ch movtl0,#0b0h retitab: db0feh,0fdh,0fbh,0f7h,0efh,0dfh,0bfh,7fh

定時器/計數(shù)器

兩個16位定時計數(shù)器相關(guān)的SFR:TMOD(工作方式)TCON(狀態(tài))。定時功能時,每個機器周期定時器加1計數(shù)功能時,在外部事件相應(yīng)輸入腳(T0和T1)產(chǎn)生負(fù)跳變,計數(shù)器加1。

定時器的控制字

定時器控制寄存器TCON(88H)TF1TR1TF0TR0IE1IT1IE0IT0C/T方式寄存器TMOD(89H)GATAC/TM1M0|GATAC/TM1M0注意:不能位尋址定時工作過程

定時器的工作方式:方式0:13位定時計數(shù)器注意:TL0的低5位和TH0共同組成方式1:16位定時計數(shù)器方式2:自動重裝入的8位定時計數(shù)器溢出后(TF0=0)由TH0→TL0方式3:T0成為兩個獨立的8位計數(shù)器TL0作為定時計數(shù)器;TH0僅作定時器用TL0的控制用原T0的,TH0用原T1的控制位T1工作在方式0~2,溢出時送串行口,經(jīng)常作為串行口波特率發(fā)生器

定時器/計數(shù)器的初始化

1根據(jù)要求給方式寄存器TMOD送一個方式控制字,以設(shè)定定時器響應(yīng)的工作方式;2根據(jù)需要給C/T選送初值以確定需要的定時時間或計數(shù)的初值;3根據(jù)需要給中斷允許寄存器IE送中斷控制字,以開放相應(yīng)的中斷和設(shè)定中斷優(yōu)先級;4給TCON送命令字以啟動或禁止C/T的運行。初值的計算

計數(shù)器初值:設(shè)計數(shù)模值為M,計數(shù)初值設(shè)定為TC,計數(shù)器計滿為零所需的計數(shù)值為C,則:TC=M-C(M=213,216,28)定時器初值:

T=(M-TC)T機器

幾種工作方式的最大定時時間若TC=0,定時時間為最大,設(shè)FOSC=12MHZ,幾種工作方式下的最大定時時間為:方式0:TMAX=8.192MS;方式1:TMAX=65.536MS;方式2、3:TMAX=0.256MS;

例:FOSC=12MHZ,試計算定時時間2MS所需的定時器的初值.

方式2、方式3TMAX=0.256MS,所以必須將工作方式設(shè)在方式0或方式1:方式0:TC=213-2MS/1US=6192=1830HTL0=10H,TH0=0C1H方式1:TC=216-2MS/1US=63536=0F830HTL0=30H,TH0=0F8H編程方式采用查詢方式:程序一直檢測TF0(TF1),若TF0=1(TF1=1),說明定時時間到或計滿數(shù)采用中斷方式:程序初始化時,設(shè)置定時器溢出中斷允許后,內(nèi)部硬件自動檢測到TF0=1(TF1=1)時,自動響應(yīng)中斷,進(jìn)入中斷服務(wù)程序。應(yīng)用舉例例1選用T1方式0產(chǎn)生500US的定時,在P1.1輸出周期為1MS的方波;FOSC=6MHZ

注意:T0不用時的處理,一般置0方式,禁止進(jìn)入方式3.初值計算:T=500US=(213-TC)*2US,TC=7942TC=7942D=8F06H主程序BEGIN:MOVTMOD,#0 MOVTL1,#06H MOVTH1,#0F8H SETBTR1LOOP:JBCTF1,PF0 SJMPLOOPPF0:MOVTL1,#06H MOVTH1,#0F8H CPLP1.1AJMPLOOP例2

從P3.4T0輸入低頻脈沖,要求該脈沖每發(fā)生一次跳變時由P1.0輸出一個500US的負(fù)脈沖,與此同時由P1.1輸出一個寬為1MS的正脈沖.

先設(shè)T0為計數(shù)方式,當(dāng)外部脈沖來一個負(fù)跳變時,計數(shù)加1,并產(chǎn)生溢出,TF0=1;檢測到TF0=1時,即可設(shè)定T1為定時方式;T0設(shè)為方式2;初值設(shè)為0FFH即加1即刻產(chǎn)生溢出.ORG0HSJMPBEGINORG000BHAJMPTT1ORG0030HBEGIN:MOVTMOD,#06H MOVTH0,#0FFH MOVTL0,#0FFHCLRP1.1Setbet0SetbeaSETBP1.0SETBTR0S1:SJMP$中斷服務(wù)程序ORG300HTT1:MOVTMOD,#20HMOVTH1,#0AH;06HMOVTL1,#0AH ;06HSETBP1.1CLRP1.0SETBTR1DEL2:JBCTF1,RP1SJMPDEL2RP1:SETBP1.0DEL3:JBCTF1,RP2SJMPDEL3RP2:CLRP1.1CLRTR1RETI例3:門控位的應(yīng)用

GATE位是控制外部輸入脈沖對定時計數(shù)器的控制,利用這個特性??蓽y量輸入脈沖的寬度。如:利用T0門控位測試INT0引腳上出現(xiàn)的正脈沖的寬度,并以周期數(shù)顯示。

ST:MOVTMOD,#09HMOVTL0,#00HMOVTH0,#00HWAIT1:JBP3.2,WAIT1SETBTR0WAIT2:JNBP3.2,WAIT2WAIT3:JBP3.2,WAIT3CLRTR0MOVA,TL0MOVR0,#DISBUFXCHDA,@R0INCR0SWAPAXCHDA,@R0INCR0MOVA,TH0XCHDA,@R0INCR0SWAPAXCHDA,@R0DIS:LCALLDISPAJMPDIS第十章

MCS—51串行通信接口技術(shù)微機聯(lián)網(wǎng):單片機與單片機;單片機與其他微機之間實現(xiàn)信息共享;典型的計算機測量與控制系統(tǒng)構(gòu)成:一個典型集散式(DCS)控制系統(tǒng)的構(gòu)成

§10.1串行通信基礎(chǔ)

數(shù)據(jù)通信方式:并行通信與串行通信并行通信:一次傳輸8(16、32Bit)

8根數(shù)據(jù)線,1根控制線,

1根狀態(tài)線,地線,共11根;特點:速度快,適合近距離傳輸計算機并口,打印機,8255串行通信:數(shù)據(jù)一位一位地發(fā)送,一根發(fā)送線,一根接受線,地線,共3根 特點:硬件方便,適合距離遠(yuǎn),速度要求不高的場合分類:同步串行通信和異步串行通信一、異步通信:

串行通信就是將并行的數(shù)據(jù)分開后,一位一位地發(fā)送出去,接收方也是一位一位地接收數(shù)據(jù),這就需要通信的雙方有一個協(xié)議,什么時候開始發(fā)送,什么時候發(fā)送完畢;接收方收到的信息是否正確等,而這些信息只能以電平的高低來表示,構(gòu)成這些位的數(shù)據(jù)稱為一幀。異步串行通信規(guī)定了傳輸數(shù)據(jù)的結(jié)構(gòu)即幀格式:起始位數(shù)據(jù)位奇偶校驗位停止位1.起始位:在數(shù)據(jù)發(fā)送線上規(guī)定無數(shù)據(jù)時電平為1,當(dāng)要發(fā)送數(shù)據(jù)時,首先發(fā)送一個低電平0,表示數(shù)據(jù)傳送的開始,這就是起始位。2.?dāng)?shù)據(jù)位:真正要傳送的數(shù)據(jù),可以是8位、10位等多位,數(shù)據(jù)位是由低位開始,高位結(jié)束;3.奇偶校驗:數(shù)據(jù)發(fā)送完后,發(fā)送奇偶校驗位,以檢驗數(shù)據(jù)傳送的正確性,這種校驗方法是有限的,但是容易實現(xiàn)。

4.停止位:表示數(shù)據(jù)傳送的結(jié)束,可以是一位或兩位。

幀格式:

二、同步通信

同步通信先發(fā)送一個字符,作為同步字符,之后便連續(xù)發(fā)送數(shù)據(jù),數(shù)據(jù)之間不能有間隔,直到數(shù)據(jù)發(fā)送完畢。速度要比異步通信快通用異步接受/發(fā)送器(UNIVERSALASYNCHRONOUSRECEIVER/TRANSMITTER):UART:82506850

三、單工、半雙工、全雙工通信方式

1.

單工方式:一端是發(fā)送端,另外一端是接收端:

半雙工發(fā)式

每端口由一個發(fā)送器和接收器,通過開關(guān)連接在線路上,數(shù)據(jù)可以雙方交換,但不能同時發(fā)送和接收.

3.全雙工方式

通信雙方用兩個獨立的收發(fā)器單獨連接,可以同時發(fā)送和接收數(shù)據(jù),因而提高了速度。

4.波特率

單位時間內(nèi)傳送的信息量。以每秒傳送的位為單位:電傳機:10字符/秒,1個字符11位,波特率為:10×11=110(波特)位寬:傳送過程中平均每位占用時間

Td=9.1ms(1/110)串行通信總線標(biāo)準(zhǔn)及接口

測控系統(tǒng)中,計算機通信主要采用異步串行通信方式,常用的異步串行通信接口標(biāo)準(zhǔn)有三種:●RS-232(RS-232ARS-232BRS-232C)●RS-449(RS422RS423RS485)●20mA電流環(huán)一、通信方式的選取

1.

1.

通信速率和通信距離這兩個方面是相互制約的,降低通信速率,可以提高通信距離

RS-232C:速率:20Kbit/S,最大通信距離:15mRS422:10Mbit/s,:300m90Kbit/s,:1200m1.

2.抗干擾能力采用標(biāo)準(zhǔn)的通信接口,本身具有一定的抗干擾能力,但是工業(yè)現(xiàn)場的情況往往很惡劣,因而要根據(jù)具體情況進(jìn)行選擇。

RS232C:一般場合

RS422:共模信號比較強光纖:電磁干擾較強二、RS232C簡介

美國電子工業(yè)協(xié)會(EIA)公布的一種異步通信標(biāo)準(zhǔn):RS232C標(biāo)準(zhǔn):●設(shè)備之間通信的距離不大于15米●最大傳輸速率20KB/S●采用負(fù)邏輯:“1”——―5V∽―15V“0”——+5V∽+15V●不帶負(fù)載時輸出電平:―25V∽+25V●輸出短路電流:<0.5A●最大負(fù)載電容:2500pF

TTL電平可以由專用集成電路轉(zhuǎn)換成RS232C標(biāo)準(zhǔn);

如:MC1488或75188TTLRS232CMC1489或75189RS232CTTL由于MC1488需要采用±12V電源,一般在單片機通信中大量使用的是只需要+5V電源、具有發(fā)送和接收的一體化芯片,如:MAX232、ICL232、ADM202等。

MAX232芯片內(nèi)部有兩路接收器和發(fā)送器具有電源變換電路

MCS—51雙機通信(利用MAX232)

三、調(diào)制與解調(diào)

RS232C通信距離很短,RS422通信距離不過1200米;更長距離需采用調(diào)制與解調(diào)。

MCS-51的串行口的結(jié)構(gòu)

8051有一個可編程的全雙工串行通信接口,它可作UART用,也可作同步移位寄存器,其幀格式可有8位、10位或ll位,并能設(shè)置各種波特率,給使用者帶來很大的靈活性。

一、結(jié)構(gòu)

805l通過引腳RXD(P3.0,串行數(shù)據(jù)接收端)和引腳TXD(P3.l,串行數(shù)據(jù)發(fā)送端)與外界進(jìn)行通信。圖中有兩個物理上獨立的接收、發(fā)送緩沖器SBUF,它們占用同一地址99H,可同時發(fā)送、接收數(shù)據(jù)。發(fā)送緩沖器只能寫入,不能讀出,接收緩沖器只能讀出、不能寫入。

串行發(fā)送與接收的速率與移位時鐘同步。8051用定時器T1作為串行通信的波特率發(fā)生器,T1溢出率經(jīng)2分頻(或不分頻)又經(jīng)16分頻作為串行發(fā)送或接收的移位脈沖。移位脈沖的速率即是波特率。接收器是雙緩沖結(jié)構(gòu),在前—個字節(jié)被從接收緩沖器SBUF讀出之前,第二個字節(jié)即開始被接收(串行輸入至移位寄存器),但是,在第二個字節(jié)接收完畢而前—個字節(jié)CPU未讀取時會丟失前一個字節(jié)。

串行口的發(fā)送和接收都是以特殊功能寄存器SBUF的名義進(jìn)行讀或?qū)懙?,?dāng)向SBUF發(fā)“寫”命令時(執(zhí)行MOVSBUF,A指令),即是向發(fā)送緩沖器SBUF裝載并開始由TXD引腳向外發(fā)送一幀數(shù)據(jù),發(fā)送完便使發(fā)送中斷標(biāo)志位TI=1。

在滿足串行口接收中斷標(biāo)志位RI〔SCON.0〕=0的條件下,置允許接收位REN(SCON.4)=1就會啟動接收一幀數(shù)據(jù)進(jìn)入輸入移位寄存器,并裝載到接收SBUF中,同時使RI=l。當(dāng)發(fā)讀SBUF命令時(執(zhí)行MOVA,SBUF指令),即是由接收緩沖器(SBUF)取出信息通過8051內(nèi)部總線送CPU。

對于發(fā)送緩沖器,因為發(fā)送時CPU是主動的,不會發(fā)生重迭錯誤,所以不需要用雙緩沖結(jié)構(gòu)來保持最大傳送速率。

二、串行口控制字及控制寄存器

8051串行口是一個可編程接口,對它的編程只用兩個控制字分別寫入特殊功能寄存器:串行口控制寄存器SCON(98H)電源控制寄存器PCON(97H)

第七章微機控制系統(tǒng)應(yīng)用舉例

模/數(shù)(A/D)轉(zhuǎn)換電路的種類很多,例如,計數(shù)比較型、逐次逼近型、雙積分型等等。選擇A/D轉(zhuǎn)換器件主要是從速度、精度和價格上考慮。我們主要學(xué)習(xí)后二種典型A/D電路芯片與8051單片機的接口以及程序設(shè)計方法。逐次逼近法A/D轉(zhuǎn)換器,在精度、速度和價格上都適中,是最常用的A/D轉(zhuǎn)換器件。雙積分A/D變換器,具有精度高、抗干擾性好、價格低廉等優(yōu)點,但轉(zhuǎn)換速度慢。近年來在微機應(yīng)用領(lǐng)域中也得到廣泛應(yīng)用。

一、逐次逼近型A/D轉(zhuǎn)換器原理

逐次逼近法A/D轉(zhuǎn)換器是一種速度較快、精度較高的A/D轉(zhuǎn)換器,它是通過最高位DN—1至最低位D0的逐次檢測來逼近被轉(zhuǎn)換的輸入電壓。

一個N位的逐次逼近法A/D轉(zhuǎn)換器的原理圖如下所示:

其轉(zhuǎn)換原理如下:

在啟動信號控制下.置數(shù)控制邏輯電路置N位寄存器最高位DN-1為l,其余位清0,N位寄存器的內(nèi)容經(jīng)D/A轉(zhuǎn)換后得到整個量程—半的模擬電壓Vn,與輸入電壓Vx比較。若Vx>Vn時,則保留DN-1=1,若Vx<Vn時,則DN-1清0。然后,控制邏輯使寄存器下一位DN-2置1,與上次的結(jié)果一起經(jīng)D/A轉(zhuǎn)換后與Vx比較,重復(fù)上述過程,直至判別出D0取1還是0為止,此時DONE發(fā)出信號表示轉(zhuǎn)換結(jié)束。這樣,經(jīng)過N次比較后,N位寄存器的狀態(tài)就是轉(zhuǎn)換后的數(shù)字量,經(jīng)輸出緩沖器讀出。整個轉(zhuǎn)換過程就是這樣對分搜索比較逼近實現(xiàn)的,其轉(zhuǎn)換速度由時鐘頻率決定,一般在幾微秒到上百微秒之間。例如ADC0809,當(dāng)時鐘頻率為640kHz時,轉(zhuǎn)換時間為64μs。

二、雙積分A/D轉(zhuǎn)換器原理

雙積分A/D轉(zhuǎn)換器是基于間接測量原理,將被測電壓值Vx轉(zhuǎn)換成時間常數(shù),由測量時間常數(shù)得到未知電壓值的,

其原理見下圖所示:所謂雙積分,就是進(jìn)行一次A/D轉(zhuǎn)換需要二次積分。①定時積分:控制門通過電子開關(guān)把被測電壓Vx加到積分器的輸入端,在固定時間T0內(nèi)對Vx積分,積分輸出終值與Vx成正比;②控制門將電子開關(guān)切換到極性與Vx相反的基準(zhǔn)電壓Vr上,進(jìn)行反相積分,由于基準(zhǔn)電壓Vr恒定,所以積分輸出將按T0期間積分的值以恒定的斜率下降(稱定值積分),由比較器檢測積分輸出過零時,停止積分器工作。反相積分的時間Tx與定值積分的初值(即定時積分的終值)成比例關(guān)系,故可以通過測量反相積分時間Tx計算出Vx,即:

Vx=(Tx/T0)×Vr反相積分時間T1由計數(shù)器對時鐘脈沖計數(shù)得到。

下圖表示出了兩種不同輸入電壓(Vx>Vˊ)的積分情況:顯然Vˊ值小,在T0定時積分期間積分器輸出終值也就小,而下降斜率相同,故反相積分時間Tˊ也就小。

由于雙積分方法二次積分時間比較長。所以A/D轉(zhuǎn)換速度慢,但精度可以做得比較高;對周期變化的干擾信號積分為零,抗干擾性能也比較好。

目前國內(nèi)外雙積分A/D轉(zhuǎn)換器集成電路芯片很多,大部分是應(yīng)用于數(shù)字測量儀器上。適用單片機接口的有3位半雙積分A/D轉(zhuǎn)換器MC14433(精度相當(dāng)于1l位二進(jìn)制數(shù))和4位半雙積分A/D轉(zhuǎn)換器ICL7135(精度相當(dāng)于14位二進(jìn)制數(shù))。

三、A/D轉(zhuǎn)換器的主要技術(shù)指標(biāo)

1.分辨率(Resolution)

對于ADC來說,分辨率表示輸出數(shù)字量變化一個相鄰數(shù)碼所需輸入模擬電壓的變化量。

轉(zhuǎn)換器的分辨率定義為滿刻度電壓與2n之比值,其中n為ADC的位數(shù)。例如:具有12位分辨率的ADC能夠分辨出滿刻度的1/212或滿刻度的0.0245%一個10v滿刻度的12位ADC能夠分辨輸入電壓變化的最小值為2.4mv。

2.轉(zhuǎn)換速率(Conversion

Rate)

ADC的轉(zhuǎn)換速率就是能夠重復(fù)進(jìn)行數(shù)據(jù)轉(zhuǎn)換的速度,即每秒轉(zhuǎn)換的次數(shù)。而完成一次A/D轉(zhuǎn)換所需的時間(包括穩(wěn)定時間)是轉(zhuǎn)換速率的倒數(shù)。

3.線性度(Linearity)

線性度有時又稱為非線性度(Non-Linearity),它是指轉(zhuǎn)換器實際的轉(zhuǎn)移函數(shù)與理想直線的最大偏移。理想直線可以通過理想的轉(zhuǎn)移函數(shù)的所有點來描述。ADC的線性度如圖所示,其典型值是土1/2LSB。

MCS-51單片機與A/D轉(zhuǎn)換器接口

一、ADC0809A/D轉(zhuǎn)換芯片ADC0809是CMOS工藝、采用逼近法的8位A/D轉(zhuǎn)換芯片,28引腳雙列直插式封裝,片內(nèi)除A/D轉(zhuǎn)換部分外還有多路模擬開關(guān)部分。

有8路模擬量輸入端,最多允許8路模擬量分時輸入,共用一個A/D轉(zhuǎn)換器進(jìn)行轉(zhuǎn)換。

ADC0809的內(nèi)部結(jié)構(gòu)邏輯圖

引腳功能說明

IN0—IN7:8路輸入通道的模擬輸入端。DB0一DB7:8位數(shù)字量輸出端。START:啟動信號。加上正脈沖后,A/D轉(zhuǎn)換開始進(jìn)行。ALE:地址鎖存信號,高電平時把三個地址信號送入地址鎖存器,并經(jīng)譯碼器得到地址輸出,以選擇相應(yīng)的模擬輸入通道。ADDA、ADDB、ADDC:地址線

EOC:轉(zhuǎn)換結(jié)束信號,是芯片的輸出信號。轉(zhuǎn)換開始后,EOC信號變低;轉(zhuǎn)換結(jié)束時。EOC返回高電平。這個信號可以作為A/D轉(zhuǎn)換器的狀態(tài)信號來查詢。也可以直接用作中斷請求信號。OE:輸出允許控制端。CLK:時鐘信號,最高允許值為640kHz。Vref(+)、Vref(-),:A/D轉(zhuǎn)換器的參考電壓。Vcc:電源電壓。由于是CMOS芯片,允許的電源范圍較寬,可從十5——

十15V。

8位模擬開關(guān)的地址輸入通道的關(guān)系

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論