版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、第第7 7章章 80C5180C51單片機(jī)的系統(tǒng)擴(kuò)展單片機(jī)的系統(tǒng)擴(kuò)展存儲(chǔ)器的擴(kuò)展存儲(chǔ)器的擴(kuò)展輸入輸入/ /輸出輸出及其及其控制方式控制方式81C5581C55接口芯片接口芯片及其應(yīng)用及其應(yīng)用單片機(jī)與顯示器和鍵盤單片機(jī)與顯示器和鍵盤的接口的接口 存儲(chǔ)器的擴(kuò)展存儲(chǔ)器的擴(kuò)展n 片選方式片選方式n 線選法線選法n 譯碼法譯碼法線選法線選法CE 2K X 8CE 2K X 8CE 2K X 8CE 2K X 8線選法線選法芯片芯片地址地址A15A14A13A12A11A10A9A8A7A6A5A4A3A4A1A0地址范圍1#起始地址起始地址終了地址終了地址0800H0FFFH2#起始地址起始地址終了地址
2、終了地址1000H17FFH3#起始地址起始地址終了地址終了地址2000H27FFH4#起始地址起始地址終了地址終了地址4000H47FFH線選法擴(kuò)展存儲(chǔ)器缺點(diǎn):各芯片的地址不連續(xù),相當(dāng)數(shù)量的地址不能使用;優(yōu)點(diǎn):硬件連接簡單,一般不需附加其它硬件。全譯碼法全譯碼法全譯碼法全譯碼法芯片芯片 地地 址址A12A11A10A9A8A7A6A5A4A3A4A1A0地址范圍地址范圍1#起始地址起始地址終了地址終了地址0000H07FFH2#起始地址起始地址終了地址終了地址0800H0FFFH3#起始地址起始地址終了地址終了地址1000H17FFH4#起始地址起始地址終了地址終了地址 11800H1FFF
3、H全譯碼法擴(kuò)展存儲(chǔ)器優(yōu)點(diǎn):每塊芯片的地址范圍是唯一的,沒有不可使用的地址;缺點(diǎn):譯碼電路復(fù)雜。部分譯碼法部分譯碼法2K X 82-4譯碼器譯碼器部分譯碼法部分譯碼法芯片芯片 地地 址址A12A11A10A9A8A7A6A5A4A3A4A1A0地址范圍地址范圍1#起始地址起始地址終了地址終了地址0000H07FFH2#起始地址起始地址終了地址終了地址0800H0FFFH3#起始地址起始地址終了地址終了地址1000H17FFH4#起始地址起始地址終了地址終了地址 11800H1FFFH部分譯碼法擴(kuò)展存儲(chǔ)器缺點(diǎn):每塊芯片的地址范圍不是唯一的,存在地址重疊,影響地址區(qū)的有效使用;優(yōu)點(diǎn):譯碼電路相對簡單
4、。Intel 8205 (74LS138)Intel 8205 (74LS138).A0A1A2E1E2E3O0O78205E1E2E3001A200001111A100110011A001010101O0O1O2O3O4O5O6O700000000地址輸入地址輸入允許工作輸入允許工作輸入譯碼輸出譯碼輸出n 擴(kuò)展總線擴(kuò)展總線7.1.1 7.1.1 程序存儲(chǔ)器的擴(kuò)展程序存儲(chǔ)器的擴(kuò)展n 數(shù)據(jù)總線,數(shù)據(jù)總線,P0P0口口n 地址總線,高地址總線,高8 8位位P2P2口、低口、低8 8位位P0P0口口n 控制總線,控制總線,RDRD、WRWR、EAEA、ALEALE、PSENPSEN74LS37374
5、LS373( (帶三態(tài)帶三態(tài)緩沖輸緩沖輸出的出的8D8D鎖存器鎖存器) ) P0P0口數(shù)據(jù)、地址分時(shí)復(fù)用口數(shù)據(jù)、地址分時(shí)復(fù)用 74LS57374LS573:與:與74LS37374LS373功能相同,其引腳排列更易于功能相同,其引腳排列更易于PCBPCB板布線。板布線。n 片外片外ROMROM操作時(shí)序操作時(shí)序n 片內(nèi)片外片內(nèi)片外ROMROM讀讀,用指令,用指令MOVCMOVC(產(chǎn)生(產(chǎn)生PSENPSEN信號(hào))信號(hào))n 片外片外片外片外ROMROM選擇,用選擇,用EAEA。片外。片外ROMROM最大容量最大容量64K64K。【例例】讀外部讀外部ROMROM時(shí)序。時(shí)序。 n ROMROM芯片及其擴(kuò)
6、展方法芯片及其擴(kuò)展方法n 常用常用ROMROM芯片特性芯片特性芯片型號(hào)芯片型號(hào)27C6427C6427C12827C12827C25627C25627C51227C512容量容量8 KB8 KB16 KB16 KB32 KB32 KB64 KB64 KB引腳數(shù)引腳數(shù)2828282828282828讀出時(shí)間讀出時(shí)間/ns/ns12012012012090909090最大工作電流最大工作電流/mA/mA2020202020202525最大維持電流最大維持電流/mA/mA0.10.10.10.10.10.10.030.03注:應(yīng)注意優(yōu)先選用注:應(yīng)注意優(yōu)先選用CMOSCMOS器件,其讀出時(shí)間短,耗電少
7、。器件,其讀出時(shí)間短,耗電少。v 常用常用ROMROM芯片引腳芯片引腳 v擴(kuò)展電路擴(kuò)展電路 v 由于是單片由于是單片EPROMEPROM擴(kuò)展,擴(kuò)展,CECE片選信號(hào)直接接地。片選信號(hào)直接接地。PSENP2.0ALEP0.7P0.0EAG74LS373D0-D7A0-A7A8P2.1P2.2P2.7A9A10CEOE27C16的地址范圍:的地址范圍:000007FFHn RAMRAM擴(kuò)展原理擴(kuò)展原理v 讀操作時(shí)序讀操作時(shí)序7.1.2 7.1.2 數(shù)據(jù)存儲(chǔ)器的擴(kuò)展數(shù)據(jù)存儲(chǔ)器的擴(kuò)展【例例】若(若(DPTRDPTR)=2030H=2030H,片外,片外RAMRAM單元單元2030H2030H內(nèi)容為內(nèi)容
8、為55H55H,指令指令MOV AMOV A,DPTRDPTR(該指令代碼為(該指令代碼為E0HE0H)所在片外)所在片外ROMROM的的地址為地址為2314H2314H。 v 寫操作時(shí)序?qū)懖僮鲿r(shí)序 【例例】若(若(DPTRDPTR)=1040H=1040H,(,(A A)=88H=88H,指令,指令MOV MOV DPTRDPTR,A A(該指令代碼為(該指令代碼為F0HF0H)所在片外)所在片外ROMROM的地址為的地址為2218H 2218H 。 n 數(shù)據(jù)存儲(chǔ)器擴(kuò)展方法數(shù)據(jù)存儲(chǔ)器擴(kuò)展方法n 常用常用RAMRAM芯片特性芯片特性芯片型號(hào)芯片型號(hào)62646212862256容量容量8 KB1
9、6KB32 KB典型工作電流典型工作電流/mA4088典型維持電流典型維持電流/mA20.50.5最大存取時(shí)間最大存取時(shí)間/ns200200200v 常用常用RAMRAM芯片引腳芯片引腳 v 擴(kuò)展電路擴(kuò)展電路 62C64地址范圍:地址范圍:00001FFFHRDWRP2.0ALEP0.7P0.0EAG74LS373譯碼器D0-D7A0-A711A8P2.1P2.2P2.6P2.7100100A9A10CSDEWE61C16的地址范圍:的地址范圍:800087FFH數(shù)據(jù)存儲(chǔ)器擴(kuò)展時(shí),存儲(chǔ)空間要與片外數(shù)據(jù)存儲(chǔ)器擴(kuò)展時(shí),存儲(chǔ)空間要與片外I/O空間統(tǒng)一考慮??臻g統(tǒng)一考慮。 輸入輸入/ /輸出及其控制方
10、式輸出及其控制方式7.2.1 7.2.1 輸入輸入/ /輸出接口的功能輸出接口的功能 一般地,計(jì)算機(jī)的三條總線并不是直接和外部設(shè)備相連,一般地,計(jì)算機(jī)的三條總線并不是直接和外部設(shè)備相連,而是通過各種接口電路再接到外部設(shè)備。接口電路也叫而是通過各種接口電路再接到外部設(shè)備。接口電路也叫 I/OI/O接口電路接口電路,一般它們都是一些大規(guī)模集成電路芯片,單片機(jī),一般它們都是一些大規(guī)模集成電路芯片,單片機(jī)本身集成一定的本身集成一定的 I/OI/O接口電路。接口電路。 CPUCPU通過通過I/OI/O接口電路接口電路與外部設(shè)備交換信息。與外部設(shè)備交換信息。 I/OI/O接口電路接口電路中能被中能被CPU
11、CPU直接訪問的寄存器稱為直接訪問的寄存器稱為I/OI/O端口端口。一個(gè)一個(gè)I/OI/O接口芯片可以包含幾個(gè)接口芯片可以包含幾個(gè)I/OI/O端口。如數(shù)據(jù)端口、控制端口。如數(shù)據(jù)端口、控制端口、狀態(tài)端口等。端口、狀態(tài)端口等。l一般來說,每接一個(gè)外設(shè),就需要一個(gè)I/O接口(InterfaceInterface),但每個(gè)接口可以有不止一個(gè)端口(PortPort)。l端口是指在接口電路中用以完成某種信息傳送,并可由編程人員通過端口地址進(jìn)行讀寫的寄存器。接口與端口的差別接口與端口的差別n 單片機(jī)與輸入單片機(jī)與輸入/ /輸出設(shè)備的關(guān)系輸出設(shè)備的關(guān)系n 輸入輸入/ /輸接口的功能輸接口的功能v 對單片機(jī)輸出的
12、數(shù)據(jù)鎖存對單片機(jī)輸出的數(shù)據(jù)鎖存v I/OI/O接口的數(shù)據(jù)端口鎖存數(shù)據(jù)總線上瞬時(shí)出現(xiàn)的數(shù)據(jù),解接口的數(shù)據(jù)端口鎖存數(shù)據(jù)總線上瞬時(shí)出現(xiàn)的數(shù)據(jù),解決高速工作的單片機(jī)與速度較低的決高速工作的單片機(jī)與速度較低的I/OI/O設(shè)備的速度協(xié)調(diào)問題。設(shè)備的速度協(xié)調(diào)問題。v 對輸入設(shè)備的三態(tài)緩沖對輸入設(shè)備的三態(tài)緩沖v 單片機(jī)系統(tǒng)的數(shù)據(jù)總線是雙向的,是所有單片機(jī)系統(tǒng)的數(shù)據(jù)總線是雙向的,是所有I/OI/O設(shè)備分時(shí)復(fù)設(shè)備分時(shí)復(fù)用的。設(shè)備傳送數(shù)據(jù)時(shí)要占用總線,不傳送數(shù)據(jù)時(shí)該設(shè)備用的。設(shè)備傳送數(shù)據(jù)時(shí)要占用總線,不傳送數(shù)據(jù)時(shí)該設(shè)備對總線呈現(xiàn)高阻狀態(tài)。對總線呈現(xiàn)高阻狀態(tài)。v 信號(hào)轉(zhuǎn)換信號(hào)轉(zhuǎn)換v 由于由于I/OI/O設(shè)備的多樣性,
13、利用設(shè)備的多樣性,利用I/OI/O接口實(shí)現(xiàn)單片機(jī)與接口實(shí)現(xiàn)單片機(jī)與I/OI/O設(shè)設(shè)備間信號(hào)類型(數(shù)字與模擬、電流與電壓)、信號(hào)電平備間信號(hào)類型(數(shù)字與模擬、電流與電壓)、信號(hào)電平(高與低、正與負(fù))、信號(hào)格式(并行與串行)等的轉(zhuǎn)換。(高與低、正與負(fù))、信號(hào)格式(并行與串行)等的轉(zhuǎn)換。v 時(shí)序協(xié)調(diào)時(shí)序協(xié)調(diào) v 不同不同I/OI/O設(shè)備的定時(shí)與控制邏輯不同,與設(shè)備的定時(shí)與控制邏輯不同,與CPUCPU的時(shí)序也不的時(shí)序也不一致,通過一致,通過I/OI/O接口進(jìn)行時(shí)序協(xié)調(diào)。接口進(jìn)行時(shí)序協(xié)調(diào)。7.2.2 7.2.2 單片機(jī)與單片機(jī)與I/OI/O設(shè)備的數(shù)據(jù)傳送方式設(shè)備的數(shù)據(jù)傳送方式n 無條件傳送無條件傳送n
14、查詢狀態(tài)傳送查詢狀態(tài)傳送n 中斷傳送方式中斷傳送方式n 直接存儲(chǔ)器存取傳送(直接存儲(chǔ)器存取傳送( DMADMA )方式)方式n 無條件傳送無條件傳送v不測試不測試I/OI/O設(shè)備的狀態(tài),在規(guī)定的時(shí)間單片機(jī)用輸設(shè)備的狀態(tài),在規(guī)定的時(shí)間單片機(jī)用輸 入或輸出指令進(jìn)行數(shù)據(jù)輸入或輸出。入或輸出指令進(jìn)行數(shù)據(jù)輸入或輸出。CPUCPU總是認(rèn)為總是認(rèn)為外設(shè)在任何時(shí)刻都是處于外設(shè)在任何時(shí)刻都是處于“準(zhǔn)備好準(zhǔn)備好”的狀態(tài)。的狀態(tài)。v適用場合適用場合l 對簡單的對簡單的I/OI/O設(shè)備設(shè)備( (如開關(guān)、如開關(guān)、LEDLED顯示器、繼電器等顯示器、繼電器等) )的操作的操作l I/O I/O設(shè)備的定時(shí)固定(或已知)的場
15、合設(shè)備的定時(shí)固定(或已知)的場合n 查詢狀態(tài)傳送(條件傳送)查詢狀態(tài)傳送(條件傳送)v單片機(jī)在執(zhí)行輸入單片機(jī)在執(zhí)行輸入/ /輸出指令前,查詢輸出指令前,查詢I/OI/O接口狀態(tài)接口狀態(tài)端口的狀態(tài)。端口的狀態(tài)。v單片機(jī)工作任務(wù)較輕時(shí),此種方式可以較好地協(xié)調(diào)單片機(jī)工作任務(wù)較輕時(shí),此種方式可以較好地協(xié)調(diào)中、慢速中、慢速I/OI/O設(shè)備與單片機(jī)間的速度差異。設(shè)備與單片機(jī)間的速度差異。v缺點(diǎn):單片機(jī)必須執(zhí)行程序循環(huán)等待,不斷測試缺點(diǎn):單片機(jī)必須執(zhí)行程序循環(huán)等待,不斷測試I/OI/O設(shè)備的狀態(tài),花費(fèi)時(shí)間較多,降低了單片機(jī)的設(shè)備的狀態(tài),花費(fèi)時(shí)間較多,降低了單片機(jī)的運(yùn)行效率。運(yùn)行效率。n 中斷傳送中斷傳送vI
16、/OI/O設(shè)備處于主動(dòng)申請中斷的地位。設(shè)備處于主動(dòng)申請中斷的地位。I/OI/O設(shè)備處理數(shù)設(shè)備處理數(shù)據(jù)期間,單片機(jī)不必浪費(fèi)大量的時(shí)間查詢據(jù)期間,單片機(jī)不必浪費(fèi)大量的時(shí)間查詢I/OI/O設(shè)備設(shè)備的狀態(tài)。的狀態(tài)。v在中斷傳送方式中,單片機(jī)與在中斷傳送方式中,單片機(jī)與I/OI/O設(shè)備設(shè)備并行工作并行工作,工作效率大大提高。工作效率大大提高。n 直接存儲(chǔ)器存取傳送(直接存儲(chǔ)器存取傳送( DMADMA )方式)方式vDMA(Direct Memory Access) 采用專用硬件電路執(zhí)采用專用硬件電路執(zhí)行輸入行輸入/ /輸出,它使輸出,它使I/OI/O設(shè)備可直接與內(nèi)存進(jìn)行高速設(shè)備可直接與內(nèi)存進(jìn)行高速數(shù)據(jù)傳
17、送,不必經(jīng)過數(shù)據(jù)傳送,不必經(jīng)過CPUCPU執(zhí)行傳送程序。執(zhí)行傳送程序。v通常采用專門的硬件通常采用專門的硬件DMA控制器,也可采用具有控制器,也可采用具有DMA通道的單片機(jī)。通道的單片機(jī)。v適用場合適用場合l 外設(shè)和存儲(chǔ)器之間有大量的數(shù)據(jù)需要傳送外設(shè)和存儲(chǔ)器之間有大量的數(shù)據(jù)需要傳送l 外設(shè)的工作速度很快,而不是一般印象中的慢速工作外設(shè)的工作速度很快,而不是一般印象中的慢速工作 的外部設(shè)備的外部設(shè)備7.2.3 7.2.3 單片機(jī)擴(kuò)展單片機(jī)擴(kuò)展TTLTTL芯片的輸入芯片的輸入/ /輸出輸出 v 基本擴(kuò)展電路基本擴(kuò)展電路 80C51 80C51單片機(jī)將片外擴(kuò)展的單片機(jī)將片外擴(kuò)展的I/OI/O口片外口
18、片外RAMRAM統(tǒng)一編址,擴(kuò)展統(tǒng)一編址,擴(kuò)展的接口相當(dāng)于擴(kuò)展的片外的接口相當(dāng)于擴(kuò)展的片外RAMRAM單元。訪問外部接口,使用單元。訪問外部接口,使用MOVXMOVX指令。指令。【例例】根據(jù)上圖編寫程序段,完成將根據(jù)上圖編寫程序段,完成將8 8位撥動(dòng)開關(guān)的狀態(tài)反應(yīng)位撥動(dòng)開關(guān)的狀態(tài)反應(yīng)在在8 8個(gè)個(gè)LEDLED上。上。 MOV DPTR,#7FFFH MOV DPTR,#7FFFH LOOPLOOP:MOVX A,DPTRMOVX A,DPTR MOVX DPTR,A MOVX DPTR,A JMP LOOP JMP LOOP 選擇接口芯片時(shí),注意不同的芯片需要不同的控制方式。選擇接口芯片時(shí),注意
19、不同的芯片需要不同的控制方式。如觸發(fā)器如觸發(fā)器74LS27374LS273是脈沖的上升沿送數(shù)并鎖存;鎖存器是脈沖的上升沿送數(shù)并鎖存;鎖存器74LS37374LS373是高電平送數(shù),低電平鎖存。是高電平送數(shù),低電平鎖存。 注意接口的驅(qū)動(dòng)能力。注意接口的驅(qū)動(dòng)能力。74LS37374LS373的低電平驅(qū)動(dòng)能力是的低電平驅(qū)動(dòng)能力是24mA24mA;LEDLED數(shù)碼管的公共限流電阻可采用數(shù)碼管的公共限流電阻可采用6868,以獲得較好的亮度。,以獲得較好的亮度。v 驅(qū)動(dòng)驅(qū)動(dòng)LEDLED數(shù)碼管示例數(shù)碼管示例 81C55接口芯片及其應(yīng)用接口芯片及其應(yīng)用7.3.1 81C557.3.1 81C55的結(jié)構(gòu)及工作方
20、式的結(jié)構(gòu)及工作方式 v 81C5581C55的結(jié)構(gòu)及引腳的結(jié)構(gòu)及引腳 81C5581C55內(nèi)部包含內(nèi)部包含n SRAM SRAM:256256字節(jié)字節(jié)n 三個(gè)可編程并行口三個(gè)可編程并行口PAPA、PBPB、PCPC PA PA,PBPB為為8 8位位 PCPC為為6 6位位n 計(jì)數(shù)器:一個(gè)計(jì)數(shù)器:一個(gè)1414位二進(jìn)制減法位二進(jìn)制減法 計(jì)數(shù)器計(jì)數(shù)器n 8 8位命令寄存器(只允許寫入)位命令寄存器(只允許寫入) /8 /8位狀態(tài)寄存器(只允許讀出)位狀態(tài)寄存器(只允許讀出)v RESET RESET:復(fù)位信號(hào)輸入端(三個(gè):復(fù)位信號(hào)輸入端(三個(gè)I/OI/O口置口置v 成輸入工作方式)成輸入工作方式)
21、v CE CE:片選信號(hào):片選信號(hào)v IO/M IO/M:內(nèi)部端口和:內(nèi)部端口和SRAMSRAM選擇信號(hào)選擇信號(hào)v IO/M=1 IO/M=1,選擇內(nèi)部端口,選擇內(nèi)部端口v IO/M=0 IO/M=0,選擇,選擇SRAMSRAMv WR WR:寫選通信號(hào):寫選通信號(hào)v RD RD:讀選通信號(hào):讀選通信號(hào)v PA7 PA7PA0PA0、 PB7PB7PB0PB0、PC5PC5PC0PC0v TIMER IN TIMER IN:計(jì)數(shù)脈沖輸入端:計(jì)數(shù)脈沖輸入端v TIMER OUT TIMER OUT:計(jì)數(shù)器輸出端:計(jì)數(shù)器輸出端v AD0 AD0AD7AD7三態(tài)地址三態(tài)地址/ /數(shù)據(jù)線,可與數(shù)據(jù)線,
22、可與80C5180C51v P0 P0口連接口連接v ALE ALE:信號(hào)的下降沿將:信號(hào)的下降沿將AD0AD0AD7AD7線上的線上的8 8位位v 地址鎖存在內(nèi)部地址寄存器中地址鎖存在內(nèi)部地址寄存器中81C5581C55各引腳功能各引腳功能v 81C5581C55的內(nèi)部編址的內(nèi)部編址v內(nèi)部內(nèi)部RAMRAM地址為地址為00H00HFFHFFHv內(nèi)部端口地址內(nèi)部端口地址 AD7AD0選中寄存器選中寄存器A7 A6 A5 A4 A3 A2 A1 A0X X X X X 0 0 0命令命令/ /狀態(tài)寄存器狀態(tài)寄存器X X X X X 0 0 1PAPA口口X X X X X 0 1 0PBPB口口X
23、 X X X X 0 1 1PCPC口口X X X X X 1 0 0計(jì)數(shù)器低計(jì)數(shù)器低8 8位位X X X X X 1 0 1計(jì)數(shù)器高計(jì)數(shù)器高6 6位及計(jì)數(shù)器方式設(shè)置位位及計(jì)數(shù)器方式設(shè)置位v 工作方式設(shè)置及狀態(tài)字格式工作方式設(shè)置及狀態(tài)字格式v方式設(shè)置方式設(shè)置76543210TM2TM1IEBIEAPC2PC1PBPA地址:地址:000PAPA:A A口方向??诜较颉?-0-輸入;輸入;1-1-輸出輸出PBPB:B B口方向??诜较?。0-0-輸入;輸入;1-1-輸出輸出 命令命令/ /狀態(tài)寄存器狀態(tài)寄存器 工作方式由可編程命令寄存器內(nèi)容決定,狀態(tài)可由讀出狀工作方式由可編程命令寄存器內(nèi)容決定,狀態(tài)
24、可由讀出狀態(tài)寄存器內(nèi)容獲得。態(tài)寄存器內(nèi)容獲得。PC2PC1PC2PC1工作方式工作方式說說 明明0000ALT1ALT1A A、B B口為基本口為基本I/OI/O,C C口方向?yàn)檩斎肟诜较驗(yàn)檩斎?101ALT2ALT2A A、B B口為基本口為基本I/OI/O,C C口方向?yàn)檩敵隹诜较驗(yàn)檩敵?010ALT3ALT3A A口為選通口為選通I/OI/O,PC0PC0PC2PC2作為作為A A口的選通應(yīng)答口的選通應(yīng)答B(yǎng) B口為基本口為基本I/OI/O,PC3PC3PC5PC5方向?yàn)檩敵龇较驗(yàn)檩敵?111ALT4ALT4A A口為選通口為選通I/OI/O,PC0PC0PC2PC2作為作為A A口的選通
25、應(yīng)答口的選通應(yīng)答B(yǎng) B口為選通口為選通I/OI/O,PC3PC3PC5PC5作為作為B B口的選通應(yīng)答口的選通應(yīng)答PC1PC1、PC2PC2:C C口工作方式設(shè)置位口工作方式設(shè)置位 76543210TM2TM1IEBIEAPC2PC1PBPA地址:地址:000命令命令/ /狀態(tài)寄存器狀態(tài)寄存器IEAIEA:A A口的中斷允許設(shè)置位??诘闹袛嘣试S設(shè)置位。0-0-禁止;禁止;1-1-允許。允許。IEBIEB:B B口的中斷允許設(shè)置位??诘闹袛嘣试S設(shè)置位。0-0-禁止;禁止;1-1-允許。允許。TM2TM2、TM1TM1:計(jì)數(shù)器工作方式設(shè)置位:計(jì)數(shù)器工作方式設(shè)置位TM2TM1TM2TM1工作方式工作
26、方式說說 明明0000方式方式0 0空操作,對計(jì)數(shù)器無影響空操作,對計(jì)數(shù)器無影響0101方式方式1 1使計(jì)數(shù)器停止計(jì)數(shù)使計(jì)數(shù)器停止計(jì)數(shù)1010方式方式2 2減減1 1計(jì)數(shù)器回計(jì)數(shù)器回0 0后停止工作后停止工作1111方式方式3 3未計(jì)數(shù)時(shí),送完初值及方式后立即啟動(dòng)計(jì)數(shù);未計(jì)數(shù)時(shí),送完初值及方式后立即啟動(dòng)計(jì)數(shù);正在計(jì)數(shù)時(shí),重置初值后,減正在計(jì)數(shù)時(shí),重置初值后,減1 1計(jì)數(shù)器回計(jì)數(shù)器回0 0則則按新計(jì)數(shù)初值計(jì)數(shù)按新計(jì)數(shù)初值計(jì)數(shù)76543210TM2TM1IEBIEAPC2PC1PBPA地址:地址:000命令命令/ /狀態(tài)寄存器狀態(tài)寄存器v狀態(tài)字格式狀態(tài)字格式76543210TIMERINTEBBF
27、BINTRBINTEABFAINTRA地址:地址:000INTRXINTRX:中斷請求標(biāo)志:中斷請求標(biāo)志 INTRX=1,INTRX=1,有中斷請求有中斷請求 INTRX=0,INTRX=0,無中斷請求無中斷請求 BFXBFX:口緩沖器空:口緩沖器空/ /滿標(biāo)志滿標(biāo)志 BFX=1 BFX=1,口緩沖器已裝滿數(shù)據(jù),可由外設(shè)或單片機(jī)取走,口緩沖器已裝滿數(shù)據(jù),可由外設(shè)或單片機(jī)取走 BFX=0BFX=0,口緩沖器為空,可接收外設(shè)或單片機(jī)發(fā)送數(shù)據(jù),口緩沖器為空,可接收外設(shè)或單片機(jī)發(fā)送數(shù)據(jù) INTEXINTEX:口中斷允許:口中斷允許/ /禁止標(biāo)志禁止標(biāo)志 INTEX=1INTEX=1,允許口中斷;,允許
28、口中斷;INTEX=0INTEX=0,禁止口中斷,禁止口中斷TIMERTIMER:計(jì)數(shù)器計(jì)滿標(biāo)志:計(jì)數(shù)器計(jì)滿標(biāo)志 TIMER=1TIMER=1,計(jì)數(shù)器的原計(jì)數(shù)初值已計(jì)滿回零,計(jì)數(shù)器的原計(jì)數(shù)初值已計(jì)滿回零 TIMER=0 TIMER=0,計(jì)數(shù)器尚未計(jì)滿,計(jì)數(shù)器尚未計(jì)滿位位號(hào)號(hào)1514131211109876543210M2M1T13T12T11T10T9T8T7T6T5T4T3T2T1T0M2M1M2M1輸出方式輸出方式說說 明明0000方式方式0 0單方波輸出單方波輸出。計(jì)數(shù)期間輸出低電平,計(jì)數(shù)器回。計(jì)數(shù)期間輸出低電平,計(jì)數(shù)器回0 0后輸出高后輸出高電平。電平。0101方式方式1 1連續(xù)方波輸
29、出連續(xù)方波輸出。計(jì)數(shù)前半部分輸出高電平,后半部分輸。計(jì)數(shù)前半部分輸出高電平,后半部分輸出低電平。出低電平。1010方式方式2 2單脈沖輸出單脈沖輸出。計(jì)數(shù)器回。計(jì)數(shù)器回0 0后輸出一個(gè)單脈沖。后輸出一個(gè)單脈沖。1111方式方式3 3連續(xù)脈沖輸出(計(jì)數(shù)值自動(dòng)重裝)連續(xù)脈沖輸出(計(jì)數(shù)值自動(dòng)重裝)。計(jì)數(shù)器回。計(jì)數(shù)器回0 0后輸出單后輸出單脈沖,又自動(dòng)向計(jì)數(shù)器重裝原計(jì)數(shù)值,回脈沖,又自動(dòng)向計(jì)數(shù)器重裝原計(jì)數(shù)值,回0 0后又輸出單脈后又輸出單脈沖,如此循環(huán)。沖,如此循環(huán)。 硬件復(fù)位信號(hào)硬件復(fù)位信號(hào)RESETRESET的到達(dá),會(huì)使計(jì)數(shù)器停止工作,直至的到達(dá),會(huì)使計(jì)數(shù)器停止工作,直至由由C/SC/S寄存器再發(fā)
30、出啟動(dòng)計(jì)數(shù)器命令。寄存器再發(fā)出啟動(dòng)計(jì)數(shù)器命令。v計(jì)數(shù)器輸出模式計(jì)數(shù)器輸出模式81C55定時(shí)器格式及輸出方式 v選通選通I/OI/O方式的組態(tài)方式的組態(tài)STBASTBBSTBA工作方式工作方式PC5PC5PC4PC4PC3PC3PC2PC2PC1PC1PC0PC0ALT1ALT1輸入輸入ALT2ALT2輸出輸出ALT3ALT3輸出輸出BFABFAINTRAINTRAALT4ALT4BFBBFBINTRBINTRBBFABFAINTRAINTRA選通方式時(shí),選通方式時(shí),C C口的口的PC0PC0PC5PC5被定義為被定義為A A或或B B口選通口選通I/OI/O方方式的應(yīng)答和控制線式的應(yīng)答和控制線
31、 組態(tài)邏輯組態(tài)邏輯 單片機(jī)與顯示器和鍵盤的接口單片機(jī)與顯示器和鍵盤的接口7.4.1 81C557.4.1 81C55與單片機(jī)的接口與單片機(jī)的接口A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0I/OI/O口口0 0 1 1 0 0 0 0 0 0命令命令/ /狀態(tài)口狀態(tài)口0 0 1 1 0 0 1 0 0 1A A口口0 0 1 1 0 1 0 0 1 0B B口口0 0 1 1 0 1 1 0 1 1C C口口0 0 1 1 1
32、0 0 1 0 0計(jì)數(shù)器低計(jì)數(shù)器低8 8位位0 0 1 1 1 0 1 1 0 1計(jì)數(shù)器高計(jì)數(shù)器高6 6位及方式位及方式RAM地址:01111110 0000000000000000B(7E0000H) 01111110 1111111111111111B(7EFFFFH) I/O端口的地址( 7F0000H 7F05H7F05H): 【例例】若若A A口定義為基本輸入方式,口定義為基本輸入方式,B B口定義為基本輸出方式,口定義為基本輸出方式,計(jì)數(shù)器作為方波發(fā)生器,對計(jì)數(shù)器作為方波發(fā)生器,對80C3180C31輸入脈沖進(jìn)行輸入脈沖進(jìn)行2424分頻(注意分頻(注意81C5581C55的計(jì)數(shù)最高
33、頻率約為的計(jì)數(shù)最高頻率約為4MHz4MHz),),81C5581C55的的I/OI/O口初始化程序:口初始化程序:START: MOV DPTR,#7F04H ;START: MOV DPTR,#7F04H ;指向計(jì)數(shù)寄存器低指向計(jì)數(shù)寄存器低8 8位位 MOV A,#18H ; MOV A,#18H ;設(shè)計(jì)數(shù)器初值設(shè)計(jì)數(shù)器初值#18H#18H(24D24D) MOVX DPTR,A ; MOVX DPTR,A ;計(jì)數(shù)器寄存器低計(jì)數(shù)器寄存器低8 8位賦值位賦值 INC DPTR ; INC DPTR ;指向計(jì)數(shù)器寄存器高指向計(jì)數(shù)器寄存器高6 6位及方式位及方式位位 MOV A,#40H ; MO
34、V A,#40H ;計(jì)數(shù)器為連續(xù)方波方式計(jì)數(shù)器為連續(xù)方波方式 MOVX DPTR,A ; MOVX DPTR,A ;計(jì)數(shù)器寄存器高計(jì)數(shù)器寄存器高6 6位賦值位賦值 MOV DPTR,#7F00H ; MOV DPTR,#7F00H ;指向命令寄存器指向命令寄存器 MOV A,#0C2H ; MOV A,#0C2H ;設(shè)命令字設(shè)命令字 MOVX DPTR,A ; MOVX DPTR,A ;送命令字送命令字LEDLED的結(jié)構(gòu)和顯示原理的結(jié)構(gòu)和顯示原理靜態(tài)顯示方式靜態(tài)顯示方式動(dòng)態(tài)顯示方式動(dòng)態(tài)顯示方式動(dòng)態(tài)顯示的實(shí)現(xiàn)動(dòng)態(tài)顯示的實(shí)現(xiàn)7.4.2 LED7.4.2 LED數(shù)碼顯示器與單片機(jī)的接口數(shù)碼顯示器與單
35、片機(jī)的接口LEDLED數(shù)碼管的數(shù)碼管的結(jié)構(gòu)結(jié)構(gòu):共陽與共陰共陽與共陰 單片機(jī)系統(tǒng)擴(kuò)展單片機(jī)系統(tǒng)擴(kuò)展LEDLED數(shù)碼管時(shí)數(shù)碼管時(shí)多用多用共陽共陽LEDLED: :共陽數(shù)碼管每個(gè)段筆畫是用低電平共陽數(shù)碼管每個(gè)段筆畫是用低電平(“0”)(“0”)點(diǎn)亮的點(diǎn)亮的, ,要求驅(qū)要求驅(qū)動(dòng)功率很小;而共陰數(shù)碼管段筆畫是用高電平動(dòng)功率很??;而共陰數(shù)碼管段筆畫是用高電平(“0”)(“0”)點(diǎn)亮點(diǎn)亮的,要求驅(qū)動(dòng)功率較大。的,要求驅(qū)動(dòng)功率較大。 通常每個(gè)段筆畫要串一個(gè)數(shù)百歐姆的通常每個(gè)段筆畫要串一個(gè)數(shù)百歐姆的降壓電阻降壓電阻。公共公共陽陽極極h g f e d c b ah g f e d c b aa ab bc c
36、d dg ge ef fh h公共公共陰陰極極h g f e d c b ah g f e d c b aa ab bc cd dg ge ef fh hh g f ah g f a高電平點(diǎn)亮高電平點(diǎn)亮接高電平接高電平接地接地LEDLED數(shù)碼管的數(shù)碼管的譯碼譯碼:硬件譯碼與軟件譯碼硬件譯碼與軟件譯碼硬件譯碼特點(diǎn)硬件譯碼特點(diǎn): :采用專用的譯碼采用專用的譯碼/ /驅(qū)動(dòng)器件驅(qū)動(dòng)器件, ,驅(qū)動(dòng)功驅(qū)動(dòng)功率較大率較大; ;增加了硬件的開銷增加了硬件的開銷; ;軟件軟件編程簡單編程簡單; ;字型固字型固定定( (比如比如: :只有七段只有七段, ,只可譯數(shù)字只可譯數(shù)字, ,字型不好看字型不好看)。共陰共陰
37、LEDa ab bc cd dg ge ef fh hg gf fe ed dc cb b a aD DC CB BA ACD4511CD4511AT89C51AT89C5174LS48/CD451174LS48/CD4511是是“BCDBCD碼碼七段七段共陰共陰譯碼譯碼/ /驅(qū)動(dòng)驅(qū)動(dòng)”IC; IC; 74LS4774LS47是是“BCDBCD碼碼七段七段共陽共陽譯碼譯碼/ /驅(qū)動(dòng)驅(qū)動(dòng)”ICICLEDLED數(shù)碼管的譯碼:數(shù)碼管的譯碼:軟件譯碼軟件譯碼軟件譯碼特點(diǎn)軟件譯碼特點(diǎn): : 不用專用的譯碼不用專用的譯碼/ /驅(qū)動(dòng)器件,驅(qū)動(dòng)驅(qū)動(dòng)器件,驅(qū)動(dòng)功率較小功率較??;不增不增加加硬件的開銷;軟件硬件的
38、開銷;軟件編程較復(fù)雜編程較復(fù)雜;字型;字型靈活靈活( (比如:比如:有八段,只可譯多種字符,字型好看有八段,只可譯多種字符,字型好看)。共陽共陽LEDa ab bc cd dg ge ef fh h+5V+5VAT89C51AT89C51硬件譯碼特點(diǎn)硬件譯碼特點(diǎn): : 采用專用譯碼采用專用譯碼/ /驅(qū)動(dòng)器件,驅(qū)動(dòng)器件,驅(qū)動(dòng)功率較大;增加了硬驅(qū)動(dòng)功率較大;增加了硬件的開銷;軟件編程簡單;件的開銷;軟件編程簡單;字型固定字型固定( (比如:只有七比如:只有七段,只可譯數(shù)字,字型不段,只可譯數(shù)字,字型不好看好看)。LEDLED數(shù)碼管的軟件譯碼數(shù)碼管的軟件譯碼八段八段LEDLED數(shù)碼管數(shù)碼管段代碼編碼
39、表段代碼編碼表公共陽極公共陽極h g f e d c b ah g f e d c b aa ab bc cd dg ge ef fh h公共陰極公共陰極h g f e d c b ah g f e d c b aa ab bc cd dg ge ef fh hh g f ah g f a高電平點(diǎn)亮高電平點(diǎn)亮低電平點(diǎn)亮低電平點(diǎn)亮接高電平接高電平接地接地LEDLED數(shù)碼管的數(shù)碼管的顯示方式顯示方式:靜態(tài)與動(dòng)態(tài)靜態(tài)與動(dòng)態(tài)靜態(tài)顯示靜態(tài)顯示 A AB BCLKCLKh g f e d c b ah g f e d c b aCLRCLRA AB BCLKCLKCLRCLRA AB BCLKCLKCLR
40、CLR+5V+5VVCCVCCTxDTxDRxDRxD 89C51單片機(jī)單片機(jī)74LS16474LS16474LS164h g f e d c b ah g f e d c b ah g f e d c b ah g f e d c b a+5V+5V共陽共陽LED數(shù)碼管數(shù)碼管LEDLED數(shù)碼管數(shù)碼管靜態(tài)靜態(tài)顯示舉例顯示舉例有幾個(gè)有幾個(gè)LEDLED就要幾個(gè)就要幾個(gè)74LS16474LS164,但只要數(shù)據(jù)不變,但只要數(shù)據(jù)不變,送一次就保持住了,且不閃爍,編程十分簡單。送一次就保持住了,且不閃爍,編程十分簡單。要求:要求:根據(jù)上圖編寫通過串行口和根據(jù)上圖編寫通過串行口和74LS16474LS164
41、驅(qū)動(dòng)驅(qū)動(dòng)共共 陽陽LEDLED數(shù)碼管數(shù)碼管查表顯示的子程序。查表顯示的子程序。條件:條件:系統(tǒng)有系統(tǒng)有6 6個(gè)個(gè)LEDLED數(shù)碼管數(shù)碼管, ,待顯數(shù)據(jù)待顯數(shù)據(jù)(00H09H)(00H09H)已放在已放在35H30H35H30H單元中單元中( (分別對應(yīng)分別對應(yīng)十萬位十萬位個(gè)位個(gè)位) ),DSPLYDSPLY:MOV DPTR, #TABLE :MOV DPTR, #TABLE ; ;共陽共陽LEDLED數(shù)碼管譯碼數(shù)碼管譯碼表首址表首址 MOV R0MOV R0,#30H #30H ; ;待顯數(shù)據(jù)緩沖區(qū)的待顯數(shù)據(jù)緩沖區(qū)的個(gè)位個(gè)位地址地址REDOREDO:MOV AMOV A, R0 R0 ; ;
42、通過通過R0R0實(shí)現(xiàn)寄存器實(shí)現(xiàn)寄存器間接尋址間接尋址 MOVC A, A+DPTR MOVC A, A+DPTR ; ;查表查表 MOV SBUF, A MOV SBUF, A ; ;經(jīng)串行口經(jīng)串行口發(fā)送發(fā)送到到74LS16474LS164 JNB TI, $ JNB TI, $ ; ;查詢查詢送完一個(gè)字節(jié)的第送完一個(gè)字節(jié)的第8 8位?位? CLR TI CLR TI ; ;為下一字節(jié)發(fā)送為下一字節(jié)發(fā)送作準(zhǔn)備作準(zhǔn)備 INC R0 INC R0 ;R0;R0指向下一個(gè)指向下一個(gè)數(shù)據(jù)緩沖單元數(shù)據(jù)緩沖單元 CJNE R0CJNE R0,#36H#36H,REDO REDO ; ;判斷判斷是否發(fā)完是否
43、發(fā)完6 6個(gè)數(shù)?個(gè)數(shù)? RET RET ; ;發(fā)完發(fā)完6 6個(gè)數(shù)就個(gè)數(shù)就返回返回TABLETABLE:DB 0C0H,0F9H,0A4H,0B0H,99H DB 0C0H,0F9H,0A4H,0B0H,99H ; ;共陽共陽LEDLED譯碼表譯碼表 DB 92H, 82H, 0F8H, 80H,90HDB 92H, 82H, 0F8H, 80H,90H動(dòng)態(tài)顯示動(dòng)態(tài)顯示 動(dòng)態(tài)顯示基本原理電路的接法決定了必須采用電路的接法決定了必須采用逐位掃描顯示方式逐位掃描顯示方式。即從即從段選口段選口送出某位送出某位LEDLED的字型碼,然后選通該位的字型碼,然后選通該位LEDLED,并保,并保持一段延時(shí)時(shí)間
44、。然后選通下一位,直到所有位掃描完。持一段延時(shí)時(shí)間。然后選通下一位,直到所有位掃描完。1.字型碼通常通過查表指令MOVC來求得2.換位顯示時(shí)通常要加一段程序使所有的LED全滅AD012PA021AD113PA122AD214PA223AD315PA324AD416PA425AD517PA526AD618PA627AD719PA728PB 029C E8PB 130R D9PB 231W R10PB 332IO/M7PB 433ALE11PB 534PB 635PB 736TM R OUT6PC 037PC 138TM R IN3PC 239PC 31PC 42R ESET4PC 558155e
45、dcdpbafg70123456PB0PB7PA 0PA 72008LEDLED數(shù)碼管數(shù)碼管動(dòng)態(tài)動(dòng)態(tài)顯示顯示PA5 PA5 PA4PA4PA3PA3PA2PA2PA1PA1PA0PA0PB7 PB7 PB6 PB6 PB5 PB5 PB4 PB4 PB3 PB3 PB2 PB2 PB1 PB1 PB0PB07406 OC7406 OC門門 X 3X 3上拉上拉電阻電阻1414+5V+5V8155工作原理工作原理:從從PBPB口送段代碼口送段代碼,PA,PA口送位選信號(hào)口送位選信號(hào)。段碼雖同時(shí)。段碼雖同時(shí)到達(dá)到達(dá) 6 6個(gè)個(gè)LEDLED,但,但一次僅一個(gè)一次僅一個(gè)LEDLED被選中被選中。利用。
46、利用“視覺暫視覺暫留留”,每送一個(gè)字符并選中相應(yīng)位線,延時(shí)一會(huì)兒,每送一個(gè)字符并選中相應(yīng)位線,延時(shí)一會(huì)兒, ,再送再送/ /選下一個(gè)選下一個(gè)循環(huán)掃描循環(huán)掃描即可。即可。共陰共陰 數(shù)碼管數(shù)碼管位位選選線線段段代代碼碼PA5 PA5 PA4PA4PA3PA3PA2PA2PA1PA1PA0PA0PB7 PB7 PB6 PB6 PB5 PB5 PB4 PB4 PB3 PB3 PB2 PB2 PB1 PB1 PB0PB07406 OC7406 OC門門+5V+5V8155位位選選線線段段代代碼碼要求要求:此處為共陰數(shù)碼管,此處為共陰數(shù)碼管,PBPB口送段代碼,口送段代碼,PAPA口送位選信號(hào)??谒臀贿x信
47、號(hào)。通過查表實(shí)現(xiàn)動(dòng)態(tài)顯示。通過查表實(shí)現(xiàn)動(dòng)態(tài)顯示。條件條件:待顯數(shù)據(jù)待顯數(shù)據(jù)(00H09H)(00H09H)已放在已放在: : 65H60H65H60H單元中單元中( (分別對分別對應(yīng)應(yīng)十萬位十萬位個(gè)位個(gè)位) )說明說明:由于用了由于用了反相驅(qū)動(dòng)器反相驅(qū)動(dòng)器74067406,要用共陽譯碼表。,要用共陽譯碼表。共陰共陰 數(shù)碼管數(shù)碼管上拉上拉電阻電阻14147406 OC7406 OC門門 X 3X 3+5V+5V(65H) (64H) (63H) (62H) (61H) (60H)十萬十萬 萬位萬位 千位千位 百位百位 十位十位 個(gè)位個(gè)位數(shù)據(jù)緩沖區(qū)數(shù)據(jù)緩沖區(qū) / / 顯示緩沖區(qū)顯示緩沖區(qū)PBPB口
48、口送段送段代碼,代碼,PAPA口口送位選送位選信號(hào)。信號(hào)。待顯數(shù)據(jù)待顯數(shù)據(jù)已經(jīng)放在已經(jīng)放在: : 65H60H65H60H單元單元( (分別分別對應(yīng)對應(yīng)十萬十萬位位個(gè)位個(gè)位) )使用共陽使用共陽譯碼表譯碼表。動(dòng)態(tài)顯示程序流程圖動(dòng)態(tài)顯示程序流程圖 81C55的PA口、PB口,工作在基本輸出方式。PB口輸出顯示代碼,PA口輸出位選碼。設(shè)PA口的地址為7F01H,PB口的地址為7F02H,控制字 寄 存 器 的 地 址 為7F00H,顯示緩沖區(qū)為60H65H。程序清單:程序清單:START:MOV A , #03H ;對;對81C55初始化初始化MOV DPTR , #7F00H;8155C命令口地
49、址命令口地址MOVX DPTR , AMOV R0 , #60H ;置顯示緩沖區(qū)首地址;置顯示緩沖區(qū)首地址 MOV R2 , #01H ; 置位選碼初值置位選碼初值MOV A , R2LOOP:MOV DPTR , #7F01H ;81C55 A口地址口地址MOVX DPTR , A ;位碼從;位碼從A口輸出口輸出INCDPTRMOV A , R0 ;待顯示數(shù)據(jù)送;待顯示數(shù)據(jù)送AADDA , #0DH ;形成查表的偏移地址;形成查表的偏移地址MOVC A , A+PC DIR: MOVXDPTR , A ;B口輸出段碼口輸出段碼 ACLLDELAY ;延時(shí);延時(shí) INCR0 ;修改數(shù)據(jù)指針;修
50、改數(shù)據(jù)指針 MOVA , R2 JBACC.5 , LOOP1 ;判斷;判斷6位是否顯示完畢位是否顯示完畢 RL A ;沒顯示完,位碼左移;沒顯示完,位碼左移 MOVR2 , A ;位碼暫存;位碼暫存 AJMPLOOP ;轉(zhuǎn)回,顯示下一個(gè)數(shù)碼;轉(zhuǎn)回,顯示下一個(gè)數(shù)碼LOOP1:RET ;發(fā)完;發(fā)完6個(gè)數(shù)就返回個(gè)數(shù)就返回DB0C0H , 0F9H , 0A4H , 0B0H , 66H DB92H , 82H , 0F8H , 80H , 90H DB88H , 83H , 0C6H , 0A1H,86H,8EHDELAY:MOV R7 , #04H ;延時(shí)子程序;延時(shí)子程序DELAY1: MOV
51、 R6 , #0FFHDELAY2: DJNZ R6 , DELAY2 DJNZ R7 , DELAY1RET按鍵的特點(diǎn)及輸入原理按鍵的特點(diǎn)及輸入原理獨(dú)立式按鍵獨(dú)立式按鍵矩陣式按鍵矩陣式按鍵7.4.2 7.4.2 非編碼鍵盤與單片機(jī)的接口非編碼鍵盤與單片機(jī)的接口v 按鍵的特點(diǎn)及輸入原理按鍵的特點(diǎn)及輸入原理v 鍵輸入原理鍵輸入原理v 通過按鍵的接通與斷開,產(chǎn)生兩種相反的邏輯狀態(tài)通過按鍵的接通與斷開,產(chǎn)生兩種相反的邏輯狀態(tài)v低電平低電平“0 0”與高電平與高電平“1 1”。v 鍵功能的實(shí)現(xiàn)鍵功能的實(shí)現(xiàn)v 對于一組鍵或一個(gè)鍵盤,需通過接口電路與單片機(jī)相對于一組鍵或一個(gè)鍵盤,需通過接口電路與單片機(jī)相
52、連。可采用連??刹捎貌樵儾樵兓蚧蛑袛嘀袛喾绞綔y試有無鍵按下,再確定是哪方式測試有無鍵按下,再確定是哪一個(gè)鍵按下,將該鍵號(hào)送入累加器一個(gè)鍵按下,將該鍵號(hào)送入累加器ACCACC,然后判斷是數(shù)字鍵,然后判斷是數(shù)字鍵還是功能鍵,若是數(shù)字鍵,則將鍵號(hào)對應(yīng)的數(shù)字送入相關(guān)還是功能鍵,若是數(shù)字鍵,則將鍵號(hào)對應(yīng)的數(shù)字送入相關(guān)輸入緩沖區(qū);若是功能鍵,則通過跳轉(zhuǎn)指令轉(zhuǎn)入執(zhí)行該鍵輸入緩沖區(qū);若是功能鍵,則通過跳轉(zhuǎn)指令轉(zhuǎn)入執(zhí)行該鍵的功能程序,執(zhí)行完后再返回主程序。的功能程序,執(zhí)行完后再返回主程序。 n按鍵識(shí)別按鍵識(shí)別 是否有鍵按下。是否有鍵按下。n鍵抖動(dòng)及消除鍵抖動(dòng)及消除 機(jī)械按鍵抖動(dòng)時(shí)間在機(jī)械按鍵抖動(dòng)時(shí)間在5ms5m
53、s10ms10ms之間。之間。 v 鍵盤接口需要解決的問題鍵盤接口需要解決的問題 硬件方案硬件方案雙穩(wěn)態(tài)去抖電路雙穩(wěn)態(tài)去抖電路 軟件方案軟件方案延時(shí)延時(shí)10ms10ms20ms20ms后再次判斷后再次判斷消除方法:消除方法:v 獨(dú)立式按鍵獨(dú)立式按鍵8 0 3 1P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7Vc c接口電路原理原理-當(dāng)任何一個(gè)鍵被按下時(shí),與其相連的輸入線被當(dāng)任何一個(gè)鍵被按下時(shí),與其相連的輸入線被置成置成 “ “0”0”,平時(shí)該線為,平時(shí)該線為“1”1”。鍵鍵處處理理程程序序ORG 2000HSTART:MOV A ,#0FFH ;先置;先置P1口為口為“1”M
54、OV P1,AMOV A,P1 ;輸入鍵狀態(tài);輸入鍵狀態(tài), P0F ;查詢;查詢0號(hào)鍵號(hào)鍵, P1F ;查詢;查詢1號(hào)鍵號(hào)鍵, P2F ;查詢;查詢2號(hào)鍵號(hào)鍵, P3F ;查詢;查詢3號(hào)鍵號(hào)鍵, P4F ;查詢;查詢4號(hào)鍵號(hào)鍵, P5F ;查詢;查詢5號(hào)鍵號(hào)鍵, P6F ;查詢;查詢6號(hào)鍵號(hào)鍵, P7F ;查詢;查詢7號(hào)鍵號(hào)鍵LJMP STARTP0F:LJMP PROM0 ;入口地址表;入口地址表P1F:LJMP PROM1P6F:LJMP PROM6P7F:LJMP PROM7PROM0:. ;0號(hào)鍵功能程序號(hào)鍵功能程序PROM7:. ;7號(hào)鍵功能程序號(hào)鍵功能程序 . LJMP START
55、 ;0號(hào)鍵處理完返回鍵盤掃描號(hào)鍵處理完返回鍵盤掃描 LJMP START ;7號(hào)鍵處理完返回鍵盤掃描號(hào)鍵處理完返回鍵盤掃描 .資源分配:資源分配:用用P1P1口的低口的低3 3位檢測位檢測3 3個(gè)按鍵的輸入,為個(gè)按鍵的輸入,為1 1則表示按鍵則表示按鍵沒有按下,為沒有按下,為0 0則表示相應(yīng)按鍵被按下。則表示相應(yīng)按鍵被按下。流程圖:流程圖:【例例】用用P1P1口檢測三個(gè)按鍵的狀態(tài)并完成相應(yīng)的功能??跈z測三個(gè)按鍵的狀態(tài)并完成相應(yīng)的功能。 ORG 0000HKB: MOV P1,#0FFH MOV A,P1 CPL A ANL A,#0FH JZ KBACK LCALL D10MS MOV A,P
56、1 CPL A ANL A,#0FH JZ KBACK CJNE A,#01H,KB01 LCALL PGM1 SJMP KBACKKB01: CJNE A,#02H,KB02 LCALL PGM2 SJMP KBACKKB02: CJNE A,#04H,KB LCALL PGM3KBACK: LJMP KB END按三個(gè)按鍵中的任一鍵按三個(gè)按鍵中的任一鍵都對應(yīng)一個(gè)特定功能。都對應(yīng)一個(gè)特定功能。v 獨(dú)立式鍵盤與獨(dú)立式鍵盤與LEDLED顯示示例顯示示例【例例】數(shù)據(jù)端與數(shù)據(jù)端與P0P0口口正序正序連接。編寫程序,分別實(shí)現(xiàn)功能:連接。編寫程序,分別實(shí)現(xiàn)功能:上電后數(shù)碼管顯示上電后數(shù)碼管顯示“P”P”
57、,按下任何鍵后,顯示從,按下任何鍵后,顯示從“0”0”開始開始每隔每隔1 1秒加秒加1 1,加至,加至“F”F”后,數(shù)碼管顯示后,數(shù)碼管顯示“P”P”,進(jìn)入等待按,進(jìn)入等待按鍵狀態(tài)。鍵狀態(tài)。 TEMP EQU 30H TEMP EQU 30HORG 0000HORG 0000HJMP STARTJMP START ORG 0100H ORG 0100HSTART:MOV SP,#5FHSTART:MOV SP,#5FH MOV P0,#8CH ; MOV P0,#8CH ;顯示顯示PPMOV P3,#0FFHMOV P3,#0FFHNOKEY:MOV A,P3NOKEY:MOV A,P3CPL
58、 ACPL AJZ NOKEY ;JZ NOKEY ;無鍵按下無鍵按下MOV TEMP,P3 ;MOV TEMP,P3 ;有鍵按下有鍵按下CALL D10msCALL D10msMOV A,P3MOV A,P3CJNE A,TEMP,NOKEY;CJNE A,TEMP,NOKEY;去抖去抖MOV R7,#16MOV R7,#16MOV R2,#0MOV R2,#0LOOP:MOV A,R2LOOP:MOV A,R2 MOV DPTR,#CODE_P0 MOV DPTR,#CODE_P0 MOVC A,A+DPTR MOVC A,A+DPTR MOV P0,A MOV P0,A INC R2 I
59、NC R2 SETB RS0 ; SETB RS0 ;切換組切換組 CALL D_1S CALL D_1S CLR RS0 CLR RS0 DJNZ R7,LOOP DJNZ R7,LOOP JMP START JMP START D_1S D_1S:(子程序):(子程序)D10msD10ms:(子程序):(子程序) CODE_P0:DB 0C0H,0F9H,0A4H,0B0HCODE_P0:DB 0C0H,0F9H,0A4H,0B0H DB 99H,92H,82H,0F8H DB 99H,92H,82H,0F8H DB 80H,90H,88H,83H, DB 80H,90H,88H,83H,
60、 DB 0C6H,0A1H,86H,8EH DB 0C6H,0A1H,86H,8EH 有時(shí)為方便走線而采用逆序連接,顯示段碼要進(jìn)行調(diào)整:有時(shí)為方便走線而采用逆序連接,顯示段碼要進(jìn)行調(diào)整:CODE_P2:DB 03H,9FH,25H,0DH,99H,49H,40H,1FHCODE_P2:DB 03H,9FH,25H,0DH,99H,49H,40H,1FH DB 01H,09H,11H,0C1H,63H,85H,61H,71H DB 01H,09H,11H,0C1H,63H,85H,61H,71HCODE_P0:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8HCODE
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度國際船舶租賃合同環(huán)境保護(hù)責(zé)任與履約評估3篇
- 二零二五版?zhèn)€人住房抵押貸款合同2篇
- 2025年度家具租賃服務(wù)合同標(biāo)準(zhǔn)文本4篇
- 2025年肉類加工企業(yè)鮮豬肉原料采購合同3篇
- 2025年度生態(tài)農(nóng)業(yè)園區(qū)商鋪?zhàn)赓U合同規(guī)范2篇
- 2024租賃公司設(shè)備租賃與購買合同
- 二零二五版高壓電纜敷設(shè)電力施工勞務(wù)合同范本2篇
- 二零二五年度礦產(chǎn)品出口與國內(nèi)銷售合同3篇
- 2025年度運(yùn)動(dòng)服飾租賃服務(wù)合同樣本3篇
- 2025年度農(nóng)機(jī)作業(yè)租賃與農(nóng)村土地流轉(zhuǎn)服務(wù)合同
- 期末綜合試卷(試題)2024-2025學(xué)年人教版數(shù)學(xué)五年級上冊(含答案)
- 2024ESC心房顫動(dòng)管理指南解讀-第一部分
- 保定市縣級地圖PPT可編輯矢量行政區(qū)劃(河北省)
- 新蘇教版科學(xué)六年級下冊全冊教案(含反思)
- 供方注冊指南-ZTE
- 真心英雄合唱歌詞
- 旅游感知形象研究綜述 論文
- 如何提高辦文辦會(huì)辦事能力
- GB_T 37494-2019 糧油機(jī)械 軋坯機(jī)(高清版)
- 【校本教材】《身邊的化學(xué)》高中化學(xué)校本課程
- 產(chǎn)后訪視技術(shù)規(guī)范
評論
0/150
提交評論