简易秒表的keilC程序
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
晶振设置为:12MHz
机器周期为:12*(1/12MHz)=1μs
用Atmel89c52完成,LED显示
用定时器0工作方式2
简易秒表的keilC程序?/span>
#include
unsigned char
led_code[]={0X3F,0X06,0X5B,0X4F,0X66,0X6D,0X7D,0X07,0X7 F,0X6F};//共阴显示
unsigned long cnt=0;
unsigned int second=0,minute=0;
void delay(unsigned int n) //延时
{
unsigned long i;
while(n--)
for (i=0;i<100;i++);
}
t0_int() interrupt 1
{
if(cnt++==5000)//5000*200个机器周期=1S {
cnt=0;
second++;
if(second==60)
{
second=0;
minute++;
if(minute==60) minute=0;
}
}
}
main()
{
TMOD=0x02;//工作方式2
TH0=256-200;//初值计算,200个机器周期
TL0=256-200;
ET0=1;
EA=1;
TR0=1;
while(1)
{
P3=0;//动态扫描
P2=led_code[second%10]; P3_3=1;
delay(1);
P3=0;
P2=led_code[second/10]; P3_2=1;
delay(1);
P3=0;
P2=led_code[minute%10]; P3_1=1;
delay(1);
P3=0;
P2=led_code[minute/10]; P3_0=1;
delay(1);
}
}