51单片机 AT89S52芯片 8个数码管依次显示0-99,间隔0.5s

如题所述

第1个回答  2013-11-27
#include<reg51.h>
unsigned char xs_d[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
unsigned char time1,w,X ;
delay()
{unsigned int i;<br>for(i=0;i<1000;i++);<br>}
void T0_int()interrupt 1
{
TH0=(65535-50000)/256;
TL0=(65535-50000)%256;
X++;
if (X>10) {X=0; <br> time1++;<br> if(time1>99)time1=0;<br> }
}
void xianshi_hs()
{
P2=0X80;
P1=xs_d[time1%10];
delay();
P2=0X40;
P1=xs_d[time1/10];
delay();
}
main()
{
TMOD=0x01;//定时中断0
TH0=(65535-10000)/256;//设置初值
TL0=(65535-10000)%256;
EA=1;//开全局中断
ET0=1;//开定时器0中断
TR0=1;//启动定时器
while(1)
{
xianshi_hs(); } }
第2个回答  2013-11-27
这个设计没问题的
相似回答
大家正在搜