




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、單片機(jī)應(yīng)用系統(tǒng)的接口設(shè)計(jì)gai(共190張PPT)單片機(jī)應(yīng)用系統(tǒng)的接口設(shè)計(jì)gai(共190張PPT)學(xué)習(xí)目標(biāo)掌握單片機(jī)最小系統(tǒng)設(shè)計(jì)掌握單片機(jī)外擴(kuò)存儲(chǔ)器方法掌握單片機(jī)接口技術(shù)掌握單片機(jī)中斷及定時(shí)器應(yīng)用了解模數(shù)、串口通信第2頁(yè),共190頁(yè)。學(xué)習(xí)目標(biāo)掌握單片機(jī)最小系統(tǒng)設(shè)計(jì)第2頁(yè),共190頁(yè)。3.1最小系統(tǒng)3.2總線及接口擴(kuò)展3.3內(nèi)存擴(kuò)展設(shè)計(jì)技術(shù)3.4 LED、數(shù)碼顯示設(shè)計(jì)3.5 鍵盤接口技術(shù)3.6 中斷、定時(shí)接口技術(shù)3.7數(shù)模(D/A)轉(zhuǎn)換接口設(shè)計(jì)3.8模數(shù)(A/D)轉(zhuǎn)換接口設(shè)計(jì)3.9串行通信接口設(shè)計(jì)3.10 常見問(wèn)題主要內(nèi)容第3頁(yè),共190頁(yè)。3.1最小系統(tǒng)主要內(nèi)容第3頁(yè),共190頁(yè)。3.1最小
2、系統(tǒng) 什么是單片機(jī)最小系統(tǒng)?最小系統(tǒng)是指單片機(jī)運(yùn)行的最基本的硬件,是單片機(jī)正常工作的基本保障。為什么要做最小系統(tǒng)?最小系統(tǒng)主要用來(lái)判斷系統(tǒng)是否可完成正常的啟動(dòng)與運(yùn)行。第4頁(yè),共190頁(yè)。3.1最小系統(tǒng) 什么是單片機(jī)最小系統(tǒng)?第4頁(yè),共190頁(yè)。MCS51單片機(jī)最小系統(tǒng)電路除電源外,主要由三大塊組成:復(fù)位電路、時(shí)鐘電路和單片機(jī),如圖3.1所示。 圖3.1 MCS-51最小系統(tǒng)第5頁(yè),共190頁(yè)。MCS51單片機(jī)最小系統(tǒng)電路除電源外,主要由三大塊組成:復(fù)位復(fù)位電路單片機(jī)系統(tǒng)是由硬件和軟件構(gòu)成的,軟件是由程序組成的。程序則由系列指令構(gòu)成,正常情況下,希望系統(tǒng)運(yùn)行時(shí)是從程序的固定位置(入口處)開始執(zhí)行
3、,復(fù)位的目的就是保證程序從入口處運(yùn)行,若不能保證復(fù)位要求,程序則很可能不從規(guī)定處執(zhí)行,會(huì)造成意想不到的問(wèn)題,如“死機(jī)”、“跑飛”。 系統(tǒng)為什么要用復(fù)位電路?第6頁(yè),共190頁(yè)。復(fù)位電路單片機(jī)系統(tǒng)是由硬件和軟件構(gòu)成的,軟件是由程序組成的。單片機(jī)在啟動(dòng)時(shí)都需要復(fù)位,以使CPU及系統(tǒng)各部件處于確定的初始狀態(tài),并從初態(tài)開始工作。當(dāng)系統(tǒng)處于正常工作狀態(tài)時(shí),且振蕩器穩(wěn)定后,從單片機(jī)的復(fù)位引腳RST輸入一個(gè)高電平并維持2個(gè)機(jī)器周期(24個(gè)振蕩周期)以上,則CPU就可以響應(yīng)并將系統(tǒng)復(fù)位。單片機(jī)系統(tǒng)基本的復(fù)位方式有:上電復(fù)位和手動(dòng)按鈕復(fù)位 第7頁(yè),共190頁(yè)。單片機(jī)在啟動(dòng)時(shí)都需要復(fù)位,以使CPU及系統(tǒng)各部件處于
4、確定的初(a)上電復(fù)位 (b)手動(dòng)按鈕復(fù)位 圖3.2 復(fù)位電路說(shuō)明:復(fù)位電路中的器件取值可以根據(jù)所使用的時(shí)鐘電路頻率,滿足高電平大于兩個(gè)機(jī)器周期(24個(gè)振蕩周期)。圖上給出的值是在6MHz晶振狀態(tài)下,單片機(jī)復(fù)位電路的典型值。第8頁(yè),共190頁(yè)。(a)上電復(fù)位 (b)手動(dòng)按鈕復(fù)時(shí)鐘、振蕩電路單片機(jī)時(shí)鐘電路是用來(lái)配合外部晶振產(chǎn)生單片機(jī)工作所需的時(shí)鐘信號(hào)。該電路為單片機(jī)提供運(yùn)行時(shí)鐘,是控制單片機(jī)運(yùn)行速度的節(jié)拍。如果運(yùn)行時(shí)鐘為0脈沖, 則單片機(jī)不工作;若超出單片機(jī)的正常工作頻率則會(huì)使單片機(jī)超負(fù)荷運(yùn)行,直至導(dǎo)致芯片發(fā)燙、燒毀。單片機(jī)時(shí)鐘電路有內(nèi)部時(shí)鐘和外部時(shí)鐘電路兩種 。單片機(jī)時(shí)鐘電路的作用是什么? 第
5、9頁(yè),共190頁(yè)。時(shí)鐘、振蕩電路單片機(jī)時(shí)鐘電路是用來(lái)配合外部晶振產(chǎn)生單片機(jī)工作3.2總線及接口擴(kuò)展 計(jì)算機(jī)總線是什么? 總線(Bus)是計(jì)算機(jī)各種功能部件之間傳送信息的公共通信干線,它是由導(dǎo)線組成的傳輸線束。計(jì)算機(jī)總線傳輸?shù)男盘?hào)是電壓還是電流信號(hào)?一般情況下傳輸?shù)男盘?hào)是以電壓形式出現(xiàn)的。第10頁(yè),共190頁(yè)。3.2總線及接口擴(kuò)展 計(jì)算機(jī)總線是什么? 第10頁(yè),共190三總線概念 按照計(jì)算機(jī)所傳輸?shù)男畔⒎N類,計(jì)算機(jī)的總線可以劃分為數(shù)據(jù)總線DB、地址總線AB和控制總線CB,分別用來(lái)傳輸數(shù)據(jù)、數(shù)據(jù)地址和控制信號(hào)。 第11頁(yè),共190頁(yè)。三總線概念 按照計(jì)算機(jī)所傳輸?shù)男畔⒎N類,計(jì)算機(jī)的總線可以劃分圖3
6、.3 MCS51單片機(jī)總線引腳結(jié)構(gòu)第12頁(yè),共190頁(yè)。圖3.3 MCS51單片機(jī)總線引腳結(jié)構(gòu)第12頁(yè),共190頁(yè)。總線接口常用芯片 74LS373鎖存器8D鎖存器8輸入:1D8D8輸出:1O8O輸入允許端:OE (1)輸出預(yù)選端:G (11)74LS373 電平觸發(fā),鎖存緩沖74LS374 上升沿觸發(fā)74LS273 無(wú)三態(tài)門,用于不需三態(tài)場(chǎng)合74LS138 3-8 譯碼器74LS244 8路單向數(shù)據(jù)緩沖器74LS245 8路雙向數(shù)據(jù)緩沖器緩沖器:無(wú)鎖存功能,在外設(shè)和CPU之間起緩沖 驅(qū)動(dòng)和隔離作用。總線緩沖器具有三態(tài)功能。鎖存器:除具有緩沖功能外還有數(shù)據(jù)鎖存記憶功能。 第13頁(yè),共190頁(yè)。
7、總線接口常用芯片 74LS373鎖存器74LS373 圖3.4 74LS138管腳圖第14頁(yè),共190頁(yè)。圖3.4 74LS138管腳圖第14頁(yè),共190頁(yè)。74LS138真值表LLLLLLLLCAB第15頁(yè),共190頁(yè)。74LS138真值表LLLLLLLLCAB第15頁(yè),共19074138 功能簡(jiǎn)表第16頁(yè),共190頁(yè)。74138 功能簡(jiǎn)表第16頁(yè),共190頁(yè)。 74LS373的真值表H為高電平,L為低電平,Q0為原狀態(tài),Z為高阻抗,為任意值。輸出允許有效低電平:LE為高時(shí)輸出隨輸入;LE為低時(shí),輸出不變;74LS373鎖存器主要用于鎖存信息。常用的鎖存器還有74LS374,573,574,
8、Intel 8282和8283等第17頁(yè),共190頁(yè)。 74LS373的真值表第17頁(yè),共190頁(yè)。圖3.5 74LS373D7D0為三態(tài)門輸入端;O7O0為三態(tài)門輸出端;GND為接地端;Vcc為電源端;OE 為三態(tài)門使能端,OE =0,三態(tài)門正常輸出,OE =1,三態(tài)門輸出高阻態(tài);LE為8位鎖存器的控制端,當(dāng)LE=1,則輸出跟隨輸入(即鎖存器透明),當(dāng)LE=0,則輸出保持不變,即將D7D0的狀態(tài)存入O7O0。 第18頁(yè),共190頁(yè)。圖3.5 74LS373D7D0為三態(tài)門輸入端;O7O0表3.2 74LS373的真值表表中:H為高電平,L為低電平,Q0為原狀態(tài),Z為高阻抗,為任意值。Dn為輸
9、入端; On為輸出端;LE為8位鎖存器的控制端,當(dāng)LE=1,則輸出跟隨輸入(即鎖存器透明);當(dāng)LE=0,則輸出保持不變74LS373是常用的地址鎖存器芯片,共有20個(gè)引腳。它實(shí)質(zhì)是一個(gè)是帶三態(tài)緩沖輸出的8D觸發(fā)器,在單片機(jī)系統(tǒng)中為了擴(kuò)展外部存儲(chǔ)器,通常需要一塊74ls373芯片。 第19頁(yè),共190頁(yè)。表3.2 74LS373的真值表表中:H為高電平,L為低電74LS245是常用雙向三態(tài)總線緩沖、驅(qū)動(dòng)器,可雙向傳輸數(shù)據(jù),共有20個(gè)引腳 。圖3.6表3.3 74LS245真值表允許端/OE與方向端DIR 共同控制8路A1A8和8路B1B8滿足表1.3 邏輯。 第20頁(yè),共190頁(yè)。74LS245
10、是常用雙向三態(tài)總線緩沖、驅(qū)動(dòng)器,可雙向傳輸數(shù)據(jù)發(fā)光二極管發(fā)光二極管:?jiǎn)蜗驅(qū)щ娦?,通過(guò)5mA左右電流即可發(fā)光,電流越大,亮度越強(qiáng),但若電流過(guò)大會(huì)燒毀二極管,一般控制在320mA。工作電壓:紅色發(fā)光二極管1.7-2.5V綠色發(fā)光二極管2.0-2.4V黃色發(fā)光二極管1.9-2.4V藍(lán)/白色發(fā)光二極管3.0-3.8V 限流電阻二極管串聯(lián)電阻的目的是為了防止發(fā)光二極管和P1.7引腳流過(guò)的電流過(guò)大,燒毀二極管或單片機(jī),所以該電阻也稱為“限流電阻”。限流電阻的選擇:假設(shè)電源電壓為VCC,發(fā)光二極管的導(dǎo)通壓降為VDD,導(dǎo)通時(shí)流過(guò)二極管的電流為I,則限流電阻R為:VCC-VDD=IR第21頁(yè),共190頁(yè)。發(fā)光二
11、極管發(fā)光二極管:?jiǎn)蜗驅(qū)щ娦裕ㄟ^(guò)5mA左右電流即可發(fā)光寫地址PO鎖存低地址的時(shí)序Dn為輸入端; On為輸出;LE為8位鎖存器的控制端,當(dāng)LE=1,則輸出跟隨輸入(即鎖存器透明);當(dāng)LE=0,則輸出保持不變ALE、WR由CPU自動(dòng)產(chǎn)生;可用wr接138經(jīng)過(guò)控制的le控制轉(zhuǎn)移數(shù)據(jù);第22頁(yè),共190頁(yè)。寫地址PO鎖存低地址的時(shí)序Dn為輸入端; On為輸出;ALE1、wr控制le的過(guò)程;2、ale控制le的過(guò)程;3、wr的動(dòng)態(tài)變化;在P0輸出數(shù)據(jù)之后有 跳變,有下降的過(guò)程;結(jié)合54頁(yè)的時(shí)序圖可以通過(guò)wr控制74138再控制7404輸出信號(hào)到74373最終控制數(shù)據(jù)的鎖存;4、p0口輸出低地址的過(guò)程沒(méi)有
12、被鎖存;第23頁(yè),共190頁(yè)。1、wr控制le的過(guò)程;第23頁(yè),共190頁(yè)。典型電路圖3.7通過(guò)74LS245擴(kuò)展單片機(jī)的P0口第24頁(yè),共190頁(yè)。典型電路圖3.7通過(guò)74LS245擴(kuò)展單片機(jī)的P0口第24頁(yè)典型電路2-D出來(lái)的LEDC000和ledc800分別控制1-B1,1-B2的LE端子1-A1-B11-B22-A2-B2-C2-D1-C11-C2地址為:OXC000地址為:OXC8001-B1,1-B2的LE口名稱改成LEDC000,和LEDC800;2-D作相應(yīng)改動(dòng)1為P0口出來(lái)的,2為p2口出來(lái)的 ;按照abcd的流向走此例中373鎖存的是數(shù)據(jù)第25頁(yè),共190頁(yè)。典型電路2-D
13、出來(lái)的LEDC000和ledc800分別控制12-D2-A至2-B 至2-C(需要輔助單片機(jī)的WR【低有效】信號(hào)控制138);至2-D輸出控制信號(hào);1-A,1-B1,1-C1在2-D的控制下1-B1的LE為高輸出信號(hào)再為低鎖存信號(hào); 1-A,1-B2,1-C2類似;地址為:OXC000地址為:OXC8001-B1,1-B2的LE口名稱改成LEDC000,和LEDC800;2-D作相應(yīng)改動(dòng)所謂外部地址指P2,P0口輸出相應(yīng)值之后,能影響某些器件使之工作在鎖存、譯碼、流向變、公共端電壓變化等時(shí)間上變化的狀態(tài);1-b1的le為高時(shí),wr為低1-b1上恰為數(shù)據(jù);第26頁(yè),共190頁(yè)。2-D2-A至2-
14、B 至2-C(需要輔地址為:OXC000地C語(yǔ)言程序清單:#include#include#define uchar unsigned char#define uint unsigned int void Delay(uint t)uint i=1141;for(;t0;t-)for(;i0;i-);/for(i=1141;i0;i-)第27頁(yè),共190頁(yè)。C語(yǔ)言程序清單:第27頁(yè),共190頁(yè)。void main()uchar xdata *led0=0 xc000;uchar xdata *led1=0 xc800;/定義兩個(gè)指針,并給指針賦值uchar i=0 x01,j=0;*led0=
15、0 xff;/置為高電平;*led1=0 xff;/置為高電平;while(1)/循環(huán)for(j=0;j8;j+)_nop_();*led0=i;/為按位取反;Delay(5000);i=(i7);/ 為左移;|為按位或 /1111,1100 和0000,0001 相或得1111,1101;第28頁(yè),共190頁(yè)。void main()while(1)/循環(huán)第28頁(yè)*led0=0 xff;for(j=0;j8;j+)_nop_();*led1=i;Delay(5000); i=(i7);/0;j-)數(shù)據(jù)總線(Data Bus,DB)由P0口提供,其寬度為一個(gè)字節(jié)(8位)??刂瓶偩€(Control
16、 Bus,CB)是單片機(jī)發(fā)出的以控制片外ROM、RAM和I/O口讀/寫操作的一組控制線。 控制總線包括片外系統(tǒng)擴(kuò)展用控制線和片外信號(hào)對(duì)單片機(jī)的控制線。系統(tǒng)擴(kuò)展所用控制線包括WR,RD ,PSEN,EA 和ALE。第32頁(yè),共190頁(yè)。為低電平時(shí),訪問(wèn)外部程序存儲(chǔ)器;數(shù)據(jù)總線(Data Bus,圖3.8 單片機(jī)三總線示意圖第33頁(yè),共190頁(yè)。圖3.8 單片機(jī)三總線示意圖第33頁(yè),共190頁(yè)。2、擴(kuò)展能力 MCS51單片機(jī)地址線為16位,因此在片外可擴(kuò)展的存儲(chǔ)器最大容量為64KByte,地址為0 x00 xFFFF。由于對(duì)片外數(shù)據(jù)存儲(chǔ)器和程序存儲(chǔ)器的訪問(wèn)使用不同的指令及控制信號(hào),所以允許兩者地址
17、重合,即對(duì)于8051系列單片機(jī)來(lái)說(shuō),片外可擴(kuò)展的程序存儲(chǔ)器與數(shù)據(jù)存儲(chǔ)器的最大容量均為64KB。片外數(shù)據(jù)存儲(chǔ)器地址為0 x00 xFFFF。 第34頁(yè),共190頁(yè)。2、擴(kuò)展能力第34頁(yè),共190頁(yè)。當(dāng)片內(nèi)程序存儲(chǔ)器與片外程序存儲(chǔ)器的訪問(wèn)使用相同的操作指令,對(duì)兩者的選擇則靠系統(tǒng)控制線來(lái)實(shí)現(xiàn)。當(dāng)EA=0時(shí),選擇片外程序存儲(chǔ)器,即無(wú)論片內(nèi)有無(wú)程序存儲(chǔ)器,片外程序存儲(chǔ)器的地址可從0 x0開始進(jìn)行編址。當(dāng)EA=1時(shí),選片內(nèi)程序存儲(chǔ)器,若片內(nèi)程序存儲(chǔ)器容量為4KByte,則其地址為0 x00 x0FFF,片外程序存儲(chǔ)器地址只能從0 x1000開始編址。第35頁(yè),共190頁(yè)。當(dāng)片內(nèi)程序存儲(chǔ)器與片外程序存儲(chǔ)器的
18、訪問(wèn)使用相同的操作指令,對(duì)(3)擴(kuò)展的實(shí)現(xiàn) 數(shù)據(jù)總線以P0口作8位數(shù)據(jù)的總線。數(shù)據(jù)總線的數(shù)據(jù)流是雙向的,單片機(jī)有入和出。地址總線以P0口的低8位地址加上P2的高8位地址就可以形成16位的地址總線,達(dá)到64KByte的尋址能力。地址總線的數(shù)據(jù)流是單片機(jī)發(fā)出的,是單向的。第36頁(yè),共190頁(yè)。(3)擴(kuò)展的實(shí)現(xiàn) 第36頁(yè),共190頁(yè)??刂菩盘?hào)總線ALE:地址鎖存信號(hào),用以實(shí)現(xiàn)對(duì)低8位地址的鎖存。:片外程序存儲(chǔ)器選通信號(hào)。:程序存儲(chǔ)器選擇信號(hào)。為低電平時(shí),訪問(wèn)外部程序存儲(chǔ)器;為高電平時(shí),訪問(wèn)內(nèi)部程序存儲(chǔ)器。:片外數(shù)據(jù)存儲(chǔ)器寫控制信號(hào)。:片外數(shù)據(jù)存儲(chǔ)器讀控制信號(hào)。第37頁(yè),共190頁(yè)。控制信號(hào)總線ALE
19、:地址鎖存信號(hào),用以實(shí)現(xiàn)對(duì)低8位地址的鎖存總線驅(qū)動(dòng) 在單片機(jī)應(yīng)用系統(tǒng)中,擴(kuò)展的三總線上掛接很多負(fù)載,如存儲(chǔ)器、并行接口、A/D接口、顯示接口等,但總線接口的負(fù)載能力有限,因此常常需要通過(guò)連接總線驅(qū)動(dòng)器進(jìn)行總線驅(qū)動(dòng)。 總線驅(qū)動(dòng)器對(duì)于單片機(jī)的I/O口只相當(dāng)于增加了一個(gè)TTL負(fù)載,因此驅(qū)動(dòng)器除了對(duì)后級(jí)電路驅(qū)動(dòng)外,還能對(duì)負(fù)載的波動(dòng)變化起隔離作用。 在對(duì)TTL負(fù)載驅(qū)動(dòng)時(shí),只需考慮驅(qū)動(dòng)電流的大小。 在對(duì)MOS負(fù)載驅(qū)動(dòng)時(shí),MOS負(fù)載的輸入電流很小,更多地要考慮對(duì)分布電容的電流驅(qū)動(dòng)。 第38頁(yè),共190頁(yè)??偩€驅(qū)動(dòng)第38頁(yè),共190頁(yè)。數(shù)據(jù)總線是雙向的,其驅(qū)動(dòng)器也要選用雙向的,如74LS245。74LS245
20、也是三態(tài)的,有一個(gè)方向控制端DIR。DIR=1時(shí)輸出(AnBn),DIR=0時(shí)輸入(AnBn)。系統(tǒng)總線中地址總線是單向的,因此驅(qū)動(dòng)器可以選用單向的,如74LS244,還帶有三態(tài)控制,能實(shí)現(xiàn)總線緩沖和隔離。第39頁(yè),共190頁(yè)。數(shù)據(jù)總線是雙向的,其驅(qū)動(dòng)器也要選用雙向的,如74LS245。4、典型案例圖3.9 簡(jiǎn)單I/O接口擴(kuò)展第40頁(yè),共190頁(yè)。4、典型案例圖3.9 簡(jiǎn)單I/O接口擴(kuò)展第40頁(yè),共190頁(yè)C語(yǔ)言程序清單:#include voidmain()unsigned char data tmp1, tmp2=0Xff;unsigned char xdata *pt1;pt1=0 xf
21、eff; /給指針賦地址值0 xfeffwhile(1) /循環(huán) tmp1=*pt1;/從74HC245讀入鍵盤數(shù)據(jù) if (tmp1!=tmp2)/判斷輸入改變時(shí), *pt1 =tmp1;/從74HC373輸出LED顯示數(shù)據(jù) tmp2=tmp1;/下一次的比較是對(duì)按鍵變化的比/較,所以需要將更新后的按鍵值最為下一次的比較依據(jù); 第41頁(yè),共190頁(yè)。C語(yǔ)言程序清單:第41頁(yè),共190頁(yè)。第42頁(yè),共190頁(yè)。第42頁(yè),共190頁(yè)。典型應(yīng)用 圖3.11 存儲(chǔ)器擴(kuò)展第43頁(yè),共190頁(yè)。典型應(yīng)用 圖3.11 存儲(chǔ)器擴(kuò)展第43頁(yè),共190頁(yè)。3.4 LED、數(shù)碼顯示設(shè)計(jì)將系統(tǒng)正在運(yùn)行的狀態(tài)告訴操作
22、者,需要顯示;操作者需要將控制的信息輸入到系統(tǒng),輸入的信息成功情況需要顯示。常用的顯示方式有:LED彩燈顯示、數(shù)碼管顯示、液晶顯示。 為什么需要顯示?有哪些顯示方式?第44頁(yè),共190頁(yè)。3.4 LED、數(shù)碼顯示設(shè)計(jì)將系統(tǒng)正在運(yùn)行的狀態(tài)告訴操作者,顯示 圖3.12 1只彩燈閃爍顯示電路第45頁(yè),共190頁(yè)。顯示 圖3.12 1只彩燈閃爍顯示電路第45頁(yè),共190頁(yè)。#include #define uchar unsigned char sbit P1_0=P10;void delay05() uchar i,j,k; for(i=5;i0;i-) for(j=200;j0;j-) for(k
23、=250;k0;k-) ; void main() while (1) P1_0=0;delay05();P1_0=1;delay05(); 第46頁(yè),共190頁(yè)。#include 第46頁(yè),共190頁(yè)。圖3.13 8只彩燈循環(huán)顯示電路第47頁(yè),共190頁(yè)。圖3.13 8只彩燈循環(huán)顯示電路第47頁(yè),共190頁(yè)。參考程序:#include#include#define uchar unsigned char #define uint unsigned intvoid Delay(uint t)/延時(shí)函數(shù)uint i=1141;for(;t0;t-)for(;i0;i-);第48頁(yè),共190頁(yè)。參
24、考程序:第48頁(yè),共190頁(yè)。void main()uchar i=0,j=0 x01;while(1)for(i=0;i8;i+)/循環(huán)8次P1=j;/將j按位取反從P1輸出Delay(5000);j=(j7);第49頁(yè),共190頁(yè)。void main()第49頁(yè),共190頁(yè)。數(shù)碼管的結(jié)構(gòu)與原理 LED數(shù)碼管的結(jié)構(gòu)如圖3.14所示,圖中a-g七個(gè)筆段及小數(shù)點(diǎn)dp均為發(fā)光二極管。如果將所有發(fā)光二極管的陽(yáng)極連在一起作為公共端,稱為共陽(yáng)數(shù)碼管;如果將所有發(fā)光二極管的陰極連在一起作為公共端,稱為共陰數(shù)碼管。第50頁(yè),共190頁(yè)。數(shù)碼管的結(jié)構(gòu)與原理 LED數(shù)碼管的結(jié)構(gòu)如圖3.14所示,圖中(a)共陰極
25、;(b)共陽(yáng)極;(c)管腳配置圖3.14 LED顯示器共陽(yáng)數(shù)碼管的所有發(fā)光二極管的陽(yáng)極均接高電平,所以只要a-g及dp引腳輸入低電平,則相應(yīng)筆段的發(fā)光二極管發(fā)光;共陰極數(shù)碼管的所有發(fā)光二極管的陰極均接地,所以只要a-g及dp引腳輸入高電平,則相應(yīng)筆段的發(fā)光二極管發(fā)光。 第51頁(yè),共190頁(yè)。(a)共陰極;(b)共陽(yáng)極;(c)管腳配置共陽(yáng)數(shù)碼管的所有發(fā)表3.4 LED顯示器的字段碼第52頁(yè),共190頁(yè)。表3.4 LED顯示器的字段碼第52頁(yè),共190頁(yè)。數(shù)碼管靜態(tài)顯示 在靜態(tài)方式下,共陰極或共陽(yáng)極公共端連接在一起接地或+5V;每一位顯示器的字段控制線是獨(dú)立的。當(dāng)顯示某一字符時(shí),該位的各字字段線和
26、字位線的電平不變,也就是各字段的亮滅狀態(tài)不變。靜態(tài)顯示方式編程簡(jiǎn)單,但占用I/O口線多,適合于顯示器位數(shù)較少的場(chǎng)合。 第53頁(yè),共190頁(yè)。數(shù)碼管靜態(tài)顯示 在靜態(tài)方式下,共陰極或共陽(yáng)極公共端連接在一起 圖3.15 四位靜態(tài)LED顯示器電路靜態(tài)數(shù)碼顯示每一個(gè)數(shù)碼管的顯示筆畫都要占用單獨(dú)的具有鎖存功能的I/O接口。即需N8個(gè)I/O控制線第54頁(yè),共190頁(yè)。 圖3.15 四位靜態(tài)LED顯示器電路靜態(tài)數(shù)碼顯示每一個(gè)數(shù)靜態(tài)顯示數(shù)碼管相應(yīng)筆段一直處于點(diǎn)亮狀態(tài),因此功耗大,而且占用硬件資源多,幾乎只能用在顯示位數(shù)極少的場(chǎng)合。 優(yōu)點(diǎn):LED亮度高,可用在室外顯示場(chǎng)合。程序工作量小。第55頁(yè),共190頁(yè)。靜態(tài)
27、顯示數(shù)碼管相應(yīng)筆段一直處于點(diǎn)亮狀態(tài),因此功耗大,而且占用圖3.16 靜態(tài)顯示典型電路所謂外部地址指P2,P0口輸出相應(yīng)值之后,能影響某些器件使之工作在鎖存、譯碼、流向變、公共端電壓變化等時(shí)間上變化的狀態(tài);第56頁(yè),共190頁(yè)。圖3.16 靜態(tài)顯示典型電路所謂外部地址指P2,P0口輸出相數(shù)碼管動(dòng)態(tài)顯示 動(dòng)態(tài)顯示的硬件特點(diǎn)是將所有數(shù)碼管的同名段選線并聯(lián)在一起,通過(guò)控制位選信號(hào)來(lái)控制數(shù)碼管的點(diǎn)亮,如圖3.15所示。數(shù)碼管采用動(dòng)態(tài)掃描顯示,所謂動(dòng)態(tài)掃描顯示就是逐位輪流點(diǎn)亮每位顯示器,即每個(gè)數(shù)碼管的位選被輪流選中,多個(gè)數(shù)碼管共用一組段選,字形碼僅對(duì)位選被選中的數(shù)碼管有效。 第57頁(yè),共190頁(yè)。數(shù)碼管動(dòng)
28、態(tài)顯示 動(dòng)態(tài)顯示的硬件特點(diǎn)是將所有數(shù)碼管的同名段選線 圖3.17 八位LED動(dòng)態(tài)顯示器電路 動(dòng)態(tài)數(shù)碼顯示所有數(shù)碼管的8個(gè)筆畫段同名端連在一起,公共端各自獨(dú)立。即需N+8個(gè)I/O控制線第58頁(yè),共190頁(yè)。 圖3.17 八位LED動(dòng)態(tài)顯示器電路 動(dòng)態(tài)數(shù)碼顯示所有數(shù)碼動(dòng)態(tài)顯示是多只數(shù)碼管共享段碼線,通過(guò)位選線(公共端)逐位逐位分時(shí)進(jìn)行掃描顯示(任時(shí)刻只有一只點(diǎn)亮)。其優(yōu)點(diǎn)是占用硬件資源少,功耗小。軟件工作量大. 必須注意:掃描周期必須控制在視覺(jué)停頓時(shí)間內(nèi),一般在20ms以內(nèi),否則會(huì)出現(xiàn)閃爍或跳動(dòng)現(xiàn)象。最為廣泛的一種顯示方式。動(dòng)態(tài)顯示技術(shù)第59頁(yè),共190頁(yè)。動(dòng)態(tài)顯示是多只數(shù)碼管共享段碼線,通過(guò)位選
29、線(公共端)逐位逐位表3.5 8位動(dòng)態(tài)共陰LED顯示狀態(tài)(例: 0120)第60頁(yè),共190頁(yè)。表3.5 8位動(dòng)態(tài)共陰LED顯示狀態(tài)(例: 0120圖3.18 動(dòng)態(tài)顯示典型電路所謂外部地址指P2,P0口輸出相應(yīng)值之后,能影響某些器件使之工作在鎖存、譯碼、流向變、公共端電壓變化等時(shí)間上變化的狀態(tài);第61頁(yè),共190頁(yè)。圖3.18 動(dòng)態(tài)顯示典型電路所謂外部地址指P2,P0口輸出相典型應(yīng)用 任務(wù):用8位數(shù)碼動(dòng)態(tài)顯示毛澤東誕辰年日期“18931226”。單片機(jī)的P0、P3口分別通過(guò)74LS245緩沖輸出,進(jìn)而分別控制8位共陰數(shù)碼管的段選和位選。第62頁(yè),共190頁(yè)。典型應(yīng)用 任務(wù):用8位數(shù)碼動(dòng)態(tài)顯示毛
30、澤東誕辰年日期“1893圖3.19 8位數(shù)碼動(dòng)態(tài)顯示案例第63頁(yè),共190頁(yè)。圖3.19 8位數(shù)碼動(dòng)態(tài)顯示案例第63頁(yè),共190頁(yè)。參考程序:# include /包含51單片機(jī)的特殊定義code unsigned char dis_d=0 x3f, 0 x06, 0 x5b, 0 x4f, 0 x66, 0 x6d, 0 x7d, 0 x07,0 x7f, 0 x6f ; / 共陰極數(shù)碼管字段碼code unsigned char dis_w=0 xfe, 0 xfd, 0 xfb, 0 xf7, 0 xef, 0 xdf, 0 xbf, 0 x7f ; / 共陰極數(shù)碼管位碼void Del
31、ay() /延時(shí) unsigned char mun=200;while(mun-);第64頁(yè),共190頁(yè)。參考程序:第64頁(yè),共190頁(yè)。void main() /主程序 while(1)P3=dis_w0;P0=dis_d1;Delay();P0=0 x00;/第一個(gè)數(shù)碼管顯示 1P3=dis_w1;P0=dis_d8;Delay();P0=0 x00;/第二個(gè)數(shù)碼管顯示 8P3=dis_w2;P0=dis_d9;Delay();P0=0 x00;/第三個(gè)數(shù)碼管顯示 9P3=dis_w3;P0=dis_d3;Delay();P0=0 x00;/第四個(gè)數(shù)碼管顯示 3P3=dis_w4;P0=
32、dis_d1;Delay();P0=0 x00;/第五個(gè)數(shù)碼管顯示 1P3=dis_w5;P0=dis_d2;Delay();P0=0 x00;/第六個(gè)數(shù)碼管顯示 2P3=dis_w6;P0=dis_d2;Delay();P0=0 x00;/第七個(gè)數(shù)碼管顯示 2P3=dis_w7;P0=dis_d6;Delay();P0=0 x00;/第八個(gè)數(shù)碼管顯示 6第65頁(yè),共190頁(yè)。void main() /主程序第65頁(yè),拓展提高 動(dòng)態(tài)數(shù)碼管顯示拖尾、重影如何解決?數(shù)碼管動(dòng)態(tài)顯示可能會(huì)出現(xiàn)拖尾、重影的現(xiàn)象,解決的方法是:如果是先送位選信號(hào),再送段選信號(hào),則在換位時(shí),將段選信號(hào)清除;如果是先送段選信
33、號(hào)后送位選信號(hào),則在換段時(shí),將位選信號(hào)清除。第66頁(yè),共190頁(yè)。拓展提高 動(dòng)態(tài)數(shù)碼管顯示拖尾、重影如何解決?第66頁(yè),共193.5 鍵盤接口技術(shù)按鍵有什么作用?如何識(shí)別按鍵是否按下?當(dāng)人類將設(shè)置等數(shù)據(jù)信息傳入計(jì)算機(jī)系統(tǒng)時(shí),通常會(huì)采用鍵盤完成。單片機(jī)對(duì)于鍵盤的識(shí)別是通過(guò)讀取鍵盤對(duì)應(yīng)的高低電平信號(hào)來(lái)完成的。第67頁(yè),共190頁(yè)。3.5 鍵盤接口技術(shù)按鍵有什么作用?如何識(shí)別按鍵是否按下?當(dāng)概述 鍵盤接口的主要功能是對(duì)鍵盤上所按的鍵進(jìn)行識(shí)別。使用專用的硬件進(jìn)行識(shí)別的鍵盤稱為編碼鍵盤,使用軟件進(jìn)行識(shí)別的鍵盤稱為非編碼鍵盤,它具有結(jié)構(gòu)簡(jiǎn)單、使用靈活等特點(diǎn),因此被廣泛應(yīng)用于單片機(jī)系統(tǒng)。 第68頁(yè),共190
34、頁(yè)。概述 鍵盤接口的主要功能是對(duì)鍵盤上所按的鍵進(jìn)行識(shí)別。使用專用 圖3.20 按鍵觸點(diǎn)的機(jī)械抖動(dòng)過(guò)程 圖3.19 按鍵輸入電路 第69頁(yè),共190頁(yè)。 圖3.20 按鍵觸點(diǎn)的機(jī)械抖動(dòng)過(guò)程 圖軟件去抖動(dòng)前沿抖動(dòng)穩(wěn)定后沿抖動(dòng) 按鍵抖動(dòng)信號(hào)波形鍵盤消抖即檢測(cè)出鍵閉合后執(zhí)行一個(gè)延時(shí)程序,產(chǎn)生5ms10ms的延時(shí),讓前沿抖動(dòng)消失后再一次檢測(cè)鍵的狀態(tài),如果仍保持閉合狀態(tài)電平,則確認(rèn)為真正有鍵按下。第70頁(yè),共190頁(yè)。軟件去抖動(dòng)前沿抖動(dòng)穩(wěn)定后沿抖動(dòng) 按鍵抖動(dòng)信號(hào)波形鍵盤消抖鍵盤消抖硬件消抖:如RC濾波電路第71頁(yè),共190頁(yè)。鍵盤消抖硬件消抖:第71頁(yè),共190頁(yè)。鍵盤消抖硬件消抖:如雙穩(wěn)態(tài)電路:RS觸發(fā)
35、器為常用的硬件消抖電路。CD第72頁(yè),共190頁(yè)。鍵盤消抖硬件消抖:CD第72頁(yè),共190頁(yè)。獨(dú)立鍵盤 獨(dú)立鍵盤的每一個(gè)按鍵的電路是獨(dú)立的,其中每個(gè)按鍵都獨(dú)立地占用一條I/O數(shù)據(jù)線,按鍵輸入均采用低電平有效。上拉電阻保證了按鍵斷開時(shí),I/O口線有確定的高電平。當(dāng)I/O口線內(nèi)部有上拉電阻時(shí),外電路可不接上拉電阻。對(duì)于獨(dú)立式鍵盤,一般采取逐條I/O口查詢的方式來(lái)確定閉合鍵的位置,即先逐位查詢每根I/O口線的輸入狀態(tài),如某一根I/O口線輸入為低電平,則可確認(rèn)該I/O口線所對(duì)應(yīng)的按鍵已按下,然后,再轉(zhuǎn)向該鍵的功能處理程序。典型電路如圖3.22所示。第73頁(yè),共190頁(yè)。獨(dú)立鍵盤 獨(dú)立鍵盤的每一個(gè)按鍵的
36、電路是獨(dú)立的,其中每個(gè)按鍵都圖3.24 獨(dú)立按鍵典型電路第74頁(yè),共190頁(yè)。圖3.24 獨(dú)立按鍵典型電路第74頁(yè),共190頁(yè)。程序:#includeunsigned char duan8=0 x06,0 x5b,0 x4f,0 x66,0 x6d,0 x7d,0 x07,0 x7f;unsigned char wei8=0 xfe,0 xfd,0 xfb,0 xf7,0 xef,0 xdf,0 xbf,0 x7f;void delay(void)unsigned i,j;for(i=0;i20;i+)for(j=0;j200;j+);void main() unsigned char i,j
37、; 第75頁(yè),共190頁(yè)。程序:第75頁(yè),共190頁(yè)。while(1)if(j=P1)!=0 xff)/檢測(cè)是否有按鍵被按下 delay();/延時(shí)消抖 if(j=P1)!=0 xff)/再次檢測(cè)按鍵是否被按下 for(i=0;i8;i+)/顯示 if(j=weii) P0=duani; else P0=0; 第76頁(yè),共190頁(yè)。while(1)第76頁(yè),共190頁(yè)。行列(矩陣)鍵盤行列式鍵盤又叫矩陣式鍵盤,行列式結(jié)構(gòu)的鍵盤顯然比獨(dú)立式鍵盤要復(fù)雜一些,識(shí)別也要復(fù)雜一些。它將I/O線的一部分作為行線,另一部分作為列線,按鍵設(shè)置在行線和列線的交叉點(diǎn)上,每一個(gè)按鍵占用兩條I/O數(shù)據(jù)線。如圖3.23
38、所示,行列式鍵盤中,行、列線分別連接到按鍵開關(guān)的兩端,行線通過(guò)上拉電阻接到5V上。當(dāng)無(wú)鍵按下時(shí),行線處于高電平狀態(tài);當(dāng)有鍵按下時(shí),行、列線將導(dǎo)通,此時(shí),行線電平將由與此行線相連的列線電平?jīng)Q定。這是識(shí)別按鍵是否按下的關(guān)鍵。 第77頁(yè),共190頁(yè)。行列(矩陣)鍵盤行列式鍵盤又叫矩陣式鍵盤,行列式結(jié)構(gòu)的鍵盤顯行列式鍵盤結(jié)構(gòu)每一個(gè)按鍵的電路是由行列組成,每一個(gè)按鍵占用兩條I/O數(shù)據(jù)線。當(dāng)鍵盤按下時(shí),相應(yīng)的行列線呈現(xiàn)短路。1、行線輸出高電平、列線輸出低電平;檢測(cè)行線有電平變化表示有按鍵按下,否則沒(méi)有!2、依次使列線中某一列為低電平,其余為高,檢測(cè)行線電平變化的那一行電壓是否為低,為低就是此行列交界處的按
39、鍵被按下!第78頁(yè),共190頁(yè)。行列式鍵盤結(jié)構(gòu)每一個(gè)按鍵的電路是由行列組成,每一個(gè)按鍵占用兩圖3.25 矩陣鍵盤典型電路第79頁(yè),共190頁(yè)。圖3.25 矩陣鍵盤典型電路第79頁(yè),共190頁(yè)。程序#include#define uchar unsigned charuchar code dispcode=0 x3f, 0 x06, 0 x5b, 0 x4f, 0 x66, 0 x6d, 0 x7d,0 x07,0 x7f, 0 x6f,0 x77,0 x7c,0 x39,0 x5e,0 x79,0 x71,0 x40; /0-9字符碼表 uchar code keytab=0 x81,0 x4
40、1,0 x21,0 x11,0 x82,0 x42,0 x22,0 x12,0 x84,0 x44,0 x24,0 x14,0 x88,0 x48,0 x28,0 x18; /閉合鍵碼表uchar code disbit=0 x40,0 x80;/兩位數(shù)碼位碼表uchar disbuf=0,0;/兩位數(shù)碼段碼緩沖單元void delay5ms();/延時(shí),用定時(shí)器完成bit Keytest(); /總判有無(wú)按鍵void display(uchar x);/數(shù)碼顯示程序uchar GetKeyNum(); /獲得具體鍵值 程序見書P70第80頁(yè),共190頁(yè)。程序第80頁(yè),共190頁(yè)。典型應(yīng)用設(shè)計(jì)
41、一個(gè)09計(jì)數(shù)器,計(jì)數(shù)按鍵每按下一次,計(jì)數(shù)顯示加1, 09循環(huán)計(jì)數(shù),清除按鍵按下則顯示清零。P73頁(yè)程序第81頁(yè),共190頁(yè)。典型應(yīng)用設(shè)計(jì)一個(gè)09計(jì)數(shù)器,計(jì)數(shù)按鍵每按下一次,計(jì)數(shù)顯示加計(jì)數(shù)鍵清除鍵第82頁(yè),共190頁(yè)。計(jì)數(shù)鍵清除鍵第82頁(yè),共190頁(yè)。3.6 中斷、定時(shí)接口技術(shù) 日常中斷的例子返回 你正在專心看書,突然 鈴響,于是你記下正在看的書的頁(yè)數(shù),去接 ,接完 后再回來(lái)接著看書。時(shí)間 第83頁(yè),共190頁(yè)。3.6 中斷、定時(shí)接口技術(shù) 日常中斷的例子返回 計(jì)算機(jī)中的中斷概念返回定義:中斷是指由于某種隨機(jī)事件的發(fā)生,計(jì)算機(jī)暫?,F(xiàn)行程序的運(yùn)行,轉(zhuǎn)去執(zhí)行另一程序(處理發(fā)生的事件),處理完畢后又自動(dòng)
42、返回原來(lái)程序暫停的位置繼續(xù)運(yùn)行。將能引起中斷的事件稱為中斷源。CPU現(xiàn)行運(yùn)行的程序稱為主程序。處理隨機(jī)事件的程序稱為中斷服務(wù)子程序。 第84頁(yè),共190頁(yè)。 計(jì)算機(jī)中的中斷概念返回定義:中斷是指由于某種隨機(jī)事件的處理突發(fā)事件,單片機(jī)有強(qiáng)大處理功能,它會(huì)自動(dòng)暫停正在處理的事件,轉(zhuǎn)去處理突發(fā)事件,突發(fā)事件處理完之后,繼續(xù)處理暫停的事件。第85頁(yè),共190頁(yè)。處理突發(fā)事件,單片機(jī)有強(qiáng)大處理功能,它會(huì)自動(dòng)暫停正在處理的事 中斷技術(shù)的優(yōu)點(diǎn)提高工作效率 CPU可以同多個(gè)外設(shè)“同時(shí)”工作實(shí)時(shí)處理 CPU及時(shí)處理隨機(jī)事件(智能技術(shù))故障處理 電源掉電、存儲(chǔ)出錯(cuò)、運(yùn)算溢出 第86頁(yè),共190頁(yè)。 中斷技術(shù)的優(yōu)點(diǎn)
43、提高工作效率第86頁(yè),共190頁(yè)。單片機(jī)中斷系統(tǒng)的內(nèi)部結(jié)構(gòu)圖3.27 單片機(jī)的中斷系統(tǒng)結(jié)構(gòu)第87頁(yè),共190頁(yè)。單片機(jī)中斷系統(tǒng)的內(nèi)部結(jié)構(gòu)圖3.27 單片機(jī)的中斷系統(tǒng)結(jié)構(gòu)表3.6 中斷源及中斷向量入口地址第88頁(yè),共190頁(yè)。表3.6 中斷源及中斷向量入口地址第88頁(yè),共190頁(yè)。中斷服務(wù)函數(shù)的編寫方法void 函數(shù)名 interrupt n using m m、n 為正整數(shù),不允許使用表達(dá)式。n取值范圍04,對(duì)應(yīng)該中斷源的編號(hào)。通常對(duì)普通8051系列單片機(jī)來(lái)說(shuō),外部中斷0、定時(shí)器0、外部中斷1、定時(shí)器1、串口的中斷源編號(hào)依次為0、1、2、3、4。m取值范圍04。 例如: void serial
44、_service interrupt 4 using 2 ; Keil C51編譯器用特定的編譯器指令分配寄存器組。當(dāng)前工作寄存器由using指定,“using”后的變量為一個(gè)03的整數(shù)?!皍sing”只允許用于中斷函數(shù),它在中斷函數(shù)入口處將當(dāng)前寄存器組保留,并在中斷程序中使用指定的寄存器組,在函數(shù)退出前恢復(fù)原寄存器組。 第89頁(yè),共190頁(yè)。中斷服務(wù)函數(shù)的編寫方法void 函數(shù)名 interrupt 編寫中斷函數(shù)時(shí)應(yīng)遵循下列規(guī)則:不能進(jìn)行參數(shù)傳遞,如果中斷過(guò)程包括任何參數(shù)聲明,編譯器將產(chǎn)生一個(gè)錯(cuò)誤信息。無(wú)返回值,如果想定義一個(gè)返回值將產(chǎn)生錯(cuò)誤,但是,如果返回整型值編譯器將不產(chǎn)生錯(cuò)誤信息,因?yàn)?/p>
45、整型值是默認(rèn)值,編譯器不能清楚識(shí)別。在任何情況下不能直接調(diào)用中斷函數(shù),否則編譯器會(huì)產(chǎn)生錯(cuò)誤。第90頁(yè),共190頁(yè)。編寫中斷函數(shù)時(shí)應(yīng)遵循下列規(guī)則:第90頁(yè),共190頁(yè)。在中斷函數(shù)中調(diào)用的函數(shù)所使用的寄存器組必須與中斷函數(shù)相同,當(dāng)沒(méi)有使用using指令時(shí),編譯器會(huì)選擇一個(gè)寄存器組作絕對(duì)寄存器訪問(wèn)。編程時(shí)必須保證按要求使用相應(yīng)寄存器組,而C編譯器不會(huì)對(duì)此檢查。如果在中斷函數(shù)中執(zhí)行浮點(diǎn)運(yùn)算,必須保存浮點(diǎn)寄存器狀態(tài),當(dāng)沒(méi)有其他程序執(zhí)行浮點(diǎn)運(yùn)算時(shí),可以不保存。第91頁(yè),共190頁(yè)。在中斷函數(shù)中調(diào)用的函數(shù)所使用的寄存器組必須與中斷函數(shù)相同,外部中斷應(yīng)用 設(shè)計(jì)一個(gè)實(shí)現(xiàn)按鍵計(jì)數(shù)功能的設(shè)計(jì),并利用數(shù)碼管同步顯示按
46、鍵的按下次數(shù)。圖3.28 按鍵計(jì)數(shù)功能電路第92頁(yè),共190頁(yè)。外部中斷應(yīng)用 設(shè)計(jì)一個(gè)實(shí)現(xiàn)按鍵計(jì)數(shù)功能的設(shè)計(jì),并利用數(shù)碼管同程序:#includeunsigned char duan2=0;unsigned char duanma=0 x3f,0 x06,0 x5b,0 x4f,0 x66,0 x6d,0 x7d,0 x07,0 x7f,0 x6f;unsigned char i=0,m=0;void wz0()interrupt 0/外部中斷0服務(wù)子程序,用來(lái)記/錄按鍵按下的次數(shù)if(+i99) i=0;duan0=i/10;duan1=i%10;第93頁(yè),共190頁(yè)。程序:第93頁(yè),共19
47、0頁(yè)。void display()interrupt 1 /利用中斷來(lái)控制數(shù)碼管的顯示 static unsigned char l=0 x01;TH0=0 xff;TL0=0 xc8; if(l=0 x04) l=0 x01;m=0; P0=0; P2=l; P0=duanmaduanm; l=1; m+; void main()TH0=0 xff;TL0=0 xc8; IE=0 x8f;TMOD=0 x51;TCON=0 x55;IP=0 x02; while(1);計(jì)數(shù)器溢出一次,產(chǎn)生一次中斷,刷新當(dāng)前顯示內(nèi)容,溢出率決定顯示屏刷新頻率第94頁(yè),共190頁(yè)。void display()i
48、nterrupt 1 /定時(shí)/計(jì)數(shù)器中斷應(yīng)用 51系列單片機(jī)至少有兩個(gè)16位內(nèi)部定時(shí)器/計(jì)數(shù)器(T/C)。兩個(gè)基本定時(shí)器/計(jì)數(shù)器分別是定時(shí)器/計(jì)數(shù)器T/C0和T/C1,具有計(jì)數(shù)功能和定時(shí)功能。計(jì)數(shù)功能是指使用計(jì)數(shù)器的計(jì)數(shù)脈沖輸入端T0(P3.4)和T1(P3.5)對(duì)外部脈沖信號(hào)的計(jì)數(shù);定時(shí)功能是指對(duì)內(nèi)部晶振驅(qū)動(dòng)時(shí)鐘進(jìn)行計(jì)數(shù)。第95頁(yè),共190頁(yè)。定時(shí)/計(jì)數(shù)器中斷應(yīng)用 51系列單片機(jī)至少有兩個(gè)16位內(nèi)部定時(shí)定時(shí)器T0由TH0和TL0組成,定時(shí)器T1由TH1和TL1組成,其中TH0(TH1)表示高8位,TL0(TL1)表示低8位。TMOD(見表1.13)寄存器用來(lái)確定工作方式;TCON是控制寄存器
49、,用來(lái)控制T0和T1啟動(dòng)、計(jì)數(shù)、停止以及設(shè)置溢出標(biāo)志等。定時(shí)器/計(jì)數(shù)器的結(jié)構(gòu)圖見圖3.29。GATA=0表示啟動(dòng)不受外部中斷int0或int1的控制;否則受;C/T表示0為定時(shí)方式,1為計(jì)時(shí)方式! 教材16頁(yè)!1. 定時(shí)器/計(jì)數(shù)器的結(jié)構(gòu)圖3.29 定時(shí)器/計(jì)數(shù)器的結(jié)構(gòu)第96頁(yè),共190頁(yè)。定時(shí)器T0由TH0和TL0組成,定時(shí)器T1由TH1和TL1組在計(jì)數(shù)方式下,計(jì)數(shù)初值X= -待計(jì)數(shù)的值(n=13/16/8)。假使T/C0工作在計(jì)數(shù)器方式2,要求計(jì)數(shù)100個(gè)脈沖的計(jì)數(shù)初值X,那么X= =156。第97頁(yè),共190頁(yè)。在計(jì)數(shù)方式下,計(jì)數(shù)初值X= -待計(jì)數(shù)的值(n=13/1 在定時(shí)方式下,定時(shí)器/
50、計(jì)數(shù)器對(duì)機(jī)器周期脈沖計(jì)數(shù)。如:若 =12MHz,一個(gè)機(jī)器周期為 us,要求定時(shí)器/計(jì)數(shù)器T0定時(shí)1ms,求計(jì)數(shù)初值。 假使T0工作在工作方式1,設(shè)計(jì)數(shù)初值為X,則有: ,即 ,將64536化為十六進(jìn)制,即0 xFC18,把0 xFC送入TH0,0 x18送入TL0中即可完成1ms的定時(shí)。即:TH0=0 xfc;TL0=0 x18;第98頁(yè),共190頁(yè)。 在定時(shí)方式下,定時(shí)器/計(jì)數(shù)器對(duì)機(jī)器周期脈沖計(jì)數(shù)。第或直接寫為以下語(yǔ)句,在程序編譯時(shí)會(huì)自動(dòng)計(jì)算表達(dá)式,換算成對(duì)應(yīng)的數(shù)值給TH和TL賦值:(注意:溢出問(wèn)題)TH0=(65536-1000)/256;TL0=(65536-1000)%256;第99頁(yè)
51、,共190頁(yè)。或直接寫為以下語(yǔ)句,在程序編譯時(shí)會(huì)自動(dòng)計(jì)算表達(dá)式,換算成對(duì)應(yīng) 若T0工作在工作方式0,設(shè)計(jì)數(shù)初值為X,則有:將7192化為二進(jìn)制,即,把高八位0 xe0送入TH0,低五位0 x18送入TL0中即可完成1ms的定時(shí)。即:TH0=0 xe0;TL0=0 x18;使用了tl0的低5位;或直接寫為以下語(yǔ)句:TH0=(8192-1000)/32;TL0=(8192-1000)%32;可以看出,在12MHz時(shí)鐘頻率下,工作方式2所能達(dá)到的最大定時(shí)時(shí)間為256us,在此例不適于直接定時(shí)。第100頁(yè),共190頁(yè)。 若T0工作在工作方式0,設(shè)計(jì)數(shù)初值為X,則有:將7192典型應(yīng)用99-00鍵控倒計(jì)
52、時(shí)秒表任務(wù)描述將單片機(jī)與數(shù)碼管、鍵盤接成如圖3.30所示兩位動(dòng)態(tài)顯示方式。開始時(shí),顯示“-”,按“定時(shí)”鍵后顯示0,此時(shí)按數(shù)值鍵(0-9)有效;按數(shù)值鍵(0-9)顯示定時(shí)時(shí)間,最大定時(shí)時(shí)間99s;第一次按“開始/結(jié)束”鍵開始倒計(jì)時(shí),時(shí)間間隔為1S,計(jì)時(shí)結(jié)束顯示“-”;第二次按“開始/結(jié)束”鍵停止倒計(jì)時(shí),第三次按“開始/結(jié)束”鍵結(jié)束倒計(jì)時(shí),顯示“-” 第101頁(yè),共190頁(yè)。典型應(yīng)用99-00鍵控倒計(jì)時(shí)秒表任務(wù)描述第101頁(yè),共1WR1:第一寫信號(hào)(輸入),與ILE共同控制輸入寄存器是數(shù)據(jù)直通方式還是第104頁(yè),共190頁(yè)。void delay(unsigned char m)第38頁(yè),共190
53、頁(yè)。PC(虛擬終端上)通過(guò)鍵盤若發(fā)送09字符則數(shù)碼管顯示,若發(fā)送其他的則數(shù)碼管顯示“H”。if(i=0)i=0 x01;j=0;P3=dis_w0;P0=dis_d1;Delay();P0=0 x00;/第一個(gè)數(shù)碼管顯示 1第162頁(yè),共190頁(yè)。4 LED顯示器的字段碼處理隨機(jī)事件的程序稱為中斷服務(wù)子程序。6 中斷、定時(shí)接口技術(shù)適用:只有一路模擬信號(hào)輸出或幾路模擬信號(hào)非同步輸出。Keil C51編譯器用特定的編譯器指令分配寄存器組。disbuf0=dispcodesecond/10; /秒計(jì)數(shù)值的十位數(shù)字型碼void display()interrupt 1 /利用中斷來(lái)控制數(shù)碼管的顯示第3
54、8頁(yè),共190頁(yè)。圖3.30 99-00鍵控倒計(jì)時(shí)秒表電路第102頁(yè),共190頁(yè)。WR1:第一寫信號(hào)(輸入),與ILE共同控制輸入寄存器是數(shù)據(jù)圖3.31 0099秒計(jì)數(shù)循環(huán)動(dòng)態(tài)顯示程序框圖第103頁(yè),共190頁(yè)。圖3.31 0099秒計(jì)數(shù)循環(huán)動(dòng)態(tài)顯示程序框圖第103頁(yè),/*兩位動(dòng)態(tài)顯示,00-99循環(huán)顯示,時(shí)間間隔1s*/#include#define uchar unsigned charuchar code dispcode=0 x3f, 0 x06, 0 x5b, 0 x4f, 0 x66, 0 x6d, 0 x7d, 0 x07,0 x7f, 0 x6f; /0-9字型碼表uchar
55、code disbit=0 x40,0 x80; /位碼表uchar disbuf=0,0;uchar second=0,tcount=0;void caculate();void display();void delay5ms();void main()TMOD=0X10; /方式控制字初值:方式一、定時(shí)TR1=1; /定時(shí)器一啟動(dòng)while(1)display();caculate();第104頁(yè),共190頁(yè)。/*兩位動(dòng)態(tài)顯示,00-99循環(huán)顯示,時(shí)間間隔1s*/第10void caculate() /計(jì)數(shù)子函數(shù)tcount+; /1次10ms到,改變定時(shí)次數(shù)if(tcount=100)
56、/100次10ms到,即1s到tcount=0; /初始化定時(shí)次數(shù)second+; /指向下一個(gè)顯示數(shù)據(jù)if(second=100) second=0; void display()/動(dòng)態(tài)顯示子函數(shù)uchar i;disbuf0=dispcodesecond/10; /秒計(jì)數(shù)值的十位數(shù)字型碼disbuf1=dispcodesecond%10; /秒計(jì)數(shù)值的個(gè)位數(shù)字型碼for(i=0;i2;i+)P0=disbufi; / 向P0口送入段碼P2=disbiti; /向P2口送入位碼delay5ms(); /5ms定時(shí)P2=0;/關(guān)位選,消隱void delay5ms()TH1=(65536-50
57、00)/256; /設(shè)定定時(shí)初值高八位TL1=(65536-5000)%256; /設(shè)定定時(shí)初值低八位while(!TF1); /查詢,5ms到TF1=0;/TF1清零第105頁(yè),共190頁(yè)。void caculate() /計(jì)數(shù)子函數(shù)第103.7數(shù)模(D/A)轉(zhuǎn)換接口設(shè)計(jì) 為什么要用模數(shù)轉(zhuǎn)換?在實(shí)際生活中有何用? 第106頁(yè),共190頁(yè)。3.7數(shù)模(D/A)轉(zhuǎn)換接口設(shè)計(jì) 為什么要用模數(shù)轉(zhuǎn)換?在實(shí)際概念 D/A轉(zhuǎn)換器(Digital -to- Analog Converter)又叫數(shù)/模轉(zhuǎn)換器,即是將數(shù)字信號(hào)轉(zhuǎn)換成模擬信號(hào)(電壓或是電流的形式)。第107頁(yè),共190頁(yè)。概念 D/A轉(zhuǎn)換器(Di
58、gital -to- Analog 性能指標(biāo):1、分辨率(Resolution)是指D/A轉(zhuǎn)換器能分辨的最小輸出模擬增量,取決于輸入數(shù)字量的二進(jìn)制位數(shù)。 2、建立時(shí)間(Establishing Time)是描述D/A轉(zhuǎn)換速度的快慢。3、轉(zhuǎn)換精度(Conversion Accuracy)指滿量程時(shí)DAC的實(shí)際模擬輸出值和理論值的接近程度。 4、偏移量誤差(Offset Error)偏移量誤差是指輸入數(shù)字量為零時(shí),輸出模擬量對(duì)零的偏移值。 5、線性度(Linearity)線性度是指DAC的實(shí)際轉(zhuǎn)換特性曲線和理想直線之間的最大偏移差。第108頁(yè),共190頁(yè)。性能指標(biāo):1、分辨率(Resolution
59、)是指D/A轉(zhuǎn)換器1. DAC 0832內(nèi)部結(jié)構(gòu):8位雙緩沖器結(jié)構(gòu)的D/A轉(zhuǎn)換器。轉(zhuǎn)換芯片DAC0832DAC 0832內(nèi)部結(jié)構(gòu)框圖DI07:轉(zhuǎn)換數(shù)據(jù)輸入(8位); CS:片選信號(hào)(輸入);ILE:數(shù)據(jù)鎖存允許信號(hào)(輸入); XFER:數(shù)據(jù)傳送控制信號(hào)(輸入);WR1:第一寫信號(hào)(輸入),與ILE共同控制輸入寄存器是數(shù)據(jù)直通方式還是 數(shù)據(jù)鎖存方式;WR2:第2寫信號(hào)(輸入),與XFER共同控制DAC寄存器是數(shù)據(jù)直通方式還是 數(shù)據(jù)鎖存方式;8位DACDAC寄存器輸入寄存器-+IOUT2IOUT1RfbVODI07AGNDILECS與與與WR1WR2XFERLE1LE2LE1(LE2)=0:鎖存;
60、1:直通。王朝,馬漢;四大護(hù)法第109頁(yè),共190頁(yè)。1. DAC 0832內(nèi)部結(jié)構(gòu):8位雙緩沖器結(jié)構(gòu)的D/A轉(zhuǎn)換第110頁(yè),共190頁(yè)。第110頁(yè),共190頁(yè)。 DAC0830系列均為DIP20封裝,且管腳完全兼容,DAC0832的引腳如下圖所示。引腳功能如下:D0D7:8位數(shù)字量輸入端 CS: 片選端,低有效ILE : 數(shù)據(jù)鎖存允許 WR1 : 寫控制信號(hào)1WR2 : 寫控制信號(hào)2 XFER : 數(shù)據(jù)傳送控制信號(hào)Iout1: 電流輸出端1Iout2: 電流輸出端2RFB : 內(nèi)置反饋電阻端VREF : 參考電壓源(-10 V+10 V) DGND: 數(shù)字量地AGND: 模擬量地Vcc: +
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年項(xiàng)目管理考試提升技巧試題及答案
- 礦物加工過(guò)程中的物理分離技術(shù)考核試卷
- 液力元件的激光加工技術(shù)考核試卷
- 漁具設(shè)計(jì)原理考核試卷
- 目視化管理下的團(tuán)隊(duì)協(xié)作與溝通機(jī)制考核試卷
- 項(xiàng)目管理專業(yè)人士高效復(fù)習(xí)試題及答案
- 2025年企業(yè)會(huì)計(jì)與審計(jì)一體化管理研究試題及答案
- 禮儀用品行業(yè)品牌建設(shè)與市場(chǎng)競(jìng)爭(zhēng)力提升考核試卷
- 潛水裝備的水下作業(yè)安全管理機(jī)制優(yōu)化考核試卷
- 2023年中國(guó)電信股份有限公司灣沚分公司公開招聘筆試參考題庫(kù)附帶答案詳解
- 10KV配電室倒閘操作票
- 加油站電氣線路檢查安全操作細(xì)則
- 扁桃體切除術(shù)與術(shù)后并發(fā)癥
- 醫(yī)院培訓(xùn)課件:《從藥學(xué)角度看靜脈輸液安全性管理》
- 肺結(jié)核病人工作管理制度
- 普通高中畢業(yè)生綜合素質(zhì)評(píng)價(jià)報(bào)告表
- GB/T 20138-2023電器設(shè)備外殼對(duì)外界機(jī)械碰撞的防護(hù)等級(jí)(IK代碼)
- 邱關(guān)源《電路》(第6版)筆記和課后習(xí)題(含考研真題)詳解
- 通用用電設(shè)備配電設(shè)計(jì)規(guī)范
- 工程勘察服務(wù)成本要素信息(2022版)
- GB/T 15166.3-2023高壓交流熔斷器第3部分:噴射熔斷器
評(píng)論
0/150
提交評(píng)論