![【技術(shù)教程】單片機(jī)原理及應(yīng)用學(xué)習(xí)指導(dǎo)(競賽)_第1頁](http://file4.renrendoc.com/view/ad2c7a7d5775df7461e88866fe8a8cbf/ad2c7a7d5775df7461e88866fe8a8cbf1.gif)
![【技術(shù)教程】單片機(jī)原理及應(yīng)用學(xué)習(xí)指導(dǎo)(競賽)_第2頁](http://file4.renrendoc.com/view/ad2c7a7d5775df7461e88866fe8a8cbf/ad2c7a7d5775df7461e88866fe8a8cbf2.gif)
![【技術(shù)教程】單片機(jī)原理及應(yīng)用學(xué)習(xí)指導(dǎo)(競賽)_第3頁](http://file4.renrendoc.com/view/ad2c7a7d5775df7461e88866fe8a8cbf/ad2c7a7d5775df7461e88866fe8a8cbf3.gif)
![【技術(shù)教程】單片機(jī)原理及應(yīng)用學(xué)習(xí)指導(dǎo)(競賽)_第4頁](http://file4.renrendoc.com/view/ad2c7a7d5775df7461e88866fe8a8cbf/ad2c7a7d5775df7461e88866fe8a8cbf4.gif)
![【技術(shù)教程】單片機(jī)原理及應(yīng)用學(xué)習(xí)指導(dǎo)(競賽)_第5頁](http://file4.renrendoc.com/view/ad2c7a7d5775df7461e88866fe8a8cbf/ad2c7a7d5775df7461e88866fe8a8cbf5.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、1單片機(jī)原理及應(yīng)用學(xué)習(xí)指導(dǎo)趙志衡2本講的主要內(nèi)容1 課程主要內(nèi)容2 課程學(xué)習(xí)要點3 典型應(yīng)用31 課程主要內(nèi)容單片機(jī)應(yīng)用系統(tǒng)設(shè)計MCS51硬件結(jié)構(gòu)匯編程序的編寫功率接口MCS51指令系統(tǒng)仿真調(diào)試抗干擾設(shè)計MCS51定時計數(shù)器MCS51串行通訊MCS51中斷系統(tǒng)MCS51存儲器擴(kuò)展MCS51 I/O擴(kuò)展MCS51鍵盤顯示擴(kuò)展MCS-51 A/D、D/A擴(kuò)展42 學(xué)習(xí)要點2.1 MCS-51的硬件結(jié)構(gòu)2.2 MCS-51的指令系統(tǒng)2.3 定時/計數(shù)器2.4 串行通訊2.5 中斷系統(tǒng)2.6 外擴(kuò)存儲器程序存儲器、數(shù)據(jù)存儲器2.7 外擴(kuò)I/O8255、8155及TTL芯片2.8 外擴(kuò)A/D、D/A52
2、.1 硬件結(jié)構(gòu)單片機(jī):將組成微型計算機(jī)的各功能部件:中央處理器CPU、存儲器RAM、ROM、EPROM、定時/計數(shù)器、串行口、I/O接口電路等集成在一塊硅片上,這樣的一塊芯片具有一臺計算機(jī)的屬性,因而被稱為單片微型計算機(jī),簡稱單片機(jī)。單片機(jī)又稱為微控制器或嵌入式控制器6功能部件MCS-51系列單片機(jī)提供的主要資源 微處理器 CPU:可進(jìn)行字節(jié)及位數(shù)據(jù)處理 數(shù)據(jù)存儲器RAM 串行通訊 定時/計數(shù)器 中斷系統(tǒng) 特殊功能存放器SFR IO口 P0口、Pl口、P2口、P3口 有的型號含程序存儲器ROM/EPROM7芯片的根本情況屬于三總線結(jié)構(gòu)芯片 管腳分別屬于 數(shù)據(jù)總線 地址總線 控制總線 此外,還有
3、時鐘、電源、地等管腳8需要理解的控制管腳 ALE :address latch enable RST:reset復(fù)位 PSEN:Program strobe enable29腳,程序存儲器允許輸出控制端 PROGramming,編程脈沖輸入端 EA:enable address31腳,內(nèi)外程序存儲器選擇控制端,高電平時內(nèi),PC超過0FFFH時自動轉(zhuǎn)向外低電平只外 WR: RD:9EA:接高電平時單片機(jī)訪問內(nèi)部程序存儲器,當(dāng)PC程序計數(shù)器值超過0FFFH時,將自動轉(zhuǎn)向執(zhí)行外部程序存儲器。EA 接低電平時直接訪問外部程序存儲器。PSEN:接外部程序存儲器的讀選通端 RD:接外部數(shù)據(jù)存儲器的讀選通端
4、WR:接外部數(shù)據(jù)存儲器的寫選通端10硬件結(jié)構(gòu):時序 每2個時鐘振蕩周期作為1個狀態(tài)周期,每個狀態(tài)周期分為2個時相P1、P2,每6個狀態(tài)周期作為1個機(jī)器周期。需要掌握: 12個振蕩周期為1個機(jī)器周期 ALE的頻率約為外部晶振頻率的1/6 RST管腳施加持續(xù)時間大于2個機(jī)器周期24個振蕩周期的高電平,將引起MCS-51的復(fù)位11硬件結(jié)構(gòu):存儲器結(jié)構(gòu)12特殊功能存放器SFR 特殊功能存放器反映了MCS51的狀態(tài),實際上是MCS51的狀態(tài)字及控制字存放器。51單片機(jī)通過寫SFR來控制相應(yīng)功能部件定時器、串口、中斷等的工作方式,同時SFR也綜合的、實際的反映了整個單片機(jī)根本系統(tǒng)內(nèi)部的工作狀態(tài).13RAM
5、及SFR的分布51系列: RAM共128字節(jié),分布于地址00H-7FH空間 SFR離散分布于地址80H-FFH的空間,采用直接尋址方式訪問52系列: RAM共256字節(jié),分布于地址00H-FFH空間,80H-FFH空間采用間接尋址方式訪問 SFR離散分布于地址80H-FFH的空間,采用直接尋址方式14位地址空間 211個128個+83個尋址位。位地址范圍為:00HFFH。 內(nèi)部RAM的可尋址位128個(字節(jié)地址20H2FH)。 特殊功能存放器SFR為83個可尋址位。15表 內(nèi)部的可尋址位及位地址16 SFR中的位地址分布17工作存放器區(qū)的選擇 181FH3組1 11017H2組1 0080FH
6、1組0 10007H0組0 0R0R7地址寄存器組RS1 RS0復(fù)位后,默認(rèn)第0組處于工作狀態(tài)18硬件結(jié)構(gòu):存儲器結(jié)構(gòu)的特點地址重疊性程序存儲器與數(shù)據(jù)存儲器操作指令不同位地址空間共有兩個區(qū)域片外數(shù)據(jù)存儲器與I/O口統(tǒng)一編址19幾個問題: 如何對SFR中的內(nèi)容進(jìn)行讀寫? mov a,90h;直接尋址方式訪問或者 mov a,p1;直接使用SFR的名稱。如何對52系列單片機(jī)的高128字節(jié)RAM進(jìn)行讀寫? mov r0,#90h mov a,r0;間接尋址方式訪問 如何讀出片外數(shù)據(jù)存儲器字節(jié)地址為2000H中的內(nèi)容? mov dptr,#2000h movx a,dptr20硬件結(jié)構(gòu):存儲器結(jié)構(gòu)21
7、硬件結(jié)構(gòu):I/O口 P0口是三態(tài)雙向口,作為數(shù)據(jù)總線和地址總線低8位的分時復(fù)用口,由ALE信號作為地址鎖存。 P1口準(zhǔn)雙向口,供用戶使用。 P2口準(zhǔn)雙向口,作為地址總線的高8位使用。 P3口準(zhǔn)雙向口,即可作為一般I/O口使用,也可作為第二功能口使用,P3.6、P3.7為讀寫信號線。注意:P1、P3口如果作為輸出,就只對其進(jìn)行寫操作;如果作為輸入,就只對其進(jìn)行讀操作。222.2 指令系統(tǒng)注意指令的書寫標(biāo)準(zhǔn) 標(biāo)號:操作碼助記符 第1操作數(shù),第2操作數(shù);注釋Loop1: mov a, #0ffh; 累計器A賦值為ff 標(biāo)號:表示該指令所在的符號地址,一般由字母和數(shù)字組成, 第一位為字母,其余位為字母
8、、數(shù)字任選。操作碼助記符、第1操作數(shù)和 第2操作數(shù):指令的核心局部。對于某些指令可能不存在完整的兩個操作數(shù)。注釋:是由用戶參加的文本,對匯編程序不起任何作用,只是方便閱讀。 * 第1操作數(shù)又稱目的操作數(shù),第2操作數(shù)又稱源操作數(shù) * 51不區(qū)分大小寫 * 注意立即數(shù)的書寫要求23指令系統(tǒng)尋址方式: 1存放器尋址:mov a,#20h 2直接尋址:mov a,20h 3存放器間接尋址:mov a,r0 4立即尋址:mov a,#0ffh 5基址存放器加變址存放器間接尋址 movc a,a+dptr24指令系統(tǒng)按功能分類: 數(shù)據(jù)傳送類 算數(shù)操作類 邏輯運算類 控制轉(zhuǎn)移類 位操作類25指令系統(tǒng)常用的指
9、令 mov jbc jb jnb movc mov a,r0 movx rl djnz cjne26常用的局部偽指令ORG END EQUDB 27偽指令簡介 ORG 起點指令 ORG addr16 org 0000h ORG指令用于指明程序代碼或數(shù)據(jù)塊在存儲器中的起始地址。addr16代表一個16位地址,即程序或數(shù)據(jù)塊的首地址。 EQU 等值指令 標(biāo)號 EQU 表達(dá)式 aaa equ 30h bbb equ 40H EQU指令用于為程序中的任意標(biāo)號賦值。 程序中的常量通??梢杂脴?biāo)號代替,便于修改。 主程序前要先用equ指令為常量標(biāo)號賦值。28偽指令簡介 DB 定義字節(jié)指令 標(biāo)號: DB 數(shù)據(jù)
10、列表 DB指令用于定義字節(jié)型數(shù)據(jù)或數(shù)據(jù)串,并將數(shù)據(jù)作為常數(shù)填入指定的存儲器單元中。 END 結(jié)束匯編指令 標(biāo)號:END END指令置于程序結(jié)尾處,作為源程序結(jié)束的標(biāo)志。292.3 定時/計數(shù)器兩個16位定時/計數(shù)器存放初值的SFR T0: TH0、TL0 T1: TH1、TL1其它相關(guān)的SFR: TMOD工作方式控制存放器 TCON控制存放器 定時功能時,每個機(jī)器周期定時器加1 計數(shù)功能時,在外部相應(yīng)輸入腳T0和T1有下降沿時,計數(shù)器加1。 30 定時/計數(shù)器的工作方式31定時/計數(shù)器幾種工作方式的區(qū)別定時器的啟動、定時時間到的判斷初值的計算典型應(yīng)用32定時計數(shù)器的結(jié)構(gòu)框圖33定時器的控制字工
11、作方式控制存放器TMOD(89H) GATE C/T M1 M0 GATE C/T M1 M0注意:TMOD不能位尋址控制存放器TCON (88H)TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0復(fù)位后兩個存放器的狀態(tài)均為00H。 34TMOD:工作方式控制存放器 GATE:門控位 GATE1,T0、T1是否工作受外部引腳輸入電平的控制,INT0(12#)引腳控制T0運行,INT1(13#)引腳控制T1運行??捎糜跍y量在INT0或INT1引腳出現(xiàn)的正脈沖的寬度。 GATE=0,定時/計數(shù)器的運行不受外部引腳INT0或INT1的控制。 C/T位:計數(shù)器模式和定時器模式的選擇位 C/
12、T=0,為定時器模式。內(nèi)部計數(shù)器對晶振頻率12分頻后的脈沖計數(shù)該脈沖的周期等于機(jī)器周期,每個周期計數(shù)值加1。假設(shè)選擇12MHz晶振,那么計數(shù)頻率為1MHz。從計數(shù)值便可求得計數(shù)的時間,所以稱為定時器模式; C/T=1,設(shè)置為計數(shù)器模式,計數(shù)器對由引腳T0P3.4腳或T1P3.5腳輸入的外部脈沖負(fù)跳變計數(shù),允許最高計數(shù)頻率為晶振頻率的1/24。35定時/計數(shù)器控制存放器TCONTF1位:T1計數(shù)溢出標(biāo)志位。當(dāng)T1計數(shù)溢出時,由硬件置1,申請中斷。進(jìn)入中斷效勞程序后被硬件自動清0。TR1位:T1計數(shù)運行控制位。由軟件置1或清0。當(dāng)GATE位TMOD.70時,假設(shè)TR1=1,允許T1計數(shù);TR1=0
13、時,禁止T1計數(shù)。當(dāng)GATE位=1時,TR11且INT1=1時,允許T1計數(shù)。TF0位:T0計數(shù)溢出標(biāo)志位,功能同TF1。TR0位:T0計數(shù)運行控制位,由軟件置1或清0。當(dāng)GATE位TMOD.30時,假設(shè)TR0=1,允許T0計數(shù);TR0=0時,禁止T0計數(shù)。當(dāng)GATE位=1時,TR01且INT0=1時,允許T0計數(shù)。36定時/計數(shù)器的4種工作方式方式0、方式113位、16位定時計數(shù)方式 T1工作于方式0的等效框圖M1M0=00、01GATE=0、A=1、TR1=1GATE=1、INT1=1、TR1=1。注意定時器初值與定時時間的不同37方式0、方式1的說明定時/計數(shù)器T1工作在方式0時,為13
14、位的計數(shù)器,由TL1的低5位和TH1的8位所構(gòu)成。TL1低5位溢出向TH1進(jìn)位,TH1計數(shù)溢出置位TCON中的溢出標(biāo)志位TF1。 GATE位的狀態(tài)決定定時/計數(shù)器運行控制取決于TR1一個條件還是TR1和INT1引腳這兩個條件。 當(dāng)GATE=0時,A點電位恒為1,那么只要TR1被置為1,B點電位即為1,定時/計數(shù)器被控制為允許計數(shù)(定時/計數(shù)器的計數(shù)控制僅由TR1的狀態(tài)確定,TR1=1計數(shù),TR1=0停止計數(shù))。 當(dāng)GATE=1時,B點電位由INT1輸入的電平和TR1的狀態(tài)確定,當(dāng)TR1=1,且INT1=1時,B點電平才為1,才允許定時器/計數(shù)器計數(shù)(計數(shù)控制由TR1和INT1二個條件控制)。
15、方式1時,TL1的8位都參與計數(shù),因而屬于16位定時/計數(shù)器。其控制方式,等效電路與方式0完全相同。38方式2(自動恢復(fù)初值)T1工作于方式2的等效圖39方式2的說明TL1作為計數(shù)器,當(dāng)TL1計數(shù)溢出時,在置1溢出標(biāo)志TF1的同時,還自動的將TH1中的常數(shù)送至TL1,使TL1從初值開始重新計數(shù)。 這種工作方式可以省去用戶軟件中重裝常數(shù)的程序,簡化定時常數(shù)的計算方法確定計數(shù)初值,可以相當(dāng)精確確實定定時時間。40定時器的工作方式總結(jié)方式0:13位定時計數(shù)器注意:TLx的低5位和THx共同組成方式1: 16位定時計數(shù)器方式2: 自動重裝入的8位定時計數(shù)器溢出后TFx=1,同時由THxTLx方式3:T
16、0成為兩個獨立的8位計數(shù)器TL0作為定時計數(shù)器;TH0僅作定時器用TL0的控制用原T0的,TH0占用原T1的控制位TR1和TF1,同時占用定時器T1的中斷源此時,T1可工作于方式02,溢出時送串行口,經(jīng)常作為串行口波特率發(fā)生器41定時/計數(shù)器的輸入信號 工作于定時器方式:對內(nèi)部時鐘信號計數(shù),內(nèi)部時鐘信號的頻率為時鐘振蕩頻率的1/12,即每個機(jī)器周期計數(shù)值加1。 例:采用12MHz頻率的晶體時,每1微秒計數(shù)值將加1。 由于定時的精度決定于輸入脈沖的周期,因此當(dāng)需要高分辨率的定時時,應(yīng)盡量選用頻率較高的晶體MCS51最高為12MHz。42定時/計數(shù)器的輸入信號工作于計數(shù)器方式:當(dāng)定時/計數(shù)器用作計
17、數(shù)器時,計數(shù)脈沖來自外部輸入引腳T0或T1。當(dāng)輸入信號產(chǎn)生由1至0的跳變即下跳變時,計數(shù)器的值增1。需要注意:每個機(jī)器周期的S5P2期間,對外部輸入進(jìn)行采樣。如在第一個周期中采得的值為1,而在下一個周期中采得的值為0,那么計數(shù)器加1。由于確認(rèn)一次下跳變至少要用兩個機(jī)器周期,即24個振蕩周期,因此外部輸入的計數(shù)脈沖的最高頻率為振蕩器頻率的1/24,同時輸入信號的高、低電平保持一個機(jī)器周期以上。例如:選用6MHz頻率的晶體,允許輸入的脈沖頻率為250kHz;如果選用12MHz頻率的晶體,那么可輸入500kHz的外部脈沖。43定時/計數(shù)器的輸入信號理想的計數(shù)器輸入信號:脈沖信號的高、低電平至少要各保
18、持一個機(jī)器周期以上,確保電平在變化之前能被采樣一次。44定時器/計數(shù)器的編程初始化1 根據(jù)要求給方式存放器TMOD送一個方式控制字,以設(shè)定定時器的工作方式;2 根據(jù)需要給TH和TL選送初值,以確定需要的定時時間或計數(shù)的初值;3 根據(jù)需要給中斷允許存放器IE送中斷控制字,以開放相應(yīng)的中斷和設(shè)定中斷優(yōu)先級; 也可用查詢方式來響應(yīng)定時器。4 給TCON送命令字以啟動或禁止定時/計數(shù)器的運行。45定時器/計數(shù)器的編程初值的計算計數(shù)器初值: 設(shè)計數(shù)模值為M,所需的計數(shù)值為C,計數(shù)初值設(shè)定為TC,那么:TC = M -C M=213,216,28定時器初值: 定時器的模值為M,需要的定時時間為T, 定時器
19、的初值TC為: TC=M-T/t機(jī)器周期 46編程方式采用查詢方式:程序一直檢測TF0TF1),假設(shè)TF01(TF1=1),說明定時時間到或計滿數(shù),需要軟件去除溢出標(biāo)志位TFx。采用中斷方式:程序初始化時,設(shè)置定時器溢出中斷允許后,內(nèi)部硬件自動檢測到TF01(TF1=1)時,自動響應(yīng)中斷,進(jìn)入中斷效勞程序。由硬件自動去除TFx。47例1:T0計數(shù)、T1定時工作于方式2從P3.4 T0輸入低頻脈沖,要求該脈沖每發(fā)生一次跳變時由P1.0輸出一個500us的負(fù)脈沖,與此同時由P1.1輸出一個寬為1ms的正脈沖6MHz晶振。 先設(shè)T0為計數(shù)方式,工作于方式2,初值設(shè)為FFH,即加1即刻產(chǎn)生溢出。當(dāng)外部
20、輸入一個負(fù)跳變脈沖時,計數(shù)加1,并產(chǎn)生溢出,TF0=1;引起CPU的T0中斷。中斷效勞程序內(nèi),對定時器T1設(shè)定初值,T1也工作于方式2。48含中斷的定時/計數(shù)器響應(yīng)程序ORG 0HSJMP BEGIN ORG 000BHAJMP TT1ORG 0030HBEGIN:MOV TMOD,#26HMOV TH0,#0FFHMOV TL0,#0FFHCLR P1.1Setb ET0 ;允許T0中斷Setb EA ;CPU開中斷 SETB P1.0SETB TR0SJMP $工作于方式2的定時/計數(shù)器49中斷效勞程序 ORG 300HTT1: MOV TH1,#06H MOV TL1,#06H SETB
21、 P1.1 CLR P1.0 SETB TR1DEL2:JBC TF1,RP1 SJMP DEL2RP1: SETB P1.0DEL3: JBC TF1, RP2 SJMP DEL3RP2: CLR P1.1 CLR TR1 RETI502.4 串行通訊全雙工串行通訊口有關(guān)的SFR SBUF、SCON、PCON幾種工作方式的區(qū)別串行通訊波特率的設(shè)定雙機(jī)通訊的實現(xiàn)51串行口的SFR串行數(shù)據(jù)緩沖器SBUF(99H) 串行口有兩個8位數(shù)據(jù)緩沖器,一個是發(fā)送數(shù)據(jù)緩沖器SBUF,一個是接收數(shù)據(jù)緩沖器SBUF。它們共用一個地址99H,發(fā)送SBUF只能寫入,而接收SBUF只能讀出。 通過指令區(qū)分:MOV S
22、BUF,A MOV A,SBUF控制存放器SCON (98H)SM0 SM1 SM2 REN TB8 RB8 TI RI節(jié)電控制存放器PCON(87H) SMOD (D7)復(fù)位后狀態(tài)均為00H 52串行口控制存放器SCON SM0、SM1:串行口4種工作方式選擇位 SM2:方式2和方式3中的多機(jī)通信控制位。在方式2和方式3中,如SM2=1,那么當(dāng)接收到的第9位數(shù)據(jù)(RB8)為0時,不激活接收中斷標(biāo)志RI(RI=1)。在方式1中,如SM2=1,那么只有當(dāng)接收到有效停止位時才激活RI,假設(shè)沒有接收到有效停止位,那么RI清0。在方式0中,SM2必須為0。 REN:允許串行接收位。REN=1允許接收;
23、 REN=0禁止接收,由軟件置位或清零。 TB8:是工作在方式2和3時,要發(fā)送的第9位數(shù)據(jù)。可由軟件置1或清0。在許多的通訊協(xié)議中該位是奇偶校驗位。在多機(jī)通訊中用來表示是地址幀還是數(shù)據(jù)幀,TB8=1為地址幀,TB80為數(shù)據(jù)幀。53串行口控制存放器SCONRB8:當(dāng)工作在方式2和3時,為接收到的第9位數(shù)據(jù)。TI:發(fā)送中斷標(biāo)志位,在方式0串行發(fā)送第8位數(shù)據(jù)結(jié)束時由硬件置1,或在其它方式串行發(fā)送停止位后置1,并申請中斷。CPU響應(yīng)中斷后,可發(fā)送下一幀數(shù)據(jù),TI必須由軟件清0。RI:為接收結(jié)束中斷標(biāo)志。在方式0中,當(dāng)接收到一幀數(shù)據(jù)的第8位結(jié)束時,RI=1。在其他方式中,接收到停止位后,RI=1,表示可
24、讀取接收SBUF中的內(nèi)容。RI必須用軟件清0。 每次發(fā)送和接收前,要注意先將TI和RI標(biāo)志位清0 。 串行口作為一個中斷源,中斷入口地址只有一個(0023H),當(dāng)用中斷方式同時進(jìn)行發(fā)送和接收時,可通過查詢TI和RI狀態(tài),確定是發(fā)送還是接收結(jié)束引起的中斷。 54節(jié)電控制存放器PCON PCON主要用于節(jié)電運行方式控制, PCON.7用做串行口波特率加倍控制位。當(dāng)設(shè)定SMOD=1時,波特率加倍,當(dāng)SMOD=0時,波特率不加倍。 55串行口的工作方式SCON中:SM0、SM1工作方式選擇位56方式1、方式3 串行口方式3為9位數(shù)據(jù)全雙工異步通信方式,比串行口方式1增加了第9位數(shù)據(jù)位。TXD為發(fā)送數(shù)據(jù)
25、端,RXD為接收數(shù)據(jù)端。一幀信息有11位,包括9位數(shù)據(jù)位,1個起始位“0和1個停止位“1。發(fā)送數(shù)據(jù)的第9位在TB8中,接收數(shù)據(jù)的第9位存入RB8中。第9位數(shù)據(jù)位也稱為可編程位,常用做奇偶校檢位或多機(jī)通信中的地址/數(shù)據(jù)識別位。 方式3的波特率與方式1的相同,計算式為:(2SMOD/32)T1溢出率。 57方式3的時序58方式3的功能說明發(fā)送時,應(yīng)先將發(fā)送數(shù)據(jù)的第9位送入TB8,再寫入8位數(shù)據(jù)到發(fā)送SBUF,使發(fā)送器啟動一次發(fā)送,將一幀數(shù)據(jù)逐位送到TXD引腳:發(fā)送起始位“0之后,再發(fā)送SBUF中的8位數(shù)據(jù),接著發(fā)送TB8中的第9位,最后發(fā)送停止位“1。一幀發(fā)送結(jié)束,置位TI標(biāo)志,申請串行口中斷。方
26、式3的接收過程和方式1的接收過程根本相同,但RB8中裝入的是接收數(shù)據(jù)的第9位,而不是停止位。接收有效必須同時滿足的兩個條件改為:RI=0,且接收的第9位數(shù)據(jù)位為1(或SM2=0)。當(dāng)正確接收到一幀數(shù)據(jù)后,前面8位數(shù)據(jù)進(jìn)入接收SBUF,第9位數(shù)據(jù)進(jìn)入RB8。 59波特率波特率的定義:串行口每秒鐘發(fā)送或者接收數(shù)據(jù)的位數(shù)。串行口方式0的波特率是固定的,為系統(tǒng)時鐘的12分頻(fosc/12),即每個機(jī)器周期傳送一位數(shù)據(jù)位。串行口方式2工作時,波特率為(2SMOD/64)fosc 。SMOD為PCON中的D7位,即波特率加倍選擇位。方式2可有兩種波特率供選擇,當(dāng)SMOD=0時,波特率為fosc/64;當(dāng)
27、SMOD=1時,波特率那么為fosc/32 。串行口方式1和方式3用定時器T1作為波特率發(fā)生器,其波特率有多種選擇,與T1的溢出率有關(guān)。 波特率= (2SMOD32)T1溢出率 60定時器T1產(chǎn)生波特率的計算T1溢出率:T1溢出時間的倒數(shù)。T1用于波特率發(fā)生器時一般工作于方式2,即常數(shù)自動重裝入方式。 TH1 = TL1為T1的時間常數(shù) 61波特率計算的幾點本卷須知:1波特率的相對誤差不大于2.5%2注意SMOD位對波特率的影響例如:通訊波特率設(shè)為2400,晶振頻率為6MHz,計算T1的計時常數(shù)。當(dāng)SMOD=0時,計時常數(shù)約為249,相對誤差7%。當(dāng)SMOD=1時,計時常數(shù)約為243,相對誤差
28、0.16%。62T1產(chǎn)生的常用波特率通訊時,盡量選用11.0592M的晶振63串行口的編程舉例設(shè)定波特率設(shè)定串行口的工作方式設(shè)計中斷效勞程序或查詢程序 注意對TI、RI的處理硬件置位、軟件清零64MCS-51雙機(jī)串行通訊的實現(xiàn)如何進(jìn)行物理連線?波特率的選擇?工作方式的選擇?如何編程實現(xiàn)?65雙機(jī)串行通訊的實現(xiàn)-1正確進(jìn)行物理接線66雙機(jī)串行通訊的實現(xiàn)-2設(shè)定一致的波特率設(shè)定一致的串行口工作方式分別設(shè)計中斷效勞程序或查詢程序 注意對TI、RI的處理 硬件置位、軟件清零67方式3發(fā)送50H5FH的內(nèi)容待發(fā)送的16個字節(jié)存放在片內(nèi)RAM中 地址為50H5FH串行口波特率為2400波特率發(fā)生器T1工作
29、于方式2, 且SMOD=0晶振為11.0592MHz計算得到TL1的初值為F4H。串行口工作于方式3第9位發(fā)送奇偶校驗位68程序狀態(tài)存放器:PSWPSW.1是保存位,未用。CyPSW.7進(jìn)位標(biāo)志位,在執(zhí)行算術(shù)和邏輯指令時,可以被硬件或軟件置位或去除,在位處理器中,它是位累加器。AcPSW.6輔助進(jìn)位標(biāo)志位。F0PSW.5標(biāo)志位,它是由用戶使用的一個狀態(tài)標(biāo)志位。RS1、RS0PSW.4、PSW.3:存放器區(qū)選擇控制位OVPSW.2:溢出標(biāo)志位。PPSW.0奇偶標(biāo)志位。每個指令周期都由硬件來置位或去除,以表示累加器A中值為1的位數(shù)的奇偶數(shù)。69例2:方式3發(fā)送50H5FH中內(nèi)容-1 ORG0000
30、H;復(fù)位入口AJMPMAINORG0023H;串行口中斷入口AJMPL1ORG0100H;主程序入口MAIN: MOVSCON,#0C0H;串行口初始化,用方式3發(fā)送,TI=0 MOV PCON,#00H;SMOD=0 MOV TMOD,#20H ;T1方式2定時MOV TL1,#0F4H ;寫入T1時間常數(shù) MOVTH1,#0F4H SETBTR1;啟動T1SETBEASETBES;允許串行口中斷MOVR0,#50H;設(shè)數(shù)據(jù)指針 MOV R7,#10H;數(shù)據(jù)長度LOOP: MOV A,R0;取一個字符 MOV C,P;加奇偶校驗 MOV TB8,C MOV SBUF,A;發(fā)送一個字符HERE
31、: SJMPHERE;CPU原地循環(huán),等待發(fā)送結(jié)束70例2:方式3發(fā)送50H5FH中內(nèi)容-2L1: CLRTI ;中斷效勞程序, 發(fā)送結(jié)束標(biāo)志位清0 DJNZR7,NEXT;發(fā)送完全部字符? CLRES ;已發(fā)送完,關(guān)閉串行口中斷 SJMPTENDNEXT: INC R0 ;未發(fā)送完,修改指針MOV A,R0 ;取下一個字符MOV C,P ;加奇偶校驗MOV TB8,C MOV SBUF,A;再次發(fā)送一個字符TEND: RETI ;中斷返回主程序712.5 中斷系統(tǒng)有關(guān)的SFR IE、IP、TCON中斷源、中斷允許控制、中斷優(yōu)先級外中斷觸發(fā)方式的設(shè)定電平觸發(fā)、邊沿觸發(fā)中斷的響應(yīng)及返回典型應(yīng)用7
32、2中斷系統(tǒng)中斷的概念 在執(zhí)行程序的過程中,由于某種外界的原因,必須盡快終止當(dāng)前的程序執(zhí)行,而去執(zhí)行相應(yīng)的處理程序,待處理結(jié)束后,再回來繼續(xù)執(zhí)行被終止的程序。這個過程叫中斷。 7374中斷優(yōu)先級如同時發(fā)生多件事件,按照需響應(yīng)事件的重要性選擇事件處理,稱之為中斷優(yōu)先級。中斷系統(tǒng)的功能: 中斷優(yōu)先權(quán)排隊 實現(xiàn)中斷嵌套 自動響應(yīng)中斷 實現(xiàn)中斷返回75 8051 的中斷系統(tǒng) 5個中斷源,具有二個中斷優(yōu)先級,可實現(xiàn)二級中斷效勞程序的嵌套。 每個中斷源均可軟件編程為允許或禁止向CPU請求中斷、高優(yōu)先級或低優(yōu)先級中斷。 中斷源為:INT0、C/T0、INT1、C/T1、串行口76中斷系統(tǒng)結(jié)構(gòu)圖77 中斷源外部
33、中斷源 INT0、INT1:中斷標(biāo)志和觸發(fā)方式控制位在TCON的低四位。IE0IE1=1表示正在向CPU申請中斷。響應(yīng)后由硬件自動清零。 IT0IT1=0:電平低電平觸發(fā); IT0IT1=1:邊沿下跳沿觸發(fā)。78中斷源內(nèi)部中斷源T0:TF0 定時器T0的溢出中斷請求T1:TF1 定時器T1的溢出中斷請求串行口中斷:發(fā)送中斷TI和接收中斷RI邏輯“或后,做為內(nèi)部的一個中斷源。注意:響應(yīng)串行口中斷后,CPU并不清零中斷標(biāo)志位SCON的低兩位 ,必須軟件清0。響應(yīng)定時計數(shù)器中斷后,TF0、TF1由硬件清0。79中斷控制中斷使能控制IEA8H)EA ES ET1 EX1 ET0 EX0實現(xiàn)兩級管理注意
34、:復(fù)位時,各位均為0,禁止所有中斷。 EA:中斷開放標(biāo)志,“1表示開放中斷。 ES:串行口中斷允許位,“1有效。 ET1、ET0:定時器中斷允許位,“1有效。 EX1、EX0:外部中斷允許位,“1有效。80中斷優(yōu)先級控制 IP(B8H) PS PT1 PX1 PT0 PX0每一中斷源可編程為高優(yōu)先級或低優(yōu)先級中斷,以實現(xiàn)二級嵌套。是5個中斷源的優(yōu)先級控制位,“1為高優(yōu)先級 PS:串行通訊中斷優(yōu)先級控制位;PT1:計數(shù)/定時器T1中斷優(yōu)先級控制位;PX1:外部中斷1INT1優(yōu)先級控制位;PT0:計數(shù)/定時器T0中斷優(yōu)先級控制位;PX0:外部中斷0INT0優(yōu)先級控制位;默認(rèn)的優(yōu)先次序為:INT0、
35、C/T0、INT1、C/T1、串行口中斷依次從高到低81中斷的響應(yīng)過程 每個機(jī)器周期都順序檢查每一個中斷源,當(dāng)查詢到某個中斷標(biāo)志位為1時,如果不被下述條件所阻止,那么將在下一個機(jī)器周期的S1期間,響應(yīng)優(yōu)先級最高的中斷請求。 阻止條件: 1CPU正在處理相同或更高級的中斷請求; 2現(xiàn)在的機(jī)器周期不是執(zhí)行指令的最后一個機(jī)器周期如:雙機(jī)器周期指令MOV R1,20H 3正在執(zhí)行的指令是RETI或?qū)E、IP的寫操作指令。執(zhí)行這些指令后,至少再執(zhí)行一條指令后才會響應(yīng)中斷82CPU響應(yīng)中斷時完成工作 置位相應(yīng)的優(yōu)先級狀態(tài)觸發(fā)器該觸發(fā)器指出CPU處理的中斷優(yōu)先級別 執(zhí)行一條硬件子程序調(diào)用內(nèi)部,使控制轉(zhuǎn)移到
36、相應(yīng)的中斷入口地址; 硬件子程序調(diào)用是指: PC的內(nèi)容進(jìn)棧;斷點地址 被響應(yīng)的中斷效勞程序的入口地址送PC83注意:不同中斷源中斷入口地址不同 中斷源入口地址外部中斷0定時器/計數(shù)器T0外部中斷1定時器/計數(shù)器T1串行口中斷 0003H 000BH 0013H 001BH 0023H0000H0003H RETI外部中斷0響應(yīng)過程84中斷程序的返回RETI 該指令為中斷程序的最后一條指令,CPU執(zhí)行這一條指令時,將響應(yīng)中斷時的優(yōu)先級狀態(tài)觸發(fā)器清零,然后從堆棧中彈出兩個字節(jié)送入程序計數(shù)器PC。 CPU執(zhí)行完該指令后,將從原先的斷點處繼續(xù)執(zhí)行被中斷的程序。85 中斷系統(tǒng)的編程開放相應(yīng)的中斷源;IE
37、)設(shè)定中斷優(yōu)先級;(IP)假設(shè)為外部中斷,設(shè)定外部中斷的觸發(fā)方式TCON 在相應(yīng)的中斷入口處寫入中斷程序中斷子程序的最后一條指令為RETI86例3: 中斷初始化 CLR IT1 SETB PX1 SETB EX1 SETB EAORL IP,#04HANL TCON ,#0FBHMOV IE,#84H 中斷使能控制IEA8H)EA ES ET1 EX1 ET0 EX0TCONTF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 中斷優(yōu)先級控制 IP(B8H) PS PT1 PX1 PT0 PX0878051單片機(jī)的P1口控制8個LED燈,要求8個燈加1移位點亮,當(dāng)INT0引腳有下跳沿
38、時,燈全滅后全亮,然后燈繼續(xù)加1移位點亮。例 4:外部中斷0的應(yīng)用88 ORG 0000H AJMP ST ORG 0003H AJMP EXT0 ORG 0030HST:MOV SP,#70H MOV TCON,#01H MOV IP,#01H MOV IE,#81HRES: MOV A,#0FFHLoop:MOV P1,A DEC A LCALL Delay LCALL Delay JNZ Loop SJMP RES Delay: mov r6,#0ffh mov r7,#0ffhDelay1:Djnz r6,Delay1 Djnz r7,Delay1 RET主程序89中斷效勞程序EXT0
39、: PUSH A PUSH PSW setb rs1 ;使用第2組工作存放器 MOV A,#00 MOV P1,A LCALL Delay LCALL Delay CPL A MOV P1,A LCALL Delay LCALL Delay POP PSW POP A RETI902.6 MCS-51存儲器擴(kuò)展分配地址的方法:線選法、譯碼法外擴(kuò)程序存儲器、數(shù)據(jù)存儲器的實現(xiàn)熟悉2764、6264、74LS373/573、74LS138/139等芯片的功能91MCS-51單片機(jī)外部存儲器結(jié)構(gòu):哈佛結(jié)構(gòu) 。MCS-51 RAM和ROM的最大擴(kuò)展空間各為64KB。系統(tǒng)擴(kuò)展首先要構(gòu)造系統(tǒng)總線。按功能把系
40、統(tǒng)總線分為三組: 1.地址總線Adress Bus,簡寫AB 2.數(shù)據(jù)總線 (Data Bus,簡寫DB) 3.控制總線Control Bus,簡寫CB 92構(gòu)造系統(tǒng)總線93 1. 以P0口作為數(shù)據(jù)總線8位。 2. 以P0口經(jīng)8位鎖存器鎖存后的信號作為地址總線的低8位。 3以P2口作為地址總線高8位。 4.控制信號線。*ALE 低8位地址鎖存信號。*PSEN* 擴(kuò)展程序存儲器讀選通信號。*EA* 內(nèi)外程序存儲器選擇信號。*RD*和WR* 擴(kuò)展RAM和I/O口的讀選通、 寫選通信號。 94存儲器擴(kuò)展方法擴(kuò)展存儲器即分配地址空間給每個芯片,注意要防止地址和數(shù)據(jù)的沖突芯片的片選端口為防止數(shù)據(jù)的沖突提
41、供了方便,通過MCS51的地址線產(chǎn)生片選信號是防止地址沖突的有效途徑。片選控制線選法適用于系統(tǒng)芯片數(shù)目較少利用高端地址線未用到的地址線直接作為外擴(kuò)芯片的片選線,線路簡單地址空間有重疊,即同一存儲空間可能對應(yīng)多個地址譯碼選通法適用于多片存儲器擴(kuò)展高端地址線經(jīng)譯碼器譯碼后作為存儲器片選線,線路需增加譯碼器芯片地址空間連續(xù),存儲芯片空間對應(yīng)地址唯一95強(qiáng)調(diào):MCS51外擴(kuò)存儲器應(yīng)注意的問題程序存儲器與數(shù)據(jù)存儲器空間獨立,各擁有64k尋址空間數(shù)據(jù)存儲器擴(kuò)展與I/O口擴(kuò)展占用數(shù)據(jù)64k空間,統(tǒng)一編址數(shù)據(jù)總線與低8位地址總線復(fù)用,必須使用地址鎖存器實現(xiàn)低8位地址總線和數(shù)據(jù)總線的別離。96存儲器擴(kuò)展實例設(shè)計
42、包括程序存儲器和數(shù)據(jù)存儲器的51擴(kuò)展系統(tǒng),其中要求程序存儲器選用2片2764,數(shù)據(jù)存儲器選用2片6264。繪出設(shè)計原理圖,并指出各芯片所在地址。97硬件電路原理圖2764地址:IC10000h1fffh IC22000h3fffh6264地址:IC35000h5fffh IC46000h7fffh982.7 I/O口擴(kuò)展8255、8155的使用根本輸入輸出簡單I/O口擴(kuò)展: 通過74LS377擴(kuò)展輸出口、74LS244擴(kuò)展輸入口99 8255A 擴(kuò)展實例8255A與8031接口電路1008255A的接口應(yīng)用舉例1.硬件接口電路 8031擴(kuò)展1片8255A的電路圖。74LS373是地址鎖存器,P
43、0.1、P0.0經(jīng)74LS373與8255A的地址線A1、A0連接; P0.7經(jīng)74LS373與片選端相連,其他地址線懸空。2.端口地址確定8255A各端口存放器的地址為:A口: FF7CHB口: FF7DHC口: FF7EH控制存放器: FF7FH101 3.軟件編程要求8255A工作在方式0,且A口作為輸入,B口、 C口作為輸出,程序如下:MOV A,#90H ;A口方式0輸入,B口、 ;C口輸出的控制字送AMOVDPTR,#0FF7FH ;控制存放器地址DPTRMOVX DPTR,A ;方式控制字控制存放器MOVDPTR,#0FF7CH ;A口地址DPTRMOVX A,DPTR ;從A口
44、讀數(shù)據(jù)MOV DPTR,#0FF7DH ;B口地址DPTRMOV A,#55H ;要輸出的數(shù)據(jù)55HAMOVX DPTR,A ;將55H送B口輸出MOV DPTR,#0FF7EH ;C口地址DPTRMOV A,#60H ;60HAMOVX DPTR,A ;將60H送C口輸出10274LS377作為輸出口功能說明: 74LS377是8D鎖存器, 8個輸入D0D7、 8個輸出Q0Q7、 1個片選E、1個鎖存端CLK上升沿有效, 還有電源、地。10374LS377擴(kuò)展為輸出口 74LS377作為輸出口,試確定其地址,E接P2.7;CLK接WR,377的輸入端接8031的數(shù)據(jù)口,輸出端接8個發(fā)光二極管
45、。 地址:7FFFHMov dptr,#7fffhMov a,#00hMovx dptr,a104 LED顯示器原理及顯示碼LED顯示器數(shù)碼管分類常用的數(shù)碼管可分為7段和“米字段兩種從電氣特性上可分為“共陰極和“共陽極兩種LED結(jié)構(gòu)及外形圖abcdefg LED顯示電路設(shè)計105 為使LED顯示不同的符號或數(shù)字,要為LED提供段碼或稱字型碼。 提供給LED顯示器的段碼字型碼正好是一個字節(jié)8段。各段與字節(jié)中各位對應(yīng)關(guān)系如下:按上述格式,8段LED的段碼如下表所示。106顯示字符共陰極段碼共陽極段碼顯示字符共陰極段碼共陽極段碼03FHC0Hc39HC6H106HF9Hd5EHA1H25BHA4HE
46、79H86H34FHB0HF71H8EH466H99HP73H8CH56DH92HU3EHC1H67DH82HT31HCEH707HF8Hy6EH91H87FH80HH76H89H96FH90HL38HC7HA77FH88H“滅”00HFFHb7CH83HLED段碼表8段107那么 “0的段碼為7EH共陰。字型及段碼由設(shè)計者自行設(shè)定,習(xí)慣上還是以“a段對應(yīng)段碼的最低位。注意:段碼是相對的,它由各字段在字節(jié)中所處的位決定。例如前面表中8段LED段碼是按格式:而形成的, “0的段碼為3FH共陰。反之,如將格式改為以下格式:108 LED的靜態(tài)顯示根本原理多個數(shù)碼管顯示時,同時點亮顯示,每一位數(shù)碼管
47、恒定的顯示,不閃爍。顯示程序簡單,但是要求較多的I/O口線驅(qū)動電流較小109 鍵盤接口的設(shè)計鍵盤的分類 編 碼 式:由專門的硬件8279等識別按下的鍵碼。 非編碼式:依靠軟件實現(xiàn)鍵碼的識別。非編碼鍵盤的結(jié)構(gòu)獨立式鍵盤矩陣式鍵盤軟件實現(xiàn)按鍵識別的方法掃描法鍵盤使用中的本卷須知鍵盤的抖動要點:110 鍵盤接口的工作原理獨立式鍵盤接口和矩陣式鍵盤接口。 1.獨立式鍵盤接口 各鍵相互獨立,每個按鍵各接一根輸入線,通過檢測輸入線的電平狀態(tài)可很容易判斷那個鍵被按下。 此種接口適于鍵數(shù)較少或操作速度較高的場合。 111獨立式鍵盤的檢測方式112鍵盤的抖動問題鍵盤的抖動抖動時間一般為510ms。為了保證CPU
48、對鍵的閉合作一次,而且是僅作一次處理,必須消除抖動可采用軟、硬件方法消除抖動。*軟件消抖原理1判斷是否有鍵按下;2假設(shè)有鍵按下,調(diào)用延時程序延時時間大于10ms;3再次判斷是否有鍵按下,并讀入相應(yīng)的鍵值.鍵盤工作時輸出的電壓波形113 獨立式鍵盤編程1每個按鍵占用一根口線2電路配置靈活,軟件結(jié)構(gòu)簡單。3適用于按鍵較少的場合。 特點:可直接判斷哪個鍵按下;-;獨立式鍵盤的處理程序?qū)嶋H應(yīng)用時要加延時消除抖動;-LOOP:MOVA,P1;讀P1口電平狀態(tài)ANLA,#0FH;取P1口低4位CJNEA,#0FH,KEY;判斷是否有鍵按下SJMPLOOP;如沒有鍵按下,重新掃描KEY:CJNEA,#0EH
49、,NEXT1;判斷是否為一號鍵按下ACALLKEY1;調(diào)用一號鍵處理子程序SJMPLOOPNEXT1:CJNEA,#0DH,NEXT2 ;判斷是否為2號鍵按下ACALLKEY21148255A擴(kuò)展I/O口的獨立式按鍵接口電路PA0PA1PA2PA3PA4PA5PA6PA7*8255A工作于根本輸入輸出方式*PA口地址7FFCH115 矩陣式 (行列式鍵盤接口 用于按鍵數(shù)目較多的場合,由行線和列線組成,按鍵位于行、列的交叉點上,如以下圖。*在需要按鍵數(shù)目較多的場合,矩陣式鍵盤與獨立式鍵盤相比,要節(jié)省較多的I/O口線。116矩陣式鍵盤的工作過程鍵沒有按下時行線和列線是分開的,鍵按下將相應(yīng)的行線列線
50、短接。連接行線的管腳作為輸入口,沒有鍵按下時,被外電路拉高為“1連接列線的管腳作為輸出口,需要掃描鍵盤時,逐次輸出低電平,假設(shè)此時有鍵按下,那么與其交叉的行線回讀值為“0,否那么為“1。根據(jù)當(dāng)前的掃描列線和回讀電平為“0的行線可確定按下的鍵值。117矩陣式鍵盤鍵碼的判別對于一個規(guī)那么編碼的矩陣式鍵盤,可以通過對鍵盤的列線依次進(jìn)行掃描輸出低電平,然后回讀行線,如果哪一行的電平為低,說明該行、該列的鍵被按下。該鍵的鍵碼為: 鍵碼=該行首鍵碼+該列號0行1行2行3行 0列 1列 2列 3列118矩陣式按鍵的識別方法(掃描法)掃描法依次置低鍵盤的列掃描線回讀鍵盤的行線根據(jù)鍵盤的行、列線狀態(tài)來計算按下鍵
51、的鍵號矩陣式鍵盤示意圖119鍵盤的掃描方式程序控制掃描方式當(dāng)單片機(jī)空閑時,才調(diào)用鍵盤掃描程序定時掃描方式每隔一定時間對鍵盤掃描一次,通常采用單片機(jī)內(nèi)定時器確定鍵盤掃描時間間隔中斷掃描方式利用按鍵操作產(chǎn)生的中斷來掃描鍵盤,優(yōu)點是及時響應(yīng)鍵盤操作,節(jié)省CPU時間120矩陣式按鍵的識別方法(掃描法)121鍵盤程序設(shè)計設(shè)計要求判別鍵盤上有無鍵閉合去除鍵盤的機(jī)械抖動判別閉合鍵的鍵號使處理器對鍵的一次閉合僅作一次處理程序流程鍵盤處理子程序流程1221231241252.8 A/D、D/A轉(zhuǎn)換MCS-51外擴(kuò)ADC0809MCS-51外擴(kuò)DAC0832126ADC0809編程要點選通模擬量輸入通道發(fā)出啟動信
52、號用延時、查詢或中斷方法等待轉(zhuǎn)換結(jié)束初學(xué)階段建議采用延時的方法讀取轉(zhuǎn)換結(jié)果127ADC0809與8031接口電路設(shè)計*啟動AD接口設(shè)計*轉(zhuǎn)換時鐘的提供,51單片機(jī)晶振6M*轉(zhuǎn)換完成判斷*模擬通道的選擇128ADC0809接口電路編程要求:設(shè)計程序?qū)崿F(xiàn)對8路模擬信號的采樣,并把數(shù)據(jù)存儲在RAM區(qū)30H37H中。 ;-;ADC0809的07模擬通道對應(yīng)地址7FF8H7FFFH;-ORG0000HMAIN:MOVR1,#30H;置數(shù)據(jù)存儲區(qū)首地址MOVDPTR,#7FF8H;指向ADC0809的0通道MOVR7,#08H;置通道數(shù)LOOP:MOVXDPTR,A;啟動轉(zhuǎn)換ACALLDELAY_130u
53、s;等待130usMOVXA,DPTR;讀取轉(zhuǎn)換結(jié)果MOVR1,A;保存轉(zhuǎn)換結(jié)果INCDPTR;指向下一個轉(zhuǎn)換通道INCR1;指向下一個存儲空間DJNZR7,LOOP;判斷8個通道采樣是否完成?129DAC0832與8031單緩沖接口硬件設(shè)計0832地址8000HDAC0832單緩沖方式應(yīng)用原理圖130 鋸齒波的產(chǎn)生 ORG 2000H START:MOV DPTR,#8000H;DAC地址8000H R0 MOV A,#00H;數(shù)字量A LOOP: MOVX DPTR,A ;數(shù)字量D/A轉(zhuǎn)換器 INC A ;數(shù)字量逐次加1 SJMP LOOP累加器A的值從0開始輸出模擬量為0V,逐次加1,到
54、FFH時模擬量為5V,再加1那么A又變?yōu)?模擬量又為0V,程序循環(huán)后得到鋸齒波。131三、MCS-51 單片機(jī)應(yīng)用系統(tǒng)的設(shè)計設(shè)計一個單片機(jī)測控系統(tǒng),一般可分為四個步驟:1需求分析,方案論證和總體設(shè)計階段需求分析:被測控參數(shù)的形式電量、非電量、模擬量、數(shù)字量等、被測控參數(shù)的范圍、性能指標(biāo)、系統(tǒng)功能、工作環(huán)境、顯示、報警、打印要求等。方案論證:根據(jù)要求,設(shè)計出符合現(xiàn)場條件的軟硬件方案,力求系統(tǒng)簡單、經(jīng)濟(jì)、可靠,這是進(jìn)行方案論證與總體設(shè)計一貫堅持的原那么。1322器件選擇,電路設(shè)計制作,數(shù)據(jù)處理,軟件的編制階段。3系統(tǒng)調(diào)試與性能測定。4文件編制133(1)單片機(jī)系統(tǒng)的擴(kuò)展局部設(shè)計包括存儲器擴(kuò)展和I/
55、O接口擴(kuò)展。存儲器的擴(kuò)展指EPROM、EEPROM和RAM的擴(kuò)展,I/O接口擴(kuò)展是指8255、8155以及其它I/O功能器件的擴(kuò)展。(2)各功能模塊的設(shè)計如信號測量功能模塊、控制功能模塊、人機(jī)對話功能模塊、通訊功能模塊等,根據(jù)系統(tǒng)功能要求配置相應(yīng)的A/D、D/A、鍵盤、顯示器、打印機(jī)等外圍設(shè)備。a盡可能采用功能強(qiáng)的芯片。b.單片機(jī)可優(yōu)先考慮選用片內(nèi)帶有閃爍存儲器的產(chǎn)品。例如ATMEL公司的89C51/89C52??墒箶U(kuò)展程序存儲器的工作省去,從而減少芯片的數(shù)目,縮小體積。c. EPROM空間和RAM空間。目前EPROM容量越來越大,一般盡量選用容量大的EPROM。 d. I/O端口,要留有余量
56、。e. A/D和D/A通道,要留有余量。(3)工藝設(shè)計 機(jī)箱、面板、配線等 3.1 應(yīng)用系統(tǒng)的硬件設(shè)計1343.2 應(yīng)用系統(tǒng)的軟件設(shè)計1根據(jù)軟件功能要求,將系統(tǒng)軟件分成假設(shè)干個相對獨立的局部。2各功能程序?qū)嵭心K化、子程序化。既便于調(diào)試、鏈接,又便于移植、修改、維護(hù)。3編應(yīng)用軟件前,應(yīng)繪制出程序流程圖。這不僅是程序設(shè)計的一個重要組成局部,而且是決定成敗的關(guān)鍵局部。4要合理分配系統(tǒng)資源,包括ROM、RAM、定時器/計數(shù)器、中斷源等。 *其中最關(guān)鍵的是片內(nèi)RAM分配,對8031來講,片內(nèi)RAM指00H7FH單元,這128個字節(jié)的功能不完全相同,分配時應(yīng)充分發(fā)揮其特長,做到物盡其用。135 3.3
57、MCS-51單片機(jī)系統(tǒng)舉例 介紹單片機(jī)應(yīng)用系統(tǒng),供設(shè)計時參考。 8031的最小系統(tǒng)8031無片內(nèi)程序存儲器,因此,其最小應(yīng)用系統(tǒng)必須在片外擴(kuò)展EPROM,必須有復(fù)位及時鐘電路。以下圖為89C51/2的最小應(yīng)用系統(tǒng)。該系統(tǒng)僅完成數(shù)字量的輸入和輸出控制。13689C51的最小系統(tǒng)1374.以單片機(jī)為核心的數(shù)據(jù)采集系統(tǒng)一數(shù)據(jù)采集系統(tǒng)的組成數(shù)據(jù)采集系統(tǒng)一般由信號調(diào)理電路、多路切換電路、采樣保持電路、A/D、CPU、RAM、EPROM組成。138數(shù)據(jù)采集系統(tǒng)各局部說明1 信號調(diào)理電路傳感器與A/D之間的橋梁,是測控系統(tǒng)中重要組成局部。主要功能:a目前標(biāo)準(zhǔn)化工業(yè)儀表通常采用010mA,420 mA信號,為了和A/D的輸入形式相適應(yīng),經(jīng)I/V轉(zhuǎn)換器變換成電壓信號。b某些測量信號可能是非電量,這些非
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二手辦公桌椅采購合同范本
- 2025年度貨物批量存放與倉儲管理合同范本
- 2025年制衣服裝等行業(yè)深度研究分析報告
- 2025年度醫(yī)療健康企業(yè)獨立董事任聘與醫(yī)療質(zhì)量管理協(xié)議
- 2025年度股權(quán)抵押擔(dān)保創(chuàng)業(yè)孵化合同
- 申請書的正文主要包括
- 2025年圓型鎳氫電池項目投資可行性研究分析報告
- 休學(xué)申請書范文
- 2025年圍欄物流臺車行業(yè)深度研究分析報告-20241226-194831
- 2025年度建筑勞務(wù)用工綠色施工合同范本
- 春季安全行車教育培訓(xùn)
- 2024年6月第3套英語六級真題
- 2024年江蘇省公務(wù)員錄用考試《行測》題(A類)
- 2024年10月時政100題(附答案)
- 江蘇省無錫市2024年中考數(shù)學(xué)試卷(含答案)
- 2024年保密知識測試試題及答案(奪冠)
- 北師大版八年級下冊因式分解(分組分解法)100題及答案
- 湖南2024年湖南省衛(wèi)生健康委直屬事業(yè)單位招聘276人筆試歷年典型考題及考點附答案解析
- SF-36生活質(zhì)量調(diào)查表(SF-36-含評分細(xì)則)
- 2023年陜西西安亮麗電力集團(tuán)有限責(zé)任公司招聘考試真題
- 不需公證的遺囑范文
評論
0/150
提交評論