EETOP 创芯网论坛

找回密码

  登录   注册  

搜帖子
汽车电子资料大全(下载奖励300信元)
查看: 1189|回复: 5

[求助] 串口实验-输出了1.5v电平

[复制链接]
发表于 2015-11-24 10:21:19 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?注册

x
完全按照教材的内容,却出现了错误。内容是:甲乙两个单片机利进行串口方式1通信。甲机循环发送数字0-F,并根据乙机的返回值决定发送新数。
甲机

   

        

                
  1. #include<reg52.h>
  2. #define uchar unsigned char
  3. char code map[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};   //0-9
  4. void delay(unsigned int time)
  5. {
  6. unsigned int j=0;
  7. for(;time>0;time--)
  8.         for(j=0;j<125;j++);
  9. }
  10. void mAIn(void)
  11. {
  12. uchar counter=0;        //定义计数初值
  13. TMOD=0x20;        //T1定时方式2
  14. TH1=TL1=0xf4;                 //2400bps
  15. PCON=0;        //波特率不加倍
  16. SCON=0x50;        //串口方式1,TI和RI清零,允许接收
  17. TR1=1;        //启动T1
  18. while(1)
  19.         {
  20.         SBUF=counter;           //发送联络信号
  21.         while(TI==0)           //等待发送完成
  22.         TI=0;                           //清TI标识位
  23.         while(RI==0);           //等待乙机回答
  24.         RI=0;                          
  25.         if(SBUF==counter)  //若返回值与发射值相同则组织新数据
  26.                 {
  27.                 P2=map[counter];         //显示乙发送值
  28.                 if(++counter>9) counter=0;           //修正计数器
  29.                 delay(500);
  30.                 }
  31.         }

  32. }
            

   

    复制代码





乙机


   

        

                
  1. #include<reg52.h>
  2. #define uchar unsigned char
  3. char code map[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};   //0-9
  4. void delay(unsigned int time)
  5. {
  6. unsigned int j=0;
  7. for(;time>0;time--)
  8.         for(j=0;j<125;j++);
  9. }
  10. void main(void)
  11. {
  12. uchar counter=0;        //定义计数初值
  13. TMOD=0x20;        //T1定时方式2
  14. TH1=TL1=0xf4;                 //2400bps
  15. PCON=0;        //波特率不加倍
  16. SCON=0x50;        //串口方式1,TI和RI清零,允许接收
  17. TR1=1;        //启动T1
  18. while(1)
  19.         {
  20.         SBUF=counter;           //发送联络信号
  21.         while(TI==0)           //等待发送完成
  22.         TI=0;                           //清TI标识位
  23.         while(RI==0);           //等待乙机回答
  24.         RI=0;                          
  25.         if(SBUF==counter)  //若返回值与发射值相同则组织新数据
  26.                 {
  27.                 P2=map[counter];         //显示乙发送值
  28.                 if(++counter>9) counter=0;           //修正计数器
  29.                 delay(500);
  30.                 }
  31.         }

  32. }
            

   

    复制代码



分别加载到两个单片机,却发现P2引脚的电平是1.5v。程序无法正常运行。

这是为什么啊?
 楼主| 发表于 2015-11-30 22:02:36 | 显示全部楼层
期待您的解答
回复 支持 反对

使用道具 举报

发表于 2015-12-7 19:23:58 | 显示全部楼层
RF无情人群勿扰
回复 支持 反对

使用道具 举报

发表于 2015-12-7 19:26:43 | 显示全部楼层
未完全额为王企鹅完全 人听闻
回复 支持 反对

使用道具 举报

发表于 2015-12-9 18:52:41 | 显示全部楼层
有誰能回答 ??!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-4-14 08:28:40 | 显示全部楼层
到目前都还没有得到解答啊
回复 支持 反对

使用道具 举报

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

本版积分规则

关闭

站长推荐上一条 /4 下一条

小黑屋| 关于我们| 联系我们| 在线咨询 |  EETOP 创芯网 ( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2020-1-28 16:38 , Processed in 0.091471 second(s), 13 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表