一、功能描述
本电路实现了0-16的正计时,每2S进一位,逢16归0,数码管上第X位显示。
二、电路原理图
三、程序
#include <REGX51.H>
#define uchar unsigned char
#define uint unsigned int
uchar counter=0;
uchar i=0;
uchar code SEG[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
/*---------¶¨Ê±Æ÷0ÖжϷþÎñ×Ó³ÌÐò---------*/
void timer0(void)interrupt 1 using 0
{
TH0=-50000/256;
TL0=-50000%256;
counter++;
if(counter==40)
{
counter=0;
if(i==0)
i=16;
else
i--;
P0=SEG[i];
}
}
void main(void)
{
P0=SEG[16];
TMOD=0x01;
TH0=-50000/256;
TL0=-50000%256;
EA=1;
ET0=1;
TR0=1;
while(1)
{;}
}
四、小结
通过本节课的学习,我们受益匪浅,老师课上让我们修改的几组代码,让我们自己寻找规律,一开始我们没有发现有什么联系规律,但在老师的一步步引导下,我们慢慢寻找到了规律,改正了代码,很有收获感。但在课堂上,还有些知识需要我们认真且仔细的听讲,并且要认真加以思考。