上位机和89S51通讯时,数据传递范围受到限制.
我用上位机通过232串口向51传递数据,51接受到数据后,通过8只LED 显示接受到的值.如上位机发出01(16进制,以下皆是)),LED 状态为0000 0001(0表示灭,1表示亮),发出0F时,LED状态为0000 1111.这些都是正常的,可是当上位机发送10时,LED就显示0011 0000了(应该是0001 0000的呀),当发送30时,就显示0111 0000(应该显示0011 0000的呀).请高手指教,这是哪里出了问题?我后来怀疑是我的上位机程序出了问题,于是我就下载了一个串口调试精灵,但是用这个串口调试精灵向51发送数据时,还是遇到相同的问题.那就是发送的值小于0F时,LED可以正常显示,大于这个值后, LED总会多显示高一位.如应该是0001 0000,但LED显示实际是0011 0000.实在不知道是怎么回事了,单片机里与此相关的语句就用了一句MOV A,SBUF,怎么会有这种问题的呢???清高手赐教.