資源簡介
實現數字時鐘的方式是使用單片機定時器來實現的,讓數碼管動態顯示

代碼片段和文件信息
#include
void?delay(unsigned?int?a);
void?xianshi();
void?intn();
unsigned?char?shuzu[]={0xc00xf90xa40xb00x990x920x820xf80x800x900xbf};//共陽
unsigned?int?c=0;
unsigned?char?miao=0min=0hour=12;
void?main()
{
?intn();
?while(1)
?{
xianshi();
?}
}
void?intn()
{
?TMOD?=?0x01;
?TH0=0x3c;
?TL0=0xb0;
?ET0=1;//打開定時器1中斷允許
?EA=1;//打開總中斷
?TR0=1;//打開定時器
}
void?Timer0()?interrupt?1
{
?
?TH0=0x3c;
?TL0=0xb0;
??c++;
?if(c==20)
?{
? c=0;
miao++;
if(miao==60)
{
???min++;
if(min==60)
{
hour++;
if(hour==24)
{hour=0;}
}
}
?}
?//xianshi();
}
void?xianshi()
{
//顯示秒個位
P2=0xff;
P0=0x01;//位選
P2=shuzu[miao%10];//段選
delay(100);
//顯示秒十位
P2=0xff;
P0=0x02;
P2=shuzu[miao/10];
delay(100);
//顯示-
P2=0xff;
P0=0x04;
P2=shuzu[10];
delay(100);
//顯示分鐘個位
P2=0xff;
P0=0x08;
P2=shuzu[min%10];
delay(100);
//顯示分鐘十位
P2=0xff;
P0=0x10;
P2=shuzu[min/10];
delay(100);
//顯示-
P2=0xff;
P0=0x20;
P2=shuzu[10];
delay(100);
//顯示小時個位
P2=0xff;
P0=0x40;
P2=shuzu[hour%10];
delay(10);
//顯示小時十位
P2=0xff;
P0=0x80;
P2=shuzu[hour/10];
delay(100);
}
void?delay(unsigned?int?a)
{
while(a--);
}
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????1311??2017-10-25?17:34??4位數碼管\s.c
?????文件???????4255??2017-10-25?17:31??4位數碼管\s.LST
?????文件???????4818??2017-10-25?17:31??4位數碼管\s.OBJ
?????文件???????4251??2017-10-25?17:31??4位數碼管\ss
?????文件???????1242??2017-10-25?17:31??4位數碼管\ss.hex
?????文件?????????20??2017-10-25?17:31??4位數碼管\ss.lnp
?????文件???????6681??2017-10-25?17:31??4位數碼管\ss.M51
?????文件???????9392??2017-10-25?17:34??4位數碼管\ss.plg
????.......?????55195??2017-10-25?17:34??4位數碼管\ss.uvopt
????.......?????13216??2017-10-25?14:50??4位數碼管\ss.uvproj
????.......?????55199??2017-10-25?15:16??4位數碼管\ss_uvopt.bak
????.......?????????0??2017-10-25?14:48??4位數碼管\ss_uvproj.bak
?????目錄??????????0??2017-10-25?17:34??4位數碼管
-----------?---------??----------?-----??----
???????????????155580????????????????????13
評論
共有 條評論