單片機(jī)8X16點(diǎn)陣滾動(dòng)顯示的時(shí)鐘_第1頁(yè)
單片機(jī)8X16點(diǎn)陣滾動(dòng)顯示的時(shí)鐘_第2頁(yè)
單片機(jī)8X16點(diǎn)陣滾動(dòng)顯示的時(shí)鐘_第3頁(yè)
單片機(jī)8X16點(diǎn)陣滾動(dòng)顯示的時(shí)鐘_第4頁(yè)
單片機(jī)8X16點(diǎn)陣滾動(dòng)顯示的時(shí)鐘_第5頁(yè)
全文預(yù)覽已結(jié)束

下載本文檔

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

文檔簡(jiǎn)介

單片機(jī)8X16點(diǎn)陣滾動(dòng)顯示的時(shí)鐘一、8X16點(diǎn)陣滾動(dòng)顯示的時(shí)鐘這作品的運(yùn)行方式是:接上電源,8*16的點(diǎn)陣屏就會(huì)以滾動(dòng)左移顯示時(shí)間。有2個(gè)按鍵。按鍵1:是用來(lái)調(diào)整時(shí)間的,長(zhǎng)按下按鍵1,就可以進(jìn)入時(shí)間調(diào)整。調(diào)整的順序?yàn)樾r(shí)十位,小時(shí)個(gè)位,分鐘十位,然后再按下按鍵1時(shí)返回顯示狀態(tài),操作很簡(jiǎn)單。按鍵2:調(diào)整顯示模式的,按下就是停止?jié)L動(dòng),當(dāng)前位置靜態(tài)顯示時(shí)間。再按多次就恢復(fù)滾動(dòng)顯示。顯示部分:顯示部分是本次設(shè)計(jì)最核心的部分,對(duì)于LED8*16點(diǎn)陣顯示有以下兩種方案:方案一:靜態(tài)顯示,將一幀圖像中的每一個(gè)二極管的狀態(tài)分別用0和1表示,若為0,則表示LED無(wú)電流,即暗狀態(tài);若為1則表示二極管被點(diǎn)亮。若給每一個(gè)發(fā)光二極管一個(gè)驅(qū)動(dòng)電路,一幅畫(huà)面輸入以后,所有LED的狀態(tài)保持到下一幅畫(huà)。對(duì)于靜態(tài)顯示方式方式所需的譯碼驅(qū)動(dòng)裝置很多,引線多而復(fù)雜,成本高,且可靠性也較低。方案二:動(dòng)態(tài)顯示,對(duì)一幅畫(huà)面進(jìn)行分割,對(duì)組成畫(huà)面的各部分分別顯示,是動(dòng)態(tài)顯示方式。動(dòng)態(tài)顯示方式方式,可以避免靜態(tài)顯示的問(wèn)題。但設(shè)計(jì)上如果處理不當(dāng),易造成亮度低,閃爍問(wèn)題。因此合理的設(shè)計(jì)既應(yīng)保證驅(qū)動(dòng)電路易實(shí)現(xiàn),又要保證圖像穩(wěn)定,無(wú)閃爍。動(dòng)態(tài)顯示采用多路復(fù)用技術(shù)的動(dòng)態(tài)掃描顯示方式,復(fù)用的程度不是無(wú)限增加的,因?yàn)槔脛?dòng)態(tài)掃描顯示使我們看到一幅穩(wěn)定畫(huà)面的實(shí)質(zhì)是利用了人眼的暫留效應(yīng)和發(fā)光二極管發(fā)光時(shí)間的長(zhǎng)短,發(fā)光的亮度等因素.我們通過(guò)實(shí)驗(yàn)發(fā)現(xiàn),當(dāng)掃描刷新頻率(發(fā)光二極管的停閃頻率)為50Hz,發(fā)光二極管導(dǎo)通時(shí)間31ms時(shí),顯示亮度較好,無(wú)閃爍感.。鑒于上述原因,我們采用方案二數(shù)字時(shí)鐘數(shù)字時(shí)鐘是本設(shè)計(jì)的重要的部分。根據(jù)需要,可利用兩種方案實(shí)現(xiàn)。方案一:本方案完全用軟件實(shí)現(xiàn)數(shù)字時(shí)鐘。原理為:在單片機(jī)內(nèi)部存儲(chǔ)器設(shè)三個(gè)字節(jié)分別存放時(shí)鐘的時(shí)、分、秒信息。利用定時(shí)器與軟件結(jié)合實(shí)現(xiàn)1秒定時(shí)中斷,每產(chǎn)生一次中斷,存儲(chǔ)器內(nèi)相應(yīng)的秒值加1;若秒值達(dá)到60,則將其清零,并將相應(yīng)的分字節(jié)值加1;若分值達(dá)到60,則清零分字節(jié),并將時(shí)字節(jié)值加1;若時(shí)值達(dá)到24,則將時(shí)字節(jié)清零。該方案具有硬件電路簡(jiǎn)單的特點(diǎn),但當(dāng)單片機(jī)不上電,程序?qū)⒉粓?zhí)行。且由于每次執(zhí)行程序時(shí),定時(shí)器都要重新賦初值,所以該時(shí)鐘精度不高。方案二:本方案采用Dallas公司的專(zhuān)用時(shí)鐘芯片DS1302。該芯片內(nèi)部采用石英晶體振蕩器,其芯片精度不大于10ms/年,且具有完備的時(shí)鐘鬧鐘功能,因此,可直接對(duì)其以用于顯示或設(shè)置,使得軟件編程相對(duì)簡(jiǎn)單。為保證時(shí)鐘在電網(wǎng)電壓不足或突然掉電等突發(fā)情況下仍能正常工作,芯片內(nèi)部包含鋰電池。當(dāng)電網(wǎng)電壓不足或突然掉電時(shí),系統(tǒng)自動(dòng)轉(zhuǎn)換到內(nèi)部鋰電池供電系統(tǒng)。而且即使系統(tǒng)不上電,程序不執(zhí)行時(shí),鋰電池也能保證芯片的正常運(yùn)行,

以備隨時(shí)提供正確的時(shí)間?;跁r(shí)鐘芯片的上述優(yōu)點(diǎn),本設(shè)計(jì)采用方案二完成數(shù)字時(shí)鐘的功能。二、電路工作原理仿真圖U1>XTAL1PO.O/ADOPO.1/AD1P0.2/AD2XTAL^P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6RSTP0.7/AD7P2.0/A8P2.1/A9P2.2/A10PSENP2.3/A11ALEP2.4/A12EAP2.5/A13P2.6/A14P2.7/A15P1.0/T2P3.0/RXDP1.WEXU1>XTAL1PO.O/ADOPO.1/AD1P0.2/AD2XTAL^P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6RSTP0.7/AD7P2.0/A8P2.1/A9P2.2/A10PSENP2.3/A11ALEP2.4/A12EAP2.5/A13P2.6/A14P2.7/A15P1.0/T2P3.0/RXDP1.WEXP3.1/TXDP1.2P3.2/INT0P1.3P3.3/INT1P1.4P3.4/T0P1.5P3.5/T1PI.6P3.6/WRPI.7P3.7/RDAT89C52■■■■mCMlDCMZCMCM口LJll—.■12■13■15工作原理:利用單片機(jī)U1AT89S52單片機(jī)作為本系統(tǒng)的中控模塊。單片機(jī)可把由U274154讀來(lái)的數(shù)據(jù)利用軟件來(lái)進(jìn)行處理,從而把數(shù)據(jù)傳輸?shù)斤@示模塊。點(diǎn)陣LED電子顯示屏顯示器為主要的顯示模塊,把單片機(jī)傳來(lái)的數(shù)據(jù)顯示出來(lái),并且可以實(shí)現(xiàn)滾動(dòng)顯示。主要靠按鍵來(lái)實(shí)現(xiàn)各種顯示要求的選擇與切換。AT89S52單片機(jī)最小系統(tǒng):最小系統(tǒng)包括晶體振蕩電路、復(fù)位開(kāi)關(guān)和電源部分。圖2為AT89S52單片機(jī)的最小系統(tǒng)。

SSI>■.r.-u.i£a■pi]Oi.-lMt"—7huiadiirnintit.i.jpu.2i.m2i■*"ahi..h.girniraoT.H1Hl-li.lJXltJXTRIFl』KlSITE■~—&ig|TJCDT.1.1.7i.AD7lJtXDT.l.a0F2.7iAI5|F2.rii.AI>41F2.5iAI3lF2.Ji.AI21FJ.JiAll|F】.】i_AISAF2.l(A0|7P2.0i.A3|2==三一三===二圖三、程序編寫(xiě)2==三一三===二圖圖3時(shí)間子程序流程圖源程序:#include<REGX51.H>#include<intrins.h>unsignedcharsec=0,min=0,hou=12,timecount=0,oldP1=0xff,setting=0;bitpoint=1,K1_old,K2_old;unsignedcharcodedis_code[56]={0x07c,0x082,0x082,0x07c,0x000,0x084,0x0fe,0x080,//0與10x0c4,0x0a2,0x092,0x08c,0x044,0x082,0x092,0x06c,//2與30x078,0x044,0x0fe,0x040,0x04e,0x08a,0x08a,0x072,//4與50x07c,0x092,0x092,0x064,0x006,0x002,0x0f2,0x00e,//6與70x06c,0x092,0x092,0x06c,0x04c,0x092,0x092,0x07c,//8與90x008,0x084,0x052,0x030,0x092,0x0F4,0x004,0x000,//分0x07C,0x054,0x07C,0x002,0x092,0x07F,0x002,0x000,〃時(shí)};sbitK1=P2A7;sbitK2=P2A6;voidtime50ms(void);voiddelay2ms(void);voidtimedeal(void);voidmain(void){unsignedcharnum,disnum,x,y,offset=0,dis_p,scantimes=0;IE=0x82;//允許定時(shí)器0工作TMOD=0x01;//timer0為模式1TR0=1;〃定時(shí)器0可以工作TH0=0x3c;TL0=0x0b0;do{if(setting==0){〃正常顯示狀態(tài)for(x=0;x<16;x++){dis_p=x+offset;if(dis_p>26)dis_p-=27;if(dis_p==0IIdis_p==5IIdis_p==10IIdis_p==12IIdis_p==17IIdis_p>21){〃空列y=0;}elseif(dis_p<=4){//1?4為時(shí)的十位num=hou/10;if(num>0)y=dis_code[num*4+dis_p-1];elsey=0;}elseif(dis_p<=9){//6?9為時(shí)的個(gè)位num=hou%10;y=dis_code[num*4+dis_p-6];}elseif(dis_p==11){//11為冒號(hào)的顯示位if(point)y=0x24;elsey=0;}elseif(dis_p<=16){//13?16為分的十位num=min/10;y=dis_code[num*4+dis_p-13];}else{num=min%10;y=dis_code[num*4+dis_p-18];}P1=0;P3=x*4;P1=y;delay2ms();}scantimes++;if(scantimes>=8){scantimes=0;offset++;if(offset>26)offset=0;}}else{〃當(dāng)進(jìn)入調(diào)整時(shí)間的狀態(tài),運(yùn)行下面的程序段for(x=0;x<16;x++){if(setting==1)disnum=min;elsedisnum=hou;if(x<8)〃前8列顯示漢字y=dis_code[32+setting*8+x];elseif(x<12){//8~11為十位num=disnum/10;y=dis_code[num*4+x-8];}else{num=disnum%10;y=dis_code[num*4+x-12];}P1=0;P3=x*4;P1=y;delay2ms();}}}while(1);}voiddelay2ms(void){unsignedchari,j;for(i=0;i<4;i++)for(j=0;j<120;j++);}voidtime50ms(void)interrupt1{TH0=0x3c;TL0=0x0b0;timecount++;if(timecount==10){timecount=0;point=!point;if(point){sec++;timedeal();}}if(!K1&&K1!=K1_old)〃按下模式鍵{setting++;if(setting==3)setting=0;}if(!K2&&K2!=K2_old)〃按下置位鍵{if(setting==1){min++;sec=0;timedeal();}elseif(setting==2){hou++;timedeal();}}K1_old=K1;K2_old=K2;}voidtimedeal(void)if(sec>=60)sec=0;min++;}if(min>=60){min=0;hou++;}if(hou>=24)hou=0;}四、調(diào)試:接上電源,查看LED燈是否亮燈.可以實(shí)現(xiàn)文字左右移動(dòng)按下“設(shè)置時(shí)間”鍵,觀察到“鐘表”二極管點(diǎn)亮,此時(shí)可對(duì)時(shí)間進(jìn)行設(shè)置。按下“時(shí)間設(shè)置“進(jìn)入時(shí)調(diào)試,按"+”鍵時(shí)間加。在按下“切換”鍵時(shí),進(jìn)入分調(diào)整模式,按下“+”鍵,分增加。按下“選擇”鍵時(shí),分調(diào)整模式改為秒調(diào)整模式,按下“”鍵秒增加。經(jīng)測(cè)試該步可以很好的實(shí)現(xiàn)。調(diào)整時(shí)間完畢后,再按一下“鬧鐘設(shè)置”進(jìn)入鬧鈴設(shè)置狀態(tài),按下“+”鍵設(shè)定“時(shí)”增加,在按下“選擇”鍵進(jìn)入分的設(shè)置,按下“+”鍵設(shè)定“分”增加。在按下“選擇”鍵進(jìn)入秒設(shè)置模式,按“+”鍵秒增加。有沒(méi)部分?jǐn)?shù)字顯示不到.調(diào)整好時(shí)間后,開(kāi)始運(yùn)行時(shí)鐘計(jì)時(shí),觀查是否與一般時(shí)鐘準(zhǔn)時(shí)對(duì)應(yīng)時(shí)間.運(yùn)行一段時(shí)間,測(cè)試有沒(méi)有計(jì)時(shí)誤差.五、使用說(shuō)明本作品采用5V電源啟動(dòng),在電池盒里裝上電池或連接USB程序下載在線(USB帶5V電源)均可啟動(dòng).顯示時(shí)間的的方式:如12時(shí)45分,以滾動(dòng)左移顯示時(shí)間,它會(huì)先顯示1然后左

溫馨提示

  • 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. 人人文庫(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論