|
我實測了 沒問題(為了降低工作時的功耗 我把led調(diào)的特暗 陽光下不太明顯)
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit led=P1^4; //端口改成我的模塊上電源燈口了
uchar flag=0,a=0;
void init() //這孩紙寫程序怎么不標(biāo)注呢
{
TMOD=0x20;
TH1=0xfd;
TL1=0xf9;
TR1=1;
SM0=0;
SM1=1;
REN=1;
EA=1;
ES=1;
}
void main()
{
init(); //串口初始化
while(1) //循環(huán)
{
if(flag==1) //如果 接收標(biāo)記為1
{
ES=0; //關(guān)串口中斷
if(a==0x01) //如果接受位是0x01
{
led=0; //開led
}
if(a==0x3f) //如果接受位是0x3f
{
led=1; //關(guān)led
}
flag=0; //接收標(biāo)記清零
ES=1; //開串口中斷
}
}
}
void chuan() interrupt 4 //中斷服務(wù)
{
RI=0; //RI位清零
a=SBUF; //負(fù)值 變量a值為接收緩沖區(qū)
flag=1; //接收標(biāo)記置1
}
發(fā)01開
01開.jpg (318.72 KB, 下載次數(shù): 73)
下載附件
2017-4-9 13:09 上傳
發(fā)02關(guān)
02關(guān).jpg (309.4 KB, 下載次數(shù): 100)
下載附件
2017-4-9 13:09 上傳
發(fā)01再開我沒截圖 反正都一樣
發(fā)3f關(guān)
3f關(guān).jpg (307.96 KB, 下載次數(shù): 71)
下載附件
2017-4-9 13:09 上傳
|
評分
-
查看全部評分
|