|
|
#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
sbit shiw=P2^0;
sbit gew=P2^1;
uchar code digit[11]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0xff};
uchar num,num2,shi,ge;
void delayms(uint xms)
{
uint i,j;
for(i=xms;i>0;i--)
for(j=110;j>0;j--);
}
void display()
{
P2=0xff;
P1=digit[shi];
shiw=0;
delayms(5);
P2=0xff;
P1=digit[ge];
gew=0;
delayms(5);
}
void main()
{
TMOD=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
EA=1;
ET0=1;
TR0=1;
num=60;//兩位數(shù)顯示,這里最大是99
shi=num/10;
ge=num%10; //這兩句用于開(kāi)始就顯示設(shè)定的數(shù)值。
while(1)
{
display();
}
}
void T1_time() interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
num2++;
if(num2==20)
{
num2=0;
num--;//這里依次減數(shù)
if(num==0)//當(dāng)數(shù)值減至0時(shí)
num=60;//重新賦值跟初始值一樣就可
shi=num/10;
ge=num%10;
}
}
這個(gè)程序的仿真有大佬有嗎 |
|