一、功能描述
在以为LED数码管上每秒倒计时时,显示数字“9~0”,循环往复。
二、程序展示
#include <REGX51.H>
#define uchar unsigned char
#define uint unsigned int
uchar counter=0;
uchar i=0;
uchar code SEG[16]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};
void timer0(void)interrupt 1 using 0
{
TH0=-50000/256;
TL0=-50000%256;
counter++;
if(counter==40)
{
counter=0;
if(i==16)
i=0;
else
i++;
P0=SEG[i];
}
}
void main(void)
{
P2=0x3f;
P0=SEG[0];
TMOD=0x01;
TH0=-50000/256;
TL0=-50000%256;
EA=1;
ET0=1;
TR0=1;
while(1)
{;}
}
三、原理图展示
四、小结
这次我同样学到了很多,我认为单片机这门课程让我的视野更加开阔。