版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
學(xué)習(xí)單片機(jī)小小幫助第一頁(yè),共五十七頁(yè),編輯于2023年,星期二鍵盤可分為編碼式鍵盤和非編碼式鍵盤。編碼鍵盤能夠由硬件自動(dòng)提供與被按鍵對(duì)應(yīng)的ASCII碼或其它編碼。但是它要求采用較多的硬件,價(jià)格昂貴。非編碼鍵盤則僅提供行和列的矩陣,其硬件邏輯與按鍵編碼不存在嚴(yán)格的對(duì)應(yīng)關(guān)系,而要由所用的程序來(lái)確定。非編碼鍵盤的硬件接口簡(jiǎn)單,但是要占用較多的CPU時(shí)間。任何鍵盤接口均要解決三個(gè)主要問(wèn)題:1、反彈跳2、串鍵保護(hù)3、按鍵識(shí)別第二頁(yè),共五十七頁(yè),編輯于2023年,星期二1、反彈跳當(dāng)按鍵開關(guān)的觸點(diǎn)閉合或斷開到其穩(wěn)定,會(huì)產(chǎn)生一個(gè)短暫的抖動(dòng)和彈跳,如下圖所示,這是機(jī)械式開關(guān)的一個(gè)共同性問(wèn)題。消除由于鍵抖動(dòng)和彈跳產(chǎn)生的干擾可采用硬件方法,也可采用軟件延遲的方法。
采用RS觸發(fā)器實(shí)現(xiàn)硬件反彈跳第三頁(yè),共五十七頁(yè),編輯于2023年,星期二當(dāng)鍵數(shù)較多時(shí)經(jīng)常用軟件延時(shí)的方法來(lái)反彈跳,如流程圖所示。當(dāng)檢出有鍵按下后,先執(zhí)行一個(gè)反顫延時(shí)20ms的子程序,待前沿彈跳消失后再轉(zhuǎn)入鍵閉合CLOSE子程序。然后再判斷此次按鍵是否松開,如果沒有,則進(jìn)行等待。若已松開,則又執(zhí)行一次延時(shí)20ms的子程序以消除后沿彈跳的影響,再去檢測(cè)下次按鍵的閉合。
第四頁(yè),共五十七頁(yè),編輯于2023年,星期二2、串鍵保護(hù)由于操作不慎,可能會(huì)造成同時(shí)有幾個(gè)鍵被按下,這種情況稱為串鍵。有三種處理串鍵的技術(shù):兩鍵同時(shí)按下、n鍵同時(shí)按下和n鍵鎖定。“兩鍵同時(shí)按下”技術(shù)是在兩個(gè)鍵同時(shí)按下時(shí)產(chǎn)生保護(hù)作用。最簡(jiǎn)單的辦法是當(dāng)只有一個(gè)鍵按下時(shí)才讀取鍵盤的輸出,最后仍被按下的鍵是有效的正確按鍵。當(dāng)用軟件掃描鍵盤時(shí)常采用這種方法。另一種方法是當(dāng)?shù)谝粋€(gè)按鍵未松開時(shí),按第二個(gè)鍵不產(chǎn)生選通信號(hào)。這種方法常藉助硬件來(lái)實(shí)現(xiàn)?!皀鍵同時(shí)按下”技術(shù)或者不理會(huì)所有被按下的鍵,直至只剩下一鍵按下時(shí)為止,或者將所有按鍵的信息都存入內(nèi)部緩沖器中,然后逐個(gè)處理,這種方法成本較高?!皀鍵鎖定”技術(shù)只處理一個(gè)鍵,任何其它按下又松開的鍵不產(chǎn)生任何碼。通常第一個(gè)被按下或最后一個(gè)松開的鍵產(chǎn)生碼。這種方法最簡(jiǎn)單也最常用。第五頁(yè),共五十七頁(yè),編輯于2023年,星期二3、按鍵識(shí)別決定是否有鍵被按下,如有則應(yīng)識(shí)別鍵盤矩陣中被按鍵對(duì)應(yīng)的編碼。編碼鍵盤通過(guò)硬件直接提供按鍵與被按鍵對(duì)應(yīng)的ASCII碼或其它編碼。非編碼鍵盤則需要通過(guò)編程方式提供按鍵編碼。其優(yōu)點(diǎn)是結(jié)構(gòu)簡(jiǎn)單、成本低廉第六頁(yè),共五十七頁(yè),編輯于2023年,星期二非編碼鍵盤接口技術(shù)非編碼鍵盤接口技術(shù)主要是如何確定被按鍵的行、列位置,即鍵碼(值)。按鍵識(shí)別是接口技術(shù)的關(guān)鍵問(wèn)題。常用按鍵識(shí)別方法有行掃描法(Row-Scanning)和線反轉(zhuǎn)法(Line-Reverse)。第七頁(yè),共五十七頁(yè),編輯于2023年,星期二典型非編碼鍵盤結(jié)構(gòu)
非編碼鍵盤大都采用按行、列排列的矩陣開關(guān)結(jié)構(gòu),這種結(jié)構(gòu)可以減少硬件和連線。
矩陣鍵盤接口第八頁(yè),共五十七頁(yè),編輯于2023年,星期二行掃描法識(shí)別按鍵
行掃描法是采用步進(jìn)掃描方式,CPU通過(guò)輸出口把一個(gè)“步進(jìn)的0”逐行加至鍵盤的行線上,然后通過(guò)輸入口檢查列線的狀態(tài)。由行線列線電平狀態(tài)的組合來(lái)確定是否有鍵按下,并確定被按鍵所處的行、列位置。
第九頁(yè),共五十七頁(yè),編輯于2023年,星期二R1K13K14K15K16R2K9K10K11K12R3K5K6K7K8R4K1K2K3K4C1C2C3C4鍵位與行列線關(guān)系表上表列出了識(shí)別按鍵位置與各行之間的關(guān)系。其中,R1、R2、R3、R4表示行,C1、C2、C3、C4表示列。當(dāng)掃描第一行時(shí),R1=0,若讀入的列值C1=0,則表明按鍵K13被壓下,如果C3=0,則表明按鍵K15被壓下。第一行掃描完畢后再掃描第二行,逐行掃描至最后一行為止,即可識(shí)別出所有的按鍵。第十頁(yè),共五十七頁(yè),編輯于2023年,星期二線反轉(zhuǎn)法識(shí)別按鍵線反轉(zhuǎn)法是藉助程控并行接口實(shí)現(xiàn)的,比行掃描法的速度快。如圖所示為一個(gè)4×4鍵盤與并行接口的連接。并行接口有一個(gè)方向寄存器和一個(gè)數(shù)據(jù)寄存器,方向寄存器規(guī)定了接口總線的方向,寄存器的某位置“1”,規(guī)定該位口線為輸出。寄存器的某位置“0”,規(guī)定該位口線為輸入。
第十一頁(yè),共五十七頁(yè),編輯于2023年,星期二線反轉(zhuǎn)法的具體操作分兩步
第一步:先把控制字0FH置入并行接口的方向寄存器,使4條行線(PB0~PB3)作輸出,4條列線(PB4-PB7)作輸入。然后把控制字F0H寫入數(shù)據(jù)寄存器,PB0~PB3將輸出“0”到鍵盤行線。這時(shí)若無(wú)鍵按下,則4條列線均為“1”;若有某鍵按下,則該鍵所在行線的“0”電平通過(guò)閉合鍵使相應(yīng)的列線變?yōu)椤?”,并經(jīng)與非門發(fā)出鍵盤中斷請(qǐng)求信號(hào)給單片機(jī)。圖4.6(a)是第2行第1列有鍵按下的情況。這時(shí)PB7~PB4線的輸入為1011,其中0對(duì)應(yīng)于被按鍵所在的列。第二步:使接口總線的方向反轉(zhuǎn),把控制字F0H寫入方向寄存器,使PB0~PB3作輸入,PB4~PB7作輸出。這時(shí)PB7~PB4線的輸出為1011,PB3~PB0的輸入為1011,其中“0”對(duì)應(yīng)于被按鍵的行。單片機(jī)現(xiàn)在讀取數(shù)據(jù)寄存器的完整內(nèi)容為10111011,其中兩個(gè)0分別對(duì)應(yīng)于被按鍵所在的行列位置。根據(jù)此位置碼到ROM中去查表,就可識(shí)別是何鍵被按下。第十二頁(yè),共五十七頁(yè),編輯于2023年,星期二單片機(jī)通過(guò)8155實(shí)現(xiàn)的鍵盤、顯示器接口如圖所示為單片機(jī)8051與矩陣鍵盤及LED顯示器的一種接口電路,通過(guò)編程設(shè)定8155的PA口、PB口作為輸出口,PC口作為輸入口。PA口完成鍵盤的行掃描輸出,同時(shí)又對(duì)LED顯示器作字位掃描,PC口輸入鍵盤列線狀態(tài)。7407為同相驅(qū)動(dòng)器,75452為反相驅(qū)動(dòng)器。接口電路中采用8031的P2.7作為8155的片選線,P2.0作為8155的IO端口和片內(nèi)RAM選擇線,因此8155的命令寄存器地址為7F00H,PA~PC口地址為7F01H~7F03H。第十三頁(yè),共五十七頁(yè),編輯于2023年,星期二按鍵識(shí)別子程序KEY:MOVDPTR,#7F00H;8155命令口地址MOVA,#03H;置PA、PB口為輸出,MOVX@DPTR,A;PC口為輸入 MOVR4,#00H;0→鍵號(hào)寄存器R4 MOVR2,#01H;掃描模式01H→R2KEY1:MOVDPTR,#7F01H MOVA,R2 MOVX@DPTR,A;掃描模式→8155PA口 INCDPTR INCDPTR MOVXA,@DPTR;讀8155PC口 JBACC.0,KEY2;0列無(wú)鍵閉合,轉(zhuǎn)判1列 MOVA,#00H;0列有鍵閉合,0→A AJMPKEY5KEY2:JBACC.1,KEY3;1列無(wú)鍵閉合,轉(zhuǎn)判2列 MOVA,#01H;1列有鍵閉合,列線號(hào)01H→A AJMPKEY5第十四頁(yè),共五十七頁(yè),編輯于2023年,星期二KEY3:JBACC.2,KEY4;2列無(wú)鍵閉合,轉(zhuǎn)判3列 MOVA,#02H;2列有鍵閉合,02H→A AJMPKEY5KEY4:JBACC.3,NEXT;3列無(wú)鍵閉合,轉(zhuǎn)判下一行 MOVA,#03H;3列有鍵閉合,03H→AKEY5:ADDA,R4;列線號(hào)+(R4)作為鍵值→A MOVR4,A;鍵值→R4 RET;返回NEXT:MOVA,R4; ADDA,#04;鍵號(hào)寄存器加4 MOVR4,A MOVA,R2 JBACC.3,NEXT1;判別是否已掃描到最后一行 RLA;掃描模式左移一位 MOVR2,A AJMPKEY1;重新開始掃描下一行NEXT1:MOVR4,#88H;掃描到最后一行仍無(wú)按鍵 RET;置無(wú)鍵閉合標(biāo)志后返回第十五頁(yè),共五十七頁(yè),編輯于2023年,星期二鍵值分析單片機(jī)從鍵盤接口獲得鍵值后究竟執(zhí)行什么操作,完全取決于鍵盤解釋程序。常用的方法:
1、查表法根據(jù)得到的鍵值代碼,到固化在ROM里的表格中查找對(duì)應(yīng)該代碼的動(dòng)作例行程序的首地址。這種方法適用于一個(gè)鍵就產(chǎn)生一個(gè)動(dòng)作的單個(gè)命令鍵。
2.狀態(tài)分析法根據(jù)鍵碼和當(dāng)前所處的狀態(tài)找出下一個(gè)應(yīng)進(jìn)入的狀態(tài)及動(dòng)作例行程序。這種方法適用于多個(gè)鍵互相配合產(chǎn)生一個(gè)動(dòng)作的多義鍵。
第十六頁(yè),共五十七頁(yè),編輯于2023年,星期二查表法查表法的核心是一個(gè)固化在ROM中的功能子程序入口地址轉(zhuǎn)移表。如下表所示。在轉(zhuǎn)移表內(nèi)存有各個(gè)功能子程序的入口地址,根據(jù)鍵值代碼查閱此表獲得相應(yīng)功能的子程序入口地址,從而可以轉(zhuǎn)移到相應(yīng)的命令處理子程序。功能子程序入口地址子程序1子程序2子程序3…入口地址1入口地址2入口地址3…功能子程轉(zhuǎn)移地址第十七頁(yè),共五十七頁(yè),編輯于2023年,星期二例:鍵盤接口調(diào)用按鍵識(shí)別子程序所獲得的鍵值如下表所示,當(dāng)鍵值小于10H時(shí)代表數(shù)字鍵,鍵值大于等于10H時(shí)代表功能鍵。
鍵值表按鍵鍵值0~F00H~0FHRUN10HRET11HADRS12HSTORE13HREAD14HWRITE15H第十八頁(yè),共五十七頁(yè),編輯于2023年,星期二處理功能鍵的程序:
INPUT:LCALLKEY;調(diào)按鍵識(shí)別子程序,獲得鍵值在A中 MOVR0,A;鍵值暫存于R0 ANLA,#10H JZDATIN;小于10H為數(shù)字鍵,轉(zhuǎn)入數(shù)字操作 MOVA,R0;大于等于10H為命令鍵 ANLA,#0FH;保留鍵值低4位 MOVR0,A;(A)×3 RLA ADDA,R0 MOVDPTR,#TABEL;取轉(zhuǎn)移表首地址 JMP@A+DPTR;按不同鍵值散轉(zhuǎn)至子程序TABEL:LJMP#RUN;轉(zhuǎn)RUN命令子程序 LJMP#RET;轉(zhuǎn)RET命令子程序 LJMP#ADRS;轉(zhuǎn)ADRS命令子程序 LJMP#STORE;轉(zhuǎn)STORE命令子程序 LJMP#READ;轉(zhuǎn)READ命令子程序 LJMP#WRITE;轉(zhuǎn)WRITE命令子程序DATIN:;數(shù)字鍵操作程序,略;第十九頁(yè),共五十七頁(yè),編輯于2023年,星期二LED顯示器接口技術(shù)LED數(shù)碼顯示器結(jié)構(gòu)與原理
LED數(shù)碼顯示器是由發(fā)光二極管顯示字段的顯示器件。在應(yīng)用系統(tǒng)中通常使用的是七段LED數(shù)碼顯示器。這種顯示塊有共陰極與共陽(yáng)極兩種,如下圖所示。第二十頁(yè),共五十七頁(yè),編輯于2023年,星期二使用LED顯示器時(shí),要注意區(qū)分共陰極和共陽(yáng)極兩種不同的接法。為了顯示數(shù)字或字符,必須對(duì)數(shù)字或字符進(jìn)行編碼,簡(jiǎn)稱段碼。七段數(shù)碼管加上一個(gè)小數(shù)點(diǎn),共計(jì)8段。因此為L(zhǎng)ED顯示器提供的段碼正好是一個(gè)字節(jié)。實(shí)際使用中,通過(guò)單片機(jī)向LED顯示接口輸出不同段碼,即可顯示相應(yīng)的數(shù)字。第二十一頁(yè),共五十七頁(yè),編輯于2023年,星期二LED數(shù)碼顯示器共陰極和共陽(yáng)極段碼
存儲(chǔ)器地址顯示數(shù)字共陰極接法的七段狀態(tài)gfedcba共陰極接法段碼(十六進(jìn)制數(shù))共陽(yáng)極接法段碼(十六進(jìn)制數(shù))SEG001111113F40SEG+1100001100679SEG+2210110115B24SEG+3310011114F30SEG+4411001106619SEG+5511011016D12SEG+6611111017D02SEG+7700001110778SEG+8811111117F00SEG+9911001116718SEG+10A11101117708SEG+11B11111007C03SEG+12C01110013946SEG+13D10111105E21SEG+14E11110017906SEG+15F1110001710E第二十二頁(yè),共五十七頁(yè),編輯于2023年,星期二
硬件譯碼LED顯示接口
如圖所示為采用硬件譯碼器的七段LED接口電路,顯示器是共陰極的。9368是硬件段譯碼器,它能自動(dòng)將輸入的16進(jìn)制數(shù)轉(zhuǎn)換成段碼輸出,在+5V時(shí)能輸出約30mA的電流點(diǎn)亮顯示器的段。7475是4位鎖存器,4個(gè)數(shù)據(jù)輸入端接到系統(tǒng)數(shù)據(jù)總線的D3~D0。鎖存器的選通端E接到地址譯碼器,若該接口的地址為0088H,執(zhí)行以下指令即可在顯示器上顯示數(shù)字“0”。
MOVDPTR,#0088HMOVA,#00HMOVX@DPTR,A第二十三頁(yè),共五十七頁(yè),編輯于2023年,星期二軟件譯碼LED顯示接口
設(shè)計(jì)思想:先在內(nèi)存中存儲(chǔ)一張段碼表,根據(jù)要顯示的數(shù)字或字符去查表取得相應(yīng)的段碼,并輸出到LED顯示器。具體顯示時(shí),采用逐位掃描的方法控制哪一位LED被點(diǎn)亮。
第二十四頁(yè),共五十七頁(yè),編輯于2023年,星期二程序清單:DISPB:MOVDPTR,#7F00H;8155命令口地址 MOVA,#03H MOVX@DPTR,A;置PA口、PB口為輸出 MOVR0,#7AH;置顯示緩沖器指針初值 MOVR3,#01H;置掃描模式初值 MOVA,R3DISPB1:MOVDPTR,#7F01H;8155PA口地址 MOVX@DPTR,A;掃描模式→8155PA口 INCDPTRMOVA,@R0;取顯示數(shù)據(jù)ADDA,#0DH;加偏移量MOVCA,@A+PC;查表取段碼MOVX@DPTR,A;段碼→8155PB口第二十五頁(yè),共五十七頁(yè),編輯于2023年,星期二
ACALLDELAY;延時(shí) INCR0 MOVA,R3 JBACC.5,DISPB2;判6位LED顯示完否 RLA;掃描模式左移1位 MOVR3,A AJMPDISPB1DISPB2:RETSEGPT2:DB3FH,06H,5BH,4FH,66H,6DH…;段碼表DELAY:MOVR5,#02H;延時(shí)子程序DELAY1:MOVR4,#0FFHDELAY2:DJNZR4,DELAY2 DJNZR5,DELAY1RET第二十六頁(yè),共五十七頁(yè),編輯于2023年,星期二串行接口LED驅(qū)動(dòng)器MAX7219
MAX7219是MAXIM公司生產(chǎn)的一種串行接口方式7段共陰極LED顯示驅(qū)動(dòng)器,其片內(nèi)包含有一個(gè)BCD碼到B碼的譯碼器、多路復(fù)用掃描電路、字段和字位驅(qū)動(dòng)器以及存儲(chǔ)每個(gè)數(shù)字的8×8RAM,每位數(shù)字都可以被尋址和更新,允許對(duì)每一位數(shù)字選擇B碼譯碼或不譯碼。采用三線串行方式與單片機(jī)接口,電路十分簡(jiǎn)單,只需要一個(gè)10k左右的外接電阻來(lái)設(shè)置所有LED的段電流。
第二十七頁(yè),共五十七頁(yè),編輯于2023年,星期二MAX7219采用串行數(shù)據(jù)傳輸方式,由16位數(shù)據(jù)包發(fā)送到DIN引腳的串行數(shù)據(jù)在每個(gè)CLK的上升沿被移入到內(nèi)部16位移位寄存器中,然后在LOAD的上升沿將數(shù)據(jù)鎖存到數(shù)字或控制寄存器中。LOAD信號(hào)必須在第16個(gè)時(shí)鐘上升沿同時(shí)或之后,但在下一個(gè)時(shí)鐘上升沿之前變高,否則將會(huì)丟失數(shù)據(jù)。DIN端的數(shù)據(jù)通過(guò)移位寄存器傳送,并在16.5個(gè)時(shí)鐘周期后出現(xiàn)在DOUT端。DOUT端的數(shù)據(jù)在CLK的下降沿輸出。串行數(shù)據(jù)以16位為一幀,其中D15~D12可以任意,D11~D8為內(nèi)部寄存器地址,D7~D0為寄存器數(shù)據(jù),工作時(shí)序如下:第二十八頁(yè),共五十七頁(yè),編輯于2023年,星期二寄存器地址D15~D12D11D10D9D8十六進(jìn)制代碼NO-OP×0000×0H數(shù)字0×0001×1H數(shù)字1×0010×2H數(shù)字2×0011×3H數(shù)字3×0100×4H數(shù)字4×0101×5H數(shù)字5×0110×6H數(shù)字6×0111×7H數(shù)字7×1000×8H譯碼方式×1001×9H亮度×1010×AH掃描界限×1011×BH停機(jī)×1100×CH顯示測(cè)試×1111×FHMAX7219的內(nèi)部寄存器及其地址
第二十九頁(yè),共五十七頁(yè),編輯于2023年,星期二如圖所示為8051單片機(jī)與MAX7219的一種接口,8051的P1.0連到MAX7219的DIN端,P1.1連到LOAD端,P1.2連到CLK端,采用軟件模擬方式產(chǎn)生所需的工作時(shí)序。下面給出根據(jù)該圖設(shè)計(jì)的MAX7219顯示驅(qū)動(dòng)程序例子,程序執(zhí)行后在LED上顯示8031字樣。
第三十頁(yè),共五十七頁(yè),編輯于2023年,星期二主程序MAIN:MOVSP,#60H;設(shè)置堆棧指針MOVR7,#0AH;亮度寄存器MOVR5,#07H;亮度值LCALLDINPUT;調(diào)用7219命令寫入子程序MOVR7,#0BH;掃描界限寄存器MOVR5,#07H;顯示7位數(shù)字LCALLDINPUTMOVR7,#09H;譯碼方式寄存器MOVR5,#0FFH;#FFH=7-0位均譯為B碼,#00=不譯碼LCALLDINPUTMOVR7,#0CH;停機(jī)寄存器MOVR5,#01H;正常工作LCALLDINPUTMOV30H,#08H;顯示8031MOV31H,#00HMOV32H,#03HMOV33H,#01HMOVR7,#30HLCALLDISPLY;調(diào)用7219顯示子程序SJMP$
第三十一頁(yè),共五十七頁(yè),編輯于2023年,星期二7219命令寫入子程序
DINPUT:MOVA,R7;傳遞來(lái)的第1個(gè)參數(shù)保存在R7中
MOVR2,#08;作為MAX7219控制寄存器的8位地址值
LOOP1:RLCA;A的D7位移至P1.0,依次為D6~D0
MOVP1.0,C;8位地址輸入DIN
CLRP1.2;P1.2輸出時(shí)鐘信號(hào)
SETBP1.2
DJNZR2,LOOP1
MOVA,R5;傳遞來(lái)的第2個(gè)參數(shù)保存在R5中
MOVR2,#08;作為寫入控制寄存器的8位命令數(shù)據(jù)值
LOOP2:RLCA;A的D7位移至P1.0,依次為D6~D0
MOVP1.0,C;8位數(shù)據(jù)輸入DIN
CLRP1.2;P1.2輸出時(shí)鐘信號(hào)
SETBP1.2
DJNZR2,LOOP2
CLRP1.1;P1.1輸出LOAD信號(hào),
SETBP1.1
RET第三十二頁(yè),共五十七頁(yè),編輯于2023年,星期二7219顯示子程序
DISPLY:MOVA,R7;R7的內(nèi)容為7219顯示緩沖區(qū)入口地址
MOVR0,A;R0指向顯示緩沖區(qū)首地址
MOVR1,#01;R1指向8字節(jié)顯示RAM首地址
MOVR3,#08
LOOP3:MOVA,@R0;取出顯示數(shù)據(jù)→R5
MOVR5,A
MOVA,R1;取出顯示RAM地址→R7
MOVR7,A
LCALLDINPUT;調(diào)用7219命令寫入子程序
INCR0
INCR1
DJNZR3,LOOP3
RET第三十三頁(yè),共五十七頁(yè),編輯于2023年,星期二8279可編程鍵盤/顯示器接口技術(shù)8279的工作原理鍵盤部分提供64按鍵陣列(可擴(kuò)展為128)的掃描接口,也可以接傳感器陣列。鍵的按下可以是雙鍵鎖定或N鍵互鎖。鍵盤輸入經(jīng)過(guò)反彈跳電路自動(dòng)消除前后沿按鍵抖動(dòng)影響之后,被選通送入一個(gè)8字符的FIFO(先進(jìn)先出棧)存儲(chǔ)器。如果送入的字符多于8個(gè),則溢出狀態(tài)置位。按鍵輸入后將中斷輸出線升到高電平向CPU發(fā)中斷申請(qǐng)。顯示部分對(duì)7段LED、白熾燈或其他器件提供顯示接口。8279有一個(gè)內(nèi)部的16×8顯示RAM,組成一對(duì)16×4存儲(chǔ)器。顯示RAM可由CPU寫入或讀出。顯示方式有從右進(jìn)入的計(jì)算器方式和從左進(jìn)入的電傳打字方式。顯示RAM每次讀寫之后,其地址自動(dòng)加1。第三十四頁(yè),共五十七頁(yè),編輯于2023年,星期二8279內(nèi)部邏輯結(jié)構(gòu)框圖第三十五頁(yè),共五十七頁(yè),編輯于2023年,星期二I/O控制和數(shù)據(jù)緩沖
控制與定時(shí)寄器及定時(shí)控制掃描計(jì)數(shù)器
返回緩沖器和鍵盤消顫及控制
FIFO/傳感器RAM和狀態(tài)
顯示地址寄存器和顯示RAM
8279內(nèi)部主要組成模塊
第三十六頁(yè),共五十七頁(yè),編輯于2023年,星期二8279功能命令一覽表第三十七頁(yè),共五十七頁(yè),編輯于2023年,星期二8279功能命令一覽表(續(xù)表)第三十八頁(yè),共五十七頁(yè),編輯于2023年,星期二8279與單片機(jī)的一般接口方法第三十九頁(yè),共五十七頁(yè),編輯于2023年,星期二單片機(jī)在初始化8279后,把顯示字符送到8279內(nèi)部的一個(gè)16字節(jié)寄存器內(nèi),并將字符轉(zhuǎn)換成段碼,經(jīng)A0~A3、B0~B3線把段碼送到顯示器,同時(shí)經(jīng)SL0~SL3線發(fā)出4位數(shù)位選通碼。4-16譯碼器對(duì)選通碼進(jìn)行譯碼后輪流選通各位顯示器。SL0~SL2線同時(shí)連到3-8譯碼器。該譯碼器的輸出用于掃描鍵盤8行。8279經(jīng)8根返回線(RL0~RL7)讀取鍵盤的狀態(tài)。如果發(fā)現(xiàn)按鍵閉合則等待10ms,顫動(dòng)過(guò)去后再檢驗(yàn)按鍵是否閉合。若按鍵仍然閉合,則把被按鍵的鍵值選通輸入8279內(nèi)部的先進(jìn)先出(FIFO)存儲(chǔ)器,同時(shí)經(jīng)INT線發(fā)出一個(gè)高電平,指出FIFO內(nèi)已經(jīng)有一個(gè)字符。INT線連接到CPU的中斷請(qǐng)求輸入線。當(dāng)單片機(jī)接收到中斷請(qǐng)求后,若開中斷,則轉(zhuǎn)到鍵盤服務(wù)程序,從FIFO中讀取按鍵的鍵值。在這種接口中,單片機(jī)要做的事僅是初始化8279、送出要顯示的字符、接到中斷請(qǐng)求后讀取按鍵的鍵值,其它工作均由8279自動(dòng)完成。第四十頁(yè),共五十七頁(yè),編輯于2023年,星期二單片機(jī)與8279的具體接口電路第四十一頁(yè),共五十七頁(yè),編輯于2023年,星期二8031的P2.7接到8279的片選端,最低位地址A0接到8279的C/D端,因此該接口對(duì)用戶來(lái)說(shuō)只有二個(gè)口地址:命令口地址7FFFH和數(shù)據(jù)口地址7FFEH。圖中8279外接4×8鍵盤和8位共陰極LED顯示器,采用編碼掃描方式,譯碼器74LS138對(duì)掃描線譯碼后一方面接鍵盤的列線,同時(shí)通過(guò)驅(qū)動(dòng)器接到顯示器上。
第四十二頁(yè),共五十七頁(yè),編輯于2023年,星期二8279初始化程序:INI79:MOVDPTR,#7FFFH;清除命令→8279 MOVA,#0D1H MOVX@DPTR,AWNDU:MOVXA,@DPTR;等8279清除結(jié)束
JBACC.7,WNDUMOVA,#0;方式命令→8279MOVX@DPTR,AMOVA,#34H;掃描頻率設(shè)置命令→8279MOVX@DPTR,AMOVIE,#84H;允許8279中斷
RET第四十三頁(yè),共五十七頁(yè),編輯于2023年,星期二顯示器更新程序:RDIR:MOVDPTR,#7FFFH;寫顯示RAM命令→8279MOVA,#90HMOVX@DPTR,AMOVR0,#78H;顯示緩沖器首地址→R0MOVR7,#8MOVDPTR,#7FFEHRDLO:MOVA,@R0;取顯示數(shù)據(jù)ADDA,#5;加偏移量MOVCA,@A+PC;查表轉(zhuǎn)換為段碼數(shù)據(jù)MOVX@DPTR,AINCR0DJNZR7,RDLORETSEG:DB3FH,06H,5BH,4FH;根據(jù)硬件線路設(shè)計(jì)的段碼DB66H,6DH,7DH,07HDB7FH,6FH77H,7CH第四十四頁(yè),共五十七頁(yè),編輯于2023年,星期二鍵輸入中斷服務(wù)程序:PKEYI:PUSHPSW PUSHDPL PUSHDPH PUSHACC PUSHB SETBPSW.3;選工作寄存器1區(qū)
MOVDPTR,#7FFFH;讀FIFO狀態(tài)字
MOVXA,@DPTR ANLA,#0FH JZPKYR;判FIFO中是否有數(shù)據(jù)? MOVA,#40H;讀FIFO命令→8279 MOVX@DPTR,A MOVDPTR,#7FFEH MOVXA,@DPTR;讀數(shù)據(jù)
MOVR2,A ANLA,#38H;計(jì)算鍵值
RRA第四十五頁(yè),共五十七頁(yè),編輯于2023年,星期二
RRA RRA MOVB,#04H MULAB XCHA,R2 ANLA,#7 ADDA,R2 MOVR0,40;鍵值→(40H)指出的環(huán)形緩沖器單元
MOV@R0,A INCR0 MOVA,R0 ANLA,#3FH;環(huán)形緩沖器指針處理
ORLA,#30H MOV40H,A SETB0;置標(biāo)志供主程序查詢處理PKYR:POPB POPACC POPDPH POPDPL POPPSW RETI第四十六頁(yè),共五十七頁(yè),編輯于2023年,星期二LCD顯示器接口
LCD的基本結(jié)構(gòu)及工作原理LCD的特點(diǎn)是體積小、重量輕、功耗極低、抗干擾能力強(qiáng)。第四十七頁(yè),共五十七頁(yè),編輯于2023年,星期二LCD的驅(qū)動(dòng)方式
LCD常采用交流驅(qū)動(dòng),通常采用異或門把顯示控制信號(hào)和顯示頻率信號(hào)合并為交變的驅(qū)動(dòng)信號(hào),如圖所示。當(dāng)顯示控制電極上的波形與公共電極上的方波相位相反時(shí),則為顯示狀態(tài)。顯示控制信號(hào)由C端輸入,高電平為顯示狀態(tài)。顯示頻率信號(hào)是一個(gè)方波。當(dāng)異或門的C端為低電平時(shí),輸出端B的電位與A端相同,LCD兩端的電壓為0,LCD不顯示,當(dāng)異或門的C端為高電平時(shí),B端的電位與A端相反,LCD兩端呈現(xiàn)交替變化的電壓,LCD顯示。
第四十八頁(yè),共五十七頁(yè),編輯于2023年,星期二段式LCD顯示器的驅(qū)動(dòng)接口顯示器4N07,譯碼驅(qū)動(dòng)器采用帶鎖存器的MC14543,可以將輸入的BCD碼轉(zhuǎn)換為7段顯示碼輸出。驅(qū)動(dòng)方式由PH端控制,PH端輸入顯示方波信號(hào)。LD是內(nèi)部鎖存器選通端,LD為高電平時(shí),允許A~D端輸入BCD碼數(shù)據(jù),LD為低電平時(shí),鎖存輸入數(shù)據(jù)。BI為高電平時(shí)為消隱。每塊MC14543各驅(qū)動(dòng)一位LCD,BCD碼輸入端A~D接到8051的P1.0~P1.3,鎖存器選通端LD分別接到P1.4~P1.7,分別控制4塊MC14543輸入BCD碼。MC14543的相位端PH接到8051的P3.7,由P3.7端提供一個(gè)顯示用的低頻方波信號(hào),方波信號(hào)的產(chǎn)生由8031片內(nèi)定時(shí)器T1的定時(shí)中斷產(chǎn)生第四十九頁(yè),共五十七頁(yè),編輯于2023年,星期二主程序DISBEQU60H;定義顯示緩沖區(qū)ORG0000HINIT:LJMPSTART;主程序入口ORG001BHLJMPINTT1;定時(shí)器1中斷入口ORG0030HSTART:MOVTMOD,#10H;置定時(shí)器T1為方式1MOVTH1,#0ECH;10ms定時(shí),fosc=6MHzMOVTL1,#78HSETBTR1;啟動(dòng)T1SETBEA;開中斷SETBET1…;其它工作LCALLDISP;調(diào)用顯示子程序…;其它工作第五十頁(yè),共五十七頁(yè),編輯于2023年,星期二顯示子程序:DISP:MOVR0,#DISB;R0指向顯示緩沖區(qū)首地址MOVR2,#10H;設(shè)定最高位鎖存控制標(biāo)志DISP1:MOVA,@R0;取顯示數(shù)據(jù)ANLA,#0FH;保留BCD碼ORLA,R2;加上鎖存控制位MOVP1,A;送入MC14543ANLP1,#0FH;置所有MC14543為鎖存狀態(tài)INCR0;R0指向顯示緩沖區(qū)下一位MOVA,R2;鎖存端控制標(biāo)志送ARLAMOVR2,AJNBACC.0,DISP1;未完成4位則繼續(xù)RET;已更新顯示,返回第五十一頁(yè),共五十七頁(yè),編輯于2023年,星期二定時(shí)器1中斷服務(wù)程序:INTT:CPLP3.7;P3.7輸出電平取反MOVTH1,#0ECH;置定時(shí)器計(jì)數(shù)初值MOVTL1,#78HRETI
溫馨提示
- 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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科技公司與醫(yī)療機(jī)構(gòu)之間關(guān)于醫(yī)療設(shè)備研發(fā)與銷售合同
- 2025年度廠房辦公室裝修項(xiàng)目噪音控制合同范本4篇
- 個(gè)體經(jīng)營(yíng)者與員工2024年勞動(dòng)協(xié)議樣式版B版
- 花煙草養(yǎng)護(hù)知識(shí)培訓(xùn)課件
- 2024跨國(guó)企業(yè)人力資源外包管理合同
- 2024版貨物運(yùn)輸安全合同書
- 2025年度園林景區(qū)草坪修剪與生態(tài)修復(fù)合同3篇
- 2024年03月廣東屆興業(yè)銀行深圳分行線上校招筆試歷年參考題庫(kù)附帶答案詳解
- 2025年度城市綜合體戶外廣告位及攤位聯(lián)合租賃及品牌推廣合同4篇
- 2025年拆除工程環(huán)境影響評(píng)價(jià)合同4篇
- 人教版八年級(jí)下冊(cè)第一單元英語(yǔ)Unit1 單元設(shè)計(jì)
- PEP小學(xué)六年級(jí)英語(yǔ)上冊(cè)選詞填空專題訓(xùn)練
- 古建筑修繕項(xiàng)目施工規(guī)程(試行)
- GA 844-2018防砸透明材料
- 化學(xué)元素周期表記憶與讀音 元素周期表口訣順口溜
- 非人力資源經(jīng)理的人力資源管理培訓(xùn)(新版)課件
- MSDS物質(zhì)安全技術(shù)資料-201膠水
- 鉬氧化物還原過(guò)程中的物相轉(zhuǎn)變規(guī)律及其動(dòng)力學(xué)機(jī)理研究
- (完整word)2019注冊(cè)消防工程師繼續(xù)教育三科試習(xí)題及答案
- 《調(diào)試件現(xiàn)場(chǎng)管理制度》
- 社區(qū)治理現(xiàn)代化課件
評(píng)論
0/150
提交評(píng)論