在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
芯片精品文章合集(500篇!) 创芯人才网--重磅上线啦!
查看: 2973|回复: 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 | 显示全部楼层
到目前都还没有得到解答啊
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-5 13:36 , Processed in 0.035379 second(s), 9 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表