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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4176|回復: 4
打印 上一主題 下一主題
收起左側

單片機IO口輸出的數據與接收到的數據不一致

[復制鏈接]
跳轉到指定樓層
樓主
ID:71991 發表于 2015-1-17 19:01 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
求救,以下程序手機藍牙串口助手往單片機發數據08   P1.0會亮與滅;正確的應該是P2.0會亮與滅的。

#include<reg51.h> //包含單片機寄存器的頭文件
sbit S1=P1^0;
sbit S2=P1^1;
sbit S3=P1^2;
sbit S4=P1^3;
sbit S5=P1^4;
sbit S6=P1^5;
sbit S7=P1^6;
sbit S8=P1^7;
sbit S9=P2^0;
sbit S10=P2^1;
sbit S11=P2^2;
sbit S12=P2^3;
sbit S13=P2^4;
sbit S14=P2^5;
sbit S15=P2^6;
sbit S16=P2^7;
/*****************************************************
函數功能:接收一個字節數據
***************************************************/
unsigned char keyval;
unsigned char Receive()
{
unsigned char dat ;
while(RI==0) //只要接收中斷標志位RI 沒有被置“1”
; //等待,直至接收完畢(RI=1)
RI=0; //為了接收下一幀數據,需將RI 清0
dat=SBUF; //將接收緩沖器中的數據存于dat
return dat;
}
/*****************************************************
函數功能:主函數
***************************************************/
void main(void)
{
TMOD=0x20; //定時器T1 工作于方式2
SCON=0x50; //SCON=0101 0000B,串口工作方式1,允許接收(REN=1)
PCON=0x00; //PCON=0000 0000B,波特率9600
TH1=0xfb; //根據規定給定時器T1 賦初值 18.432Mhz
TL1=0xfb; //根據規定給定時器T1 賦初值
TR1=1; //啟動定時器T1
REN=1; //允許接收
P1=0x00;
P2=0x00;
while(1)
{
keyval=Receive(); //將接收到的數據送IO 口顯示
if(keyval==0) //按鍵S1 被按下
S1=~S1;
if(keyval==1) //按鍵S2 被按下
S2=~S2;
if(keyval==2) //按鍵S3 被按下
S3=~S3;
if(keyval==3) //按鍵S4 被按下
S4=~S4;
if(keyval==4) //按鍵S5 被按下
S5=~S5;
if(keyval==5) //按鍵S6 被按下
S6=~S6;
if(keyval==6) //按鍵S7 被按下
S7=~S7;
if(keyval==7) //按鍵S8 被按下
S8=~S8;
if(keyval==8) //按鍵S9 被按下
S9=~S9;
if(keyval==9) //按鍵S10 被按下
S10=~S10;
if(keyval==10) //按鍵S11 被按下
S11=~S11;
if(keyval==11) //按鍵S12 被按下
S12=~S12;
if(keyval==13) //按鍵S13 被按下
S13=~S13;
if(keyval==14) //按鍵S14 被按下
S14=~S14;
if(keyval==15) //按鍵S15 被按下
S15=~S15;
if(keyval==16) //按鍵S16 被按下
S16=~S16;
}
}
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:1 發表于 2015-1-18 15:51 來自手機 | 只看該作者
sbit S1=P1^0   把這句改為2.0
回復

使用道具 舉報

板凳
ID:71991 發表于 2015-1-18 19:33 | 只看該作者
admin 發表于 2015-1-18 15:51
sbit S1=P1^0   把這句改為2.0

sbit S1=P1^0;
sbit S2=P1^1;
sbit S3=P1^2;
sbit S4=P1^3;
sbit S5=P1^4;
sbit S6=P1^5;
sbit S7=P1^6;
sbit S8=P1^7;
sbit S9=P2^0;
sbit S10=P2^1;
sbit S11=P2^2;
sbit S12=P2^3;
sbit S13=P2^4;
sbit S14=P2^5;
sbit S15=P2^6;
sbit S16=P2^7;
IO口定意沒有錯,如果再改這個《sbit S1=P1^0   把這句改為2.0》P1.0口就沒用了。
回復

使用道具 舉報

地板
ID:237942 發表于 2017-10-24 15:23 | 只看該作者
while(RI==0) //只要接收中斷標志位RI 沒有被置“1”   這句有問題,應該改成while(!RI)
回復

使用道具 舉報

5#
ID:212797 發表于 2017-10-24 16:14 | 只看該作者
同樓上所說,while(RI==0) 導致整個程序的邏輯亂了。
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产精品成人一区二区三区夜夜夜 | 亚洲一区二区三区福利 | 久久亚 | 成人av一区二区三区 | 亚洲精色| 极品粉嫩国产48尤物在线播放 | 中文字幕在线观看视频网站 | 完全免费在线视频 | 18性欧美| 亚洲视频免费播放 | 日韩欧美国产精品一区二区三区 | 91在线电影| 亚洲自拍偷拍欧美 | 日韩不卡在线 | 情侣酒店偷拍一区二区在线播放 | 国产精品毛片久久久久久 | 一区二区三区四区不卡 | 国产精品无码专区在线观看 | 日本久久黄色 | 亚洲在线一区 | www.久久久.com| 欧美三级在线 | 四虎永久免费地址 | 影视一区| 亚洲精品国产成人 | 成人亚洲片 | 91电影院 | 国产精品日韩欧美一区二区三区 | 国产在线精品一区 | 一区二区免费看 | 国产亚洲精品综合一区 | 成人国产一区二区三区精品麻豆 | 成人国产精品久久 | 日韩中文字幕免费 | 欧美日韩不卡合集视频 | 久久一| 欧美性受xxx | 91麻豆精品国产91久久久资源速度 | 天天插天天舔 | 91一区二区三区 | 亚洲成人综合网站 |