嵌入式单片机——60秒计时器的实现
1.设计秒计时器,要求实现60秒计时,用2位LED数码管显示。
2.按键K1,实现秒表的停止和启动。
#include char lednum[10] = {0xFC, 0x60, 0xDA, 0xF2, 0x66, 0xB6, 0xBE, 0xE0, 0xFE, 0xF6};//0~9
int count=0;
int Tnum=0;
sbit a = P1^0;
sbit b = P1^1;
sbit c = P1^2;
sbit K1 = P3^2;void display();
void delay(int x) //延时
{int i,j;for (i=x;i>0;i--){for (j=1000;j>0;j--);}
}
void Init() {TMOD = 0x01; TH0=(65536-20000)/256;//(65536-20000)/256;TL0=(65536-20000)%256;//(65536-20000)%256;ET0=1;EA=1;TR0 = 1; IT0=0;EX0=1;
}
void main()
{Init(); P2M1 = 0x00;P2M0 = 0xFF;P1M1 = 0x00;P1M0 = 0xFF;while (1) {display();}
}void display(){a=1,b=0,c=0; P2=lednum[Tnum/10];delay(10);a=0,b=1,c=0; P2=lednum[Tnum%10];delay(10);
}void ex0() interrupt 0{if(K1==0){delay(120);if(K1==0);TR0=!TR0;delay(120);}
}//12Mhz
void Time_20ms() interrupt 1
{TH0=(65536-20000)/256;//(65536-20000)/256;TL0=(65536-20000)%256;//(65536-20000)%256;count++; if(count==50){count=0;Tnum++;if(Tnum==60){Tnum=0;}}
}
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
