标题:
数码管5min倒计时(单片机定时器中断)
[打印本页]
作者:
fashion666666
时间:
2019-6-6 13:07
标题:
数码管5min倒计时(单片机定时器中断)
0.png
(8.64 KB, 下载次数: 14)
下载附件
2019-6-7 01:36 上传
单片机源程序如下:
#include<reg51.h>
unsigned char Seg_CA_Data[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};
unsigned char Seg_CA_Position[]={0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01};
void DelayTime10ms(unsigned int DelayValue);
void Seg_Display_Second(unsigned char DisData,unsigned char Seg_Number);
void Seg_Display_Minute(unsigned char DisData,unsigned char Seg_Number);
unsigned char Second =59;
unsigned char Minute=4;
unsigned char Count=0;
void main()
{
EA=1;
ET0=1;
PT0=1;
TMOD=0x01;
TL0=(65536-50000)%256;
TH0=(65536-50000)/256;
TR0=1;
for(;;)
{
Seg_Display_Second(Second,2);
Seg_Display_Minute(Minute,2);
}
}
void DelayTime10ms(unsigned int DelayValue)
{
unsigned int a,b;
for(a=0;a<DelayValue;a++)
for(b=0;b<1828;b++);
}
void Seg_Display_Second(unsigned char DisData,unsigned char Seg_Number)
{
unsigned char i=0;
for(i=0;i<Seg_Number;i++)
{
P2=Seg_CA_Position[i];
P0=Seg_CA_Data[DisData%10];
DisData=DisData/10;
DelayTime10ms(1);
}
}
void Seg_Display_Minute(unsigned char DisData,unsigned char Seg_Number)
{
unsigned char i=0;
P2=Seg_CA_Position[2];
P0=0xbf;
DelayTime10ms(1);
for(i=3;i<Seg_Number+3;i++)
{
P2=Seg_CA_Position[i];
P0=Seg_CA_Data[DisData%10];
DisData=DisData/10;
DelayTime10ms(1);
}
}
void Irq_Timer_0() interrupt 1
{
TL0=(65536-50000)%256;
TH0=(65536-50000)/256;
Count++;
if(Count==20)
{
Count=0;
if(Second--==0)
{
Second=59;
if(Minute--==0)
{
Second=59;
Minute=4;
}
}
}
}
复制代码
所有资料51hei提供下载:
数码管5min倒计时(定时器中断).rar
(33.86 KB, 下载次数: 16)
2019-6-6 13:07 上传
点击文件名下载附件
下载积分: 黑币 -5
作者:
sjwjwj
时间:
2019-6-10 22:05
程序可以用但是小白表示看不懂
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1