单片机倒数程序
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
#include
#define uchar unsigned char
#define uint unsigned int
sbit LS138A = P2^0;
sbit LS138B = P2^1;
sbit LS138C = P2^2;
void delay100us(uint us);
uchar code number[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77};
uchar LedOut[10];
uint i;
uint x;
int num;
void main()
{
TMOD=0x01;
TH0=(65536-45872)/256;//65536-多少就是多少毫秒50000=50毫秒
TL0=(65536-45872)%256;
EA=1;
ET0=1;
TR0=1;
while(1)
{
LedOut[0]=number[x/10];
LedOut[1]=number[x%10];
for( i=0; i<8; i++)
{
switch(i)
{
case 0:LS138A=0; LS138B=0; LS138C=0; break;
case 1:LS138A=1; LS138B=0; LS138C=0; break;
case 2:LS138A=0; LS138B=1; LS138C=0; break;
case 3:LS138A=1; LS138B=1; LS138C=0; break;
case 4:LS138A=0; LS138B=0; LS138C=1; break;
case 5:LS138A=1; LS138B=0; LS138C=1; break;
case 6:LS138A=0; LS138B=1; LS138C=1; break;
case 7:LS138A=1; LS138B=1; LS138C=1; break;
}
P0=LedOut[i];
delay100us(5);
}
}
}
void T0_time()interrupt 1
{
TH0=(65536-45872)/256;
TL0=(65536-45872)%256;
num++;
if(num==10)
{
num=0;
x++;
if(x==20)
{
x=0;
}
}
}
void delay100us(uint us)
{
uint a;
for(us;us>0;us--)
for(a=47;a>0;a--);