当前位置:首页 > 旋转时钟
#include
typedef unsigned char uint8; typedef unsigned int uint16; typedef unsigned long uint32;
uint32 time;
uint8 a[]={0xFF,0xFF,0xC3,0xBD,0xBD,0xC3,0xFF,0xFF, 0xFF,0xFF,0xDD,0x81,0xFD,0xFF,0xFF,0xFF, 0xFF,0xFF,0xB1,0xB5,0xAD,0x8D,0xFF,0xFF, 0xFF,0xFF,0xAD,0xAD,0xAD,0x81,0xFF,0xFF, 0xFF,0xFF,0xE7,0xD7,0x81,0xF7,0xFF,0xFF, 0xFF,0xFF,0x8D,0xAD,0xAD,0xA1,0xFF,0xFF, 0xFF,0xFF,0xC1,0xB5,0xB5,0xB1,0xFF,0xFF, 0xFF,0xFF,0xBF,0xB1,0xAF,0x9F,0xFF,0xFF, 0xFF,0xFF,0x81,0xAD,0xAD,0x81,0xFF,0xFF,
0xFF,0xFF,0x8D,0xAD,0xAD,0x81,0xFF,0xFF}; //0--9
uint8 b[]={0xFF,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0xFF,
0xFF,0xFF,0xFF,0x99,0x99,0xFF,0xFF,0xFF}; // / : uint8 c[]={12,7,28,14,28,50};//年 月 日 时 分 秒 uint8 hour=14,min=28,sec=50; //hour=14; //min=28; //sec=50;
void timer0_init() { TMOD=0x01; TH0=(65536-40000)/256; TL0=(65536-40000)%6; //定时20ms TR0=1; }
void int_init() { ET0=1; IT0=1; EX0=1; EA=1; }
void delay(uint16 n) { while(n--); }
void flesh_led() {
uint8 i;
for(i=0;i<8;i++) { P0=a[hour/10*8+i]; delay(100); P0=0xff; }
for(i=0;i<8;i++) { P0=a[hour*8+i]; delay(100); P0=0xff; } for(i=0;i<8;i++) { P0=b[i+8]; delay(100); P0=0xff; } for(i=0;i<8;i++) { P0=a[min/10*8+i]; delay(100); P0=0xff; }
for(i=0;i<8;i++) { P0=a[min*8+i]; delay(100); P0=0xff; } for(i=0;i<8;i++) { P0=b[i+8]; delay(100); P0=0xff; } for(i=0;i<8;i++) { P0=a[sec/10*8+i]; delay(100); P0=0xff; }
for(i=0;i<8;i++)
//显示 时//显示 ://显示 分//显示 :
{ P0=a[sec*8+i]; delay(100); P0=0xff; } //显示 秒 }
void main() { timer0_init(); int_init(); while(1); }
void int0() interrupt 0 { flesh_led(); }
void timer0() interrupt 1 { uint8 counter; counter++; if(counter==50) { counter=0; TH0=(65536-40000)/256; TL0=(65536-40000)%6; sec++; if(sec==60) { sec=0; min++; if(min==60) { min=0; hour++; if(hour==24) hour=0; } } } }
共分享92篇相关文档