#include "reg51.h"
#define uchar unsigned char
#define uint unsigned int
sbit smg1=P1^0;
sbit smg2=P1^1;
//数码管编码
uchar code smgduan0[10]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};//显示0~9,无小数点
uchar code smgduan1[10]={0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10};//显示0~9,有小数点
uchar time=0,mode=0;//系统变量
uchar num=99;
void delay(uint i)
{
while(i--);
}
void main()//主函数
{
TMOD|=0X01;
TH0=(65536-50000)/256;//50ms
TL0=(65536-50000)%256;
ET0=1;//打开定时器0中断允许
EA=1;//打开总中断
TR0=1;//打开定时器
while(1)
{
P0=smgduan0[num/10];
smg1=1;
delay(100);
smg1=0;
P0=smgduan0[num%10];
smg2=1;
delay(100);
smg2=0;
}
}
//定时器中断
void Timer0() interrupt 1
{
if(time<20)//0.5s
time++;
else
{
time=0;
if(num>0)
num--;
else
num=99;
}
TH0=(65536-50000)/256;//50ms
TL0=(65536-50000)%256;
}
#define uchar unsigned char
#define uint unsigned int
sbit smg1=P1^0;
sbit smg2=P1^1;
//数码管编码
uchar code smgduan0[10]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};//显示0~9,无小数点
uchar code smgduan1[10]={0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10};//显示0~9,有小数点
uchar time=0,mode=0;//系统变量
uchar num=99;
void delay(uint i)
{
while(i--);
}
void main()//主函数
{
TMOD|=0X01;
TH0=(65536-50000)/256;//50ms
TL0=(65536-50000)%256;
ET0=1;//打开定时器0中断允许
EA=1;//打开总中断
TR0=1;//打开定时器
while(1)
{
P0=smgduan0[num/10];
smg1=1;
delay(100);
smg1=0;
P0=smgduan0[num%10];
smg2=1;
delay(100);
smg2=0;
}
}
//定时器中断
void Timer0() interrupt 1
{
if(time<20)//0.5s
time++;
else
{
time=0;
if(num>0)
num--;
else
num=99;
}
TH0=(65536-50000)/256;//50ms
TL0=(65536-50000)%256;
}