具有紅外感應(yīng)功能的51單片機(jī)漢字顯示器_圖文_第1頁(yè)
具有紅外感應(yīng)功能的51單片機(jī)漢字顯示器_圖文_第2頁(yè)
具有紅外感應(yīng)功能的51單片機(jī)漢字顯示器_圖文_第3頁(yè)
具有紅外感應(yīng)功能的51單片機(jī)漢字顯示器_圖文_第4頁(yè)
具有紅外感應(yīng)功能的51單片機(jī)漢字顯示器_圖文_第5頁(yè)
已閱讀5頁(yè),還剩9頁(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、具有紅外感應(yīng)功能的51單片機(jī)漢字顯示器楊路(廈門(mén)大學(xué)物理與機(jī)電工程學(xué)院,福建廈門(mén)361005)摘要:本系統(tǒng)是以51單片機(jī)為控制核心,通過(guò)I/O口控制16*16的LED 燈泡來(lái)顯示漢字。在一個(gè)基本的顯示器基礎(chǔ)之上,通過(guò)增加光電傳感器ST178和比較器LM393,對(duì)靠近顯示器的物體做出反應(yīng)。關(guān)鍵詞:51單片機(jī);ST178;光電傳感器;LED 點(diǎn)陣式漢字顯示中圖分類(lèi)號(hào):TP2文獻(xiàn)標(biāo)識(shí)碼:A目前單片機(jī)原理與應(yīng)用課程已經(jīng)在理工科專(zhuān)業(yè)中普遍開(kāi)設(shè),然而純理論的學(xué)習(xí)讓同學(xué)們很難提高興趣。用單片機(jī)控制LED 點(diǎn)陣式漢字顯示具有理論簡(jiǎn)單易懂,可拓展性強(qiáng)等特點(diǎn),同學(xué)們可以根據(jù)自己的興趣使其具有自定義的各種功能。本文

2、就是通過(guò)增加光電傳感器來(lái)實(shí)現(xiàn)紅外感應(yīng)功能的。1. 實(shí)驗(yàn)原理 漢字顯示原理:我們的顯示器是由16行*16列的LED 燈泡組成,而我們就是通過(guò)單片機(jī)來(lái)控制這256個(gè)燈泡按一定規(guī)律的亮起來(lái)顯示漢字。我們采用逐列掃描法,例如預(yù)先算好某漢字在該顯示器上顯示時(shí)哪些燈泡應(yīng)該亮(也叫漢字取模),然后在顯示時(shí)先讓第一列該亮的燈泡都亮起來(lái),然后換下一列,最后一列顯示完成之后再繼續(xù)顯示第一列繼續(xù)循環(huán)。假定每一列顯示1ms ,一個(gè)漢字顯示1.6s的話,那么一個(gè)字需要刷新100遍。雖然實(shí)際顯示是一列一列進(jìn)行的,但是由于人眼的視覺(jué)暫留效應(yīng),很高的刷新頻率人眼看起來(lái)會(huì)認(rèn)為所有的亮點(diǎn)是同時(shí)亮起來(lái)的,于是漢字就顯示出來(lái)了。其實(shí)

3、現(xiàn)在有很多漢字取模軟件可以幫我們自動(dòng)取模(自動(dòng)取模的漢字代碼需做修改,原因及修改方法在程序部分有詳細(xì)描述)。收稿日期:2009-05-04作者簡(jiǎn)介:楊路(1987-1-7 ,男,廈門(mén)大學(xué)物理與機(jī)電工程學(xué)院物理系06級(jí)本科生E-Mail :yala1987紅外感應(yīng)原理:ST178的發(fā)射二極管發(fā)出紅外,當(dāng)有人的手等東西靠近時(shí)會(huì)反射紅外。ST178的接受三極管接收到反射的紅外,三極管內(nèi)阻由非常大變?yōu)榉浅P?。于是?huì)改變輸出電壓,將該變化電壓送到比較器LM393,經(jīng)過(guò)與合適的比較電壓比較之后,LM393輸出高電平。即有手靠近時(shí)比較器LM393輸出高電平,沒(méi)有手靠近時(shí)輸出低電平。之后將比較器的輸出接入單片

4、機(jī)的P3.2引腳,即INT0中斷入口。最后的效果就是正常情況下顯示某字符,當(dāng)有手靠近時(shí),單片機(jī)調(diào)用中斷子程序顯示另外的漢字,例如某某你好!2. 主要硬件電路設(shè)計(jì) 實(shí)際的電路連接。行方向我們用P0口和P2口共16個(gè)I/O口進(jìn)行行選中,列方向用P1.0P1.4五個(gè)口通過(guò)4-16線譯碼器74LS154進(jìn)行列選中。電路中行方向由p0口和p2口完成掃描,由于p0口沒(méi)有上拉電阻,因此接一個(gè)4.7k*8的排阻上拉。為提供負(fù)載能力,接16個(gè)2n5551的NPN 三極管驅(qū)動(dòng)。列方向由416譯碼器74LS154完成掃描,它由51單片機(jī)的P1.0P1.3控制。同樣,驅(qū)動(dòng)部分則是16個(gè)2N5401的三極管完成的。電路

5、的供電是將輸出為9V30V之間的穩(wěn)壓器或方形電池接到LM7805的輸入端,以穩(wěn)定輸出5V 電壓。LED 燈泡的焊接。采用一塊至少12*18cm的萬(wàn)能電路板。一定注意在焊接燈泡之前先將每個(gè)燈泡用2V 左右的電壓試一下,看看能否正常亮起來(lái),亮度會(huì)不會(huì)太暗。因?yàn)殡娐愤B好之后再換燈泡幾乎是不可能的事情。由于燈泡同一行(或同一列)的正極、負(fù)極需要分別連在一起,所以整個(gè)電路的背面會(huì)形成網(wǎng)格狀,但是卻不能交叉。于是網(wǎng)絡(luò)上建議用“行方向直接焊接起來(lái),列方向則搭橋架空焊接”我相信搭橋架空焊接很多同學(xué)都不會(huì),也是很麻煩的一件事情。于是我自創(chuàng)了一種“繞線法”,即背面行方向直接焊接起來(lái),列方向則在背面只用一滴焊錫固定

6、住位置即可,而在正面通過(guò)細(xì)導(dǎo)線將管腳繞一圈連接起來(lái),并且滴一滴焊錫固定并加強(qiáng)接觸,以免出現(xiàn)管腳被導(dǎo)線“繞中空”。采用繞線法時(shí),推薦將需要繞線的燈泡,焊一排燈泡繞一排線,并用焊錫將線與燈泡管腳固定。背面暫時(shí)全用點(diǎn)焊錫固定,燈泡全部焊完后再將背面需要連接的方向用焊錫連接。繞線法如圖。 我們可以先在萬(wàn)能板某個(gè)角落將256個(gè)燈泡焊完,之后就要根據(jù)電路圖,對(duì)其他芯片的位置以及大概布線的情況做個(gè)規(guī)劃了。否則跳線太多,既影響美觀,也容易使電路出現(xiàn)問(wèn)題。關(guān)于ST178和LM393的電路。如下圖圖中接在ST178發(fā)射二極管的電阻是不確定的,要根據(jù)自己的實(shí)測(cè)選擇最合適的,選擇的標(biāo)準(zhǔn)是發(fā)射管電流在10ma 左右。接

7、在比較器負(fù)輸入端的那兩個(gè)20k 和1k 的電阻也是不確定的。確定他們電阻大小的標(biāo)準(zhǔn)是:這兩個(gè)電阻之間那點(diǎn)的電壓(即比較器負(fù)輸入端電壓),大于沒(méi)有物體在ST178前面時(shí)比較器正輸入端電壓,但小于有物體在ST178前面時(shí)比較器正輸入端的電壓。圖中的電阻參數(shù)是根據(jù)我的電路實(shí)測(cè)的較好的數(shù)據(jù),但是每個(gè)ST178的參數(shù)會(huì)有稍許不同,所以圖上的標(biāo)稱(chēng)參數(shù)不一定適合每一個(gè)人的電路,需要進(jìn)行親自的實(shí)測(cè)。傳感器有效距離的調(diào)節(jié)。傳感器有效距離為4cm15cm,最遠(yuǎn)可達(dá)50cm 。是通過(guò)改變發(fā)射管電流和比較電壓來(lái)實(shí)現(xiàn)的,發(fā)射管電流越大有效距離越遠(yuǎn)(正常工作電流10ma, 極限電流50ma ),比較電壓越小有效距離越遠(yuǎn)。

8、增大有效距離付出的代價(jià)是減少發(fā)射管壽命、降低紅外感應(yīng)系統(tǒng)穩(wěn)定性。 3. 程序設(shè)計(jì);*16*16LED 點(diǎn)陣式漢字顯示程序*;*MCU:AT89C51/AT89S51;*MCU-crystal:12M;*Version:1.1,較1.0版本增加了紅外感應(yīng)系統(tǒng);*Author:YangLu,XMU;*E-Mail:yala1987;*ORG 00HLJMP MAINORG 0003HLJMP INTORG 0030HMAIN:MOV SP,#60HSETB RS1; 開(kāi)機(jī)掃描,用第二組寄存器組MOV A,#00H; 清屏幕MOV P0,AANL P2,#00MOV R0,#00HSAOMIAO:M

9、OV A,R0MOV P1,A ; 位選INC R0MOV A,#0FFHMOV P0,A ;P0全亮MOV A,#0FFHMOV P2,A ;P2全亮MOV R4,#3DDD:MOV R2,#250; 延時(shí)DELAY:MOV R3,#250DJNZ R3,$DJNZ R2,DELAYDJNZ R4,DDDCJNE R0,#10H,SAOMIAO;16行掃描完?完則繼續(xù)CLR RS1; 開(kāi)機(jī)掃描結(jié)束,恢復(fù)第零組寄存器SETB EASETB EX0SETB IT0LOOP:MOV A,#00H;清除畫(huà)面MOV P0,A; 清除P0口ANL P2,#00;清除P2口MOV R2,#200DELAY

10、1:MOV R3,#250; 延時(shí)100毫秒DJNZ R3,$DJNZ R2,DELAY1MOV 20H,#00H; 取列初值START:MOVR1,#100; 每個(gè)字的停留時(shí)間ONCE:MOV R6,#16; 每個(gè)字16列MOV R4,#00H; 掃描指針清零MOV R0,20H ; 取列指針存入R0WORD:MOV A,R4; 掃描指針存入AMOV P1,A ; 掃描輸出INC R4; 掃描下一個(gè)MOV A,R0; 列指針存入AMOV DPTR,#TABLE; 取數(shù)據(jù)表的上半部分的代碼MOVC A,A+DPTRMOV P0,A ; 輸出到P0INC R0; 取下一個(gè)碼。MOV A,R0MO

11、V DPTR,#TABLE; 取數(shù)據(jù)表下半部份的代碼MOVC A,A+DPTRMOV P2,A ; 輸出到P2口INC R0MOV R3,#02; 掃描1毫秒DELAY2:MOV R5,#248;DJNZ R5,$DJNZ R3,DELAY2MOV A,#00H; 清屏幕MOV P0,AANL P2,#00HDJNZ R6,WORD ; 一個(gè)字完成了?DJNZ R1,ONCE ; 每個(gè)字的停留時(shí)間到了?MOV 20H,R0; 取碼指針存入20HCJNE R0,#0FFH,START;8個(gè)字256個(gè)碼完成了?JMP LOOP ; 反復(fù)循環(huán)INT:CLR EAPUSH ACCPUSH PSWPUS

12、H 20HSETB RS0LOOP1:MOV A,#00H;清除畫(huà)面MOV P0,A; 清除P0口ANL P2,#00;清除P2口楊路 MOV R2,#100 DELAY3: MOV R3,#250 ;延時(shí) 100 毫秒 DJNZ R3,$ DJNZ R2,DELAY3 MOV 20H,#00H ;取列初值 START1: MOV R1,#70 ;每個(gè)字的停留時(shí)間 ONCE1: MOV R6,#16 ;每個(gè)字 16 列 MOV R4,#00H ;掃描指針清零 MOV R0,20H ;取列指針存入 R0 WORD1: MOV A,R4 ;掃描指針存入 A MOV P1,A ;掃描輸出 INC R

13、4 ;掃描下一個(gè) MOV A,R0 ; 取列指針存入 A MOV DPTR,#TABLE1 ;取數(shù)據(jù)表的上半部分的代碼 MOVC A,A+DPTR MOV P0,A ; 輸出到 P0 INC R0 ;取下一個(gè)碼。 MOV A,R0 MOV DPTR,#TABLE1 ;取數(shù)據(jù)表下半部份的代碼 MOVC A,A+DPTR MOV P2,A ;輸出到 P2 口 INC R0 MOV R3,#02 ;掃描 1 毫秒 DELAY4: MOV R5,#248 DJNZ R5,$ DJNZ R3,DELAY4 MOV A,#00H ;清除屏幕 MOV P0,A ANL P2,#00H DJNZ R6,WOR

14、D1 ;一個(gè)字完成了? DJNZ R1,ONCE1 ;每個(gè)字的停留時(shí)間到了? MOV 20H,R0 ;取列指針存入 20H CJNE R0,#0C0H,START1 ;六個(gè)字完成了? POP 20H POP PSW POP ACC CLR RS0 SETB EA RETI TABLE: DB 00H,80H,10H,80H,08H,0B8H,0F7H,0C8H; 每 楊路 DB 14H,88H,14H,88H,34H,0C8H,45H,0A8H DB 14H,8AH,14H,89H,14H,8E H,0FCH,0F8H DB 16H,88H,84H,80H,00H,80H,00H,00H DB

15、 40H,01H,42H,01H,42H,02H,42H,04H; 天 DB 42H,08H,42H,30H,42H,0C0H,0FE H,00H DB 42H,0C0H,42H,30H,42H,08H,42H,04H DB 43H,02H,62H,03H,40H,02H,00H,00H DB 40H,00H,42H,00H,44H,00H,0CCH,0FE H;讓 DB 00H,04H,00H,0AH,00H,12H,00H,02H DB 00H,02H,0FFH,0FE H,20H,02H,20H,02H DB 30H,02H,20H,06H,00H,02H,00H,00H DB 00H,

16、04H,82H,04H,0E2H,08H,9AH,08H; 牙 DB 82H,10H,82H,20H,82H,40H,82H,82H DB 82H,01H,0FE H,0FEH,82H,00H,82H,00H DB 83H,00H,0C2H,00H,80H,00H,00H,00H DB 40H,00H,40H,00H,40H,0FFH,7E H,02H;齒 DB 40H,0AH,40H,12H,40H,22H,7FH,0C2H DB 44H,22H,44H,12H,46H,1AH,44H,02H DB 40H,0FFH,60H,00H,40H,00H,00H,00H DB 00H,00H,0F

17、CH,0FCH,84H,08H,84H,08H;曬 DB 0FCH,0FCH,02H,00H,0F2H,0FFH,12H,12H DB 0FEH,0E2H,12H,02H,12H,02H,0FE H,0E2H DB 12H,22H,0FBH,0FFH,12H,00H,00H,00H DB 20H,02H,20H,02H,20H,04H,20H,04H; 太 DB 20H,08H,20H,30H,20H,0D0H,0FFH,0CH DB 20H,0C0H,20H,30H,20H,08H,20H,08H DB 20H,04H,30H,06H,20H,04H,00H,00H DB 00H,00H,0

18、FE H,0FFH,02H,10H,22H,08H; 陽(yáng) DB 0DAH,10H,60H,0E0H,00H,00H,0FE H,0FFH DB 82H,02H,82H,02H,82H,02H,82H,02H DB 82H,02H,0FFH,0FFH,02H,00H,00H,00H TABLE1: DB 00H,02H,00H,0CH,0FFH,0F0H,05H,01H ;廈 DB 05H,05H,0F5H,0E9H,5DH,0BDH,55H,0AAH DB 55H,0AAH,55H,0AAH,55H,0ADH,55H,0A9H DB 0F5H,0E1H,05H,01H,05H,01H,00H,

19、00H DB 20H,00H,20H,02H,20H,02H,20H,04H ;大 DB 20H,08H,20H,30H,0A0H,0C0H,7FH,00H DB 0A0H,80H,20H,60H,20H,10H,20H,08H DB 20H,04H,30H,06H,20H,04H,00H,00H DB 00H,00H,00H,00H,00H,00H,08H,04H ;I DB 08H,04H,08H,04H,08H,04H,0F8H,0FCH DB 0F8H,0FCH,08H,04H,08H,04H,08H,04H 楊路 DB 08H,04H,00H,00H,00H,00H,00H,00H

20、DB 00H,00H,00H,00H,0C0H,0C0H,20H,20H ; DB 10H,10H,10H,08H,10H,04H,20H,02H DB 40H,02H,20H,02H,10H,04H,10H,08H DB 10H,10H,20H,20H,0C0H,0C0H,00H,00H DB 00H,00H,00H,00H,10H,00H,0F0H,0F8H ;U DB 0F0H,0FCH,10H,06H,00H,02H,00H,02H DB 00H,02H,00H,02H,00H,02H,10H,06H DB 0F0H,0FCH,0F0H,0F8H,10H,00H,00H,00H DB

21、00H,00H,0E0H,0C0H,10H,00H,08H,00H ;自定義_ DB 08H,02H,10H,02H,0E0H,0C2H,00H,02H DB 00H,02H,0E0H,0C2H,10H,02H,08H,02H DB 08H,00H,10H,00H,0E0H,0C0H,00H,00H END 程序說(shuō)明: 由于 51 單片機(jī) P0 口是 P0.0P0.7,而 P2 口是 P2.7P2.0。他們順序不同,所以用軟件 直接取模的代碼是不能直接用的。如果直接用,我們會(huì)發(fā)現(xiàn) P2 口對(duì)應(yīng)的行列顯示正常,而 P0 口對(duì)應(yīng)的行列顯示剛好是顛倒的。所以以漢字“每”為例,正確的漢字取模方法應(yīng)該是

22、: 先用軟件豎排方式取模。得 DB 00H,80H,08H,80H,10H, B8H, EFH,C8H DB 28H,88H,28H,88H,2CH,C8H,2AH,A8H DB 28H,8AH,28H,89H,28H,8E H,3FH,F8H DB 68H,88H,21H,80H,00H,80H,00H,00H ;每 共 32 個(gè)代碼,其中第奇數(shù)個(gè)代碼為 P0 口的代碼,第偶數(shù)個(gè)位 P2 口代碼,故我們只需修改 第奇數(shù)個(gè)代碼,將其轉(zhuǎn)換成 2 進(jìn)制,然后從后往前看就可以了。 為了提高修改效率,我總結(jié)了快速修改方法。將需要修改的兩位十六進(jìn)制代碼按照 00,18,24,3C,42,5A,66,7E

23、,81,99,A5,BD,C3,DB,E7,FF 的對(duì)應(yīng)關(guān)系變一下, 然后交換個(gè)位和十位即可。例如 28-41-14,即可。所以將“每”字的代碼轉(zhuǎn)換后變?yōu)?DB 00H,80H,10H,80H,08H,0B8H,0F7H,0C8H DB 14H,88H,14H,88H,34H,0C8H,45H,0A8H DB 14H,8AH,14H,89H,14H,8E H,0FCH,0F8H DB 16H,88H,84H,80H,00H,80H,00H,00H ;每 最后我們用仿真器調(diào)試程序成功后,將程序燒入單片機(jī)內(nèi),即可完成作品。 楊路 4.元件清單: AT89C51,40PIN IC 座,12M 晶振,74LS154 譯碼器,LM7805,ST178, LM393, LED 燈泡*256, 2N5551*16, 2N5401*16, 4.7k*8 排阻, 電源插座,穩(wěn)壓電源,電阻若干,電容若干。 : 5. 5.結(jié)束語(yǔ): 這樣一個(gè)具有紅外感應(yīng)功能的顯示器,其工作原理是簡(jiǎn)單易懂的。但在實(shí)際的制作過(guò) 程中卻能夠很好的鍛煉同學(xué)們?cè)陔娮又谱魃细鞣矫娴乃刭|(zhì),提高發(fā)現(xiàn)問(wèn)

溫馨提示

  • 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)論