基于STC89C52RC,使用定时器,中断,数码管,实现0~100正计时
#include<reg52.h>
#define LED P0
sbit L_A=P2^2; //使能
sbit L_B=P2^3;
sbit L_C=P2^4;
int count=0;
unsigned char s,ge,shi,bai; //定义个十百位
unsigned char flag=0;
unsigned char ledchar[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//共阴0-9
void main(){
EA=1; //总中断允许
ET0=1; //定时器0中断允许
TMOD=0x01; //设置工作模式1
TH0=0xB1; //设置初值 20ms*50=1000ms=1s
TL0=0xE0;
TR0=1; //启动定时器
while(1) //显示计时
{
P0=0x00;//消影
bai=s/100; //百位
shi=s%100/10; //十位
ge=s%10; //个位
switch(count)
{
case 0:L_C=0;L_B=0;L_A=0;P0=ledchar[ge];break; //数码管1有效
case 1:L_C=0;L_B=0;L_A=1;P0=ledchar[shi];break;