版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
1電子設計與實踐IIMCU原理及其應用系統(tǒng)設計電氣工程系趙志衡2課程主要內(nèi)容單片機應用系統(tǒng)的構(gòu)成單片機應用系統(tǒng)單元電路及其子程序設計單片機應用系統(tǒng)設計3一、應用系統(tǒng)構(gòu)成單片機應用系統(tǒng)設計MCS51硬件結(jié)構(gòu)匯編程序的編寫功率接口MCS51指令系統(tǒng)仿真調(diào)試抗干擾設計MCS51定時計數(shù)器MCS51串行通訊MCS51中斷系統(tǒng)MCS51存儲器擴展MCS51I/O擴展MCS51鍵盤顯示擴展MCS-51A/D、D/A擴展4二、Mcs-51單元設計1.MCS-51的基本情況2.MCS-51的硬件結(jié)構(gòu)3.MCS-51的指令系統(tǒng)4.定時/計數(shù)器應用及其子程序設計5.串行通訊應用及其子程序設計6.中斷系統(tǒng)應用及其子程序設計7.外擴存儲器(程序存儲器、數(shù)據(jù)存儲器)8.外擴I/O(8255、8155及TTL芯片)9.鍵盤與顯示應用及其子程序設計10.外擴A/D、D/A應用及其子程序設計51.MCS-51芯片的基本情況屬于三總線結(jié)構(gòu)芯片管腳分別屬于數(shù)據(jù)總線地址總線控制總線此外,還有時鐘、電源、地等管腳6需要理解的控制管腳
ALERSTPSENEAWRRD7EA:接高電平時單片機訪問內(nèi)部程序存儲器,當PC值超過(0FFFH)時,將自動轉(zhuǎn)向執(zhí)行外部程序存儲器。EA
接低電平時直接訪問外部程序存儲器。PSEN:接外部程序存儲器的讀選通端RD:接外部數(shù)據(jù)存儲器的讀選通端WR:接外部數(shù)據(jù)存儲器的寫選通端82.硬件結(jié)構(gòu)
每2個時鐘振蕩周期作為1個狀態(tài)周期,每個狀態(tài)周期分為2個時相P1、P2,每6個狀態(tài)周期作為1個機器周期。
12個振蕩周期為1個機器周期
ALE的頻率約為外部晶振頻率的1/6RST管腳施加持續(xù)時間大于2個機器周期(24個振蕩周期)的高電平,將引起MCS-51的復位910特殊功能寄存器(SFR)特殊功能寄存器反映了MCS51的狀態(tài),實際上是MCS51的狀態(tài)字及控制字寄存器。51單片機通過寫SFR來控制相應功能部件(定時器、串口、中斷等)的工作方式,同時SFR也綜合的、實際的反映了整個單片機內(nèi)部的工作狀態(tài).11RAM及SFR的分布51系列:
RAM共128字節(jié),分布于地址00H-7FH空間
SFR離散分布于地址80H-FFH的空間,采用直接尋址方式訪問52系列:
RAM共256字節(jié),分布于地址00H-FFH空間,
00H-7FH空間可采用直接尋址&間接尋址
80H-FFH空間只能采用間接尋址方式訪問
SFR離散分布于地址80H-FFH的空間,只能采用直接尋址方式12位地址空間
211個(128個+83個)尋址位。位地址范圍為:00H~FFH。內(nèi)部RAM的可尋址位128個(字節(jié)地址20H~2FH)。特殊功能寄存器SFR為83個可尋址位。13內(nèi)部的可尋址位及位地址14SFR中的位地址分布15工作寄存器區(qū)的選擇18~1FH3組1110~17H2組1008~0FH1組0100~07H0組00R0~R7地址寄存器組RS1RS0復位后,默認第0組處于工作狀態(tài)16存儲器結(jié)構(gòu)的特點地址重疊性程序存儲器與數(shù)據(jù)存儲器操作指令不同位地址空間共有兩個區(qū)域片外數(shù)據(jù)存儲器與I/O口統(tǒng)一編址173.指令系統(tǒng)注意指令的書寫規(guī)范
[標號]:操作碼助記符[第1操作數(shù)],[第2操作數(shù)];[注釋]Loop1:mova,#0ffh;累計器A賦值為ff
標號:表示該指令所在的符號地址,一般由字母和數(shù)字組成,第一位為字母,其余位為字母、數(shù)字任選。操作碼助記符、第1操作數(shù)和第2操作數(shù):指令的核心部分。對于某些指令可能不存在完整的兩個操作數(shù)。注釋:是由用戶加入的文本,對匯編程序不起任何作用,只是方便閱讀。*第1操作數(shù)又稱目的操作數(shù),第2操作數(shù)又稱源操作數(shù)**51不區(qū)分大小寫***注意立即數(shù)的書寫要求18指令系統(tǒng)尋址方式:
1.寄存器尋址:mova,#20h2.直接尋址:mova,20h3.寄存器間接尋址:mova,@r04.立即尋址:mova,#0ffh5.基址寄存器加變址寄存器間接尋址
movca,@a+dptr19常用的部分偽指令ORGENDEQUDB20偽指令簡介
ORG起點指令
ORGaddr16org0000hORG指令用于指明程序代碼或數(shù)據(jù)塊在存儲器中的起始地址。addr16代表一個16位地址,即程序或數(shù)據(jù)塊的首地址。EQU等值指令標號EQU表達式
aaaequ30h
EQU指令用于為程序中的任意標號賦值。程序中的常量通??梢杂脴颂柎?,便于修改。
主程序前要先用equ指令為常量標號賦值。21偽指令簡介
DB定義字節(jié)指令
[標號]:
DB數(shù)據(jù)列表
DB指令用于定義字節(jié)型數(shù)據(jù)或數(shù)據(jù)串,并將數(shù)據(jù)作為常數(shù)填入指定的存儲器單元中。
END結(jié)束匯編指令
[標號]:
ENDEND指令置于程序結(jié)尾處,作為源程序結(jié)束的標志。224.定時/計數(shù)器及其子程序兩個16位定時/計數(shù)器存放初值的SFRT0:TH0、TL0T1:TH1、TL1其它相關的SFR:
TMOD(工作方式控制寄存器)
TCON(控制寄存器)定時功能時,每個機器周期定時器加1
計數(shù)功能時,在外部相應輸入腳(T0和T1)有下降沿時,計數(shù)器加1。
23
定時/計數(shù)器的工作方式24定時/計數(shù)器應用要點幾種工作方式的區(qū)別定時器的啟動、定時時間到的判斷初值的計算25定時/計數(shù)器的輸入信號
工作于定時器方式:對內(nèi)部時鐘信號計數(shù),內(nèi)部時鐘信號的頻率為時鐘振蕩頻率的1/12,即每個機器周期計數(shù)值加1。例:采用12MHz頻率的晶體時,每1μs計數(shù)值將加1。
由于定時的精度決定于輸入脈沖的周期,因此當需要高分辨率的定時時,應盡量選用頻率較高的晶體(MCS51最高為12MHz)。26定時/計數(shù)器的輸入信號工作于計數(shù)器方式:當定時/計數(shù)器用作計數(shù)器時,計數(shù)脈沖來自外部輸入引腳T0或T1。當輸入信號產(chǎn)生由1至0的跳變(即下跳沿)時,計數(shù)器的值增1。需要注意:每個機器周期的S5P2期間,對外部輸入進行采樣。如在第一個周期中采得的值為1,而在下一個周期中采得的值為0,則計數(shù)器加1。由于確認一次下跳變至少要用兩個機器周期,即24個振蕩周期,因此外部輸入的計數(shù)脈沖的最高頻率為振蕩器頻率的1/24,同時輸入信號的高、低電平保持一個機器周期以上。例如:選用6MHz頻率的晶體,允許輸入的脈沖頻率為250kHz;如果選用12MHz頻率的晶體,則可輸入500kHz的外部脈沖。27定時/計數(shù)器的輸入信號理想的計數(shù)器輸入信號:脈沖信號的高、低電平至少要各保持一個機器周期以上,確保電平在變化之前能被采樣一次。28定時器/計數(shù)器的編程初始化1根據(jù)要求給方式寄存器TMOD送一個方式控制字,以設定定時器的工作方式;2根據(jù)需要給TH和TL選送初值,以確定需要的定時時間或計數(shù)的初值;3根據(jù)需要給中斷允許寄存器IE送中斷控制字,以開放相應的中斷和設定中斷優(yōu)先級;
也可用查詢方式來響應定時器。4給TCON送命令字以啟動或禁止定時/計數(shù)器的運行。29定時器/計數(shù)器的編程初值的計算計數(shù)器初值:
設計數(shù)模值為M,所需的計數(shù)值為C,計數(shù)初值設定為TC,則:TC=M-C(M=213,216,28)定時器初值:
定時器的模值為M,需要的定時時間為T,定時器的初值TC為:
TC=M-T/t機器周期
30編程方式采用查詢方式:程序一直檢測TF0(TF1),若TF0=1(TF1=1),說明定時時間到或計滿數(shù),需要軟件清除溢出標志位TFx。采用中斷方式:程序初始化時,設置定時器溢出中斷允許后,內(nèi)部硬件自動檢測到TF0=1(TF1=1)時,自動響應中斷,進入中斷服務程序。由硬件自動清除TFx。31例1:
T0計數(shù)、T1定時工作于方式2
從P3.4T0輸入低頻脈沖,要求該脈沖每發(fā)生一次跳變時由P1.0輸出一個500us的負脈沖,與此同時由P1.1輸出一個寬為1ms的正脈沖(6MHz晶振)。先設T0為計數(shù)方式,工作于方式2,初值設為FFH,即加1即刻產(chǎn)生溢出。當外部輸入一個下跳沿時,T0計數(shù)器加1,并產(chǎn)生溢出,TF0=1;引起CPU的T0中斷。中斷服務程序內(nèi),對定時器T1設定初值,T1也工作于方式2。32含中斷的定時/計數(shù)器響應程序ORG0HSJMPBEGINORG000BHAJMPTT1ORG0030HBEGIN:MOVTMOD,#26H MOVTH0,#0FFH MOVTL0,#0FFHCLRP1.1SetbET0;允許T0中斷SetbEA;CPU開中斷
SETBP1.0SETBTR0SJMP$工作于方式2的定時/計數(shù)器33中斷服務程序
ORG300HTT1:MOVTH1,#06HMOVTL1,#06HSETBP1.1CLRP1.0SETBTR1DEL2:JBCTF1,RP1
SJMPDEL2RP1:SETBP1.0DEL3:JBCTF1,RP2SJMPDEL3RP2:CLRP1.1CLRTR1RETI345.串行通訊全雙工串行通訊口有關的SFRSBUF、SCON、PCON幾種工作方式的區(qū)別串行通訊波特率的設定雙機通訊的實現(xiàn)35串行口的工作方式SCON中:SM0、SM1工作方式選擇位36方式1、方式3
串行口方式3為9位數(shù)據(jù)全雙工異步通信方式,比串行口方式1增加了第9位數(shù)據(jù)位。TXD為發(fā)送數(shù)據(jù)端,RXD為接收數(shù)據(jù)端。一幀信息有11位,包括9位數(shù)據(jù)位,1個起始位“0”和1個停止位“1”。發(fā)送數(shù)據(jù)的第9位在TB8中,接收數(shù)據(jù)的第9位存入RB8中。第9位數(shù)據(jù)位也稱為可編程位,常用做奇偶校檢位或多機通信中的地址/數(shù)據(jù)識別位。方式3的波特率與方式1的相同,計算式為:(2SMOD/32)×T1溢出率。
37方式3的時序38波特率波特率的定義:串行口每秒鐘發(fā)送或者接收數(shù)據(jù)的位數(shù)。串行口方式1和方式3用定時器T1作為波特率發(fā)生器,其波特率有多種選擇,與T1的溢出率有關。
波特率=(2SMOD/32)×T1溢出率
39定時器T1產(chǎn)生波特率的計算T1溢出率:T1溢出時間的倒數(shù)。T1用于波特率發(fā)生器時一般工作于方式2,即常數(shù)自動重裝入方式。
TH1=TL1為T1的時間常數(shù)
40波特率計算的幾點注意事項:1)波特率的相對誤差不大于2.5%2)注意SMOD位對波特率的影響例如:通訊波特率設為2400,晶振頻率為6MHz,計算T1的計時常數(shù)。當SMOD=0時,計時常數(shù)約為249,相對誤差7%。當SMOD=1時,計時常數(shù)約為243,相對誤差0.16%。41T1產(chǎn)生的常用波特率通訊時,盡量選用11.0592M的晶振42串行口的編程舉例設定波特率設定串行口的工作方式設計中斷服務程序或查詢程序
注意對TI、RI的處理(硬件置位、軟件清零)43MCS-51雙機串行通訊的實現(xiàn)如何進行物理連線?波特率的選擇?工作方式的選擇?如何編程實現(xiàn)?44雙機串行通訊的實現(xiàn)-1正確進行物理接線45雙機串行通訊的實現(xiàn)-2設定一致的波特率設定一致的串行口工作方式分別設計中斷服務程序或查詢程序
注意對TI、RI的處理(硬件置位、軟件清零)46方式3發(fā)送50H~5FH的內(nèi)容待發(fā)送的16個字節(jié)存放在片內(nèi)RAM中地址為50H~5FH串行口波特率為2400波特率發(fā)生器T1工作于方式2,且SMOD=0晶振為11.0592MHz計算得到TL1的初值為F4H。串行口工作于方式3第9位發(fā)送奇偶校驗位47程序狀態(tài)寄存器:PSWPSW.1是保留位,未用。Cy(PSW.7)進位標志位,在執(zhí)行算術和邏輯指令時,可以被硬件或軟件置位或清除,在位處理器中,它是位累加器。Ac(PSW.6)輔助進位標志位。F0(PSW.5)標志位,它是由用戶使用的一個狀態(tài)標志位。RS1、RS0(PSW.4、PSW.3):寄存器區(qū)選擇控制位OV(PSW.2):溢出標志位。P(PSW.0)奇偶標志位。每個指令周期都由硬件來置位或清除,以表示累加器A中值為1的位數(shù)的奇偶數(shù)。48例2:
方式3發(fā)送50H~5FH中內(nèi)容-1
ORG 0000H ;復位入口
AJMP MAIN ORG 0023H ;串行口中斷入口
AJMP L1 ORG 0100H ;主程序入口MAIN:MOV SCON,#0C0H ;串行口初始化,;用方式3發(fā)送,TI=0 MOV PCON,#00H ;SMOD=0MOV TMOD,#20H ;T1方式2定時
MOV TL1,#0F4H ;寫入T1時間常數(shù)
MOV TH1,#0F4H SETB TR1 ;啟動T1 SETB EA SETB ES ;允許串行口中斷
MOV R0,#50H ;設數(shù)據(jù)指針
MOV R7,#10H ;數(shù)據(jù)長度LOOP:MOV A,@R0 ;取一個字符
MOV C,P ;加奇偶校驗
MOV TB8,C MOV SBUF,A ;發(fā)送一個字符HERE:SJMP HERE ;CPU原地循環(huán),等待發(fā)送結(jié)束49例2:
方式3發(fā)送50H~5FH中內(nèi)容-2L1:
CLR TI ;中斷服務程序,;發(fā)送結(jié)束標志位清0DJNZ R7,NEXT ;發(fā)送完全部字符?CLR ES ;已發(fā)送完,關閉串行口中斷
SJMP TENDNEXT:
INC R0 ;未發(fā)送完,修改指針
MOV A,@R0;取下一個字符
MOV C,P ;加奇偶校驗
MOV TB8,C MOV SBUF,A ;再次發(fā)送一個字符TEND:
RETI ;中斷返回主程序506.中斷系統(tǒng)有關的SFRIE、IP、TCON中斷源、中斷允許控制、中斷優(yōu)先級外中斷觸發(fā)方式的設定(電平觸發(fā)、邊沿觸發(fā))中斷的響應及返回典型應用51中斷系統(tǒng)中斷的概念在執(zhí)行程序的過程中,由于某種原因,必須盡快終止當前的程序執(zhí)行,而去執(zhí)行相應的處理程序,待處理結(jié)束后,再回來繼續(xù)執(zhí)行被終止的程序。這個過程叫中斷。5253中斷優(yōu)先級如同時發(fā)生多件事件,按照需響應事件的重要性選擇事件處理,稱之為中斷優(yōu)先級。中斷系統(tǒng)的功能:中斷優(yōu)先權(quán)排隊實現(xiàn)中斷嵌套自動響應中斷實現(xiàn)中斷返回548051的中斷系統(tǒng)5個中斷源,具有二個中斷優(yōu)先級,可實現(xiàn)二級中斷服務程序的嵌套。每個中斷源均可軟件編程為允許或禁止向CPU請求中斷、高優(yōu)先級或低優(yōu)先級中斷。中斷源為:INT0、C/T0、INT1、C/T1、串行口5556注意:不同中斷源中斷入口地址不同
中斷源入口地址外部中斷0定時器/計數(shù)器T0外部中斷1定時器/計數(shù)器T1串行口中斷0003H000BH0013H001BH0023H0000H0003H
RETI外部中斷0響應過程57
中斷系統(tǒng)的編程開放相應的中斷源;(IE)設定中斷優(yōu)先級;(IP)若為外部中斷,設定外部中斷的觸發(fā)方式(TCON)在相應的中斷入口處寫入中斷程序中斷子程序的最后一條指令為RETI588051單片機的P1口控制8個LED燈,要求8個燈加1移位點亮,當INT0引腳有下跳沿時,燈全滅后全亮,然后燈繼續(xù)加1移位點亮。例4:外部中斷0的應用59
ORG0000HAJMPSTORG0003HAJMPEXT0ORG0030HST:MOVSP,#70HMOVTCON,#01HMOVIP,#01HMOVIE,#81HRES:
MOVA,#0FFHLoop:MOVP1,ADECALCALLDelayLCALLDelayJNZLoopSJMPRES Delay:movr6,#0ffhmovr7,#0ffhDelay1:Djnzr6,Delay1Djnzr7,Delay1RET主程序
中斷優(yōu)先級控制IP(B8H)———PSPT1PX1PT0PX0
中斷使能控制IE(A8H)EA——ESET1EX1ET0EX0TCONTF1TR1TF0TR0IE1IT1IE0IT060中斷服務程序EXT0:PUSHAPUSHPSWsetbrs1;使用第2組工作寄存器
MOVA,#00 MOVP1,ALCALLDelayLCALLDelayCPLAMOVP1,ALCALLDelayLCALLDelayPOPPSWPOPARETI
617.MCS-51存儲器擴展分配地址的方法:線選法、譯碼法外擴程序存儲器、數(shù)據(jù)存儲器的實現(xiàn)熟悉2764、6264、74LS373/573、74LS138/139等芯片的功能62MCS-51單片機外部存儲器結(jié)構(gòu):哈佛結(jié)構(gòu)。MCS-51RAM和ROM的最大擴展空間各為64KB。系統(tǒng)擴展首先要構(gòu)造系統(tǒng)總線。按功能把系統(tǒng)總線分為三組:
1.地址總線(AdressBus,簡寫AB)
2.數(shù)據(jù)總線(DataBus,簡寫DB)3.控制總線(ControlBus,簡寫CB)
63構(gòu)造系統(tǒng)總線64
1.以P0口作為數(shù)據(jù)總線(8位)。
2.以P0口經(jīng)8位鎖存器鎖存后的信號作為地址總線的低8位。
3.以P2口作為地址總線高8位。
4.控制信號線。 *ALE——
低8位地址鎖存信號。 *PSEN*——
擴展程序存儲器讀選通信號。 *EA*——
內(nèi)外程序存儲器選擇信號。 *RD*和WR*——
擴展RAM和I/O口的讀選通、寫選通信號。65存儲器擴展方法擴展存儲器即分配地址空間給每個芯片,注意要避免地址和數(shù)據(jù)的沖突芯片的片選端口為避免數(shù)據(jù)的沖突提供了方便,通過MCS51的地址線產(chǎn)生片選信號是避免地址沖突的有效途徑。片選控制線選法適用于系統(tǒng)芯片數(shù)目較少利用高端地址線(未用到的地址線)直接作為外擴芯片的片選線,線路簡單地址空間有重疊,即同一存儲空間可能對應多個地址譯碼選通法適用于多片存儲器擴展高端地址線經(jīng)譯碼器譯碼后作為存儲器片選線,線路需增加譯碼器芯片地址空間連續(xù),存儲芯片空間對應地址唯一66強調(diào):MCS51外擴存儲器應注意的問題程序存儲器與數(shù)據(jù)存儲器空間獨立,各擁有64k尋址空間數(shù)據(jù)存儲器擴展與I/O口擴展占用數(shù)據(jù)64k空間,統(tǒng)一編址數(shù)據(jù)總線與低8位地址總線復用,必須使用地址鎖存器實現(xiàn)低8位地址總線和數(shù)據(jù)總線的分離。67硬件電路原理圖2764地址:IC1(0000h~1fffh)IC2(2000h~3fffh)6264地址:IC3(5000h~5fffh)IC4(6000h~7fffh)688.I/O口擴展8255、8155的使用(基本輸入輸出)簡單I/O口擴展:通過74LS377擴展輸出口、74LS244擴展輸入口69
8255A擴展實例8255A與8031接口電路708255A的接口應用舉例1.硬件接口電路8031擴展1片8255A的電路圖。74LS373是地址鎖存器,P0.1、P0.0經(jīng)74LS373與8255A的地址線A1、A0連接;P0.7經(jīng)74LS373與片選端相連,其他地址線懸空。2.端口地址確定8255A各端口寄存器的地址為:A口:
FF7CHB口:
FF7DHC口:
FF7EH控制寄存器:
FF7FH713.軟件編程要求8255A工作在方式0,且A口作為輸入,B口、
C口作為輸出,程序如下:MOV A,#90H ;A口方式0輸入,B口、;C口輸出的控制字送AMOV DPTR,#0FF7FH;控制寄存器地址→DPTRMOVX@DPTR,A ;方式控制字→控制寄存器MOV DPTR,#0FF7CH;A口地址→DPTRMOVXA,@DPTR ;從A口讀數(shù)據(jù)MOVDPTR,#0FF7DH;B口地址→DPTRMOV A,#55H;要輸出的數(shù)據(jù)55H→AMOVX@DPTR,A;將55H送B口輸出MOVDPTR,#0FF7EH;C口地址→DPTRMOVA,#60H ;60H→AMOVX@DPTR,A ;將60H送C口輸出729.鍵盤接口的設計鍵盤的分類
編碼式:由專門的硬件(8279等)識別按下的鍵碼。非編碼式:依靠軟件實現(xiàn)鍵碼的識別。非編碼鍵盤的結(jié)構(gòu)獨立式鍵盤矩陣式鍵盤軟件實現(xiàn)按鍵識別的方法掃描法鍵盤使用中的注意事項鍵盤的抖動73
鍵盤接口的工作原理獨立式鍵盤接口和矩陣式鍵盤接口。1.獨立式鍵盤接口
各鍵相互獨立,每個按鍵各接一根輸入線,通過檢測輸入線的電平狀態(tài)可很容易判斷那個鍵被按下。此種接口適于鍵數(shù)較少或操作速度較高的場合。
74獨立式鍵盤的檢測方式75鍵盤的抖動問題鍵盤的抖動抖動時間一般為5~10ms。為了保證CPU對鍵的閉合作一次,而且是僅作一次處理,必須消除抖動可采用軟、硬件方法消除抖動。**軟件消抖原理1)判斷是否有鍵按下;2)若有鍵按下,調(diào)用延時程序(延時時間大于10ms);3)再次判斷是否有鍵按下,并讀入相應的鍵值.鍵盤工作時輸出的電壓波形76
獨立式鍵盤編程1)每個按鍵占用一根口線2)電路配置靈活,軟件結(jié)構(gòu)簡單。3)適用于按鍵較少的場合。
特點:可直接判斷哪個鍵按下;----------------------------------------------------------------------------------------------------------; 獨立式鍵盤的處理程序(實際應用時要加延時消除抖動);----------------------------------------------------------------------------------------------------------LOOP: MOV A,P1 ;讀P1口電平狀態(tài)
ANL A,#0FH ;取P1口低4位
CJNE A,#0FH,KEY ;判斷是否有鍵按下
SJMP LOOP ;如沒有鍵按下,重新掃描KEY: CJNE A,#0EH,NEXT1 ;判斷是否為一號鍵按下
ACALL KEY1 ;調(diào)用一號鍵處理子程序
SJMP LOOPNEXT1: CJNE A,#0DH,NEXT2;判斷是否為2號鍵按下
ACALL KEY2 …778255A擴展I/O口的獨立式按鍵接口電路PA0PA1PA2PA3PA4PA5PA6PA7*8255A工作于基本輸入輸出方式*PA口地址7FF0H78
矩陣式(行列式)鍵盤接口
用于按鍵數(shù)目較多的場合,由行線和列線組成,按鍵位于行、列的交叉點上,如下圖。**在需要按鍵數(shù)目較多的場合,矩陣式鍵盤與獨立式鍵盤相比,要節(jié)省較多的I/O口線。79矩陣式鍵盤的工作過程鍵沒有按下時行線和列線是分開的,鍵按下將相應的行線列線短接。連接行線的管腳作為輸入口,沒有鍵按下時,被外電路拉高為“1”連接列線的管腳作為輸出口,需要掃描鍵盤時,逐次輸出低電平,若此時有鍵按下,則與其交叉的行線回讀值為“0”,否則為“1”。根據(jù)當前的掃描列線和回讀電平為“0”的行線可確定按下的鍵值。80矩陣式鍵盤鍵碼的判別對于一個規(guī)則編碼的矩陣式鍵盤,可以通過對鍵盤的列線依次進行掃描(輸出低電平),然后回讀行線,如果哪一行的電平為低,說明該行、該列的鍵被按下。該鍵的鍵碼為:鍵碼=該行首鍵碼+該列號0行1行2行3行
0列1列2列3列81矩陣式按鍵的識別方法(掃描法)82鍵盤程序設計設計要求判別鍵盤上有無鍵閉合去除鍵盤的機械抖動判別閉合鍵的鍵號使處理器對鍵的一次閉合僅作一次處理程序流程鍵盤處理子程序流程83848586鍵盤的掃描方式程序控制掃描方式當單片機空閑時,才調(diào)用鍵盤掃描程序定時掃描方式每隔一定時間對鍵盤掃描一次,通常采用單片機內(nèi)定時器確定鍵盤掃描時間間隔中斷掃描方式利用按鍵操作產(chǎn)生的中斷來掃描鍵盤,優(yōu)點是及時響應鍵盤操作,節(jié)省CPU時間8710.A/D、D/A擴展MCS-51外擴ADC0809MCS-51外擴DAC083288ADC0809編程要點選通模擬量輸入通道發(fā)出啟動信號用延時、查詢或中斷方法等待轉(zhuǎn)換結(jié)束初學階段建議采用延時的方法讀取轉(zhuǎn)換結(jié)果89ADC0809與8031接口電路設計*啟動AD接口設計*轉(zhuǎn)換時鐘的提供,51單片機晶振6MHz*轉(zhuǎn)換完成判斷*模擬通道的選擇90ADC0809接口電路編程要求:
設計程序?qū)崿F(xiàn)對8路模擬信號的采樣,并把數(shù)據(jù)存儲在RAM區(qū)30H~37H中。
;---------------------------------------------------------------------------; ADC0809的0~7模擬通道對應地址7FF8H~7FFFH;--------------------------------------------------------------------------- ORG 0000HMAIN: MOV R1,#30H ;置數(shù)據(jù)存儲區(qū)首地址
MOV DPTR,#7FF8H ;指向ADC0809的0通道
MOV R7,#08H ;置通道數(shù)LOOP: MOVX @DPTR,A ;啟動轉(zhuǎn)換
ACALL DELAY_130us ;等待130us MOVX A,@DPTR ;讀取轉(zhuǎn)換結(jié)果
MOV @R1,A ;保存轉(zhuǎn)換結(jié)果
INC DPTR ;指向下一個轉(zhuǎn)換通道
INC R1 ;指向下一個存儲空間
DJNZ R7,LOOP ;判斷8個通道采樣是否完成?
…91DAC0832與8031單緩沖接口硬件設計0832地址8000HDAC0832單緩沖方式應用原理圖92
鋸齒波的產(chǎn)生
ORG2000HSTART:MOVDPTR,#8000H;DAC地址8000H→R0MOVA,#00H ;數(shù)字量→ALOOP:MOVX@DPTR,A ;數(shù)字量→D/A轉(zhuǎn)換器
INCA ;數(shù)字量逐次加1SJMPLOOP累加器A的值從0開始輸出(模擬量為0V),逐次加1,到FFH時(模擬量為5V),再加1則A又變?yōu)?(模擬量又為0V),程序循環(huán)后得到鋸齒波。93三、MCS-51單片機應用系統(tǒng)的設計設計一個單片機測控系統(tǒng),一般可分為四個步驟:(1)需求分析,方案論證和總體設計階段需求分析:被測控參數(shù)的形式(電量、非電量、模擬量、數(shù)字量等)、被測控參數(shù)的范圍、性能指標、系統(tǒng)功能、工作環(huán)境、顯示、報警、打印要求等。方案論證:根據(jù)要求,設計出符合現(xiàn)場條件的軟硬件方案,力求系統(tǒng)簡單、經(jīng)濟、可靠,這是進行方案論證與總體設計一貫堅持的原則。94(2)器件選擇,電路設計制作,數(shù)據(jù)處理,軟件的編制階段。(3)系統(tǒng)調(diào)試與性能測定。(4)文件編制95(1)單片機系統(tǒng)的擴展部分設計包括存儲器擴展和I/O接口擴展。存儲器的擴展指EPROM、EEPROM和RAM的擴展,I/O接口擴展是指8255、8155以及其它I/O功能器件的擴展。(2)各功能模塊的設計如信號測量功能模塊、控制功能模塊、人機對話功能模塊、通訊功能模塊等,根據(jù)系統(tǒng)功能要求配置相應的A/D、D/A、鍵盤、顯示器、打印機等外圍設備。a.盡可能采用功能強的芯片。b.單片機可優(yōu)先考慮選用片內(nèi)帶有閃爍存儲器的產(chǎn)品。例如ATMEL公司的89C51/89C52??墒箶U展程序存儲器的工作省去,從而減少芯片的數(shù)目,縮小體積。c.EPROM空間和RAM空間。目前EPROM容量越來越大,一般盡量選用容量大的EPROM。d.I/O端口,要留有余量。e.A/D和D/A通道,要留有余量。(3)工藝設計機箱、面板、配線等1.應用系統(tǒng)的硬件設計962.應用系統(tǒng)的軟件設計(1)根據(jù)軟件功能要求,將系統(tǒng)軟件分成若干個相對獨立的部分。(2)各功能程序?qū)嵭心K化、子程序化。既便于調(diào)試、鏈接,又便于移植、修改、維護。(3)編應用軟件前,應繪制出程序流程圖。這不僅是程序設計的一個重要組成部分,而且是決定成敗的關鍵部分。(4)要合理分配系統(tǒng)資源,包括ROM、RAM、定時器/計數(shù)器、中斷源等。
**其中最關鍵的是片內(nèi)RAM分配,對8031來講,片內(nèi)RAM指00H~7FH單元,這128個字節(jié)的功能不完全相同,分配時應充分發(fā)揮其特長,做到物盡其用。973.MCS-51單片機系統(tǒng)舉例
介紹幾個單片機應用系統(tǒng),供設計時參考。
8031的最小系統(tǒng)8031無片內(nèi)程序存儲器,因此,其最小應用系統(tǒng)必須在片外擴展EPROM,必須有復位及時鐘電路。下圖為8031外擴程序存儲器的最小應用系統(tǒng)。該系統(tǒng)僅完成數(shù)字量的輸入和輸出控制。988031最小系統(tǒng)9989C51的最小系統(tǒng)1004.以單片機為核心的數(shù)據(jù)采集系統(tǒng)(一)數(shù)據(jù)采集系統(tǒng)的組成數(shù)據(jù)采集系統(tǒng)一般由信號調(diào)理電路、多路切換電路、采樣保持電路、A/D、CPU、RAM、EPROM組成。101數(shù)據(jù)采集系統(tǒng)各部分說明(1)信號調(diào)理電路傳感器與A/D之間的橋梁,是測控系統(tǒng)中重要組成部分。主要功能:(a)目前標準化工業(yè)儀表通常采用0~10mA,4~20mA信號,為了和A/D的輸入形式相適應,經(jīng)I/V轉(zhuǎn)換器變換成電壓信號。(b)某些測量信號可能是非電量,這些非電壓量信號必須變?yōu)殡妷盒盘?,還有些信號即使是電壓信號,也必須經(jīng)過放大、濾波,這些處理包括信號形式的變換、量程調(diào)整、零點補償、線性化等。(c)某些惡劣條件下,共模電壓干擾很強,必須根據(jù)現(xiàn)場環(huán)境,考慮共模干擾的抑制,甚至采用隔離措施,包括地線隔離、路間隔離等等。102
綜上所述,非電量的轉(zhuǎn)換、信號形式的變換、放大、濾波、共模抑制及隔離等等,都是信號調(diào)理的主要功能。
信號調(diào)理電路包括電橋、放大、濾波、隔離等電路。根據(jù)不同的調(diào)理對象,采用不同的電路。
信號放大電路通常由運放承擔,運放的選擇主要考慮精度要求(失調(diào)及失調(diào)溫漂),速度要求(帶寬、上升率),幅度要求(工作電壓范圍及增益)及共模抑制要求。
濾波和限幅電路通常采用二極管、穩(wěn)壓管、電容等器件。用二極管和穩(wěn)壓管的限幅方法會產(chǎn)生一定的非線性且靈敏度下降,這可以通過后級增益調(diào)整和非線性校正補償。103(2)多路切換電路:通常檢測的物理量有多個,不可能每一個通道都設有放大、濾波、補償?shù)入娐?,可采用多路切換降低成本。(3)采樣保持電路(S/H):將快速變化的模擬信號進行保持,以供A/D轉(zhuǎn)換。(4)模-數(shù)轉(zhuǎn)換(ADC)(5)基本單片機系統(tǒng)設計(二)數(shù)據(jù)采集系統(tǒng)設計中的地址空間分配與總線驅(qū)動有時要擴多片存儲器芯片,要解決兩個問題:(a)如何把兩個64K存儲器空間分配給各個芯片;(b)如何解決對多片芯片的驅(qū)動問題。104(1)地址空間的分配下圖是一個全地址譯碼的系統(tǒng)實例。105器件地址線(A15-A0)片內(nèi)地址單元數(shù)地址編碼6264000×××××××××××××8K0000H-1FFFH8255(1)00111111111111××43FFCH-3FFFH8155RAM
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 喬遷新居賀詞(集錦15篇)
- 雪話題作文(15篇)
- 初一滿分作文800字范文5篇
- 簡歷的自我評價匯編15篇
- 升學宴學生演講稿合集15篇
- 特鋼企業(yè)突發(fā)環(huán)境事件應急預案
- 公交站亭基礎及鋪裝施工合同(2篇)
- 商場場地租賃協(xié)議書范本
- 貨車租賃協(xié)議書樣書
- 公租房協(xié)議范本
- 輔警心理健康知識講座
- 《棗樹常見病蟲害》課件
- 刑法試題庫大全
- 燃氣安裝人員管理制度
- 省份簡稱課件
- 公民科學素質(zhì)調(diào)查問卷
- 小學健康教育試題-及答案
- 鋼構(gòu)件應力超聲檢測技術規(guī)程
- -《多軸數(shù)控加工及工藝》(第二版)教案
- 體 育 課 教 學 評 價 量 表
- 23秋國家開放大學《漢語國際教育概論》階段測驗1-2+教學活動1參考答案
評論
0/150
提交評論