資源簡介
用at89c51做的一個6位的數字鐘,可以顯示小時 分鐘 秒,并且實現了可以調試的功能
有c語言源程序 以及prote仿真圖
有c語言源程序 以及prote仿真圖
代碼片段和文件信息
#include
#define?uint?unsigned?int
#define?uchar?unsigned?char
sbit?second_set=P1^0;
sbit?minute_set=P1^1;
sbit?hour_set=P1^2;??
sbit?go=P1^3;
uchar?code?table[]={0xC00xF90xA40xB00x990x920x820xF80x800x900xbf};//數碼管段選編碼表
uchar?code?disbit[]={0x010x020x040x080x100x200x400x80}; ?//數碼管位選編碼表
uchar?aasecondminutehour;
uchar?buffer[]={00000000};
void?delay(uint?t);
void?display();
void?main()
{
??TMOD=0x01;
??TH0=(65535-50000)/256;
??TL0=(65535-50000)%256;
??EA=1;
??ET0=1;
??TR0=1;???//定時器0初始化
??aa=0;
??second=0;
??minute=0;
??hour=0;??//各變量初始化
??while(1)
??{
??P1=0xff;??//P1口作為讀入口,檢測按鍵狀態 ?
??if(second_set==0) ?//秒設置鍵編碼
??{
?? ?delay(5);??//按鍵消抖?5ms
?if(second_set==0)
?{
? TR0=0;????//設置時,關閉定時器0
second++;
delay(3);
?}
?if(second==60)
?{
? minute++;
second=0;
if(minute==60)
{
hour++;
minute=0;
if(hour==24)
{
hour=0;
}
}
?}
?while(!second_set);?//按鍵松手檢測
??}
?? ??display();
??
??if(minute_set==0) //分設置鍵編碼
??{
?? delay(5);
if(minute_set==0)
{
TR0=0;
minute++;
delay(3);
}
if(minute==60)
{
hour++;
minute=0;
if(hour==24)
{
hour=0;
}
}
while(!minute_set);
??}
??display();
??if(hour_set==0)??//時設置鍵編碼
??{
?? delay(5);
if(hour_set==0)
{
TR0=0;
hour++;
delay(3);
}
if(hour==24)
{
hour=0;
}
while(!hour_set);
??}
??display();
??if(go==0) ??//開始鍵編碼
??{
?? delay(5);
if(go==0)
{
TR0=~TR0;
while(!go);
}
??}
??display();
???}
}
void?timer0()interrupt?1
{
?aa++;
?TH0=(65535-50000)/256;
?TL0=(65535-50000)%256;
?if(aa==20)?????//此時計滿一秒
?{
? aa=0;
second++;
if(second==60)
{
second=0;
minute++;
if(minute==60)
{
minute=0;
hour++;
if(hour==24)
hour=0;
}
}
?}
}
void?delay(uint?t)??//延時子程序
{
uint?xy;
for(x=t;x>0;x--)
for(y=177;y>0;y--);
}
void?display()???//顯示子程序
{
uchar?i;
buffer[0]=second%10;
buffer[1]=second/10;
buffer[2]=10;
buffer[3]=minute%10;
buffer[4]=minute/10;
buffer[5]=10;
buffer[6]=hour%10;
buffer[7]=hour/10;
for(i=0;i<8;i++)
{
P0=table[buffer[i]];?//段選
P3=disbit[i]; //位選
delay(3);
P3=0x00;?????????//P3作為驅動口
}
}
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件??????97424??2011-03-15?09:14??shuzizhong\Last?Loaded?shuzizhong.DBK
?????文件???????6608??2011-03-15?09:26??shuzizhong\shuzizhong
?????文件???????2585??2011-03-15?09:30??shuzizhong\shuzizhong.c
?????文件??????97410??2011-03-15?09:26??shuzizhong\shuzizhong.DSN
?????文件???????1631??2011-03-15?09:26??shuzizhong\shuzizhong.hex
?????文件?????????53??2011-03-15?09:26??shuzizhong\shuzizhong.lnp
?????文件???????8262??2011-03-15?09:26??shuzizhong\shuzizhong.LST
?????文件??????11000??2011-03-15?09:26??shuzizhong\shuzizhong.M51
?????文件???????6929??2011-03-15?09:26??shuzizhong\shuzizhong.OBJ
?????文件???????1208??2011-03-15?09:51??shuzizhong\shuzizhong.Opt
?????文件????????379??2011-03-15?09:51??shuzizhong\shuzizhong.plg
?????文件????????742??2011-03-15?09:51??shuzizhong\shuzizhong.PWI
?????文件???????2164??2011-03-15?09:26??shuzizhong\shuzizhong.Uv2
????.......??????1206??2011-03-15?09:26??shuzizhong\shuzizhong_Opt.Bak
????.......?????????0??2011-03-15?08:14??shuzizhong\shuzizhong_Uv2.Bak
?????文件???????6376??2005-03-22?15:22??shuzizhong\STARTUP.A51
?????文件??????14048??2011-03-15?09:26??shuzizhong\STARTUP.LST
?????文件????????758??2011-03-15?09:26??shuzizhong\STARTUP.OBJ
?????目錄??????????0??2011-03-15?09:51??shuzizhong
-----------?---------??----------?-----??----
???????????????258783????????????????????19
- 上一篇:單片機電子時鐘 鬧鐘 日歷
- 下一篇:Tomcat中配置數據源所需得jar包
評論
共有 條評論