16×32點陣數(shù)字鐘漢字顯示_第1頁
16×32點陣數(shù)字鐘漢字顯示_第2頁
16×32點陣數(shù)字鐘漢字顯示_第3頁
16×32點陣數(shù)字鐘漢字顯示_第4頁
16×32點陣數(shù)字鐘漢字顯示_第5頁
已閱讀5頁,還剩12頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、-. z1632點陣數(shù)字鐘及漢字顯示 作者: HEY | 瀏覽數(shù)(6070) | 評論數(shù)(0) | 2007-08-09一電路原理框架設計制作作品:1632點陣顯示數(shù)字鐘及漢字顯示實現(xiàn)功能:點陣顯示的實時時鐘以及漢字等字符的左移顯示實用特征:采用雙電源供電,斷電后時鐘由電池供電還能繼續(xù)運行,而且準確性較高實現(xiàn)原理:1時鐘顯示是由DS1302準確的時鐘芯片產(chǎn)生時鐘信號并將其送至單片機,經(jīng)過單片機處理后再輸送到點陣顯示模塊。2漢字顯示并左移原理是先寫入與本點陣驅(qū)動相應的代碼進單片機,通過單片機控制程序取表進展處理后送點陣模塊顯示電路主要模塊及原理圖:1單片機最小系統(tǒng)及控制按鍵電路2 DS1302與

2、單片機接口電路DS1302除了系統(tǒng)上電時由系統(tǒng)供電外,如果主電源斷電還有一電池給DS1302供電,防止斷電后DS1302數(shù)據(jù)消失。4點陣行驅(qū)動模塊電路行驅(qū)動采用74LS154416線譯碼器及PNP三極管,由于是1632點陣顯示功率較大故采用8550NP三極管。5點陣列驅(qū)動電路列驅(qū)動采用74HC595移位存放器將控制位級連接入單片機,每個74HC595數(shù)據(jù)輸入端單獨接單片機。1632點陣模塊由8塊小的88點陣模塊通過級連而拼成,共16行,32列。二:主要元器件選擇:單片機:AT89S51采用市場上比擬常用的AT89S51三極管:點陣的行驅(qū)動電路用,這里采用PNP管,具體型號用8550點陣塊:為了

3、電路簡單,采用雙色88點陣晶振:采用的是12MHZ的晶振電源局部:采用5V電壓供電,采用的是L7805穩(wěn)壓芯片供電電阻:大局部是限流電阻,阻值為4.7K或10K,1K譯碼器:416線采用市場上較為常用的74LS154,用來作行驅(qū)動移位存放器:采用74HC595移位存放器作列驅(qū)動,驅(qū)動列端口分配及連接:P1.0P1.2:DS1302與單片機接口P1.3P1.4:K0,K1按鍵,用來調(diào)整時間,按下為0P0:P0口接點陣行驅(qū)動電路接譯碼器P2:P2口點陣列驅(qū)動電路接74HC595最后是做好之后的圖附:點陣時間顯示源程序/=/*標題:16*32點陣數(shù)字鐘顯示程序/*說明:時鐘信號產(chǎn)生采用DS1302,

4、列采用74HC595驅(qū)動(共4個),行驅(qū)動采用4-16線譯碼器74LS154/*功能:通過動態(tài)掃描顯示時鐘,可顯示時,分,秒,日期中的月和日/*作者:HEY/*日期:2006-05-29/*:billy3416163./*備注:此是我剛接觸單片機時的一個小制作 程序和電路設計上難免有缺乏之處 請諒解/=/*include *include *define uchar unsigned char/=/用到的引腳及端口定義/=/sbit SERIALIN_0=P20; /定義P2.0為列向第1個74HC595的DATA輸入 sbit SERIALIN_1=P21; /定義P2.1為列向第2個74H

5、C595的DATA輸入sbit SERIALIN_2=P22; /定義P2.2為列向第2個74HC595的DATA輸入sbit SERIALIN_3=P23; /定義P2.3為列向第2個74HC595的DATA輸入sbit CLOCK_DATA=P10; /定義P1.0為DS1302的DATA端口 sbit CLOCK_RST=P11; /定義P1.1為DS1302的復位輸出端口sbit CLOCK_SCLK=P12; /定義P1.2為DS1302的時鐘信號狀態(tài)控制sbit K0=P13; /K0為按鍵1,用來選擇要調(diào)整時間的選項(時和分)sbit K1=P14; /K1為按鍵2,執(zhí)行加1sb

6、it CLOCK=P24; /74HC595的移位時鐘控制sbit LATCH=P25; /74HC595的鎖存輸出時鐘控制void control(); /調(diào)整時間控制函數(shù)void time();uchar CLOCK_TIME3=0,0,0; /定義時鐘時間數(shù)據(jù)存儲區(qū),分別為(時,分,秒)uchar BUFFER8=0,0,0,0,0,0,0,0; /顯示緩沖區(qū)uchar YEAR3=0,0,0; /定義時鐘年月日數(shù)據(jù)存儲區(qū)uchar temp4=0,0,0,0; /定義74HC595的移位緩沖區(qū)uchar FLASH_STOP; /顯示小時和分鐘之間的兩點控制位 uchar sec_fl

7、ash; /用單片機定時器模擬的一秒(用來控制小時和分中之間的兩點)/=/定義0-9的點陣顯示代碼段 8*8/=/uchar code bmp108=0*e3,0*dd,0*dd,0*dd,0*dd,0*dd,0*dd,0*e3, /00*f7,0*c7,0*f7,0*f7,0*f7,0*f7,0*f7,0*c1, /10*e3,0*dd,0*dd,0*fd,0*fb,0*f7,0*ef,0*c1, /20*e3,0*dd,0*fd,0*e3,0*fd,0*fd,0*dd,0*e3, /30*fb,0*f3,0*eb,0*db,0*db,0*c1,0*fb,0*f1, /40*c1,0*df,

8、0*df,0*c3,0*fd,0*fd,0*dd,0*e3, /50*e3,0*dd,0*df,0*c3,0*dd,0*dd,0*dd,0*e3, /60*c1,0*dd,0*fd,0*fb,0*f7,0*f7,0*f7,0*f7, /70*e3,0*dd,0*dd,0*e3,0*dd,0*dd,0*dd,0*e3, /80*e3,0*dd,0*dd,0*dd,0*e1,0*fd,0*dd,0*e3, /9;/=/定義0-9的點陣顯示代碼段 8*8 與上面不同的是多了小時和分鐘之間的兩點/=/uchar code bmp_1108=0*e3,0*dd,0*5d,0*dd,0*dd,0*5d,0

9、*dd,0*e3, /:00*f7,0*c7,0*77,0*f7,0*f7,0*77,0*f7,0*c1, /:10*e3,0*dd,0*5d,0*fd,0*fb,0*77,0*ef,0*c1, /:20*e3,0*dd,0*7d,0*e3,0*fd,0*7d,0*dd,0*e3, /:30*fb,0*f3,0*6b,0*db,0*db,0*41,0*fb,0*f1, /:40*c1,0*df,0*5f,0*c3,0*fd,0*7d,0*dd,0*e3, /:40*e3,0*dd,0*5f,0*c3,0*dd,0*5d,0*dd,0*e3, /:50*c1,0*dd,0*7d,0*fb,0*f

10、7,0*77,0*f7,0*f7, /:60*e3,0*dd,0*5d,0*e3,0*dd,0*5d,0*dd,0*e3, /:70*e3,0*dd,0*5d,0*dd,0*e1,0*7d,0*dd,0*e3, /:8;/=/定義0-9的點陣顯示代碼段 數(shù)碼似的字模 8*8 顯示數(shù)據(jù)前有一橫杠將月和日格開/=/uchar code bmp_2108=0*ff,0*ff,0*f8,0*fa,0*8a,0*fa,0*f8,0*ff, /-00*ff,0*ff,0*fe,0*fe,0*8e,0*fe,0*fe,0*ff, /-10*ff,0*ff,0*f8,0*fe,0*88,0*fb,0*f8,0

11、*ff, /-20*ff,0*ff,0*f8,0*fe,0*88,0*fe,0*f8,0*ff, /-30*ff,0*ff,0*fa,0*fa,0*88,0*fe,0*fe,0*ff, /-40*ff,0*ff,0*f8,0*fb,0*88,0*fe,0*f8,0*ff, /-50*ff,0*ff,0*f8,0*fb,0*88,0*fa,0*f8,0*ff, /-60*ff,0*ff,0*f8,0*fe,0*8e,0*fe,0*fe,0*ff, /-70*ff,0*ff,0*f8,0*fa,0*88,0*fa,0*f8,0*ff, /-80*ff,0*ff,0*f8,0*fa,0*88,0*f

12、e,0*f8,0*ff, /-9;/=/定義0-9的點陣顯示代碼段 模擬數(shù)碼似的字模 8*8 /=/uchar code bmp_3108=0*ff,0*ff,0*8f,0*af,0*af,0*af,0*8f,0*ff, /00*ff,0*ff,0*ef,0*ef,0*ef,0*ef,0*ef,0*ff, /10*ff,0*ff,0*8f,0*ef,0*8f,0*bf,0*8f,0*ff, /20*ff,0*ff,0*8f,0*ef,0*8f,0*ef,0*8f,0*ff, /30*ff,0*ff,0*af,0*af,0*8f,0*ef,0*ef,0*ff, /40*ff,0*ff,0*8f,

13、0*bf,0*8f,0*ef,0*8f,0*ff, /50*ff,0*ff,0*8f,0*bf,0*8f,0*af,0*8f,0*ff, /60*ff,0*ff,0*8f,0*ef,0*ef,0*ef,0*ef,0*ff, /70*ff,0*ff,0*8f,0*af,0*8f,0*af,0*8f,0*ff, /80*ff,0*ff,0*8f,0*af,0*8f,0*ef,0*8f,0*ff, /9;/=/定義0-59模擬七段數(shù)碼管顯示 8*8/=/uchar code bmp_4608=0*ff,0*ff,0*88,0*aa,0*aa,0*aa,0*88,0*ff, /000*ff,0*ff,

14、0*8e,0*ae,0*ae,0*ae,0*8e,0*ff, /010*ff,0*ff,0*88,0*ae,0*a8,0*ab,0*88,0*ff, /020*ff,0*ff,0*88,0*ae,0*a8,0*ae,0*88,0*ff, /030*ff,0*ff,0*8a,0*aa,0*a8,0*ae,0*8e,0*ff, /040*ff,0*ff,0*88,0*ab,0*a8,0*ae,0*88,0*ff, /050*ff,0*ff,0*88,0*ab,0*a8,0*aa,0*88,0*ff, /060*ff,0*ff,0*88,0*ae,0*ae,0*ae,0*8e,0*ff, /070*

15、ff,0*ff,0*88,0*aa,0*a8,0*aa,0*88,0*ff, /080*ff,0*ff,0*88,0*aa,0*a8,0*ae,0*88,0*ff, /090*ff,0*ff,0*e8,0*ea,0*ea,0*ea,0*e8,0*ff, /100*ff,0*ff,0*ee,0*ee,0*ee,0*ee,0*ee,0*ff, /110*ff,0*ff,0*e8,0*ee,0*e8,0*eb,0*e8,0*ff, /120*ff,0*ff,0*e8,0*ee,0*e8,0*ee,0*e8,0*ff, /130*ff,0*ff,0*ea,0*ea,0*e8,0*ee,0*ee,0*f

16、f, /140*ff,0*ff,0*e8,0*eb,0*e8,0*ee,0*e8,0*ff, /150*ff,0*ff,0*e8,0*eb,0*e8,0*ea,0*e8,0*ff, /160*ff,0*ff,0*e8,0*ee,0*ee,0*ee,0*ee,0*ff, /170*ff,0*ff,0*e8,0*ea,0*e8,0*ea,0*e8,0*ff, /180*ff,0*ff,0*e8,0*ea,0*e8,0*ee,0*e8,0*ff, /190*ff,0*ff,0*88,0*ea,0*8a,0*ba,0*88,0*ff, /200*ff,0*ff,0*8e,0*ee,0*8e,0*be,

17、0*8e,0*ff, /210*ff,0*ff,0*88,0*ee,0*88,0*bb,0*88,0*ff, /220*ff,0*ff,0*88,0*ee,0*88,0*be,0*88,0*ff, /230*ff,0*ff,0*8a,0*ea,0*88,0*be,0*8e,0*ff, /240*ff,0*ff,0*88,0*eb,0*88,0*be,0*88,0*ff, /250*ff,0*ff,0*88,0*eb,0*88,0*ba,0*88,0*ff, /260*ff,0*ff,0*88,0*ee,0*8e,0*be,0*8e,0*ff, /270*ff,0*ff,0*88,0*ea,0*

18、88,0*ba,0*88,0*ff, /280*ff,0*ff,0*88,0*ea,0*88,0*be,0*88,0*ff, /290*ff,0*ff,0*88,0*ea,0*8a,0*ea,0*88,0*ff, /300*ff,0*ff,0*8e,0*ee,0*8e,0*ee,0*8e,0*ff, /310*ff,0*ff,0*88,0*ee,0*88,0*eb,0*88,0*ff, /320*ff,0*ff,0*88,0*ee,0*88,0*ee,0*88,0*ff, /330*ff,0*ff,0*8a,0*ea,0*88,0*ee,0*8e,0*ff, /340*ff,0*ff,0*88

19、,0*eb,0*88,0*ee,0*88,0*ff, /350*ff,0*ff,0*88,0*eb,0*88,0*ea,0*88,0*ff, /360*ff,0*ff,0*88,0*ee,0*8e,0*ee,0*8e,0*ff, /370*ff,0*ff,0*88,0*ea,0*88,0*ea,0*88,0*ff, /380*ff,0*ff,0*88,0*ea,0*88,0*ee,0*88,0*ff, /390*ff,0*ff,0*a8,0*aa,0*8a,0*ea,0*e8,0*ff, /400*ff,0*ff,0*ae,0*ae,0*8e,0*ee,0*ee,0*ff, /410*ff,0

20、*ff,0*a8,0*ae,0*88,0*eb,0*e8,0*ff, /420*ff,0*ff,0*a8,0*ae,0*88,0*ee,0*e8,0*ff, /430*ff,0*ff,0*aa,0*aa,0*88,0*ee,0*ee,0*ff, /440*ff,0*ff,0*a8,0*ab,0*88,0*ee,0*e8,0*ff, /450*ff,0*ff,0*a8,0*ab,0*88,0*ea,0*e8,0*ff, /460*ff,0*ff,0*a8,0*ae,0*8e,0*ee,0*ee,0*ff, /470*ff,0*ff,0*a8,0*aa,0*88,0*ea,0*e8,0*ff, /

21、480*ff,0*ff,0*a8,0*aa,0*88,0*ee,0*e8,0*ff, /490*ff,0*ff,0*88,0*ba,0*8a,0*ea,0*88,0*ff, /500*ff,0*ff,0*8e,0*be,0*8e,0*ee,0*8e,0*ff, /510*ff,0*ff,0*88,0*be,0*88,0*eb,0*88,0*ff, /520*ff,0*ff,0*88,0*be,0*88,0*ee,0*88,0*ff, /530*ff,0*ff,0*8a,0*ba,0*88,0*ee,0*8e,0*ff, /540*ff,0*ff,0*88,0*bb,0*88,0*ee,0*88

22、,0*ff, /550*ff,0*ff,0*88,0*bb,0*88,0*ea,0*88,0*ff, /560*ff,0*ff,0*88,0*be,0*8e,0*ee,0*8e,0*ff, /570*ff,0*ff,0*88,0*ba,0*88,0*ea,0*88,0*ff, /580*ff,0*ff,0*88,0*ba,0*88,0*ee,0*88,0*ff, /59;/=/名稱:delay/說明:延時函數(shù)/功能:根據(jù)需要取不同的值,實現(xiàn)不同的延時效果/=/void delay() uchar n; for(n=0;n=125;n+);void delay2(uchar m) uchar n

23、; while(m-) for(n=0;n=200;n+); /=/名稱:shift/說明:74HC595左移程序/功能:實現(xiàn)74HC595的移位輸入/=/void shift() uchar j; for(j=0;j8;j+) temp0=temp01; /將temp0左移1位 SERIALIN_0=CY; /進位輸出到移位存放器 temp1=temp11; /將temp1左移1位后 SERIALIN_1=CY; /進位輸出到移位存放器 temp2=temp21; /將temp2左移1位后 SERIALIN_2=CY; /進位輸出到移位存放器 temp3=temp31; /將temp0左移1

24、位后的進位輸出到移位存放器 SERIALIN_3=CY; /進位輸出到移位存放器 CLOCK=1; /移位時鐘控制移位 CLOCK=0; /=/名稱:display/說明:顯示函數(shù)/功能:將要顯示的數(shù)據(jù)通過74HC595和74LS154用LED點陣顯示出來/實現(xiàn)方法:該16*32點陣為8塊小點陣,顯示時將上下分開,上面顯示時間。下面顯示日期和秒/=/void display(void) uchar i,sec; sec=CLOCK_TIME0; BUFFER0=CLOCK_TIME1%10; /顯示時鐘分鐘個位 BUFFER1=CLOCK_TIME1/10; /顯示時鐘分鐘十位 BUFFER2

25、=CLOCK_TIME2%10; /顯示時鐘小時個位 BUFFER3=CLOCK_TIME2/10; /顯示時鐘小時十位 BUFFER4=YEAR1; /顯示月,從0012 BUFFER5=YEAR2/10; /顯示日十位 BUFFER6=YEAR2%10; /顯示日個位 BUFFER7=CLOCK_TIME0; /顯示秒從0059 for(i=0;i16;i+) /逐行掃描 if(i8) /上面的8行顯示時間 temp0=bmpBUFFER3i; /取表顯示時鐘十位 temp1=bmpBUFFER2i; /取表顯示時鐘個位 if(FLASH_STOP=0) /小時和分鐘之間的兩點閃標志位 t

26、emp2=bmp_1BUFFER1i; /標志位為0時,兩點亮 else temp2=bmpBUFFER1i; /相反不亮 temp3=bmpBUFFER0i; /取表顯示分鐘個位 else temp0=bmp_4BUFFER4i-8; /通過取表顯示月 temp1=bmp_2BUFFER5i-8; /通過取表顯示日 temp2=bmp_3BUFFER6i-8; temp3=bmp_4BUFFER7i-8; /通過取表顯示秒 shift(); /調(diào)用移位函數(shù)處理 LATCH=0;LATCH=1; /輸出 P0=i; /逐行顯示,掃描 delay(); /延時 P0=0*ff; /顯示完一行清顯

27、示 /=/單字節(jié)寫子程序 RC0(SCLK),RC1(I/O),RC2(RST)/名稱:inputdata/說明:先寫地址,后寫數(shù)據(jù)/功能: 往DS1302寫入時鐘數(shù)據(jù)/=/ void inputdata(unsigned char tmaddr,unsigned char tmdata) uchar loop; CLOCK_DATA=0; /設置為輸出; CLOCK_RST=0; CLOCK_SCLK=0; CLOCK_RST=1; for(loop=0;loop1; /右移一位 CLOCK_DATA=CY; /輸出移位標志位 CLOCK_SCLK=1; CLOCK_SCLK=0; for(

28、loop=0;loop1; /右移一位 CLOCK_DATA=CY; /輸出移位標志 CLOCK_SCLK=1; CLOCK_SCLK=0; CLOCK_SCLK=1; CLOCK_RST=0; CLOCK_DATA=1; /設置為輸出;/=/單字節(jié)讀子程序 RC0(SCLK),RC1(I/O),RC2(RST)/名稱:outputdata/說明:讀數(shù)據(jù)/功能: 從DS1302讀取1Byte數(shù)據(jù)/=/unsigned char outputdata(unsigned char tmaddr) uchar loop; uchar tmdata=0; inputdata(0*8F,0*00); C

29、LOCK_DATA=0; /設置為輸 CLOCK_RST=0; CLOCK_SCLK=0; CLOCK_RST=1; for(loop=8;loop0;loop-) /送地址 tmaddr=tmaddr1; CLOCK_DATA=CY; CLOCK_SCLK=1; CLOCK_SCLK=0; CLOCK_DATA=1; /設置為輸入; CLOCK_DATA=1; CLOCK_SCLK=1; CLOCK_SCLK=0; for(loop=8;loop0;loop-) / 讀數(shù)據(jù) tmdata=tmdata1; if(CLOCK_DATA=1) tmdata=tmdata|0*80; CLOCK_

30、SCLK=1; CLOCK_SCLK=0; tmdata=tmdata1; /由于在開場讀是已經(jīng)是第二個時鐘下降延所以要進展左移處理 if(CY=1) tmdata=tmdata|0*01; CLOCK_SCLK=1; CLOCK_RST=0; return(tmdata);/=/函數(shù):調(diào)整時間子程序/名稱:control/說明:調(diào)整時間控制/功能: 通過兩個按鍵調(diào)整時間,其中一個選擇要調(diào)整的分鐘或時鐘,另一個加1功能/=/void control() uchar min16,hour16; inputdata(0*80,0*80); /時鐘停頓運行 CLOCK_TIME0=0; /秒初始化位

31、0 FLASH_STOP=0; /時鐘分鐘之間兩點狀態(tài)位為0 TR0=0; /開啟T0定時器 while(1) if(K1=0) /當K1按下時 delay2(50); /延時 if(K1=0) /K1按下 CLOCK_TIME1=CLOCK_TIME1+1; /分鐘加1 if(CLOCK_TIME1=60) /當分鐘加到60時初始化為0 CLOCK_TIME1=0; if(K0=0) /K0鍵再次按下,小時調(diào)整 delay2(100); if(K0=0) while(1) if(K0=1) /K0鍵按下加1 while(1) if(K1=0) delay2(50); if(K1=0) CLO

32、CK_TIME2=CLOCK_TIME2+1; /小時加1 if(CLOCK_TIME2=24) /當變成24時初始化為0 CLOCK_TIME2=0; if(K0=0) /當K0再次按下時返回 delay2(100); if(K0=0) while(1) if(K0=1) /按下的鍵彈起時 min16=CLOCK_TIME1/10*16+CLOCK_TIME1%10; /將所得的分鐘數(shù)據(jù)轉(zhuǎn)變成16進制數(shù)據(jù) hour16=CLOCK_TIME2/10*16+CLOCK_TIME2%10; /將所得的小時數(shù)據(jù)轉(zhuǎn)變成16進制數(shù)據(jù) inputdata(0*84,hour16); /將調(diào)整后的小時數(shù)據(jù)

33、寫入DS1302 inputdata(0*82,min16); /將調(diào)整后的分鐘數(shù)據(jù)寫入DS1302 inputdata(0*80,0*00); /啟動時鐘 time(); /回到time函數(shù) display(); /顯示函數(shù) display(); /顯示函數(shù) /=/函數(shù):T0中斷效勞子程序/名稱:time0/說明:控制時鐘和分鐘之間的兩點顯示/功能: 利用單片機部定時器造成0.5秒時鐘和分鐘之間兩點閃動/=/void time0(void) interrupt 1 using 1 /T0中斷函數(shù) TH0=-10100/256; /填入計數(shù)器初值高位 TL0=-10100%256; /填入計數(shù)

34、器初值低位 sec_flash=sec_flash+1; if(sec_flash=50) /0.5S到 FLASH_STOP=0; if(sec_flash=100) /1S到 FLASH_STOP=1; sec_flash=0; /=/函數(shù):時間控制函數(shù)/說明:統(tǒng)一時鐘顯示于調(diào)整/功能:/=/void time() uchar sec,min,hour,year,month,day; FLASH_STOP=1; EA=1;ET0=1; /開總中斷源,開T0中斷 TMOD=0*61; /T1方式2計數(shù),T0方式1計時 TH0=-10000/256;TL0=-10000%256; /初始化計數(shù)

35、器初值 ET0=1,TR0=1; /開中斷 inputdata(0*8E,0*00); /控制命令,WP=0,寫操作 inputdata(0*90,0*06); while(1) K0=1; /K0=1 if(K0=0) delay2(100); /延時 if(K0=0) /K0按下時 while(1) if(K0=1) control(); /進入調(diào)時子程序 sec=outputdata(0*81); /讀取秒 min=outputdata(0*83); /讀取分 hour=outputdata(0*85); /讀取時 year=outputdata(0*8d); /讀取年 month=ou

36、tputdata(0*89); /讀取月 day=outputdata(0*87); /讀取日 CLOCK_TIME0=sec/16*10+sec%16; /將讀取到的16進制數(shù)轉(zhuǎn)化為10進制 CLOCK_TIME1=min/16*10+min%16; /將讀取到的16進制數(shù)轉(zhuǎn)化為10進制 CLOCK_TIME2=hour/16*10+hour%16; /將讀取到的16進制數(shù)轉(zhuǎn)化為10進制 YEAR0=year/16*10+year%16; /將讀取到的16進制數(shù)轉(zhuǎn)化為10進制 YEAR1=month/16*10+month%16; YEAR2=day/16*10+day%16; displa

37、y(); /調(diào)用顯示子函數(shù) /=/函數(shù):主程序/說明:/功能:/=/void main() time();附:點陣漢字顯示程序/=/*標題:16*32點陣漢字顯示程序/*說明:采用89s51或52單片機,12M晶震,列采用74HC595驅(qū)動(共4個),行驅(qū)動采用4-16線譯碼器74LS154/*功能:通過動態(tài)掃描顯示漢字,并實現(xiàn)左移功能/*作者:HEY/*日期:2006-06-01/*:billy3416163./*聲明:以下源程序均通過keil調(diào)試與硬件實現(xiàn)均無問題/=/*include *include *define uchar unsigned char/=/用到的引腳及端口定義及全局

38、變量/=/sbit SERIALIN_0=P20; /定義P2.0為列向第1個74HC595的DATA輸入sbit SERIALIN_1=P21; /定義P2.1為列向第1個74HC595的DATA輸入sbit SERIALIN_2=P22; /定義P2.2為列向第1個74HC595的DATA輸入sbit SERIALIN_3=P23; /定義P2.3為列向第1個74HC595的DATA輸入sbit CLOCK=P24; /74HC595的移位時鐘控制sbit LATCH=P25; /74HC595的鎖存輸出時鐘控制uchar temp4=0,0,0,0; /用到的74HC595顯示緩沖區(qū)變量

39、uchar disp416; /用到的顯示緩沖區(qū)/=/定義要顯示的漢字代碼段 16*16,分別是左上左下右上右下/=/uchar code word5216=/*點*/0*fe,0*fe,0*fe,0*fe,0*fe,0*e0,0*ef,0*ef,0*ef,0*e0,0*ef,0*fe,0*d7,0*db,0*bb,0*ff,0*ff,0*ff,0*07,0*ff,0*ef,0*07,0*ef,0*ef,0*ef,0*0f,0*ef,0*ef,0*77,0*bb,0*bb,0*ff,/*陣*/0*ff,0*07,0*77,0*68,0*5e,0*6e,0*75,0*70,0*77,0*57,0

40、*68,0*7f,0*7f,0*7f,0*7f,0*7f,0*7f,0*7f,0*7f,0*03,0*ff,0*bf,0*bf,0*03,0*bf,0*bf,0*01,0*bf,0*bf,0*bf,0*bf,0*bf,/*顯*/0*ff,0*e0,0*ef,0*e0,0*ef,0*e0,0*fb,0*fb,0*bb,0*db,0*eb,0*eb,0*fb,0*00,0*ff,0*ff,0*ff,0*0f,0*ef,0*0f,0*ef,0*0f,0*bf,0*bf,0*b7,0*b7,0*af,0*9f,0*bf,0*01,0*ff,0*ff,/*示*/0*ff,0*e0,0*ff,0*ff,0

41、*ff,0*80,0*fe,0*fe,0*ee,0*ee,0*de,0*be,0*7e,0*fe,0*fa,0*fd,0*ff,0*07,0*ff,0*ff,0*ff,0*01,0*ff,0*ff,0*df,0*ef,0*f7,0*f3,0*fb,0*ff,0*ff,0*ff,/*由*/0*fe,0*fe,0*fe,0*fe,0*c0,0*de,0*de,0*de,0*c0,0*de,0*de,0*de,0*de,0*c0,0*df,0*ff,0*ff,0*ff,0*ff,0*ff,0*07,0*f7,0*f7,0*f7,0*07,0*f7,0*f7,0*f7,0*f7,0*07,0*f7,0

42、*ff,/*信*/0*f7,0*f3,0*e7,0*e8,0*cf,0*cc,0*af,0*6c,0*ef,0*ec,0*ed,0*ed,0*ed,0*ec,0*ed,0*ff, 0*7f,0*9f,0*bf,0*01,0*ff,0*07,0*ff,0*07,0*ff,0*07,0*f7,0*f7,0*f7,0*07,0*f7,0*ff,/*息*/0*fe,0*fd,0*e0,0*ef,0*e0,0*ef,0*e0,0*ef,0*e0,0*ff,0*f6,0*d7,0*d7,0*97,0*f8,0*ff,0*ff,0*ff,0*0f,0*ef,0*0f,0*ef,0*0f,0*ef,0*0f,

43、0*ff,0*ff,0*7b,0*6d,0*ed,0*0f,0*ff,/*工*/0*ff,0*c0,0*fe,0*fe,0*fe,0*fe,0*fe,0*fe,0*fe,0*fe,0*fe,0*fe,0*fe,0*00,0*ff,0*ff,0*ff,0*03,0*ff,0*ff,0*ff,0*ff,0*ff,0*ff,0*ff,0*ff,0*ff,0*ff,0*ff,0*01,0*ff,0*ff,/*程*/0*f2,0*8e,0*ee,0*ee,0*02,0*ee,0*cf,0*c4,0*ab,0*af,0*6c,0*ef,0*ef,0*ef,0*e8,0*ef,0*07,0*f7,0*f7,

44、0*f7,0*f7,0*07,0*ff,0*03,0*bf,0*bf,0*03,0*bf,0*bf,0*bf,0*01,0*ff,/*學*/0*fe,0*ef,0*f3,0*f7,0*80,0*bf,0*70,0*ff,0*ff,0*80,0*ff,0*ff,0*ff,0*ff,0*fd,0*fe,0*f7,0*73,0*37,0*6f,0*01,0*fb,0*17,0*bf,0*7f,0*01,0*7f,0*7f,0*7f,0*7f,0*7f,0*ff,/*院*/0*ff,0*07,0*70,0*6b,0*5f,0*5c,0*6f,0*77,0*70,0*56,0*6e,0*7e,0*7d,0*7d,0*7b,

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論