




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
6接口技術(shù)
顯示接口
鍵盤接口1顯示器接口
顯示器是單片機(jī)應(yīng)用系統(tǒng)常用的輸出設(shè)備,用來顯示單片機(jī)的鍵入值、中間信息及運(yùn)算結(jié)果等。 單片機(jī)應(yīng)用系統(tǒng)常用顯示器 LED(發(fā)光二極管顯示器、數(shù)碼管顯示器)和LCD(液晶顯示器)。2一、數(shù)碼管顯示器的結(jié)構(gòu)3二、字段碼
在實(shí)際應(yīng)用中,常用一個(gè)8位并行I/O口的輸出D0~D7對應(yīng)控制數(shù)碼管的a~dp以顯示不同字形。從I/O口輸出的驅(qū)動(dòng)數(shù)碼管以顯示不同字形的數(shù)據(jù)稱為字段碼(字形碼、顯示代碼)。【例】共陰極結(jié)構(gòu)的數(shù)碼管顯示“0”的字段碼為:
其他一些字形的字段碼如下表:D7D6D5D4D3D2D1D0字形碼dpgfedcba001111113FH4顯示字符共陰極段碼共陽極段碼顯示字符共陰極段碼共陽極段碼03FHC0Hc39HC6H106HF9Hd5EHA1H25BHA4HE79H86H34FHB0HF71H8EH466H99HP73H8CH56DH92HU3EHC1H67DH82HT31HCEH707HF8Hy6EH91H87FH80HH76H89H96FH90HL38HC7HA77FH88H“滅”00HFFHb7CH83H共陰極段碼和共陽極段碼互為相反。5三、顯示字符轉(zhuǎn)換為字段碼(查表法)“P”的字段碼73H“F”的字段碼71H……“4”的字段碼66H“3”的字段碼4FH“2”的字段碼5BH“1”的字段碼06H“0”的字段碼3FHTABTAB+0FHTAB+10H…TAB+04HTAB+03HTAB+02HTAB+01HDPTRAMOVCA,@A+DPTR
61.靜態(tài)顯示方式共陰極或共陽極點(diǎn)連接在一起接地或+5V。每位的段選線與一個(gè)8位并行口連接。四、顯示方式及其接口7【例】用P2、P3口作為靜態(tài)顯示接口限流電阻R=(Vcc-VF)/IF8
ORG 0000H LJMP MAIN ORG 0030HMAIN:MOV 40H,#06H MOV 41H,#08H ;顯示緩沖單元 MOV DPTR,#DTAB MOV A,40H MOVCA,@A+DPTR ;查表求字形碼 MOV P3,A MOV A,41H MOVCA,@A+DPTR MOV P2,A SJMP $DTAB:DB0C0H,0F9H,0A4H,0B0H,99H,92H DB82H,0F8H,80H,90H,88H,83H DB0C6H,0A1H,86H,8EH;0~F的字形碼92.動(dòng)態(tài)顯示方式原理所有字段控制共用一個(gè)I/O口每個(gè)字位的控制占用一根I/O口線顯示時(shí),在某一時(shí)刻,字段口輸出第i位的字段碼,同時(shí)字位口驅(qū)動(dòng)第i位的COM端使其點(diǎn)亮,如此逐位輪流點(diǎn)亮形成穩(wěn)定的n位數(shù)碼顯示效果。10【例】使用P0口作為字段控制口,P2口作為字位控制線設(shè)計(jì)一個(gè)8位LED顯示器。其電路和顯示驅(qū)動(dòng)程序如下:11
字段控制口驅(qū)動(dòng)字位控制口驅(qū)動(dòng)(74HC44)8位共陰極12DISP:MOV R0,#30H;顯示緩沖單元首地址 MOV R3,#0FEH;字位碼初值(從最右位起)DISP1:MOV A,R3 MOV P2,A ;輸出字位碼 MOV A,@R0;取顯示數(shù)據(jù)碼MOVDPTR,#TABMOVCA,@A+DPTR;查表得相應(yīng)字段碼MOV P0,A ;輸出字段碼 LCALLD1MS ;保持顯示1毫秒 INC R0;指向下一顯示緩沖單元 MOV A,R3;取出字位碼 JNB ACC.7,DISP2;判已顯示到最左位否 RL A;未完,字位碼左移1位 MOV R3,A;回存新字位碼 LJMP DISP1;轉(zhuǎn)下一位顯示DISP2:RET顯示子程序:13TAB:DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH
;"0"~"9"顯示字段碼表 DB0BFH,86H,0DBH,0CFH,0E6H,0EDH,0FDH,DB87H,0FFH,0EFH;0.~9.DB40H,63H,37H,71H,00H;"-""o""n""F""全暗“
;根據(jù)實(shí)際系統(tǒng)需要安排顯示字段碼表D1MS:MOV R7,#250;延時(shí)約1毫秒子程序D1MS1:NOP NOP DJNZR7,D1MS1 RET14【例】電子鐘程序。 利用定時(shí)器T0定時(shí),模擬24小時(shí)走時(shí)的電子鐘,時(shí)、分、秒以BCD碼形式依次存放在3CH、3BH、3AH;38H、39H作為軟件計(jì)數(shù)器。在8位數(shù)碼管上顯示
HH-MM-SS
選擇T0工作于定時(shí)、方式2、定時(shí)時(shí)間為250s。TMOD=00000010B=02H 計(jì)算初值 fosc=12MHz機(jī)器周期TM=1s 要定時(shí)250s即要計(jì)數(shù)250個(gè)機(jī)器周期脈沖 初值=28-250=6=06H15 ORG0000H ;主程序入口 LJMPCLOCK ;轉(zhuǎn)主程序初始化ORG000BH;T0中斷入口 LJMPTP0 ;轉(zhuǎn)T0中斷服務(wù)程序
ORG0030H
;主程序初始化程序CLOCK:MOVSP,#6FH
;設(shè)棧底指針 MOVTMOD,#02H
;T0定時(shí)方式2 MOVTL0,#06H ;定時(shí)250微秒 MOVTH0,#06H
MOV38H,#200
;軟件計(jì)數(shù)單元初值 MOV39H,#20SETBEA ;中斷總允許 SETBET0 ;允許T0中斷 SETBTR0 ;啟動(dòng)T0工作16
MOV 3AH,#0
;時(shí)間初值
MOV 3BH,#0
MOV 3CH,#0
;<根據(jù)需要設(shè)置>
MOV32H,#0AH
MOV35H,#0AH
;第3、6位顯示“-”LOOP:LCALL CZ ;調(diào)用拆字子程序 LCALL DISP ;調(diào)用顯示子程序 SJMP LOOP ;反復(fù)循環(huán)主流程TP0:PUSH ACC ;T0500微秒中斷服務(wù)程序
PUSH PSW ;保護(hù)現(xiàn)場
DJNZ 38H,DONE;每250微秒減1,滿0.05秒?MOV 38H,#200DJNZ 39H,DONE;每0.05秒加1,滿1S?MOV 39H,#2017MOVA,3AH;秒單元(按BCD碼)加1ADDA,#1DAAMOV3AH,ACJNEA,#60H,DONE;滿1分鐘?MOV3AH,#0;秒單元清零MOVA,3BH;分鐘單元(按BCD碼)加1ADDA,#1DAAMOV3BH,ACJNEA,#60H,DONE;滿1小時(shí)?
MOV3BH,#0;分鐘單元清零
18
MOVA,3CH;小時(shí)單元(按BCD碼)加1
ADDA,#1 DAA MOV3CH,A CJNEA,#24H,DONE;滿24小時(shí)?
MOV3CH,#0;小時(shí)單元清零
DONE:POPPSW POPACC ;恢復(fù)現(xiàn)場 RETI ;中斷返回19CZ:MOVR0,#3AH
;拆字子程序
MOVR1,#30H
;30H~37H為顯示緩沖單元CZ1:MOVA,@R0ANLA,#0FHMOV@R1,AINCR1MOVA,@R0ANLA,#0F0HSWAPAMOV@R1,AINCR0INCR1
INCR1
;第3、6位顯示“-”
CJNER0,#3DH,CZ1RET20DISP:MOV R0,#30H;顯示緩沖單元首地址 MOV R3,#0FEH;字位碼初值(從最右位起)DISP1:MOV A,R3
MOV P2,A ;輸出字位碼 MOV A,@R0;取顯示數(shù)據(jù)碼MOVDPTR,#TABMOVCA,@A+DPTR;查表得相應(yīng)字段碼MOV P0,A ;輸出字段碼 LCALLD1MS ;保持顯示1毫秒 INC R0;指向下一顯示緩沖單元 MOV A,R3;取出字位碼 JNB ACC.7,DISP2;判已顯示到最左位否 RL A;未完,字位碼左移1位 MOV R3,A;回存新字位碼 LJMP DISP1;轉(zhuǎn)下一位顯示DISP2:RET21TAB:DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH
;"0"~"9"顯示字段碼表 DB40H,63H,37H,71H,00H;"-""o""n""F""全暗“DB0BFH,86H,0DBH,0CFH,0E6H,0EDH,0FDH,DB87H,0FFH,0EFH;0.~9.
;根據(jù)實(shí)際系統(tǒng)需要安排顯示字段碼表D1MS:MOVR7,#250;延時(shí)約1毫秒子程序D1MS1:NOP NOP DJNZR7,D1MS1 RET22LCD顯示器介紹*
液晶(LCD-LiquidCrystalDisplay)顯示器是一種被動(dòng)式顯示器,液晶本身并不發(fā)光,液晶經(jīng)過處理后能改變光線通過方向的特性,而達(dá)到顯示的目的。液晶顯示器具有功耗低、抗干擾能力強(qiáng)等優(yōu)點(diǎn),廣泛用在儀器儀表和控制系統(tǒng)中。
LCD顯示器的分類(1)字段型廣泛用于電子表、數(shù)字儀表、計(jì)算器中。(2)點(diǎn)陣字符型顯示字母、數(shù)字、符號。它是由5×7或5×10點(diǎn)陣組成。(3)點(diǎn)陣圖形型可顯示字符、圖形和中文。23字符型LCD模塊液晶顯示模塊LCM(LCDModule):LCD顯示板、LCD控制器、驅(qū)動(dòng)器(對LCD顯示器進(jìn)行掃描、驅(qū)動(dòng)),以及一定空間的RAM和ROM(存儲(chǔ)寫入的命令和顯示字符的點(diǎn)陣)的集合。24
引腳
模塊有14個(gè)引腳,其中有8條數(shù)據(jù)線,3條控制線,3條電源線。通過單片機(jī)寫入模塊的數(shù)據(jù)(字符的ASCII碼)和指令,就可對顯示方式和顯示內(nèi)容作出選擇。25RSR/W*操作00命令寄存器寫入01忙標(biāo)志和地址計(jì)數(shù)器讀出10數(shù)據(jù)寄存器寫入11數(shù)據(jù)寄存器讀出
寄存器的選擇操作26
命令字及功能功能:清除屏幕顯示,并給地址計(jì)數(shù)器AC置“0”。
功能:置DDRAM(顯示數(shù)據(jù)RAM)及顯示RAM的地址為“0”,顯示返回到原始位置。27功能:設(shè)置光標(biāo)的移動(dòng)方向,并指定整體顯示是否移動(dòng)。其中:I/D
=
1,為增量方式;I/D
=
0,為減量方式。如S
=
1,表示移位;如S
=
0,表示不移位。28293031
LCD與AT89C51的連接32
LCD的初始化33鍵盤接口鍵盤是單片機(jī)應(yīng)用系統(tǒng)的一個(gè)重要輸入設(shè)備,用于輸入數(shù)據(jù)、干預(yù)系統(tǒng)的工作狀態(tài)。按連接方式:獨(dú)立式按鍵和行列式(矩陣式)鍵盤。34每個(gè)按鍵需占用一根I/O口線一、獨(dú)立式鍵盤1.電路結(jié)構(gòu)各個(gè)按鍵相互獨(dú)立,互不影響。352.按鍵狀態(tài)的輸入與消抖動(dòng)
消抖動(dòng)方法: 硬件消抖動(dòng) 軟件消抖動(dòng):軟件延時(shí)(10~20毫秒)+5VRKSK點(diǎn)輸出S按下S放開抖動(dòng)363.鍵盤管理程序(1)檢測是否有按鍵閉合;(2)若有鍵閉合,延時(shí)消抖動(dòng);(3)確認(rèn)是否有按鍵閉合;(4)判斷閉合按鍵鍵號;(5)等待按鍵釋放;(6)執(zhí)行相應(yīng)鍵功能。開始有鍵閉合嗎?延時(shí)消抖動(dòng)確有鍵閉合嗎?判斷閉合鍵鍵號閉合鍵釋放否?執(zhí)行鍵功能返回NNNYYY37SKEY:MOVP1,#0FFH
MOVA,P1
;輸入按鍵狀態(tài)
CPLA
;取反
JZKD
;若無鍵閉合則返回
LCALLD12MS
;延時(shí)12ms消抖動(dòng)
MOVA,P1 CPLA JZKD;確認(rèn)是否有鍵閉合
MOVA,P1 MOVB,A
;輸入穩(wěn)定的鍵狀態(tài)
KW:MOVA,P1 CPLA JNZKW
;等待鍵釋放鍵盤管理程序38
MOVA,B
;取鍵值
JNBACC.0,K0
;若是K0閉合則轉(zhuǎn)K0鍵功能程序
JNBACC.1,K1
;若是K1閉合則轉(zhuǎn)K1鍵功能程序
... JNBACC.7,K7
;若是K7閉合則轉(zhuǎn)K7鍵功能程序
KD:RET
;返回
K0:...
;K0鍵功能程序
RET ......K7:...
;K7鍵功能程序
RET39【例】編一程序?qū)崿F(xiàn):當(dāng)按下獨(dú)立式鍵盤的K0~K7時(shí),分別將8位數(shù)碼管顯示器的顯示內(nèi)容按BCD碼加1。40
ORG0000H LJMPMAIN ORG0030HMAIN:MOVSP,#6FH MOV30H,#00H MOV31H,#00H MOV32H,#00H MOV33H,#00H MOV34H,#00H MOV35H,#00HMOV36H,#00HMOV37H,#00H
;顯示初值為“00000000”
LP:LCALLDISP
;調(diào)用顯示子程序
LCALLSKEY
;調(diào)用鍵盤管理子程序
SJMPLP41SKEY:MOVP1,#0FFH
MOVA,P1
;輸入按鍵狀態(tài)
CPLA
;取反
JZKD
;無鍵閉合則返回
LCALLD12MS
;延時(shí)12ms消抖動(dòng)
MOVA,P1 MOVB,A
;輸入穩(wěn)定的鍵狀態(tài)
KW:MOVA,P1 CPLA JNZKW
;等待鍵釋放42
MOVA,B
;取鍵值
JNBACC.0,K0
;若是K0閉合則轉(zhuǎn)K0鍵功能程序
JNBACC.1,K1
;若是K1閉合則轉(zhuǎn)K1鍵功能程序
...
JNBACC.7,K7
;若是K7閉合則轉(zhuǎn)K7鍵功能程序
KD:RET
;返回
K0:MOVA,30H
;K0鍵功能程序
ADDA,#1
DAA
ANLA,#0FH MOV30H,A RET43
K1:MOVA,31H
;K1鍵功能程序
ADDA,#1 DAA ANLA,#0FH MOV31H,A RET
K7:MOVA,37H
;K7鍵功能程序
ADDA,#1 DAA ANLA,#0FH MOV37H,A RET44DISP:;顯示子程序
RETD12MS:;12ms延時(shí)子程序
RETEND演示,注意觀察運(yùn)行情況,思考存在什么問題?45由于采用軟件延時(shí)消抖動(dòng)、等待鍵釋放,造成顯示不能及時(shí)更新。采用滾動(dòng)濾波消抖動(dòng)。P1=FFHP1FFHP1=FFH01t2t3t4t5t6t………………t為采樣時(shí)間無按鍵按下閉合釋放4640H前一次濾波結(jié)果41H當(dāng)前濾波結(jié)果42H
最近5次輸入43H44H45H46H
具體實(shí)現(xiàn)在存儲(chǔ)器中使用7個(gè)單元用于濾波P1滾動(dòng)存儲(chǔ)47將42H~46H單元內(nèi)容滾動(dòng)存儲(chǔ)(即43H42H,44H43H,45H44H,46H45H)將P1口內(nèi)容輸入到46H比較42H~46H內(nèi)容是否相同,若不同,則放棄,直接返回;相同,將該值存入41H若(40H)=FFH且(41H)FFH表示有鍵按下,將41H40H
,進(jìn)行鍵功能處理后返回。若是其它情況,則處于無按鍵、鍵長按下或鍵釋放狀態(tài),則不進(jìn)行任何處理,只將41H40H后返回。48SKEY:MOV 42H,43H ;滾動(dòng)存儲(chǔ) MOV 43H,44H MOV 44H,45H MOV 45H,46H MOV P1,#0FFH ;置P1口為輸入 MOV 46H,P1 MOV A,42H ;比較42H~46H是否同 CJNE A,43H,KD CJNE A,44H,KD CJNE A,45H,KD CJNE A,46H,KD ;不同,放棄 MOV 41H,A ;相同,存入41H MOV A,40H CJNE A,#0FFH,SK1 MOV A,41H ;判斷是否FFH非FFH CJNE A,#0FFH,SK2 ;即是不是鍵按下過程
SK1:MOV 40H,41H ;不是,本次鍵值存入40H RET49
SK2:MOV 40H,41H ;有效按鍵,執(zhí)行鍵功能 JNB ACC.0,K0;若是K0閉合則轉(zhuǎn)K0鍵功能程序
JNBACC.0,K0
;若是K0閉合則轉(zhuǎn)K0鍵功能程序
JNBACC.1,K1
;若是K1閉合則轉(zhuǎn)K1鍵功能程序
...
JNBACC.7,K7
;若是K7閉合則轉(zhuǎn)K7鍵功能程序
KD:RET
;返回
K0:MOVA,30H;K0鍵功能程序 ADDA,#1 DAA ANLA,#0FH MOV30H,A RET
... ;與前一程序相同50二、行列式鍵盤1.電路結(jié)構(gòu)按鍵設(shè)置在行、列線交點(diǎn)上列線行線512.工作原理 (1)判斷是否有鍵閉合 行線全輸出0,輸入列線狀態(tài),若全為1,則無按鍵閉合;否則,至少有一鍵閉合。 (2)消抖動(dòng) 軟件延時(shí)消抖動(dòng) (3)確定哪個(gè)鍵閉合
?掃描法
?線反轉(zhuǎn)法52 (2)消抖動(dòng) 軟件延時(shí)消抖動(dòng) (3)確定哪個(gè)鍵閉合 掃描法線反轉(zhuǎn)法533.線反轉(zhuǎn)法第1步:行線全輸出低電平,輸入列線的值;第2步:列線全輸出低電平,輸入行線的值;第3步:合并行、列線的值,形成一個(gè)對應(yīng)閉合鍵的編碼;第4步:根據(jù)編碼(查表)求鍵值。54;鍵編碼表,對應(yīng)每個(gè)鍵的行列狀態(tài)值,該值唯一。KTAB:DB0EEH,0EDH,0EBH,0E7H DB0DEH,0DDH,0DBH,0D7H DB0BEH,0BDH,0BBH,0B7H DB7EH,7DH,7BH,77H55VK:MOV 42H,43H
;滾動(dòng)存儲(chǔ)
MOV 43H,44H MOV 44H,45H MOV 45H,46H
ORLP1,#00001111B
;行線輸出,列線輸入
ANLP1,#00001111B;行線輸出0
MOVA,P1 ANLA,#0FH
MOVB,A
;輸入列線值
ORLP1,#
11110000B
;行線輸入,列線輸出
ANLP1,#11110000
B
;列線輸出0
MOVA,P1
;輸入行線值
ANLA,#0F0H ORLB,A
;行、列值合并鍵盤管理程序56
MOV46H,#0
;存鍵值單元初值
MOVDPTR,#KTAB
MOVR7,#16
;4X4=16個(gè)鍵VK0:CLR
溫馨提示
- 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人教版(2024)小學(xué)美術(shù)一年級下冊教學(xué)計(jì)劃、教學(xué)設(shè)計(jì)及教學(xué)反思(附目錄)
- 2023槽式太陽能集熱器技術(shù)條件
- 小產(chǎn)權(quán)購房協(xié)議書
- 旅游業(yè)數(shù)字化轉(zhuǎn)型服務(wù)流程管理辦法
- 亮化工程廠家供貨合同
- 合伙合作工程協(xié)議書
- 商標(biāo)權(quán)轉(zhuǎn)讓合同書8篇
- 房屋遺產(chǎn)分配協(xié)議書
- 建筑器材購銷合同范本
- 水環(huán)真空泵市場分析及競爭策略分析報(bào)告
- 2025年海域使用權(quán)租賃合同
- 四年級希望杯歷年數(shù)學(xué)競賽試題與答案1-13屆+奧數(shù)分類專項(xiàng)練習(xí)集等
- (2025春)人教版三年級數(shù)學(xué)下冊全冊教案
- 河南2025年02月鄭州市公安機(jī)關(guān)公開招考1200名警務(wù)輔助人員筆試歷年典型考題(歷年真題考點(diǎn))解題思路附帶答案詳解
- 2025年江蘇省高職單招《職測》高頻必練考試題庫400題(含答案)
- 2025云南紅河州個(gè)舊市大紅屯糧食購銷限公司招聘及人員高頻重點(diǎn)模擬試卷提升(共500題附帶答案詳解)
- X證書失智老年人照護(hù)講解
- 2024-2025學(xué)年人教版數(shù)學(xué)八年級下冊期中檢測卷(含答案)
- 2024年山東服裝職業(yè)學(xué)院高職單招語文歷年參考題庫含答案解析
- 2025屆江蘇蘇州市四校高三12月聯(lián)考語文試題(教師版)
- 2025年春新外研版(三起)英語三年級下冊課件 Unit2第3課時(shí)Fuelup
評論
0/150
提交評論