长得帅怪我落 发表于 2017-4-10 08:46
你先别想着只显示25,你先看把for哪里,j=0开始输出,看你能不能原封不动的输出k+25来。然后在根据想象判断 ...
不能显示所有的字符,先是显示k,然后再一次发送数据时显示+;
当我把代码改成如下时,他竟然会全部显示,但是和我的目的不一样, 主函数中SBUF=table[2]和SBUF=table[3]这两个语句无论保留哪个,它竟然都会显示,如果把这两个语句都删了,就不会显示任何数据了。不明白为什么即使把 主函数中SBUF=table[2]和SBUF=table[3]这两个语句的条件限制的这么狠了,它竟然都会显示。
帮忙分析一下,谢谢了
#include
#define uchar unsigned char
#define uint unsigned int
unsigned char flag,a,i,j;
uchar table[];
void init()
{
TMOD=0x20;
TH1=0xFD;
TL1=0xFD;
TR1=1;
REN=1;
SM0=0;
SM1=1;
EA=1;
ES=1;
}
void main()
{
init();
while(1)
{
if(flag==1)
{
ES=0;
SBUF=table[2];
SBUF=table[3];
while(!TI);
TI=0;
flag=0;
ES=1;
}
}
}
void ser()interrupt 4
{
RI=0;
table[0]=SBUF;
table[1]=SBUF;
table[2]=SBUF;
table[3]=SBUF;
flag=1;
}复制代码