两位数码管显示0-59.zip
立即下载
资源介绍:
两位数码管显示0-59.zip
#include
typedef unsigned int u16;//定义无符号整型变量
typedef unsigned char u8; //定义无符号字符型变量
u16 miao;
u8 code smgduan[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//共阴极数码管段码
void delay(u16 i)//延时函数
{
while(i--);
}
void timer0init() //时间函数
{
TMOD=0x10; //设置T1为工作方式1
ET1=1;
EA=1;
TR1=1; //启动定时器T1
TH1=(65536-1000)/256;//对TH1赋值,50ms
TL1=(65536-1000)%256;//对TL1赋值
}
void main()
{
u16 i; //定义无符号整型变量i
timer0init(); //调用时间函数
while(1)
{
for(i=0;i<2;i++) //循环2次
{
switch(i)
{
case(0):P1=0x01;P0=smgduan[miao%10];break;//当i=0时,显示个位
case(1):P1=0x02;P0=smgduan[miao/10];break;//当i=1时,显示十位
}
delay(1000);//延时1秒
P0=0x00; //数码管灭
}
}
}
void timer0() interrupt 3 //数码管函数
{
u16 i; //定义无符号整型变量i
TH1=64536/256; //重新赋值
TL1=64536%256;
i++; //i自增1
miao==0; //数码管初始值显示00
if(i==1000) //当i=1000
{
miao++; //数码管加1
i=0; //i=0
}
if(miao==60) //当数码管为60时
{
miao=0; //数码管值为0
}
}