51串口通信问题

[复制链接]
2137|11
 楼主| 锵锵人行 发表于 2008-4-18 18:20 | 显示全部楼层 |阅读模式
通过串口调试可以把0&nbsp;到9&nbsp;的数传给单片机,并且能正常显示<br />但把a&nbsp;&nbsp;到f&nbsp;&nbsp;传给单片机就不能正常显示了&nbsp;<br /><br /><br />请问:是因为发送的是ASCII的原因吗 ? 不太明白 
 楼主| 锵锵人行 发表于 2008-4-18 20:39 | 显示全部楼层

晕了 真没人给看看吗

  
电子008 发表于 2008-4-18 20:54 | 显示全部楼层

你查

你找人看看你的程序有没有问题。。。。。。。。。。。。。。。。。。。。。。。。。。。。
 楼主| 锵锵人行 发表于 2008-4-18 22:44 | 显示全部楼层

要是有问题 估计0到9发送就有问题了

  
iC921 发表于 2008-4-18 23:07 | 显示全部楼层

要是0~9没问题,a~f也没问题

会不会是译码有问题?
eleclike 发表于 2008-4-18 23:17 | 显示全部楼层

回传试试

你吧接收到的内容再用单片机的串口发送的电脑的串口试试
 楼主| 锵锵人行 发表于 2008-4-20 10:23 | 显示全部楼层

0~9能正常显示 A不行 的程序

#include&nbsp;&ltreg52.h&gt<br />&nbsp;&nbsp;&nbsp;#define&nbsp;uint&nbsp;&nbsp;unsigned&nbsp;int<br />&nbsp;&nbsp;&nbsp;#define&nbsp;uchar&nbsp;unsigned&nbsp;&nbsp;char<br /><br />&nbsp;&nbsp;&nbsp;sbit&nbsp;&nbsp;DIG0=P0^4;<br /><br />&nbsp;&nbsp;&nbsp;code&nbsp;uchar&nbsp;table[]={0x3f,0x06,0x5b,0x4f,0x66,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0x6d,0x7d,0x07,0x7f,0x6f,0x77};<br /><br />&nbsp;&nbsp;&nbsp;void&nbsp;&nbsp;dellay(uint&nbsp;h)<br />&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while(h--);<br />&nbsp;&nbsp;&nbsp;}<br /><br /><br />&nbsp;&nbsp;&nbsp;main()<br />&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TMOD=0X20;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TH1=0XFD;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TL1=0XFD;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TR1=1;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SCON=0X50;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PCON=0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ES=1;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;EA=1;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dellay(100);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while(1);<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;void&nbsp;&nbsp;urat&nbsp;(void)&nbsp;interrupt&nbsp;4<br />&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;uchar&nbsp;&nbsp;i;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(RI==1)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;i=SBUF;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;i-=48;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;&nbsp;要是不减去48&nbsp;,0到9&nbsp;也不能显示<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;P1=table;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DIG0=0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RI=0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
dld2 发表于 2008-4-20 10:40 | 显示全部楼层

找一个ASCII码表看看

知道为什么要减48,就应该知道怎么回事了。
mohanwei 发表于 2008-4-20 10:50 | 显示全部楼层

看看ascii码表就知道了……谁说0,1,2...x,y,z是连续的?

  
 楼主| 锵锵人行 发表于 2008-4-20 19:12 | 显示全部楼层

哦 知道了

  
 楼主| 锵锵人行 发表于 2008-4-20 19:13 | 显示全部楼层

谢谢大家了

  
short_long 发表于 2008-4-21 18:37 | 显示全部楼层

ascii

无语
您需要登录后才可以回帖 登录 | 注册

本版积分规则

30

主题

120

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部