教學(xué)課件PPT MCS51單片機(jī)IO接口技術(shù)
《教學(xué)課件PPT MCS51單片機(jī)IO接口技術(shù)》由會(huì)員分享,可在線閱讀,更多相關(guān)《教學(xué)課件PPT MCS51單片機(jī)IO接口技術(shù)(60頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、第九章第九章 MCS-51單片機(jī)單片機(jī)I/O接口技術(shù)接口技術(shù)MCS-51單片機(jī)具有四個(gè)并行單片機(jī)具有四個(gè)并行8位位I/O口(即口(即P0, P1, P2, P3),),原理上這四個(gè)原理上這四個(gè)I/O口均可用做雙向并行口均可用做雙向并行I/O接口,但在實(shí)際應(yīng)接口,但在實(shí)際應(yīng)用中,可提供給用戶使用的用中,可提供給用戶使用的I/O口只有口只有P1口。口。在單片機(jī)的在單片機(jī)的I/O口線不夠用的情況下,可以借助外部器件對(duì)口線不夠用的情況下,可以借助外部器件對(duì)I/O口進(jìn)行擴(kuò)展??少Y選用的器件很多,方案也有多種。口進(jìn)行擴(kuò)展。可資選用的器件很多,方案也有多種。訪問(wèn)擴(kuò)展訪問(wèn)擴(kuò)展I/O口的方法與訪問(wèn)數(shù)據(jù)存儲(chǔ)器完全
2、相同,使用相口的方法與訪問(wèn)數(shù)據(jù)存儲(chǔ)器完全相同,使用相 同的指令,所有擴(kuò)展的同的指令,所有擴(kuò)展的I/O口與片外數(shù)據(jù)存儲(chǔ)器統(tǒng)一編址??谂c片外數(shù)據(jù)存儲(chǔ)器統(tǒng)一編址。9.1 可編程并行可編程并行I/O接口芯片擴(kuò)展接口芯片擴(kuò)展 9.2 MCS-51單片機(jī)與鍵盤(pán)的接口技術(shù)單片機(jī)與鍵盤(pán)的接口技術(shù)9.3 MCS-51單片機(jī)與顯示器的接口技術(shù)單片機(jī)與顯示器的接口技術(shù) 9.1 可編程并行可編程并行I/O接口芯片擴(kuò)展接口芯片擴(kuò)展 可編程可編程I/OI/O接口芯片的特點(diǎn):適應(yīng)多種功能需求,使用接口芯片的特點(diǎn):適應(yīng)多種功能需求,使用靈活,可擴(kuò)展多個(gè)并行靈活,可擴(kuò)展多個(gè)并行I/OI/O口,可以編程設(shè)定為輸入或輸出口,可以編
3、程設(shè)定為輸入或輸出口,應(yīng)用非常廣泛??冢瑧?yīng)用非常廣泛。 1可編程并行口可編程并行口8255A芯片芯片 Intel 8255AIntel 8255A芯片是通用可編程并行接口電路,廣泛應(yīng)用芯片是通用可編程并行接口電路,廣泛應(yīng)用于單片機(jī)擴(kuò)展并行于單片機(jī)擴(kuò)展并行I/OI/O口??凇?它具有它具有3 3個(gè)個(gè)8 8位并行口位并行口PA, PBPA, PB和和PCPC,一個(gè),一個(gè)8 8位的數(shù)據(jù)口位的數(shù)據(jù)口D0D0D7 D7 ,PCPC口分高口分高4 4位和低位和低4 4位。高位。高4 4位可與位可與PAPA口合為一組口合為一組(A(A組組),),低低4 4位可與位可與PBPB口合為一組口合為一組(B(B組組
4、) ) ,PCPC口可按位置位口可按位置位/ /復(fù)位。復(fù)位。4040條引條引腳,腳,DIPDIP封裝。封裝。8255A引腳信號(hào)圖 (1)A口、口、B口和口和C口??凇口、口、B口和口和C口均為口均為8位位I/O數(shù)據(jù)口,數(shù)據(jù)口,但結(jié)構(gòu)上略有差別。但結(jié)構(gòu)上略有差別。A口由一個(gè)口由一個(gè)8位的數(shù)據(jù)輸出緩沖位的數(shù)據(jù)輸出緩沖/鎖存器鎖存器和一個(gè)和一個(gè)8位的數(shù)據(jù)輸入緩沖位的數(shù)據(jù)輸入緩沖/鎖存器組成。鎖存器組成。B口由一個(gè)口由一個(gè)8位的數(shù)位的數(shù)據(jù)輸出緩沖據(jù)輸出緩沖/鎖存器和一個(gè)鎖存器和一個(gè)8位的數(shù)據(jù)輸入緩沖器組成。三個(gè)位的數(shù)據(jù)輸入緩沖器組成。三個(gè)端口都可以和外設(shè)相連,分別傳送外設(shè)的輸入端口都可以和外設(shè)相連,
5、分別傳送外設(shè)的輸入/輸出數(shù)據(jù)或控輸出數(shù)據(jù)或控制信息。制信息。 (2) A、B組控制電路。這是兩組根據(jù)組控制電路。這是兩組根據(jù)CPU的命令字控制的命令字控制8255工作方式的電路。工作方式的電路。A組控制組控制A口及口及C口的高口的高4位,位,B組控制組控制B口及口及C口的低口的低4位。位。 (3) 數(shù)據(jù)緩沖器。這是一個(gè)雙向三態(tài)數(shù)據(jù)緩沖器。這是一個(gè)雙向三態(tài)8位的驅(qū)動(dòng)口,用于位的驅(qū)動(dòng)口,用于和單片機(jī)的數(shù)據(jù)總線相連,傳送數(shù)據(jù)或控制信息。和單片機(jī)的數(shù)據(jù)總線相連,傳送數(shù)據(jù)或控制信息。 (4) 讀讀/寫(xiě)控制邏輯。這部分電路接收寫(xiě)控制邏輯。這部分電路接收MCS-51送來(lái)的讀送來(lái)的讀/寫(xiě)寫(xiě)命令和選口地址,用于
6、控制命令和選口地址,用于控制8255的操作。的操作。分三部分:分三部分: 總線接口部分;內(nèi)部邏輯部分總線接口部分;內(nèi)部邏輯部分 ;外設(shè)接口部分外設(shè)接口部分 (1)總線接口部分)總線接口部分 /CS 片選線片選線A1、A0 端口選擇線(選片內(nèi)四個(gè)端口寄存器)端口選擇線(選片內(nèi)四個(gè)端口寄存器) /RD 讀信號(hào)線讀信號(hào)線 /WR 寫(xiě)信號(hào)線寫(xiě)信號(hào)線 (2)內(nèi)部邏輯部分)內(nèi)部邏輯部分PAPC7 PC4PBPC3 PC0輸輸入入A組控制電路組控制電路控制寄存器控制控制寄存器控制8255A工作方式工作方式B組控制電路組控制電路(3)外設(shè)接口部分)外設(shè)接口部分可由編程決定三個(gè)端口的功能可由編程決定三個(gè)端口的功
7、能 輸出輸出 輸入輸入 其它其它A口口 8位鎖存位鎖存 / 緩沖緩沖 8位鎖存位鎖存/緩沖緩沖 雙向雙向B口口 8位鎖存位鎖存 / 緩沖緩沖 8位緩沖位緩沖C口口 8位鎖存位鎖存 / 緩沖緩沖 8位緩沖位緩沖 可分成兩組分別作可分成兩組分別作A 口、口、B口的控制口的控制/ /聯(lián)絡(luò)線聯(lián)絡(luò)線 2、8255A的端口操作的端口操作 A1 A0 選中選中0 0 PA口口0 1 PB口口1 0 PC口口1 1 控制控制 寄存寄存 器器 二、二、8255A的工作方式及方式選擇的工作方式及方式選擇1、8255A的工作方式的工作方式(1)方式)方式0 基本輸入基本輸入/輸出方式輸出方式 A口、口、B口、口、C
8、口均有此方式,無(wú)需選通,是單片機(jī)口均有此方式,無(wú)需選通,是單片機(jī) 與外部設(shè)備之間的直接數(shù)據(jù)通道,適用于無(wú)條件傳與外部設(shè)備之間的直接數(shù)據(jù)通道,適用于無(wú)條件傳 送送隨時(shí)準(zhǔn)備好的外設(shè),如鍵盤(pán)、顯示器等。隨時(shí)準(zhǔn)備好的外設(shè),如鍵盤(pán)、顯示器等。(2)方式)方式1 選通輸入選通輸入/輸出方式輸出方式 PA口、口、PB口作為數(shù)據(jù)輸入口作為數(shù)據(jù)輸入/輸出口,輸出口, PC口專(zhuān)為口專(zhuān)為PAPA口,口,PBPB口作選通聯(lián)絡(luò)信號(hào)線口作選通聯(lián)絡(luò)信號(hào)線, ,適用于查適用于查 詢(xún)或中斷方式的數(shù)據(jù)傳送。詢(xún)或中斷方式的數(shù)據(jù)傳送。 (3)方式)方式2 雙向數(shù)據(jù)輸入雙向數(shù)據(jù)輸入/輸出方式輸出方式 僅僅PA口有此方式??谟写朔绞健
9、C3 PC7此時(shí)作聯(lián)絡(luò)線此時(shí)作聯(lián)絡(luò)線, PB口可以是方式口可以是方式0;也可以是方式;也可以是方式1(PC0 PC1作聯(lián)絡(luò)線)。作聯(lián)絡(luò)線)。 2、8255A的方式控制字的方式控制字 用編程方法向用編程方法向8255A的控制口寫(xiě)控制字,可決定它的工作的控制口寫(xiě)控制字,可決定它的工作 方式。方式。(1 1)工作方式控制字)工作方式控制字 (2 2)PCPC口置位口置位/ /復(fù)位控制字復(fù)位控制字 0 D6 D5 D4 D3 D2 D1 D0“0” 標(biāo)志位。標(biāo)志位。D6、D5、D4 不使用位。不使用位。 D3、D2、D1 位選擇位,位選擇位,000 111 分別對(duì)應(yīng)分別對(duì)應(yīng)PC7 PC0。 D0 位狀
10、態(tài)位,位狀態(tài)位,1 置位,置位,0 復(fù)位。復(fù)位。 三、單片機(jī)和三、單片機(jī)和8255A的連接及應(yīng)用的連接及應(yīng)用 單片機(jī)單片機(jī) 8255A A0 A0 A1 A1 A15 A2中任一線中任一線 /CS P0 D7 D0 /RD /RD /WR /WR RST RESET 上圖中,地址線連接采用線選法。上圖中,地址線連接采用線選法。 8255A的地址分布:的地址分布: A15 A14 A13A8 A7A1 A0 0 0 0 0 0 0 0 0000HPA 0 1 0001HPB 1 0 0002HPC 1 1 0003H控制口控制口 或或 0 1 1 1 1 0 0 7FFCHPA 0 1 7FFD
11、HPB 1 0 7FFEHPC 1 1 7FFFH控制控制 口口未用地址線為未用地址線為0未用地址線為未用地址線為1 例、設(shè)單片機(jī)例、設(shè)單片機(jī)8031與微型打印機(jī)之間的數(shù)據(jù)傳送采用查詢(xún)方與微型打印機(jī)之間的數(shù)據(jù)傳送采用查詢(xún)方式。要求將存放在式。要求將存放在8031單片機(jī)內(nèi)單片機(jī)內(nèi)RAM中以中以30H為首地址的為首地址的64個(gè)連續(xù)單元中的內(nèi)容打印輸出,試編程。個(gè)連續(xù)單元中的內(nèi)容打印輸出,試編程。 P2.7 P0 ALE /RD /WR RST /EA1D 8D 2Q 1QG /OC/CS PA0PA7A1A0 PC0 PC7D0 D7/RD/WRRESETDB0DB7BUSY/STB8解解:因?yàn)椋?/p>
12、因?yàn)镻C0連接連接BUSY,所以,所以,PC3 PC0為輸入為輸入 又因又因PC7連接連接 /STB ,所以,所以PC7 PC4為輸出,為輸出, /STB = /DATA STROBE數(shù)據(jù)選通信號(hào)。數(shù)據(jù)選通信號(hào)。 作用是通知打印機(jī),作用是通知打印機(jī),8255A要給它傳數(shù)據(jù)。要給它傳數(shù)據(jù)。 PA口輸出,口輸出,PB口未用。口未用。 故故 8255A的控制字可設(shè)為:的控制字可設(shè)為:1 0 0 0 0 0 0 1B = 81H 假設(shè)未用到地址線均為假設(shè)未用到地址線均為 1,則:,則: PA口地址:口地址:7FFCH PB口地址:口地址:7FFDH PC口地址:口地址:7FFEH 控制口:控制口: 7
13、FFFH 程序:程序: ORG 1000HORG 1000HPRINT:MOV DPTR,#7FFFH ;控制口地址;控制口地址 MOV A,#81H ;控制字;控制字 MOVX DPTR,A ;寫(xiě)入控制字;寫(xiě)入控制字 MOV R1,#30H ;數(shù)據(jù)指針;數(shù)據(jù)指針 MOV R2,#40H ;64個(gè)數(shù)個(gè)數(shù) NEXT: MOV DPTR,#7FFEH ;PC口地址口地址 MOV A, #80H ;使;使PC7為高電平為高電平 MOVX DPTR,A ;輸出;輸出/STB為高電平為高電平,不準(zhǔn)備送數(shù),不準(zhǔn)備送數(shù) WAIT: MOVX A,DPTR ;查詢(xún)打印機(jī)狀態(tài);查詢(xún)打印機(jī)狀態(tài) JB ACC.0,
14、 WAIT ;若;若PC0即即BUSY = 1忙,則等待忙,則等待 MOV DPTR , #7FFCH ;若;若BUSY = 0空閑,則指向空閑,則指向PA口口 MOV A , R1 MOVX DPTR , A ;輸出數(shù)據(jù);輸出數(shù)據(jù) MOV DPTR , #7FFEH ;指向;指向PC口口 MOV A , #00H MOVX DPTR , A ;/STB信號(hào)置低,通知打印機(jī)數(shù)據(jù)輸出。信號(hào)置低,通知打印機(jī)數(shù)據(jù)輸出。 ACALL PDELAY ;調(diào)延時(shí)子程序;調(diào)延時(shí)子程序 INC R1 DJNZ R2 , NEXT ;判斷打印輸出完成否?;判斷打印輸出完成否? SJMP $ PDELAY:(延時(shí)程
15、序略):(延時(shí)程序略) END 9.2 MCS-519.2 MCS-51單片機(jī)與鍵盤(pán)的接口技術(shù)單片機(jī)與鍵盤(pán)的接口技術(shù) 一、一、 概述概述鍵盤(pán):鍵盤(pán):?jiǎn)纹瑱C(jī)系統(tǒng)中完成控制參數(shù)輸入及修改的基本輸入設(shè)備,單片機(jī)系統(tǒng)中完成控制參數(shù)輸入及修改的基本輸入設(shè)備,是人工干預(yù)系統(tǒng)的重要手段。是人工干預(yù)系統(tǒng)的重要手段。各種按鍵或開(kāi)關(guān)。各種按鍵或開(kāi)關(guān)。鍵盤(pán)的分類(lèi):鍵盤(pán)的分類(lèi):按按編碼方式可分為編碼鍵盤(pán)與非編碼鍵盤(pán)。按鍵盤(pán)編碼方式可分為編碼鍵盤(pán)與非編碼鍵盤(pán)。按鍵盤(pán)連接方式可分為獨(dú)立連接式鍵盤(pán)與矩陣連接式鍵盤(pán)。連接方式可分為獨(dú)立連接式鍵盤(pán)與矩陣連接式鍵盤(pán)。 1 1獨(dú)立連接式鍵盤(pán)獨(dú)立連接式鍵盤(pán) 每鍵相互獨(dú)立,各自與一條每
16、鍵相互獨(dú)立,各自與一條I/O線相連,線相連,CPU可直接讀取可直接讀取該該I/O線的高線的高/低電平狀態(tài)。其優(yōu)點(diǎn)是硬件、軟件結(jié)構(gòu)簡(jiǎn)單,判低電平狀態(tài)。其優(yōu)點(diǎn)是硬件、軟件結(jié)構(gòu)簡(jiǎn)單,判鍵速度快,使用方便;缺點(diǎn)是占鍵速度快,使用方便;缺點(diǎn)是占I/O口線多??诰€多。適用場(chǎng)合:適用場(chǎng)合:多用于設(shè)置控制鍵、功能鍵。適用于鍵數(shù)較少的場(chǎng)合。多用于設(shè)置控制鍵、功能鍵。適用于鍵數(shù)較少的場(chǎng)合。2. 2. 矩陣連接式鍵盤(pán)矩陣連接式鍵盤(pán) 鍵按矩陣排列鍵按矩陣排列,各鍵處于矩陣行各鍵處于矩陣行/列的結(jié)點(diǎn)處列的結(jié)點(diǎn)處,CPU通過(guò)對(duì)通過(guò)對(duì)連在行連在行(列列)的的I/O線送已知電平的信號(hào)線送已知電平的信號(hào),然后讀取列然后讀取列(
17、行行)線的狀線的狀態(tài)信息。逐線掃描態(tài)信息。逐線掃描,得出鍵碼。其特點(diǎn)是鍵多時(shí)占用得出鍵碼。其特點(diǎn)是鍵多時(shí)占用I/O口線口線少少,硬件資源利用合理,但判鍵速度慢。硬件資源利用合理,但判鍵速度慢。適用場(chǎng)合:適用場(chǎng)合:多用于設(shè)置數(shù)字鍵,適用于鍵數(shù)多的場(chǎng)合。多用于設(shè)置數(shù)字鍵,適用于鍵數(shù)多的場(chǎng)合。 二、使用鍵盤(pán)時(shí)必須解決的問(wèn)題二、使用鍵盤(pán)時(shí)必須解決的問(wèn)題 (1)開(kāi)關(guān)狀態(tài)的可靠輸入。必須消除鍵抖動(dòng)。可以采用硬)開(kāi)關(guān)狀態(tài)的可靠輸入。必須消除鍵抖動(dòng)??梢圆捎糜布蛙浖煞N方法,硬件方法就是在按鍵輸入通道上添加去件和軟件兩種方法,硬件方法就是在按鍵輸入通道上添加去抖動(dòng)電路;軟件方法則采用延遲抖動(dòng)電路;軟件方法則
18、采用延遲1020ms鍵盤(pán)的抖動(dòng)時(shí)間一般為鍵盤(pán)的抖動(dòng)時(shí)間一般為5 510ms10ms,抖動(dòng)現(xiàn)象會(huì)引起,抖動(dòng)現(xiàn)象會(huì)引起CPUCPU對(duì)一次對(duì)一次鍵操作進(jìn)行多次處理,從而可能產(chǎn)生錯(cuò)誤。鍵操作進(jìn)行多次處理,從而可能產(chǎn)生錯(cuò)誤。(2)鍵盤(pán)狀態(tài)的監(jiān)測(cè)方法)鍵盤(pán)狀態(tài)的監(jiān)測(cè)方法中斷方式還是查詢(xún)方式。中斷方式還是查詢(xún)方式。(3)鍵盤(pán)編碼方法。)鍵盤(pán)編碼方法。(4)鍵盤(pán)控制程序的編制。)鍵盤(pán)控制程序的編制。三、三、 鍵盤(pán)接口鍵盤(pán)接口 功能:功能:對(duì)鍵盤(pán)上所按下的鍵進(jìn)行識(shí)別。對(duì)鍵盤(pán)上所按下的鍵進(jìn)行識(shí)別。 分類(lèi):分類(lèi): (1)編碼鍵盤(pán):)編碼鍵盤(pán):采用專(zhuān)用的編碼采用專(zhuān)用的編碼/譯碼器件,被按下的鍵譯碼器件,被按下的鍵由該
19、器件譯碼輸出相應(yīng)的鍵碼由該器件譯碼輸出相應(yīng)的鍵碼/鍵值。其特點(diǎn)是增加了硬件開(kāi)銷(xiāo),鍵值。其特點(diǎn)是增加了硬件開(kāi)銷(xiāo),編碼固定,但編程簡(jiǎn)單。適用于規(guī)模大的鍵盤(pán)。編碼固定,但編程簡(jiǎn)單。適用于規(guī)模大的鍵盤(pán)。 (2)非編碼鍵盤(pán):)非編碼鍵盤(pán):采用軟件編采用軟件編/譯碼的方式,通過(guò)掃描,譯碼的方式,通過(guò)掃描,對(duì)每個(gè)被按下的鍵判別輸出相應(yīng)的鍵碼對(duì)每個(gè)被按下的鍵判別輸出相應(yīng)的鍵碼/鍵值。其特點(diǎn)是不增加鍵值。其特點(diǎn)是不增加硬件開(kāi)銷(xiāo),編碼靈活,但編程較復(fù)雜,占硬件開(kāi)銷(xiāo),編碼靈活,但編程較復(fù)雜,占CPU時(shí)間。適用于小時(shí)間。適用于小規(guī)模的鍵盤(pán),特別是單片機(jī)系統(tǒng)鍵盤(pán)。規(guī)模的鍵盤(pán),特別是單片機(jī)系統(tǒng)鍵盤(pán)。 1鍵盤(pán)接口的工作原理
20、鍵盤(pán)接口的工作原理 對(duì)于矩陣式鍵盤(pán),如圖所示,鍵盤(pán)的行線對(duì)于矩陣式鍵盤(pán),如圖所示,鍵盤(pán)的行線X0X3通過(guò)電阻接通過(guò)電阻接+5V,當(dāng),當(dāng)鍵盤(pán)上沒(méi)有鍵閉合時(shí),所有的掃描線和回送線都斷開(kāi),無(wú)論掃描線處于何鍵盤(pán)上沒(méi)有鍵閉合時(shí),所有的掃描線和回送線都斷開(kāi),無(wú)論掃描線處于何種狀態(tài),回送線都呈高電平。當(dāng)鍵盤(pán)上某一鍵閉合時(shí),則該鍵所對(duì)應(yīng)的掃種狀態(tài),回送線都呈高電平。當(dāng)鍵盤(pán)上某一鍵閉合時(shí),則該鍵所對(duì)應(yīng)的掃描線和回送線被短路,可以確定,變?yōu)榈碗娖降幕厮途€與掃描線相交處的描線和回送線被短路,可以確定,變?yōu)榈碗娖降幕厮途€與掃描線相交處的鍵閉合。鍵閉合。 CPU對(duì)鍵盤(pán)掃描的方式:對(duì)鍵盤(pán)掃描的方式:程序控制的隨機(jī)方式(程
21、序控制的隨機(jī)方式( CPU空空閑時(shí)掃描鍵盤(pán))、定時(shí)控制方式(定時(shí)掃描鍵盤(pán))、中斷方閑時(shí)掃描鍵盤(pán))、定時(shí)控制方式(定時(shí)掃描鍵盤(pán))、中斷方式。式。 CPU對(duì)鍵盤(pán)上閉合鍵的鍵號(hào)確定方法:對(duì)鍵盤(pán)上閉合鍵的鍵號(hào)確定方法:根據(jù)掃描線和回根據(jù)掃描線和回送線的狀態(tài)計(jì)算求得,或根據(jù)行線和列線的狀態(tài)查表求得。送線的狀態(tài)計(jì)算求得,或根據(jù)行線和列線的狀態(tài)查表求得。 2鍵輸入程序的設(shè)計(jì)方法鍵輸入程序的設(shè)計(jì)方法 (1)判斷鍵盤(pán)上是否有鍵閉合;)判斷鍵盤(pán)上是否有鍵閉合; (2)消除鍵的機(jī)械抖動(dòng);)消除鍵的機(jī)械抖動(dòng); (3)確定閉合鍵的物理位置;)確定閉合鍵的物理位置; (4)得到閉合鍵的編號(hào);)得到閉合鍵的編號(hào); (5)確
22、保)確保CPU對(duì)鍵的一次閉合只做一次處理對(duì)鍵的一次閉合只做一次處理延時(shí)消抖延時(shí)消抖鍵掃描求鍵號(hào)鍵掃描求鍵號(hào)延時(shí)等待延時(shí)等待鍵譯碼求鍵值鍵譯碼求鍵值修改顯示緩沖區(qū)修改顯示緩沖區(qū)跳轉(zhuǎn)各功能程序跳轉(zhuǎn)各功能程序有按鍵輸入?有按鍵輸入?確有按鍵?確有按鍵?按鍵釋放?按鍵釋放?是數(shù)字鍵?是數(shù)字鍵?3鍵盤(pán)接口方式鍵盤(pán)接口方式(1)獨(dú)立式鍵盤(pán)接口(靜態(tài)方式)獨(dú)立式鍵盤(pán)接口(靜態(tài)方式)例題例題 在在MCS-51 單片機(jī)系統(tǒng)中,設(shè)計(jì)一個(gè)含單片機(jī)系統(tǒng)中,設(shè)計(jì)一個(gè)含8個(gè)按鍵的獨(dú)立式個(gè)按鍵的獨(dú)立式鍵盤(pán)。鍵盤(pán)。解:解:在在MCS-51中,中,含含8個(gè)按鍵的獨(dú)立式鍵個(gè)按鍵的獨(dú)立式鍵盤(pán)的線路連接如圖所盤(pán)的線路連接如圖所示,示
23、,8個(gè)按鍵經(jīng)上拉電個(gè)按鍵經(jīng)上拉電阻 拉 高 后 分 別 接 到阻 拉 高 后 分 別 接 到MCS-51單片機(jī)單片機(jī)P1口口的的 8 條條 I / O 線 上線 上(P1.0P1.7)。)。主程序如下:主程序如下:ORG 0000HLJMP MAINORG 0003H; 外部中斷外部中斷0中斷服務(wù)入口地址中斷服務(wù)入口地址LJMP INT; 轉(zhuǎn)中斷服務(wù)轉(zhuǎn)中斷服務(wù)ORG 0100H MAIN: SETB EA; 開(kāi)總中斷允許開(kāi)總中斷允許SETB EX0; 開(kāi)開(kāi)INT0中斷中斷SETB IT0; 下降沿有效下降沿有效中斷服務(wù)程序清單如下:中斷服務(wù)程序清單如下: INT: LCALL D20ms ;
24、延時(shí)去抖動(dòng)延時(shí)去抖動(dòng)MOV P1, #0FFH; P1口送全口送全1值值MOV A, P1; 讀讀P1口各引腳口各引腳 CJNE A, #0FFH,CLOSE; 驗(yàn)證是否確實(shí)有鍵閉合驗(yàn)證是否確實(shí)有鍵閉合 AJMP OUT; 無(wú)鍵按下無(wú)鍵按下 CLOSE: JNB ACC.7, KEY 7; 查詢(xún)查詢(xún)7號(hào)鍵號(hào)鍵 JNB ACC.6, KEY 6; 查詢(xún)查詢(xún)6號(hào)鍵號(hào)鍵 JNB ACC.5, KEY5; 查詢(xún)查詢(xún)5號(hào)鍵號(hào)鍵 JNB ACC.4, KEY4; 查詢(xún)查詢(xún)4號(hào)鍵號(hào)鍵 JNB ACC.3, KEY 3; 查詢(xún)查詢(xún)3號(hào)鍵號(hào)鍵 JNB ACC.2, KEY 2; 查詢(xún)查詢(xún)2號(hào)鍵號(hào)鍵 JNB AC
25、C.1, KEY 1; 查詢(xún)查詢(xún)1號(hào)鍵號(hào)鍵 JNB ACC.0,KEY 0 ; 查詢(xún)查詢(xún)0號(hào)鍵號(hào)鍵 OUT: RETI KEY 7:; 7號(hào)鍵處理程序號(hào)鍵處理程序 KEY 71:MOV A, P1; 再讀再讀P1口各引腳口各引腳 JNB ACC.7, FUNC71; 確認(rèn)鍵是否釋放確認(rèn)鍵是否釋放 RETI KEY 6:; 其他鍵處理程序其他鍵處理程序 D20ms: 略略; 20ms延時(shí)子程序延時(shí)子程序 END (2)矩陣式鍵盤(pán)接口)矩陣式鍵盤(pán)接口行反轉(zhuǎn)法行反轉(zhuǎn)法 矩陣式鍵盤(pán)按鍵識(shí)別方法有行反轉(zhuǎn)法和掃描法等。行反轉(zhuǎn)法需要兩個(gè)雙矩陣式鍵盤(pán)按鍵識(shí)別方法有行反轉(zhuǎn)法和掃描法等。行反轉(zhuǎn)法需要兩個(gè)雙向向I/
26、O口分別接行、列線。步驟如下:口分別接行、列線。步驟如下: (1)由行線輸出全)由行線輸出全“1”,讀入列線,判有無(wú)鍵按下。,讀入列線,判有無(wú)鍵按下。 (2)若有鍵按下)若有鍵按下,再將讀入的列線值輸出再將讀入的列線值輸出,讀入行線的值。讀入行線的值。 (3)第一步讀進(jìn)的列線值與第二步讀進(jìn)的行線值運(yùn)算,從而得到代表此)第一步讀進(jìn)的列線值與第二步讀進(jìn)的行線值運(yùn)算,從而得到代表此鍵的唯一的特征值。鍵的唯一的特征值。 行反轉(zhuǎn)法因輸入與輸出線反過(guò)來(lái)用而得名。優(yōu)點(diǎn)是判鍵速度快,兩次即行反轉(zhuǎn)法因輸入與輸出線反過(guò)來(lái)用而得名。優(yōu)點(diǎn)是判鍵速度快,兩次即可???。例題例題 請(qǐng)為請(qǐng)為8051微處理器設(shè)計(jì)一個(gè)由微處理器
27、設(shè)計(jì)一個(gè)由4行行4列鍵陣構(gòu)成的鍵盤(pán)。列鍵陣構(gòu)成的鍵盤(pán)。解:解:44矩陣鍵盤(pán)的線路連接如下頁(yè)圖所示。其中矩陣鍵盤(pán)的線路連接如下頁(yè)圖所示。其中P2口的低口的低4位作為輸出線。位作為輸出線。P1口的低口的低4位作為輸入線,輸入線通過(guò)位作為輸入線,輸入線通過(guò)74LS21進(jìn)行邏輯相與后作為進(jìn)行邏輯相與后作為8051的一的一個(gè)外部中斷源輸入。當(dāng)有鍵按下時(shí)就將引起中斷。中斷服務(wù)程序要對(duì)所按的個(gè)外部中斷源輸入。當(dāng)有鍵按下時(shí)就將引起中斷。中斷服務(wù)程序要對(duì)所按的鍵進(jìn)行判別。鍵進(jìn)行判別。 (1)查詢(xún)閉合鍵的位置子程序查詢(xún)閉合鍵的位置子程序KEYR KEYR子程序用以確定每組線中哪一位為子程序用以確定每組線中哪一位為
28、0,是否有多個(gè),是否有多個(gè)0。在調(diào)用前,應(yīng)將讀某組線的數(shù)據(jù)存入累加器在調(diào)用前,應(yīng)將讀某組線的數(shù)據(jù)存入累加器A中。中。 KEYR子程子程序返回時(shí),某組線中序返回時(shí),某組線中0的位置(的位置(03)保存在)保存在R3中。按鍵閉合中。按鍵閉合引起中斷后,執(zhí)行中斷服務(wù)程序。引起中斷后,執(zhí)行中斷服務(wù)程序。KEYR子程序如下:子程序如下: KEYR: CJNE A, #0FEH, TESTP11; 測(cè)試測(cè)試P1.0MOV R3, #0 ; P1.0=0,說(shuō)明被按鍵的輸入線為,說(shuō)明被按鍵的輸入線為P1.0LJMP FINISH; 返回返回 TESTP11: CJNE A, #0FDH, TESTP12 ;
29、測(cè)試測(cè)試P1.1MOV R3, #1LJMP FINISH TESTP12: CJNE A, #0FBH, TESTP13 ; 測(cè)試測(cè)試P1.2MOV R3, #2LJMP FINISH TESTP13: CJNE A, #0F7H, FINISH; 測(cè)試測(cè)試P1.3MOV R3, #3 FINISH: RET(2)中斷服務(wù)程序 中斷服務(wù)程序開(kāi)始部分應(yīng)利用軟件延時(shí)消除鍵抖動(dòng),然后再對(duì)所按的中斷服務(wù)程序開(kāi)始部分應(yīng)利用軟件延時(shí)消除鍵抖動(dòng),然后再對(duì)所按的鍵做出處理。鍵做出處理。 中斷服務(wù)程序如下:中斷服務(wù)程序如下: ORG 1000H INT11: LCALL DELAY; 延時(shí)去抖動(dòng)延時(shí)去抖動(dòng)MO
30、V A, P1; 讀輸入線讀輸入線ANL A, #0FH; 判斷是否有鍵閉合判斷是否有鍵閉合CJNE A, #0FH, TEST; 有鍵閉合,轉(zhuǎn)判斷按鍵程序有鍵閉合,轉(zhuǎn)判斷按鍵程序RETI; 無(wú)鍵閉合,返回?zé)o鍵閉合,返回 TEST: MOV B, A; 暫存暫存LCALL KEYR; 調(diào)用讀取子程序調(diào)用讀取子程序MOV 40H, R3; 暫存在暫存在40H單元單元MOV P2, #0FFH; 輸出線寫(xiě)輸出線寫(xiě)1MOV P1, B; 輸入線寫(xiě)入數(shù)據(jù)輸入線寫(xiě)入數(shù)據(jù)MOV A, P2; 讀輸出線讀輸出線LCALL KEYR; 調(diào)用讀取子程序調(diào)用讀取子程序XCH A, R3SWAP AORL 40H,
31、 A; 得按鍵特征值得按鍵特征值RETI 中斷程序結(jié)束后,鍵的特征值存放在中斷程序結(jié)束后,鍵的特征值存放在40H單元中。此鍵的輸出線號(hào)位于單元中。此鍵的輸出線號(hào)位于40H單元的高單元的高4位,其輸入線號(hào)位于低位,其輸入線號(hào)位于低4位。此后,根據(jù)位。此后,根據(jù)40H單元的內(nèi)容去查單元的內(nèi)容去查表,得到相應(yīng)鍵的代碼,可進(jìn)行顯示或其他處理。表,得到相應(yīng)鍵的代碼,可進(jìn)行顯示或其他處理。(3)去抖動(dòng)的延時(shí)子程序DELAY 利用利用CPU的空閑方式,通過(guò)定時(shí)器的空閑方式,通過(guò)定時(shí)器T1實(shí)現(xiàn)延時(shí),實(shí)現(xiàn)延時(shí), T1必須預(yù)先置初值,必須預(yù)先置初值,以得到需要的延遲時(shí)間。設(shè)晶振頻率為以得到需要的延遲時(shí)間。設(shè)晶振頻
32、率為6MHz,欲延時(shí),欲延時(shí)20ms,定時(shí)時(shí)間為:,定時(shí)時(shí)間為: (216TC)6/12=20103s,初值:,初值:TC=25536=63C0H。程序如下:程序如下: DELAY:MOV TOMD, #11H; 方式方式1定時(shí)定時(shí)MOV TL1, #0C0H; 定時(shí)器定時(shí)器1定時(shí)初值定時(shí)初值MOV TH1, #63HSETB EA; 開(kāi)中斷開(kāi)中斷SETB ET1; 開(kāi)定時(shí)器開(kāi)定時(shí)器1中斷中斷SETB PT1; 定時(shí)器定時(shí)器1為高級(jí)中斷(因被鍵盤(pán)中斷調(diào)用)為高級(jí)中斷(因被鍵盤(pán)中斷調(diào)用)SETB TR1; 啟動(dòng)定時(shí)器啟動(dòng)定時(shí)器ORL PCON,#1; 啟動(dòng)空閑方式,實(shí)際啟動(dòng)空閑方式,實(shí)際CPU在
33、此處等待在此處等待CLR TR1 ; 以下四條指令只有在延時(shí)后,定時(shí)器被喚醒,才能執(zhí)行以下四條指令只有在延時(shí)后,定時(shí)器被喚醒,才能執(zhí)行CLR PT1CLR ET1RETEND(3)矩陣式鍵盤(pán)接口動(dòng)態(tài)掃描法)矩陣式鍵盤(pán)接口動(dòng)態(tài)掃描法動(dòng)態(tài)掃動(dòng)態(tài)掃描法原理:描法原理: 例題例題 用用8155實(shí)現(xiàn)實(shí)現(xiàn)4行行8列的列的32鍵鍵盤(pán)接口。鍵鍵盤(pán)接口。 解:解:電路如下頁(yè)圖所示,電路如下頁(yè)圖所示,8155的的PA設(shè)定為輸出口,稱(chēng)其為掃設(shè)定為輸出口,稱(chēng)其為掃描線。描線。PC3PC0設(shè)定為輸入口,稱(chēng)其為回送線。設(shè)定為輸入口,稱(chēng)其為回送線。8155與與MCS-51單片機(jī)的接口略,設(shè)單片機(jī)的接口略,設(shè)PA口的端口地址
34、為口的端口地址為7F01H,PC口的端口的端口地址為口地址為7F03H。 鍵值編碼形式:回送線鍵值編碼形式:回送線PC0, PC1, PC2, PC3上的鍵值(每條回送線上有上的鍵值(每條回送線上有8個(gè)個(gè)鍵,順序從左到右)分別為鍵,順序從左到右)分別為00H +(00H07H)、)、08H +(00H07H)、)、10H +(00H07H)、)、18H +(00H07H)。其中,()。其中,(00H07H)的具體)的具體內(nèi)容由掃描線決定,存放在內(nèi)容由掃描線決定,存放在R4中。中。P2.7P2.6/WR/RDALEP0/CEIO/M/WR/RDALED0-D78(1 1)掃描是否有鍵按下子程序)
35、掃描是否有鍵按下子程序KEY1KEY1,回掃線的值存放在,回掃線的值存放在A A中。中。 程序如下:程序如下: ORG 1000H KEY1:MOV DPTR, #7F01H ; 將將PA口地址送口地址送DPTR,PA口作為掃描線口作為掃描線 MOV A, #00H; 所有掃描線均為低電平所有掃描線均為低電平 MOVX DPTR, A; PA口向列線輸出口向列線輸出00H INC DPTR INC DPTR; 指向指向PC口口 MOVX A, DPTR ; 取回送線狀態(tài)取回送線狀態(tài) CPL A; 行線狀態(tài)取反行線狀態(tài)取反 ANL A, #0FH; 屏蔽屏蔽A的高半字節(jié)的高半字節(jié) RET; 返回
36、返回(2 2)判斷是否有鍵按下子程序)判斷是否有鍵按下子程序KEYKEY,如果有,識(shí)別按鍵的鍵碼。,如果有,識(shí)別按鍵的鍵碼。 其中其中DELAY1DELAY1是延時(shí)子程序。是延時(shí)子程序。 程序如下:程序如下:KEY: ACALL KEY1; 檢查有鍵閉合否檢查有鍵閉合否 JNZ LKEY1; A非非0說(shuō)明有鍵按下說(shuō)明有鍵按下 ACALL DELAY1; 執(zhí)行一次延時(shí)子程序(延時(shí)執(zhí)行一次延時(shí)子程序(延時(shí)6 ms) AJMP KEY LKEY1: ACALL DELAY1 ACALL DELAY1 ; 有鍵閉合延時(shí)有鍵閉合延時(shí)26ms=12ms以去抖動(dòng)以去抖動(dòng) ACALL KEY1; 延時(shí)以后再檢
37、查是否有鍵閉合延時(shí)以后再檢查是否有鍵閉合JNZ LKEY2; 有鍵閉合,轉(zhuǎn)有鍵閉合,轉(zhuǎn)LKEY2 ACALL DELAY1 ; 無(wú)鍵閉合,說(shuō)明是干擾信號(hào),不作處理無(wú)鍵閉合,說(shuō)明是干擾信號(hào),不作處理 AJMP KEY; 延時(shí)延時(shí)6ms后轉(zhuǎn)后轉(zhuǎn)KEY繼續(xù)等待鍵入繼續(xù)等待鍵入 LKEY2: MOV R2, #0FEH; 掃描初值送掃描初值送R2,設(shè)定,設(shè)定PA0為當(dāng)前掃描線為當(dāng)前掃描線 MOV R4, #00H ; 回送初值送回送初值送R4LKEY4: MOV DPTR, #7F01H; 指向指向PA口口MOV A, R2 MOVX DPTR, A; 掃描初值送掃描初值送PA口口 INC DPTR
38、INC DPTR; 指向指向PC口口MOV A, DPTR; 取回送線狀態(tài)取回送線狀態(tài)JB ACC.0, LONE ; ACC.0=1,第,第0行無(wú)鍵閉合,轉(zhuǎn)行無(wú)鍵閉合,轉(zhuǎn)LONEMOV A, #00H; 裝第裝第0行行值行行值A(chǔ)JMP LKEYP; 轉(zhuǎn)計(jì)算鍵碼轉(zhuǎn)計(jì)算鍵碼 LONE: JB ACC.1, LTWO; ACC.1=1,第,第1行無(wú)鍵閉合,轉(zhuǎn)行無(wú)鍵閉合,轉(zhuǎn)LTWO MOV A, #08H; 裝第裝第1行行值行行值 AJMP LKEYP; 轉(zhuǎn)計(jì)算鍵碼轉(zhuǎn)計(jì)算鍵碼 LTWO: JB ACC.2, LTHR; ACC.2=1,第,第2行無(wú)鍵閉合,轉(zhuǎn)行無(wú)鍵閉合,轉(zhuǎn)LTHR MOV A, #1
39、0H; 裝第裝第2行行值行行值 AJMP LKEYP LTHR: JB ACC.3, NEXT; ACC.3=1,第,第3行無(wú)鍵閉合,轉(zhuǎn)行無(wú)鍵閉合,轉(zhuǎn)NEXT MOV A, #18H; 裝第裝第3行行值行行值 LKEYP: ADD A, R4 ; 計(jì)算鍵碼計(jì)算鍵碼 PUSH ACC ; 保存鍵碼保存鍵碼 LKEY3:ACALL DELAY1; 延時(shí)延時(shí)6ms ACALL KEY1; 判斷鍵是否繼續(xù)閉合,若閉合再延時(shí)判斷鍵是否繼續(xù)閉合,若閉合再延時(shí) JNZ LKEY3 POP ACC; 若鍵釋放,則鍵碼送若鍵釋放,則鍵碼送A RET NEXT: INC R4; 列號(hào)加列號(hào)加1 MOV A, R2
40、 JNB ACC.7, KND; 第第7位為位為0,以掃描到最高列,轉(zhuǎn),以掃描到最高列,轉(zhuǎn)KND RL A; 循環(huán)右移一位循環(huán)右移一位 MOV R2, A AJMP LKEY4; 進(jìn)行下一列掃描進(jìn)行下一列掃描 KND: AJMP KEY; 掃描完畢,開(kāi)始新的一輪掃描完畢,開(kāi)始新的一輪 DELAY1: ; 延時(shí)子程序,略延時(shí)子程序,略 END9.3 MCS-51單片機(jī)與顯示器的接口技術(shù)單片機(jī)與顯示器的接口技術(shù) 一、一、 LED (Light Emitting Diode)顯示器結(jié)構(gòu)與原理)顯示器結(jié)構(gòu)與原理 LED顯示器的外形顯示器的外形七段七段LED字形碼如下表字形碼如下表 LED工作時(shí)需要一定
41、的工作電流,才能正常發(fā)光。單個(gè)工作時(shí)需要一定的工作電流,才能正常發(fā)光。單個(gè)LED實(shí)際上是一個(gè)壓降為實(shí)際上是一個(gè)壓降為1.82.2V的發(fā)光二極管。通常每個(gè)的發(fā)光二極管。通常每個(gè)段筆畫(huà)要串一個(gè)合適的電阻,使流過(guò)的電流為段筆畫(huà)要串一個(gè)合適的電阻,使流過(guò)的電流為1mA50mA。下圖為單個(gè)下圖為單個(gè)LED的驅(qū)動(dòng)接口電路。的驅(qū)動(dòng)接口電路。LED數(shù)碼管的顯示方式數(shù)碼管的顯示方式(1)靜態(tài)顯示方式)靜態(tài)顯示方式 (2)動(dòng)態(tài)顯示方式)動(dòng)態(tài)顯示方式.6 例題例題 設(shè)計(jì)設(shè)計(jì)6位共陰極顯示器與位共陰極顯示器與8155的接口電路,并寫(xiě)出與之對(duì)應(yīng)的動(dòng)態(tài)的接口電路,并寫(xiě)出與之對(duì)應(yīng)的動(dòng)態(tài)掃描顯示子程序。顯示數(shù)據(jù)緩存區(qū)在片內(nèi)掃
42、描顯示子程序。顯示數(shù)據(jù)緩存區(qū)在片內(nèi)RAM 79H7EH單元。單元。 .6二、二、 LED (Light Emitting Diode)顯示器接口舉例)顯示器接口舉例動(dòng)態(tài)掃描子程序如下:動(dòng)態(tài)掃描子程序如下: ORG 1000H DSP8155: MOV DPTR, #7F00H ;指向指向8155命令寄存器命令寄存器 MOV A, #00000011B; 設(shè)定設(shè)定PA口、口、PB口為基本輸出方式口為基本輸出方式 MOVX DPTR, A; 輸出命令字輸出命令字 DISP1:MOV R0, #7EH; 指向緩沖區(qū)末地址指向緩沖區(qū)末地址MOV A, #20H; 掃描字,掃描字,PA5為為1,從左至右
43、掃描,從左至右掃描 LOOP: MOV R2, A; 暫存掃描字暫存掃描字 MOV DPTR, #7F01H; 指向指向8155的的PA MOVX DPTR, A; 輸出位選碼輸出位選碼 MOV A, R0; 讀顯示緩沖區(qū)一字符讀顯示緩沖區(qū)一字符 MOV DPTR, #PTRN; 指向段數(shù)據(jù)表首地址指向段數(shù)據(jù)表首地址 MOVC A, A+DPTR; 查表,得段數(shù)據(jù)查表,得段數(shù)據(jù) MOV DPTR, #7F02H; 指向指向8155的的PB MOVX DPTR, A; 輸出段數(shù)據(jù)輸出段數(shù)據(jù) CALL D1MS; 延時(shí)延時(shí)1ms DEC R0; 調(diào)整指針調(diào)整指針 MOV A, R2; 讀回掃描讀回
44、掃描 CLR C ; 清進(jìn)位標(biāo)志清進(jìn)位標(biāo)志 RRC A ; 掃描字右移掃描字右移 JC PASS; 結(jié)束結(jié)束 AJMP LOOP ; 繼續(xù)顯示繼續(xù)顯示 PASS: RET ; 返回返回 D1MS: MOV R7, #02H; 延時(shí)延時(shí)1ms子程序子程序 DMS: MOV R6, #0FFH DJNZ R6, $ DJNZ R7, DMS RETPTRN: DB 0C0H, 0F9H, 0A4H, 0B0H, 99H ; 段數(shù)據(jù)表段數(shù)據(jù)表 DB DB END9.4 MCS-51單片機(jī)鍵盤(pán)和顯示器接口設(shè)計(jì)實(shí)例單片機(jī)鍵盤(pán)和顯示器接口設(shè)計(jì)實(shí)例 一、一、 利用利用8155芯片實(shí)現(xiàn)鍵盤(pán)和顯示器接口芯片實(shí)現(xiàn)
45、鍵盤(pán)和顯示器接口1 1接口電路接口電路 下頁(yè)圖是一個(gè)典型實(shí)用的采用下頁(yè)圖是一個(gè)典型實(shí)用的采用8155并行擴(kuò)展接口構(gòu)成的鍵并行擴(kuò)展接口構(gòu)成的鍵盤(pán)顯示電路,圖中只設(shè)置了盤(pán)顯示電路,圖中只設(shè)置了32個(gè)鍵,如果增加個(gè)鍵,如果增加PC口線,可以口線,可以增加按鍵,最多可達(dá)增加按鍵,最多可達(dá)48個(gè)鍵。個(gè)鍵。LED顯示器采用共陰極,段選碼顯示器采用共陰極,段選碼由由8155 PB口提供,位選碼由口提供,位選碼由PA口提供。鍵盤(pán)的列輸入由口提供。鍵盤(pán)的列輸入由PA口口提供,行輸出由提供,行輸出由PC0PC3提供,提供,8155的的RAM地址為地址為7E00H7EFFH,I/O地址為地址為7F00H7F05H。
46、圖中的。圖中的8155也可以用也可以用8255A來(lái)替代。來(lái)替代。 2 2軟件設(shè)計(jì)軟件設(shè)計(jì) 由于鍵盤(pán)與顯示設(shè)計(jì)成一個(gè)接口電路,因此在軟件中合并由于鍵盤(pán)與顯示設(shè)計(jì)成一個(gè)接口電路,因此在軟件中合并考慮鍵盤(pán)查詢(xún)與動(dòng)態(tài)顯示,鍵盤(pán)消抖的延時(shí)子程序用顯示程序考慮鍵盤(pán)查詢(xún)與動(dòng)態(tài)顯示,鍵盤(pán)消抖的延時(shí)子程序用顯示程序替代。替代。8155動(dòng)態(tài)顯示子程序動(dòng)態(tài)顯示子程序DSP8155參照動(dòng)態(tài)顯示的例題。參照動(dòng)態(tài)顯示的例題。 程序如下:程序如下: ORG 1000HKD1:MOV A, #0000 0011B; 8155初始化,初始化,PA,PB基本輸出方式,基本輸出方式,PC輸入方式輸入方式MOV DPTR, #7F0
47、0HMOVX DPTR, AKEY1:ACALL KS1; 調(diào)用判斷是否有鍵閉合子程序調(diào)用判斷是否有鍵閉合子程序JNZ LK1; 有鍵閉合轉(zhuǎn)有鍵閉合轉(zhuǎn)LK1ACALL DSP8155; 調(diào)用調(diào)用8155動(dòng)態(tài)顯示子程序,延時(shí)動(dòng)態(tài)顯示子程序,延時(shí)6msAJMP KEY1LK1:ACALL DSP8155ACALL DSP8155; 調(diào)用兩次顯示,延時(shí)調(diào)用兩次顯示,延時(shí)12msACALL KS1JNZ LK2ACALL DSP8155; 調(diào)用調(diào)用8155動(dòng)態(tài)顯示子程序,延時(shí)動(dòng)態(tài)顯示子程序,延時(shí)6msAJMP KEY1LK2:MOV R2, #0FEHMOV R4, #00HLK3:MOV DPTR,
48、 #7F01HMOV A, R2MOVX DPTR, AINC DPTRINC DPTRMOVX A, DPTRJB ACC.0, LONEMOV A, #00HAJMP LKP LONE:JB ACC.1, LTWOMOV A, #08HAJMP LKPLTWO:JB ACC.2, LTHRMOV A, #10HAJMP LKPLTHR:JB ACC.3, NEXTMOV A, #18H LKP:ADD A, R4PUSH ACC LK4:ACALL DSP8155ACALL KS1JNZ LK4POP ACCNEXT:INC R4MOV A, R2JNB ACC.7, KNDRL AMOV
49、 R2, AAJMP LK3 KND:AJMP KEY1 KS1:MOV DPTR, #7F01HMOV A, #00HMOVX DPTR, AINC DPTRINC DPTR MOVX A, DPTRCPL AANL A, #0FHRETEND例題例題設(shè)計(jì)設(shè)計(jì)8051通過(guò)通過(guò)8255A芯片擴(kuò)展芯片擴(kuò)展3位七段共陽(yáng)極位七段共陽(yáng)極LED顯示器。顯示器。初始化及顯示程序如下:初始化及顯示程序如下: ORG 1000H DSP8255: MOV DPTR, #7FFFH MOV A, #80H; 8255A工作方式設(shè)置工作方式設(shè)置 MOVX DPTR, A; 工作方式字送工作方式字送8255A控制口
50、控制口 解:解:接口電路如下頁(yè)圖所示,接口電路如下頁(yè)圖所示,8255A與與8051的接口略。在程序的接口略。在程序中將相應(yīng)的字形碼寫(xiě)入中將相應(yīng)的字形碼寫(xiě)入8255A的的PA, PB, PC口,顯示器就可以顯口,顯示器就可以顯示出示出3位字符。位字符。 8255A的初始化設(shè)定為的初始化設(shè)定為PA, PB, PC為基本為基本I/O輸出方式,輸出方式,待顯示的數(shù)據(jù)存放在內(nèi)部待顯示的數(shù)據(jù)存放在內(nèi)部RAM 的的40H42H單元,數(shù)據(jù)格式為單元,數(shù)據(jù)格式為非壓縮非壓縮BCD碼。碼。 MOV R0, #40H ; 顯示數(shù)據(jù)起始地址顯示數(shù)據(jù)起始地址 MOV R3, #03H; 待顯示數(shù)據(jù)個(gè)數(shù)待顯示數(shù)據(jù)個(gè)數(shù) M
51、OV DPTR, #7FFCH ; 第一個(gè)數(shù)據(jù)在第一個(gè)數(shù)據(jù)在PA口顯示口顯示 LOOP : MOV A, R0; 取出第一個(gè)待顯示數(shù)據(jù)取出第一個(gè)待顯示數(shù)據(jù) ADD A, #06H ; 加上偏移量,查表指令到表加上偏移量,查表指令到表TAB 有有6個(gè)字節(jié)個(gè)字節(jié) MOVC A, A+PC; 查表取出字形碼查表取出字形碼 MOVX DPTR, A; 字形碼送字形碼送8255A端口顯示端口顯示 INC R0; 指向下一個(gè)數(shù)據(jù)存儲(chǔ)位置指向下一個(gè)數(shù)據(jù)存儲(chǔ)位置 INC DPTR; 指向下一個(gè)七段數(shù)碼顯示器指向下一個(gè)七段數(shù)碼顯示器 DJNZ R3, LOOP; 未顯示結(jié)束,返回繼續(xù)未顯示結(jié)束,返回繼續(xù) RET TAB: DB 0C0H, 0F9H, 0A4H, 0B0H; 0, 1, 2, 3 字形碼表字形碼表 DB 99H, 92H, 82H, 0F8H; 4, 5, 6, 7 DB 80H, 90H, 88H, 83H; 8, 9, A, b DB 0C6H, 0A1H, 86H, 8EH ; C, d, E, F END
- 溫馨提示:
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. 裝配圖網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 6.煤礦安全生產(chǎn)科普知識(shí)競(jìng)賽題含答案
- 2.煤礦爆破工技能鑒定試題含答案
- 3.爆破工培訓(xùn)考試試題含答案
- 2.煤礦安全監(jiān)察人員模擬考試題庫(kù)試卷含答案
- 3.金屬非金屬礦山安全管理人員(地下礦山)安全生產(chǎn)模擬考試題庫(kù)試卷含答案
- 4.煤礦特種作業(yè)人員井下電鉗工模擬考試題庫(kù)試卷含答案
- 1 煤礦安全生產(chǎn)及管理知識(shí)測(cè)試題庫(kù)及答案
- 2 各種煤礦安全考試試題含答案
- 1 煤礦安全檢查考試題
- 1 井下放炮員練習(xí)題含答案
- 2煤礦安全監(jiān)測(cè)工種技術(shù)比武題庫(kù)含解析
- 1 礦山應(yīng)急救援安全知識(shí)競(jìng)賽試題
- 1 礦井泵工考試練習(xí)題含答案
- 2煤礦爆破工考試復(fù)習(xí)題含答案
- 1 各種煤礦安全考試試題含答案