欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標(biāo)題: 幫修改個(gè)程序,4個(gè)LED燈對(duì)應(yīng)按鍵號(hào),只能亮一個(gè),其它熄滅 謝謝! [打印本頁]

作者: yaofang1010    時(shí)間: 2016-9-11 19:07
標(biāo)題: 幫修改個(gè)程序,4個(gè)LED燈對(duì)應(yīng)按鍵號(hào),只能亮一個(gè),其它熄滅 謝謝!
  在網(wǎng)上找了個(gè)程序,已修改了遙控鍵值,實(shí)現(xiàn)了按紅外遙控器1,2,3,4號(hào)鍵,對(duì)應(yīng)學(xué)習(xí)板P2^0-P2^3 IO口LED燈點(diǎn)亮,熄滅。現(xiàn)在想修改為:4個(gè)LED燈對(duì)應(yīng)按鍵號(hào),只能亮一個(gè),其它熄滅。比如按遙控器按1號(hào)鍵,對(duì)應(yīng)P2^0燈亮;按2號(hào)鍵時(shí),P2^1亮,其它熄滅。
本人水平有限,先謝謝了
程序如下:


#include <reg51.h>
#include <intrins.h>
#define uchar unsigned char
#define uint  unsigned int
#define delayNOP(); {_nop_();_nop_();_nop_();_nop_();};
void delay(uchar x);  //x*0.14MS
void delay1(int ms);
void beep();
sbit IRIN = P3^2;         //紅外接收器數(shù)據(jù)線
sbit BEEP = P3^7;         //蜂鳴器驅(qū)動(dòng)線
sbit RELAY1= P2^0;         //繼電器驅(qū)動(dòng)線//繼電器驅(qū)動(dòng)線
sbit RELAY2= P2^1;
sbit RELAY3= P2^2;
sbit RELAY4= P2^3;  
uchar IRCOM[7];
main()
{
    IRIN=1;                    //I/O口初始化
    BEEP=1;
    RELAY1=1;
delay1(10);                 //延時(shí)
    IE = 0x81;                 //允許總中斷中斷,使能 INT0 外部中斷
TCON = 0x01;               //觸發(fā)方式為脈沖負(fù)邊沿觸發(fā)
     while(1);

} //end main
/**********************************************************/
void IR_IN() interrupt 0 using 0
{
      unsigned char j,k,N=0;
     EX0 = 0;     //關(guān)掉外部中斷防止中斷的再次發(fā)生進(jìn)入檢測(cè)引導(dǎo)碼階段(9ms的低電平4.5ms的高電平)
delay(15);
if (IRIN==1)
     { EX0 =1;  //9ms的檢測(cè)檢測(cè)結(jié)束從新打開外部中斷
  return;
}
                           //確認(rèn)IR信號(hào)出現(xiàn)
  while (!IRIN)            //等IR變?yōu)楦唠娖剑^9ms的前導(dǎo)低電平信號(hào)。
    {delay(1);}

for (j=0;j<4;j++)         //收集四組數(shù)據(jù)
{
for (k=0;k<8;k++)        //每組數(shù)據(jù)有8位
{
  while (IRIN)            //等 IR 變?yōu)榈碗娖剑^4.5ms的引導(dǎo)高電平信號(hào)。
    {delay(1);}
   while (!IRIN)          //等 IR 變?yōu)楦唠娖?br />     {delay(1);}
    while (IRIN)           //計(jì)算IR高電平時(shí)長(zhǎng)(0和1的低電平的時(shí)長(zhǎng)一樣的,只要判斷高電平時(shí)長(zhǎng)超過0.56ms并小于1.12ms為1否  則為0)
     {
   delay(1);
   N++;           
if (N>=30)
{
EX0=1;
return;
}                  //0.14ms計(jì)數(shù)過長(zhǎng)自動(dòng)離開。
     }                        //高電平計(jì)數(shù)完畢               
    IRCOM[j]=IRCOM[j] >> 1;                  //數(shù)據(jù)最高位補(bǔ)“0”
    if (N>=8) {IRCOM[j] = IRCOM[j] | 0x80;}  //高電平持續(xù)時(shí)間大于1.12ms則數(shù)據(jù)最高位補(bǔ)“1”
    N=0;
}//end for k
}//end for j

   if (IRCOM[2]!=~IRCOM[3])  // 判斷有沒有誤碼(有責(zé)放棄沒有判斷鍵碼)
   { EX0=1;
     return;
}
     switch(IRCOM[2])
{ // 顯示遙控上的字符按鍵
case 0x09:
RELAY1=!RELAY1;  
break;
case 0x0c:
    RELAY2=!RELAY2;
break;
case 0x0e:
    RELAY3=!RELAY3;  
break;
case 0x00:
     RELAY4=!RELAY4;  

}
     beep();
     EX0 = 1;
}

/**********************************************************/
void beep()
{
  unsigned char i;
  for (i=0;i<100;i++)
   {
   delay(4);
   BEEP=!BEEP;                 //BEEP取反
   }
  BEEP=1;                      //關(guān)閉蜂鳴器
}
/**********************************************************/
void delay(unsigned char x)    //x*0.14MS
{
unsigned char i;
  while(x--)
{
  for (i = 0; i<13; i++) {}
}
}

/**********************************************************/
void delay1(int ms)
{
unsigned char y;
  while(ms--)
{
  for(y = 0; y<250; y++)
  {
   _nop_();
   _nop_();
   _nop_();
   _nop_();
  }
}
}



作者: yaofang1010    時(shí)間: 2016-9-11 23:13
已修改成功。
作者: STC89C51    時(shí)間: 2016-9-12 00:39
yaofang1010 發(fā)表于 2016-9-11 23:13
已修改成功。

樓主,我想學(xué)習(xí)下,可以把源程序發(fā)給我嗎?謝謝!
作者: yaofang1010    時(shí)間: 2016-9-12 18:31
STC89C51 發(fā)表于 2016-9-12 00:39
樓主,我想學(xué)習(xí)下,可以把源程序發(fā)給我嗎?謝謝!

已發(fā),
數(shù)字補(bǔ)丁

4路.zip

23.95 KB, 下載次數(shù): 19

修改好的,4路紅外遙控程序


作者: STC89C51    時(shí)間: 2016-9-13 00:37
yaofang1010 發(fā)表于 2016-9-12 18:31
已發(fā),
數(shù)字補(bǔ)丁

謝謝分享
作者: wuyibin2003    時(shí)間: 2016-9-13 14:15
恭喜樓主改造成功
作者: wh524525003    時(shí)間: 2016-9-17 16:24

恭喜樓主改造成功
作者: yaofang1010    時(shí)間: 2016-9-17 17:52
謝謝
已做成成品,配上其它紅外遙控設(shè)備一起使用,信號(hào)切換器
作者: liqingyundmtech    時(shí)間: 2017-5-29 22:12
恭喜樓主改造成功




歡迎光臨 (http://www.raoushi.com/bbs/) Powered by Discuz! X3.1