proteus串口仿真问题

2019-03-24 17:46发布

问题描述:
       我用串口发送的数据既有字符,又有十六进制数。其中,发送的字符123ab时,在virtual terminal中有显示,但是程序不运行;而发送十六进制数01时,
virtual terminal没有显示,程序确运行正确,求大神指点~~~ 谢谢
PS:用开发板时,发送字符123ab,十六进制数01,都运行正确!



未命名.bmp

#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit led=P1^0;
uchar i,flag,j;

void uart_initial()
{
        TMOD=0x20;
        TH1=0xfd;
        TL1=0xfd;
        TR1=1;
        SCON=0x50;
        EA=1;
        ES=1;
}

void main()
{
        uart_initial();
        while(1)
        {
                if(flag==1)
                {
                        ES=0;
                        flag=0;
                        switch(i)
                        {
                                case 'a':led=0;break;
                                case 'b':P1=0xf0;break;
                                case '1':P1=0xf2;break;
                                case '2':P1=0xf4;break;
                                case '3':P1=0xf8;break;
                                case 0x01:j++;P1=j;break;
               
                        }
                        ES=1;
                }
        }

}

void serial() interrupt 4
{
        RI=0;
        i=SBUF;
        flag=1;
}

此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。