#include <reg52.h>
unsigned char temp,i;
unsigned char code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};
sbit P27=P2^7;
void init()
{
TMOD=0x20;
TH1=TL1=0xfd;
TR1=1;
SCON=0x50;
EA=1;
ES=1;
}
void main()
{
init();
while(1)
{
if(temp>15)
{
temp=0;
}
for(i=0;i<15;i++)
{
if(temp==table[i])
{
P27=0;
P0=table[i];
P27=1;
}
}
}
}
void ser() interrupt 4
{
if(RI==1)
{
RI=0; //必须用软件将RI置零
temp=SBUF;
P0=temp; //让led灯点亮SBUF传过来的数
SBUF=temp;
while(!TI); //等待TI传输完数据,传输完数据,TI=1
TI=0;
}
}
7 个解决方案
#1
我知道为什么了...
#2
怎么回事,想知道
#3
怎么回事?
#4
没有时间延时 数码管动态扫描
#5
你是不是送错口了,我看你led用的是P0口,而数码管那边也是用的P0口,应该是写错了吧
#6
对啊,你是不是送错口了,我看你led用的是P0口,而数码管那边也是用的P0口,应该是写错了吧
#7
没有时间延时 数码管动态扫描
#1
我知道为什么了...
#2
怎么回事,想知道
#3
怎么回事?
#4
没有时间延时 数码管动态扫描
#5
你是不是送错口了,我看你led用的是P0口,而数码管那边也是用的P0口,应该是写错了吧
#6
对啊,你是不是送错口了,我看你led用的是P0口,而数码管那边也是用的P0口,应该是写错了吧
#7
没有时间延时 数码管动态扫描