LED顯示電腦電子鐘
本例介紹一種用LED制作的電腦電子鐘(電腦萬年歷)。其制作完成裝潢后的照片如下圖:
上圖中,年、月、日及時間選用的是1.2寸共陽數(shù)碼管,星期選用的是2.3寸數(shù)碼管,溫度選用的是0.5寸數(shù)碼管,也可根據(jù)個人的愛好選用不同規(guī)格的數(shù)碼管。原理圖如下圖所示:
上圖中,CPU選用的是AT89C2051,時鐘芯片選用的是Dallas公司的DS1302, 溫度傳感器選用的是Dallas公司的數(shù)字溫度傳感器DS1820,顯示驅(qū)動芯片選用的是德州儀器公司的TPIC6B595,也可選用與其兼容的芯片NC595或 國產(chǎn)的AMT9595。整個電子鐘用兩個鍵來調(diào)節(jié)時間和日期。一個是位選鍵,一個是數(shù)字調(diào)節(jié)鍵。按一下位選鍵,頭兩位數(shù)字開始閃動,進(jìn)入設(shè) 定調(diào)節(jié)狀態(tài),此時按數(shù)字調(diào)節(jié)鍵,當(dāng)前閃動位的數(shù)字就可改變。
LED驅(qū)動器芯片請查看:http://www.elecfans.com/soft/special/lighting/
全部參 數(shù)調(diào)節(jié)完后,五秒鐘內(nèi)沒有任何鍵按下,則數(shù)字停止閃動,退出設(shè)定調(diào)節(jié)狀態(tài)。源程序清單如下(無溫度顯示程序):
start:do;
$include(reg51.dcl)
declare (sclk,io,rst) bit at (0b3h) register; /* p33,p34,p35 */
declare (command,data,n,temp1,num) byte;
declare a(9) byte;
declare ab(6) byte;
declare aco(11) byte constant (0fdh,60h,0dah,0f2h,66h,0b6h,0beh,
0e0h,0feh,0f6h,00h);
declare week(11) byte constant (0edh,028h,0dch,7ch,39h,75h,0f5h,
2ch,0fdh,7dh,00h);
declare da literally'p15',clk literally'p16',ale literally'p17',
mk literally'p11',sk literally'p12';
clear:procedure;
sclk=0;io=0;rst=0;
end clear;
send1302:procedure(comm);
declare (i,comm) byte;
do i=0 to 7;
comm=scr(comm,1);
io=cy;
call time(1);
sclk=0;
call time(1);
sclk=1;
end;
end send1302;
wbyt1:procedure(com,dat);/*字節(jié)寫過程*/
評論