编写程序使定时器0或者定时器1工作在方式2,自动重装载模式,定时500ms使两位数码管从00、01、02……98、99每间隔500ms加1显示。
程序:
#include <reg51.h>
#define uchar unsigned char
uchar led[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
uchar seg[]={0xfe,0xfd};
unsigned int cont=0;
uchar num=0;
uchar gewei,shiwei;
void delay(unsigned int time)
{
while(–time);
}
int main(void)
{
TMOD=0X02;
EA=1;
TH0=256-100;
TL0=256-100;
ET0=1;
TR0=1;
P2=0xff;
while(1)
{
gewei=num%10;
shiwei=num/10;
P2=seg[0];
P0=led[gewei];
delay(100);
P0=0xff;
P2=seg[1];
P0=led[shiwei];
delay(100);
P2=0xff;
}
}
void int1_timer(void) interrupt 1
{
cont++;
if(cont5000)
{
num++;
cont=0;
}
if(num100)num=0;
}
视频:
https://www.bilibili.com/video/BV1j5411n7ua/