谁能看看为什么protues仿真结果中virtual terminal显示的数字和数组不同

2019-07-15 14:04发布

本帖最后由 烈焰123 于 2016-5-7 21:09 编辑

谁能看看为什么protues仿真结果中virtual terminal显示的数字和数据SZ[10]={0XA0,0X0B,0X39,0X0A,0X36,0X80,0X00,0X00,0X00,0X00};中的不一样啊。
程序如下:
#include<reg51.h>
#define  tiMEth    250  //9600Hz,11.0592MHz
#define uint unsigned int
#define uchar unsigned char
unsigned char code SZ[10]={0XA0,0X0B,0X39,0X0A,0X36,0X80,0X00,0X00,0X00,0X00};
sbit DATA=P3^1; //向液晶输出串行数据
sbit p=PSW^0;     /* p位定义为PSW 寄存器的第0位,即奇偶校验位*/
void Delay10ms(unsigned int c);   //误差 0us
void csh();
void Delay200ms (void)                         /* 延时大约200ms函数*/
        {        unsigned char m,n;
                for(m=0;m<250;m++);
                for(n=0;n<250;n++);
        }
void csh(void)
{
        PCON=0x00;          //波特率不加倍
        TMOD=0x20;
        TCON=0x40;
        SCON=0xC0;//方式1只发送,不接收*D0
    TH1=0XFD;                //计数器初始值设置,
        TL1=0XFD;
        TR1=1;                //打开计数器
}
void main()
{
unsigned char i;
csh();
while(1)                        /*循环*/
{
for(i=0;i<10;i++)        /*发送10次码*/
                {
                send(SZ
);                /*发送数据*/
                Delay200ms ();                /*每隔500ms发送一次数据*/
                }
                }
}

for(i=0; i<10; i++)
                {
                        SBUF =SZ
;   //将要发送的数据放入到发送寄存器
                        while(TI==0);                  //等待发送数据完成
                        TI=0;                          //清除发送完成标志位
                }
                Delay10ms(50);                  //延时一下再发
                while(1);
                }            
}



virtual terminal.jpg
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。