找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 1451|回復(fù): 4
打印 上一主題 下一主題
收起左側(cè)

求助單片機(jī)串口通信程序運(yùn)行的問(wèn)題

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:1002906 發(fā)表于 2022-2-19 10:56 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
剛學(xué)的串口通信,現(xiàn)在要求寫一個(gè)程序,串口接收到6的時(shí)候led燈全亮,請(qǐng)幫我看一下這個(gè)代碼哪里有問(wèn)題,波特率9600的
單片機(jī)源程序如下:
  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;//開啟定時(shí)器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. }
復(fù)制代碼

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:966423 發(fā)表于 2022-2-19 11:41 | 只看該作者
試一下把if(temp=='6')改成if(temp==6)
回復(fù)

使用道具 舉報(bào)

板凳
ID:161164 發(fā)表于 2022-2-19 12:44 | 只看該作者

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


加上對(duì)RI清零那句后
在真機(jī)上成功控制P1
但在Proteus里仿真依失敗

用SCON = 0x50;
取代        
REN=1;
SM0=0;
SM1=1;
就成功在Proteus里仿真
回復(fù)

使用道具 舉報(bào)

地板
ID:1002906 發(fā)表于 2022-2-19 14:32 | 只看該作者
本帖最后由 AnRan_ 于 2022-2-19 14:45 編輯
lkc8210 發(fā)表于 2022-2-19 12:44
加上對(duì)RI清零那句后
在真機(jī)上成功控制P1
但在Proteus里仿真依失敗
加上RI=0并且把temp=‘6’改成temp=6就行了,謝謝
回復(fù)

使用道具 舉報(bào)

5#
ID:1002906 發(fā)表于 2022-2-19 14:32 | 只看該作者
本帖最后由 AnRan_ 于 2022-2-19 14:44 編輯
LPB2021 發(fā)表于 2022-2-19 11:41
試一下把if(temp=='6')改成if(temp==6)

加上樓下的RI=0并且改成這個(gè)就行了,謝謝
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表