欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標(biāo)題:
單片機(jī)程序問題請(qǐng)大神指點(diǎn),根據(jù)串口傳輸過來的數(shù)字進(jìn)行低電平輸出
[打印本頁]
作者:
a10861771
時(shí)間:
2020-5-15 21:39
標(biāo)題:
單片機(jī)程序問題請(qǐng)大神指點(diǎn),根據(jù)串口傳輸過來的數(shù)字進(jìn)行低電平輸出
這個(gè)程序是根據(jù)串口傳輸過來的數(shù)字進(jìn)行低電平輸出,前幾次相同數(shù)據(jù)都很正常的輸出低電平,但是突然就會(huì)一直輸出低電平不恢復(fù)成高電平,直到再次傳輸相同數(shù)據(jù)才會(huì)恢復(fù)。比如一直傳輸1時(shí),p2.0根據(jù)頻率輸出低電平再恢復(fù)高電平,到某一次傳輸1時(shí),p2.0會(huì)一直處于低電平,停止傳輸也不恢復(fù)高電平。求大佬看看哪里需要修改
sbit Relay1=P2^0;
sbit Relay2=P2^2;
sbit Relay3=P2^4;//引腳定義
void main()
{
SCON=0x50; //串口定義
TMOD=0x20;
PCON=0x00;
TH1=0xfd;
TL1=0xfd;
RI=0;
TR1=1;
REN=1;
SM0=0;
SM1=1;
EA=1;
Relay1=Relay2=Relay3=1;
while(1)
{
if(RI) /
{
RI=0;
switch(SBUF) //根據(jù)接收的字符
{
case '1': Relay1=~Relay1;Relay2=1;Relay3=1;break; //繼電器1運(yùn)動(dòng)
case '2': Relay2=~Relay2;Relay1=1;Relay3=1;break; /繼電器2運(yùn)動(dòng)
case '3': Relay3=~Relay3;Relay1=1;Relay2=1;break; //繼電器3運(yùn)動(dòng)
}
}
}
}
復(fù)制代碼
作者:
ahust
時(shí)間:
2020-5-15 21:39
你可以把 設(shè)置高電平放在while1里面,然后把翻轉(zhuǎn)電平操作放在中斷里面,這樣一旦退出中斷,就能保證引腳重新變?yōu)楦唠娖健?hr noshade size="2" width="100%" color="#808080">
作者:
a10861771
時(shí)間:
2020-5-16 16:07
本帖最后由 a10861771 于 2020-5-17 09:56 編輯
解決了解決了
歡迎光臨 (http://m.raoushi.com/bbs/)
Powered by Discuz! X3.1