不知道为啥程序不能是数码管显示,想达到的现象是通过串口通信输入”chuxian:12”数码管显示12
#include <REGX52.H>
#include <string.h>
unsigned int i,date,a,flat,num,count,flat1;
void shumaguan();
void delay(unsigned char x)
{while(x--);}
unsigned int code smg[17]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
unsigned int shuju[20],dat[20];
void uart_init()
{
TMOD|=0X20;
SCON=0X50;
PCON|=0X80;
TH1=0XFA;
TL1=0XFA;
ES=1;
EA=1;
TR1=1;
}
void sendbyte(unsigned char byte)
{
SBUF=byte;
while(TI=0);
TI=0;
}
void main ()
{
uart_init();
while(1)
{
if(a==1)
{ if(strstr(shuju,"chuxuan:"))
{ flat1=1;
sendbyte(shuju[8]);
sendbyte(shuju[9]);
delay(100);
}a=0;
}
if(flat1==1)
shumaguan();
}
}
void uart() interrupt 4
{
if(RI==1)
{
date=SBUF;
if(date!="\n")
{
dat[count++]=date;
}
else
{
for(num=0;num<10;num++)
shuju[num]=dat[num];
count=0;
a=1;
}
}RI=0;
}
void shumaguan()
{
for(i=0;i<2;i++)
{
switch(i)
{ case(0):P2_4=1;P2_3=1;P2_2=1;P0=smg[shuju[9]];break;
case(1):P2_4=1;P2_3=1;P2_2=0;P0=smg[shuju[8]];break;
}
delay(1);
P0=0x00;
}
}
#include <REGX52.H>
#include <string.h>
unsigned int i,date,a,flat,num,count,flat1;
void shumaguan();
void delay(unsigned char x)
{while(x--);}
unsigned int code smg[17]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
unsigned int shuju[20],dat[20];
void uart_init()
{
TMOD|=0X20;
SCON=0X50;
PCON|=0X80;
TH1=0XFA;
TL1=0XFA;
ES=1;
EA=1;
TR1=1;
}
void sendbyte(unsigned char byte)
{
SBUF=byte;
while(TI=0);
TI=0;
}
void main ()
{
uart_init();
while(1)
{
if(a==1)
{ if(strstr(shuju,"chuxuan:"))
{ flat1=1;
sendbyte(shuju[8]);
sendbyte(shuju[9]);
delay(100);
}a=0;
}
if(flat1==1)
shumaguan();
}
}
void uart() interrupt 4
{
if(RI==1)
{
date=SBUF;
if(date!="\n")
{
dat[count++]=date;
}
else
{
for(num=0;num<10;num++)
shuju[num]=dat[num];
count=0;
a=1;
}
}RI=0;
}
void shumaguan()
{
for(i=0;i<2;i++)
{
switch(i)
{ case(0):P2_4=1;P2_3=1;P2_2=1;P0=smg[shuju[9]];break;
case(1):P2_4=1;P2_3=1;P2_2=0;P0=smg[shuju[8]];break;
}
delay(1);
P0=0x00;
}
}
#include <REGX52.H>
#include <string.h>
unsigned int i,date,a,flat,num,count,flat1;
void shumaguan();
void delay(unsigned char x)
{while(x--);}
unsigned int code smg[17]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
unsigned int shuju[20],dat[20];
void uart_init()
{
TMOD|=0X20;
SCON=0X50;
PCON|=0X80;
TH1=0XFA;
TL1=0XFA;
ES=1;
EA=1;
TR1=1;
}
void sendbyte(unsigned char byte)
{
SBUF=byte;
while(TI=0);
TI=0;
}
void main ()
{
uart_init();
while(1)
{
if(a==1)
{ if(strstr(shuju,"chuxuan:"))
{ flat1=1;
sendbyte(shuju[8]);
sendbyte(shuju[9]);
delay(100);
}a=0;
}
if(flat1==1)
shumaguan();
}
}
void uart() interrupt 4
{
if(RI==1)
{
date=SBUF;
if(date!="\n")
{
dat[count++]=date;
}
else
{
for(num=0;num<10;num++)
shuju[num]=dat[num];
count=0;
a=1;
}
}RI=0;
}
void shumaguan()
{
for(i=0;i<2;i++)
{
switch(i)
{ case(0):P2_4=1;P2_3=1;P2_2=1;P0=smg[shuju[9]];break;
case(1):P2_4=1;P2_3=1;P2_2=0;P0=smg[shuju[8]];break;
}
delay(1);
P0=0x00;
}
}