找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 840|回复: 4
打印 上一主题 下一主题
收起左侧

求助单片机串口通信程序运行的问题

[复制链接]
跳转到指定楼层
楼主
ID:1002906 发表于 2022-2-19 10:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
刚学的串口通信,现在要求写一个程序,串口接收到6的时候led灯全亮,请帮我看一下这个代码哪里有问题,波特率9600的
单片机源程序如下:
  1. #include <reg52.h>

  2. void UARTInit()
  3. {
  4.         EA=1;
  5.         ES=1;
  6.         REN=1;
  7.         SM0=0;SM1=1;
  8.         TR1=1;//开启定时器1
  9.         TMOD |=0X20;
  10.         TH1=0XFD;
  11.         TL1=0XFD;
  12. }
  13. void main()
  14. {               
  15.         UARTInit();
  16.         while(1)
  17.         {
  18.         
  19.         }
  20. }
  21. void UART() interrupt 4
  22. {
  23.         unsigned char temp;
  24.         if(RI)
  25.         {
  26.                 temp=SBUF;
  27.                 if(temp=='6')
  28.                         P1=0x00;
  29.         }
  30.         if(TI)
  31.                 TI=0;
  32. }
复制代码

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:966423 发表于 2022-2-19 11:41 | 只看该作者
试一下把if(temp=='6')改成if(temp==6)
回复

使用道具 举报

板凳
ID:161164 发表于 2022-2-19 12:44 | 只看该作者

  1. void UART() interrupt 4
  2. {
  3.         unsigned char temp;
  4.         if(RI)
  5.         {
  6.                         RI = 0;//<<<<<<<<<<<<<<<<<<<缺了对RI清零
  7.                 temp=SBUF;
  8.                 if(temp=='6')
  9.                         P1=0x00;
  10.         }
  11.         if(TI)
  12.                 TI=0;
  13. }
复制代码


加上对RI清零那句后
在真机上成功控制P1
但在Proteus里仿真依失败

用SCON = 0x50;
取代        
REN=1;
SM0=0;
SM1=1;
就成功在Proteus里仿真
回复

使用道具 举报

地板
ID:1002906 发表于 2022-2-19 14:32 | 只看该作者
本帖最后由 AnRan_ 于 2022-2-19 14:45 编辑
lkc8210 发表于 2022-2-19 12:44
加上对RI清零那句后
在真机上成功控制P1
但在Proteus里仿真依失败
加上RI=0并且把temp=‘6’改成temp=6就行了,谢谢
回复

使用道具 举报

5#
ID:1002906 发表于 2022-2-19 14:32 | 只看该作者
本帖最后由 AnRan_ 于 2022-2-19 14:44 编辑
LPB2021 发表于 2022-2-19 11:41
试一下把if(temp=='6')改成if(temp==6)

加上楼下的RI=0并且改成这个就行了,谢谢
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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