第4章3-4輸入輸出2015(1)_第1頁(yè)
第4章3-4輸入輸出2015(1)_第2頁(yè)
第4章3-4輸入輸出2015(1)_第3頁(yè)
第4章3-4輸入輸出2015(1)_第4頁(yè)
第4章3-4輸入輸出2015(1)_第5頁(yè)
已閱讀5頁(yè),還剩23頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、lLCDlLEDl線性鍵盤(pán)l矩陣鍵盤(pán) 4.3.14.3.1用并行口設(shè)計(jì)用并行口設(shè)計(jì)LEDLED顯示電路顯示電路1. 1. LEDLED顯示器及其原理顯示器及其原理 LEDLED節(jié)電壓:節(jié)電壓:1.5-2V1.5-2V工作電流:工作電流: 1-20mA1-20mA(靜態(tài))(靜態(tài))動(dòng)態(tài)工作真有效值等于靜態(tài)工作電流動(dòng)態(tài)工作真有效值等于靜態(tài)工作電流數(shù)碼管有共陰數(shù)碼管有共陰(b)(b)和共陽(yáng)和共陽(yáng)(c)(c)驅(qū)動(dòng)設(shè)計(jì)分段和位驅(qū)動(dòng)設(shè)計(jì)分段和位a ab bc cd de ef fg gdpdp(a)(b)(c)cdedp12345678910a bfgcomcomabcefabcdefgdpcomcom圖圖

2、5.45.42.2.LEDLED數(shù)碼管的接口數(shù)碼管的接口 數(shù)碼管的接口有靜態(tài)接口和動(dòng)態(tài)接口。數(shù)碼管的接口有靜態(tài)接口和動(dòng)態(tài)接口。 靜態(tài)接口靜態(tài)接口:顯示無(wú)閃爍,其電路可采用一個(gè)并行口接:顯示無(wú)閃爍,其電路可采用一個(gè)并行口接一個(gè)數(shù)據(jù)管,數(shù)碼管的公共端按共陰或共陽(yáng)分別接地一個(gè)數(shù)據(jù)管,數(shù)碼管的公共端按共陰或共陽(yáng)分別接地或或VccVcc。這種接法占用接口多,如果這種接法占用接口多,如果POPO口和口和P2P2口要用口要用作數(shù)據(jù)線和地址線,僅用單片機(jī)的并行口就只能接二作數(shù)據(jù)線和地址線,僅用單片機(jī)的并行口就只能接二個(gè)數(shù)碼管。也可以用串行接口的方法接多個(gè)數(shù)碼管,個(gè)數(shù)碼管。也可以用串行接口的方法接多個(gè)數(shù)碼管,

3、使之靜態(tài)顯示使之靜態(tài)顯示. . 動(dòng)態(tài)接口:動(dòng)態(tài)接口:采用各數(shù)碼管循環(huán)輪流顯示的方法,當(dāng)采用各數(shù)碼管循環(huán)輪流顯示的方法,當(dāng)循環(huán)顯示頻率循環(huán)顯示頻率20次次/S時(shí),利用人眼的暫留特性時(shí),利用人眼的暫留特性 ,看,看不出閃爍顯示現(xiàn)象,這種顯示需要一個(gè)接口完成字形不出閃爍顯示現(xiàn)象,這種顯示需要一個(gè)接口完成字形碼的輸出碼的輸出(字形選擇字形選擇),另一接口完,另一接口完 成各數(shù)碼管的輪流成各數(shù)碼管的輪流點(diǎn)亮點(diǎn)亮(數(shù)位選擇數(shù)位選擇)。 教材圖教材圖5-8:有五個(gè)共陰極數(shù)碼管的動(dòng)態(tài)顯示接口電路,用有五個(gè)共陰極數(shù)碼管的動(dòng)態(tài)顯示接口電路,用74LS373接成直通的方式作驅(qū)動(dòng)接成直通的方式作驅(qū)動(dòng) 電路,陰極用非電

4、路,陰極用非門(mén)門(mén)74LS04反相門(mén)驅(qū)動(dòng),字形選擇由反相門(mén)驅(qū)動(dòng),字形選擇由P1口提供,口提供,位選擇由位選擇由P3口控制。口控制。 當(dāng)當(dāng)P3.0P3.4輪流輸出輪流輸出1時(shí),五個(gè)數(shù)碼管輪流顯時(shí),五個(gè)數(shù)碼管輪流顯示。示。P1.7接開(kāi)關(guān),當(dāng)開(kāi)關(guān)打向位置接開(kāi)關(guān),當(dāng)開(kāi)關(guān)打向位置“1”時(shí),時(shí), 顯示顯示“12345”字樣,當(dāng)開(kāi)關(guān)打向字樣,當(dāng)開(kāi)關(guān)打向“2”時(shí),顯示時(shí),顯示“HELLO”字樣,程序清單如下:字樣,程序清單如下: 11111+5VVcc/EARSTP1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7P3.0P3.1P3.2P3.3P3.4XTAL1XTAL2GND89C51Q0Q6/

5、OED0D6G373ag圖5-5 接五個(gè)共陰極數(shù)碼管的動(dòng)態(tài)顯示接口12k1tp801bk3tp801bk4tp801bk2tp801bp13D1LEDQ18550R41KVCCD2LEDQ28550R51KVCCD3LEDQ38550R61KVCCD4LEDQ48550R71KVCCR910Kp20p21p22p23p24p25p26p27p14p15p16p17e1d2com3c4dp5b6a7com8f9g10S2LEDe1d2com3c4dp5b6a7com8f9g10S3LEDe1d2com3c4dp5b6a7com8f9g10S4LEDe1d2com3c4dp5b6a7com8f9g

6、10S1LED例 mada 板顯示程序l;mada2 tester programl;for t0 timer 10mS int.?l;cyc = 22.1184MHzl;mcs: stc12c5608adl;2011.04.25l disbufequ 5ch ;5c,5d,5e,5fl keybufequ5bhl data1equ58hl spkequP3.7l keyequ00hl ORG 0l ljmp mainl ORG 000BHl ljmp t0intl ORG 0030Hlmain: MOV SP, #60H ;主程序主程序l MOV TMOD,#09HMOV TH0,#58HM

7、OV TL0,#00HSETB EASETB ET0SETB TR0clrkey lABC:movr0,#disbuf;寫(xiě)顯示緩沖區(qū)寫(xiě)顯示緩沖區(qū)lmov r0,#1lincr0lmov r0,#2lincr0lmov r0,#3lincr0lmov r0,#4 lSJMP $t0int:MOV TH0,#88Hl MOV TL0,#00HlPUSH DPHl PUSH DPLl PUSH ACClpush pswl setbrs0l jmpAV1lt0ret: poppswlPOP ACCl POP DPLl POP DPHl RETIAV1: movr0,#disbufmovdptr, #t

8、ab mova,r0movc a,a+dptrmovp2,aclrp1.4jbp1.3,nk1movkeybuf, #1nk1:call delay1setb p1.4incr0mova,r0movc a,a+dptrmovp2,aclrp1.5jbp1.3,nk2movkeybuf, #2nk2:call delay1setb p1.5 incr0mova,r0movc a,a+dptrmovp2,aclrp1.6jbp1.3,nk3movkeybuf, #3 nk3:call delay1setb p1.6incr0mova,r0movc a,a+dptrmovp2,aclrp1.7jbp

9、1.3,nk4movkeybuf, #4 nk4:call delay1setb p1.7mova,keybuf;鍵功能鍵功能l movr0,#disbuf cjnea, #1, av1rinc r0 cjnea, #2, av1rincr0inc r0 cjnea, #3, av1rincr0inc r0 cjnea, #4, av1rincr0inc r0 lav1r: jmpt0ret;字碼表字碼表TAB: DB 44H,0DEH,62H,52H ;0,1,2,3db 0D8H,51H,41H,0D6H db 40H,50H,04H,9EHdb 22H,12H,98H,11Hdb 01H

10、,96H,00H,10H l;顯示延時(shí)顯示延時(shí)l;22.1184MHz,時(shí)間為時(shí)間為1.280758mslDELAY1: djnz r7,dl12lsetb spklmovr7,#1ldl12:movc,p1.3ljcdl11lmovr7,#10 ;lclr spkldl11:MOV R3,#04H l DL4:MOV R4 ,#7DH l DL3:NOPl NOPl DJNZ R4,DL3l DJNZ R3,DL4l RETl4.3.24.3.2用并行口設(shè)計(jì)鍵盤(pán)電路用并行口設(shè)計(jì)鍵盤(pán)電路 線性鍵盤(pán):按鍵少時(shí)采用,口線直接連接按鍵;線性鍵盤(pán):按鍵少時(shí)采用,口線直接連接按鍵;矩陣鍵盤(pán):按鍵較多時(shí)采

11、用,這樣可以節(jié)省口線矩陣鍵盤(pán):按鍵較多時(shí)采用,這樣可以節(jié)省口線例如兩個(gè)接口例如兩個(gè)接口線性鍵盤(pán)線性鍵盤(pán) 8+8=168+8=16個(gè)鍵;個(gè)鍵;矩陣鍵盤(pán)矩陣鍵盤(pán) 8 8* *8 8的形式接的形式接6464個(gè)按鍵,每個(gè)按鍵有它個(gè)按鍵,每個(gè)按鍵有它的行值和列值,行值和列值的組合就是識(shí)別這的行值和列值,行值和列值的組合就是識(shí)別這個(gè)按鍵的編碼。矩陣的行線和列線分別通過(guò)兩個(gè)按鍵的編碼。矩陣的行線和列線分別通過(guò)兩并行接口和并行接口和CPUCPU通信。通信。 鍵盤(pán)處理程序的任務(wù)是:鍵盤(pán)處理程序的任務(wù)是:l確定有無(wú)鍵按下;確定有無(wú)鍵按下;l判哪一個(gè)鍵按下,判哪一個(gè)鍵按下, l鍵的功能是什么;鍵的功能是什么;l還要

12、消除按鍵在閉合或斷開(kāi)時(shí)的抖動(dòng)。還要消除按鍵在閉合或斷開(kāi)時(shí)的抖動(dòng)。 兩個(gè)并行口中,一個(gè)輸出掃描碼,兩個(gè)并行口中,一個(gè)輸出掃描碼, 使按使按鍵逐行動(dòng)態(tài)接地鍵逐行動(dòng)態(tài)接地( (稱(chēng)行掃描稱(chēng)行掃描) ),另一個(gè)并行口輸,另一個(gè)并行口輸入按鍵狀態(tài)入按鍵狀態(tài)( (稱(chēng)回饋信號(hào),鍵盤(pán)的列值稱(chēng)回饋信號(hào),鍵盤(pán)的列值) ), 由由行掃描值和回饋信號(hào)共同形成鍵編碼而識(shí)別按行掃描值和回饋信號(hào)共同形成鍵編碼而識(shí)別按鍵、通過(guò)軟件查表,查出該鍵的功能。也可由鍵、通過(guò)軟件查表,查出該鍵的功能。也可由硬件編碼器完成鍵的編碼。硬件編碼器完成鍵的編碼。 下圖中,用下圖中,用8 8XX51XX51的并行口的并行口P1P1接接4 44 4

13、矩陣鍵盤(pán),矩陣鍵盤(pán), 以以P1.0P1.0P1.3P1.3作輸出線,以作輸出線,以P1.4P1.4P1.7P1.7作輸入線,鍵盤(pán)作輸入線,鍵盤(pán)掃描程序的流程如圖掃描程序的流程如圖5.75.7所示。所示。 EE DE BE 7F ED DD BD 7D EB DB BB 7B E7 D7 B7 77 Y返回鍵編碼返回鍵編碼讀讀P1.3P1.4值值置行掃描初值置行掃描初值掃描位從掃描位從P1口輸出口輸出P1口的高四位和低四位口的高四位和低四位相或得鍵編碼相或得鍵編碼掃到最后一行掃到最后一行?NN(有鍵按下)有鍵按下)N開(kāi)始開(kāi)始P1.0P1.3輸出輸出0延時(shí)去抖動(dòng)延時(shí)去抖動(dòng)P1.4P1.7全為全為1

14、?P1.4P1.7全為全為1?YY(無(wú)鍵按下無(wú)鍵按下) 對(duì)鍵盤(pán)的程序流程圖對(duì)鍵盤(pán)的程序流程圖5.7說(shuō)明如下:說(shuō)明如下: 當(dāng)當(dāng)P1.0P1.3輸出輸出0時(shí),如無(wú)鍵按下,時(shí),如無(wú)鍵按下,P1.4P1.7的輸入值均為的輸入值均為“1”,如果其中有一個(gè)不是,如果其中有一個(gè)不是 “1”,說(shuō)明有鍵按下,再使說(shuō)明有鍵按下,再使P1.0P1.3逐個(gè)輸出零逐個(gè)輸出零(行掃行掃描描),檢查,檢查P1.4P1.7的輸入值有的輸入值有 無(wú)零,從而查出無(wú)零,從而查出是哪行哪列的鍵按下。在判按鍵時(shí),按鍵有抖動(dòng),是哪行哪列的鍵按下。在判按鍵時(shí),按鍵有抖動(dòng),可采用延時(shí)后再重讀以跳可采用延時(shí)后再重讀以跳 過(guò)抖動(dòng)時(shí)段過(guò)抖動(dòng)時(shí)段(

15、也可用也可用R-S觸發(fā)器閂鎖電路硬件消抖,但這樣電路復(fù)雜,在觸發(fā)器閂鎖電路硬件消抖,但這樣電路復(fù)雜,在矩陣鍵盤(pán)中不采用矩陣鍵盤(pán)中不采用)。程序清單如下:程序清單如下:ORG 0000H TEST: MOV P1,#0F0H ; P1.0P1.3輸出輸出0, P1.4P1.7 輸出輸出1,作輸入位作輸入位 MOV A,P1 ;讀鍵盤(pán),檢測(cè)有無(wú)鍵按下;讀鍵盤(pán),檢測(cè)有無(wú)鍵按下ANL A,#0F0H ; 屏蔽屏蔽P1.0P1.3, 檢測(cè)檢測(cè)P1.4P1.是否全為是否全為1 CJNE A, #0F0H,HAVE ; P1.4P1.7不全為不全為1, 有鍵按下有鍵按下SJMP TEST ;P1.4P1.7

16、全為全為1, 無(wú)鍵按下,重檢測(cè)鍵盤(pán)無(wú)鍵按下,重檢測(cè)鍵盤(pán)HAVE: MOV A,#0FE ;有鍵按下,逐行掃描鍵盤(pán),;有鍵按下,逐行掃描鍵盤(pán), 置掃描初值置掃描初值NEXT: MOV B,A ;掃描碼暫存于;掃描碼暫存于BMOV P1,A ;輸出掃描碼;輸出掃描碼READ: MOV A,P1 ;讀鍵盤(pán);讀鍵盤(pán)ANL A,#0F0H ; 屏蔽屏蔽P1.0P1.3, 檢測(cè)檢測(cè)P1.4P1.是否全為是否全為1CJNE A,0F0H,YES ;P1.4P1.7不全為不全為1, 該行有鍵按下該行有鍵按下MOV A,B ;被掃行無(wú)鍵按下,準(zhǔn)備查下一行;被掃行無(wú)鍵按下,準(zhǔn)備查下一行RL A ;置下一行掃描碼;

17、置下一行掃描碼CJNE A,#0EFH,NEXT ;未掃到到最后一行循環(huán);未掃到到最后一行循環(huán)YES: ACALL DAY ;延時(shí)去抖動(dòng);延時(shí)去抖動(dòng)AREAD: MOV A,P1 ;再讀鍵盤(pán);再讀鍵盤(pán)ANL A,#0F0H ; 屏蔽屏蔽P1.0P1.3,保留,保留P1.4 P1.7(列碼列碼)MOV R2,A ;暫存列碼;暫存列碼MOV A, B ANL A,#0FH ;取行掃描碼;取行掃描碼ORL A,R2 ;行碼、列碼合并為鍵編碼;行碼、列碼合并為鍵編碼YES1: MOV B,A ;鍵編碼存于;鍵編碼存于BLJMP SAM38 ;轉(zhuǎn)鍵分析處理程序(見(jiàn)例;轉(zhuǎn)鍵分析處理程序(見(jiàn)例3-8) 例如

18、圖例如圖5-6中的中的“a”鍵,當(dāng)行掃描值鍵,當(dāng)行掃描值sccode=feH=11111110B,讀入列值到讀入列值到P1口和口和f0H相與即保相與即保 留高四位讀入值,屏蔽了低四位,再留高四位讀入值,屏蔽了低四位,再和和0fh相或得相或得recole=dfH=11011111B. sccode+ recode=00100001B,所以所以“a”鍵的編鍵的編碼碼21H,此值是此值是A的鍵碼,同樣可得的鍵碼,同樣可得“5” 鍵編碼鍵編碼為為01000100B即即44H,由此可將每個(gè)按鍵的編碼由此可將每個(gè)按鍵的編碼排出來(lái),通過(guò)查表程序轉(zhuǎn)不同的按鍵處排出來(lái),通過(guò)查表程序轉(zhuǎn)不同的按鍵處 理程序。理程序

19、。此程序部分請(qǐng)讀者自行編出。該程序同樣可用此程序部分請(qǐng)讀者自行編出。該程序同樣可用匯編語(yǔ)言編出。匯編語(yǔ)言編出。 1. 1. 四個(gè)并行口均可作為輸入輸出接口使用,但又有四個(gè)并行口均可作為輸入輸出接口使用,但又有各自的特點(diǎn)。因各自的特點(diǎn)。因POPO口是數(shù)據(jù)線和低八位的口是數(shù)據(jù)線和低八位的 地址線,地址線,因此不用它作輸入因此不用它作輸入/ /輸出接口,而是用它傳輸數(shù)據(jù)和輸出接口,而是用它傳輸數(shù)據(jù)和低八位的地址信息,除非在不低八位的地址信息,除非在不 接其他外圍芯片的情接其他外圍芯片的情況下才作況下才作I/OI/O接口使用,此時(shí)由于內(nèi)部漏極開(kāi)路,需接口使用,此時(shí)由于內(nèi)部漏極開(kāi)路,需外接上拉電阻。四個(gè)口的使用特點(diǎn)是本章的重點(diǎn)。外接上拉電阻。四個(gè)口的使用特點(diǎn)是本章的重點(diǎn)。 并行接口是單片機(jī)用得最多的部分,可直接接外并行接口是單片機(jī)用得最多的部分,可直接接外部設(shè)備部設(shè)備( (要注意電平的匹配要注意電平的匹配) )。本章

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論