打印

51串口通信问题

[复制链接]
1226|11
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
锵锵人行|  楼主 | 2008-4-18 18:20 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
通过串口调试可以把0 到9 的数传给单片机,并且能正常显示
但把a  到f  传给单片机就不能正常显示了 


请问:是因为发送的是ASCII的原因吗 ? 不太明白 

相关帖子

沙发
锵锵人行|  楼主 | 2008-4-18 20:39 | 只看该作者

晕了 真没人给看看吗

使用特权

评论回复
板凳
电子008| | 2008-4-18 20:54 | 只看该作者

你查

你找人看看你的程序有没有问题。。。。。。。。。。。。。。。。。。。。。。。。。。。。

使用特权

评论回复
地板
锵锵人行|  楼主 | 2008-4-18 22:44 | 只看该作者

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

使用特权

评论回复
5
iC921| | 2008-4-18 23:07 | 只看该作者

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

会不会是译码有问题?

使用特权

评论回复
6
eleclike| | 2008-4-18 23:17 | 只看该作者

回传试试

你吧接收到的内容再用单片机的串口发送的电脑的串口试试

使用特权

评论回复
7
锵锵人行|  楼主 | 2008-4-20 10:23 | 只看该作者

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

#include <reg52.h>
   #define uint  unsigned int
   #define uchar unsigned  char

   sbit  DIG0=P0^4;

   code uchar table[]={0x3f,0x06,0x5b,0x4f,0x66,
                                  0x6d,0x7d,0x07,0x7f,0x6f,0x77};

   void  dellay(uint h)
   {
     while(h--);
   }


   main()
   {
     TMOD=0X20;
     TH1=0XFD;
     TL1=0XFD;
     TR1=1;
     SCON=0X50;
     PCON=0;
     ES=1;
     EA=1;
     dellay(100);
     while(1);
    }

   void  urat (void) interrupt 4
   {
      uchar  i;
      if(RI==1)
      {
        i=SBUF;
        i-=48;    //  要是不减去48 ,0到9 也不能显示
        P1=table;
        DIG0=0;
        RI=0;
      }
     }

使用特权

评论回复
8
dld2| | 2008-4-20 10:40 | 只看该作者

找一个ASCII码表看看

知道为什么要减48,就应该知道怎么回事了。

使用特权

评论回复
9
mohanwei| | 2008-4-20 10:50 | 只看该作者

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

使用特权

评论回复
10
锵锵人行|  楼主 | 2008-4-20 19:12 | 只看该作者

哦 知道了

使用特权

评论回复
11
锵锵人行|  楼主 | 2008-4-20 19:13 | 只看该作者

谢谢大家了

使用特权

评论回复
12
short_long| | 2008-4-21 18:37 | 只看该作者

ascii

无语

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

30

主题

120

帖子

0

粉丝