久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

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

QQ登錄

只需一步,快速開(kāi)始

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

單片機(jī)串口模塊的程序用while和if的結(jié)果不一樣

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:685478 發(fā)表于 2020-1-31 21:14 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
在郭天祥師傅的視頻中,也出現(xiàn)了使用while和if結(jié)果不一樣的現(xiàn)象,郭天祥師傅說(shuō)不太清楚為什么,用if的時(shí)候都是正確的。舉個(gè)例子,每次亮一個(gè)led,傳01的時(shí)候P1=0Xfe,02的時(shí)候P1=0Xfd;03的時(shí)候P1=0Xfb;04的時(shí)候P1=0Xf7;用while的話,接收區(qū)只能得到第一次傳過(guò)去的數(shù)據(jù),也可以得到?jīng)]有進(jìn)入while的數(shù)據(jù),比如連續(xù)發(fā)送 01,02,03,03,06 ,接收區(qū)得到 01 06,但是led亮的很正常,傳01就亮01的,02就亮02的,是為什么?

單片機(jī)源程序如下:
#include<reg52.h>
unsigned char flag,a;

void delay(int a)            //延時(shí)1ms函數(shù)
{
int i,x;
for(i=0;i<a;i++)
  for(x=0;x<115;x++) ;
}
void main()
{
REN=1;
SM0=0;
SM1=1;
TMOD=0X20;          //定時(shí)器方式二
TH1=0XFD;            //3us
TL1=0XFD;
TR1=1;
EA=1;
ES=1;
while(1)
{
  if(flag==1)             //這里是郭天祥師傅碰見(jiàn)的第一處while和if
  {
   ES=0;
   flag=0;
   SBUF=a;              //想在這里接收
   while(!TI);
   TI=0;
   ES=1;
  }
if(a==0x01)           //以下為我碰見(jiàn)的while和if
{
P1=0xfe;
delay(50);
}

if(a==0x02)
{
P1=0xfd;
delay(50);
}
if(a==0x03)
{
P1=0xfb;
delay(50);
}
  if(a==0x04)
{
P1=0xf7;
delay(50);
}
}
}
void ser() interrupt 4                //中斷方式5
{
RI=0;
a=SBUF;
flag=1;
}


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

使用道具 舉報(bào)

沙發(fā)
ID:235200 發(fā)表于 2020-2-1 00:53 | 只看該作者
while(1)循環(huán)中接收到falg標(biāo)記并判斷,同時(shí)關(guān)閉了ES,并把接收數(shù)據(jù)發(fā)送回去后再開(kāi)啟中斷ES,在接下來(lái)的程序判斷a值并點(diǎn)亮其對(duì)應(yīng)的LED燈時(shí),同樣可接收發(fā)送過(guò)來(lái)的值存入a(因a是全程變量),所以能說(shuō)明你所說(shuō)的"但是led亮的很正常,傳01就亮01的,02就亮02的",程序的邏輯錯(cuò)誤,應(yīng)該修改為每接收一個(gè)數(shù)據(jù)進(jìn)行處理后才允許接收下一次數(shù)據(jù),或者一次接收完所有數(shù)據(jù),然后對(duì)所接收的所有數(shù)據(jù)進(jìn)行一次處理后清除數(shù)據(jù),這樣兩種方法均可實(shí)現(xiàn)
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 伊人网综合在线 | www.日日干 | 精品自拍视频在线观看 | 欧美久久国产精品 | 免费观看一级黄色录像 | 欧美一区2区三区4区公司 | 黄网站在线播放 | 国产精品精品视频一区二区三区 | 九九热精品在线 | 99在线免费观看视频 | 欧美日韩国产欧美 | 久久久久国产成人精品亚洲午夜 | 玩丰满女领导对白露脸hd | 亚洲一区在线日韩在线深爱 | 天天干天天爱天天 | 午夜精品久久久久久久久久久久 | 天堂久久天堂综合色 | 欧美一区二区三区在线观看视频 | 欧美日韩综合视频 | 国产精品91视频 | 一级欧美日韩 | 日本久久黄色 | 麻豆一区二区三区 | 久久精品国产亚洲夜色av网站 | 伊人久久综合 | 国产亚洲成av人片在线观看桃 | 国产一级黄色网 | 中文字幕一区在线观看视频 | 久久精品视频在线播放 | 国产精品成人在线 | 欧美精品一区二区三区在线 | 亚洲精品区 | 亚洲国产欧美日韩 | 久久综合伊人 | 91看片在线观看 | 欧美日韩在线一区 | 精品国产一区二区三区性色 | 国产成人精品一区二区三区四区 | 最新国产精品视频 | 99免费精品| 天堂男人av|