|
基于stc89C52單片機(jī)自己做的實(shí)時(shí)時(shí)鐘
- #include <reg52.h>
- #define uint unsigned int
- #define uchar unsigned char
- sbit dula=P2^6;
- sbit wela=P2^7;
- uint second,minute,hour;
- uchar t0,secondge,secondshi,minutege,minuteshi,hourge,hourshi;
- void display(uchar hourshi,uchar hourge,uchar minuteshi,uchar minutege,uchar secondshi,uchar secondge);
- void init();
- void delay(uint z)
- {
- uint x,y;
- for(x=z;x>0;x--)
- for(y=110;y>0;y--);
- }
- uchar code table[]={
- 0x3f,0x06,0x5b,0x4f,
- 0x66,0x6d,0x7d,0x07,
- 0x7f,0x6f};
- void main()
- {
- init();
- while(1)
- {
- secondge=second%10;
- delay(1.5);
- secondshi=second/10;
- delay(1.5);
- minutege=minute%10;
- delay(1.5);
- minuteshi=minute/10;
- delay(1.5);
- hourge=hour%10;
- delay(1.5);
- hourshi=hour/10;
- delay(1.5);
- display(hourshi,hourge,minuteshi,minutege,secondshi,secondge);
- }
- }
- void init()
- {
- wela=0;
- dula=0;
- EA=1;
- ET0=1;
- TR0=1;
- TMOD=0x01;
- TH0=(65535-50000)/256;
- TL0=(65535-50000)%256;
- hour=9;
- minute=54;
- second=0;
- }
- void timer0() interrupt 1
- {
- TH0=(65535-50000)/256;
- TL0=(65535-50000)%256;
- t0++;
- if(t0==20)
- {
- t0=0;
- second++;
- if(second==60)
- {
- second=0;
- minute++;
- if(minute==60)
- {
- minute=0;
- hour++;
- if(hour==24)
- {
- hour=0;
- }
- }
- }
- }
- }
- void display(uchar hourshi,uchar hourge,uchar minuteshi,uchar minutege,uchar secondshi,uchar secondge)
- {
- dula=1;
- P0=table[hourshi];
- dula=0;
- P0=0xff;
- wela=1;
- P0=0xfe;
- wela=0;
- delay(1);
-
- dula=1;
- P0=table[hourge];
- dula=0;
- P0=0xff;
- wela=1;
- P0=0xfd;
- wela=0;
- delay(1);
-
- dula=1;
- P0=table[minuteshi];
- dula=0;
- P0=0xff;
- wela=1;
- P0=0xf7;
- wela=0;
- delay(1);
-
- dula=1;
- P0=table[minutege];
- dula=0;
- P0=0xff;
- wela=1;
- P0=0xef;
- wela=0;
- delay(1);
-
-
- dula=1;
- P0=table[secondshi];
- dula=0;
- P0=0xff;
- wela=1;
- P0=0xbf;
- wela=0;
- delay(1);
-
- dula=1;
- P0=table[secondge];
- dula=0;
- P0=0xff;
- wela=1;
- P0=0x7f;
- wela=0;
- delay(1);
-
-
- dula=1; //-
- P0=0x40;
- dula=0;
- P0=0xff;
- wela=1;
- P0=0xfb;
- wela=0;
- delay(1);
-
- dula=1; //-
- P0=0x40;
- dula=0;
- P0=0xff;
- wela=1;
- P0=0xdf;
- wela=0;
- delay(1);
- }
復(fù)制代碼
|
-
-
實(shí)時(shí)時(shí)鐘.docx
2016-6-2 20:22 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
15.59 KB, 下載次數(shù): 13, 下載積分: 黑幣 -5
實(shí)時(shí)時(shí)鐘
評分
-
查看全部評分
|