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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

程序寫到AT98C2051不正常

[復制鏈接]
跳轉到指定樓層
樓主
ID:353 發表于 2016-10-9 21:43 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
如題,程序在AT89S52、STC89C52均能正常工作,寫到2051也就更了IO口,死活沒反應。求解?謝謝!
程序如下:

#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^4;         //紅外接收器數據線
sbit BEEP = P3^5;         //蜂鳴器驅動線
sbit RELAY1= P1^1;         //繼電器驅動線//繼電器驅動線
sbit RELAY2= P1^4;
sbit RELAY3= P1^7;
uchar IRCOM[7];
main()
{
    IRIN=1;                    //I/O口初始化
    BEEP=1;
    RELAY1=1;
delay1(2);                 //延時
    IE = 0x81;                 //允許總中斷中斷,使能 INT0 外部中斷
TCON = 0x01;               //觸發方式為脈沖負邊沿觸發
     while(1);

} //end main
/**********************************************************/
void IR_IN() interrupt 0 using 0
{
      unsigned char j,k,N=0;
     EX0 = 0;     //關掉外部中斷防止中斷的再次發生進入檢測引導碼階段(9ms的低電平4.5ms的高電平)
delay(15);
if (IRIN==1)
     { EX0 =1;  //9ms的檢測檢測結束從新打開外部中斷
  return;
}
                           //確認IR信號出現
  while (!IRIN)            //等IR變為高電平,跳過9ms的前導低電平信號。
    {delay(1);}

for (j=0;j<4;j++)         //收集四組數據
{
for (k=0;k<8;k++)        //每組數據有8位
{
  while (IRIN)            //等 IR 變為低電平,跳過4.5ms的引導高電平信號。
    {delay(1);}
   while (!IRIN)          //等 IR 變為高電平
    {delay(1);}
    while (IRIN)           //計算IR高電平時長(0和1的低電平的時長一樣的,只要判斷高電平時長超過0.56ms并小于1.12ms為1否  則為0)
     {
   delay(1);
   N++;           
if (N>=30)
{
EX0=1;
return;
}                  //0.14ms計數過長自動離開。
     }                        //高電平計數完畢               
    IRCOM[j]=IRCOM[j] >> 1;                  //數據最高位補“0”
    if (N>=8) {IRCOM[j] = IRCOM[j] | 0x80;}  //高電平持續時間大于1.12ms則數據最高位補“1”
    N=0;
}//end for k
}//end for j

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

}
         beep();
     EX0 = 1;
}

/**********************************************************/
void beep()
{
  unsigned char i;
  for (i=0;i<100;i++)
   {
   delay(4);
   BEEP=!BEEP;                 //BEEP取反
   }
  BEEP=1;                      //關閉蜂鳴器
}
/**********************************************************/
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_();
  }
}
}


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

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产一区二区三区四区在线观看 | 欧美伊人影院 | 在线播放国产一区二区三区 | 91人人视频在线观看 | 国产亚洲精品一区二区三区 | 精品av | www.午夜| www成年人视频 | 免费在线一区二区 | 精品一区二区三区不卡 | 国产91在线播放 | 91麻豆精品国产91久久久久久 | 97国产精品视频人人做人人爱 | 日本不卡一区二区 | 毛片高清 | 三级高清| 999热在线视频 | 在线国产视频 | 欧美日韩在线一区 | 国产精品一区在线观看你懂的 | 国产免费一区二区三区 | 亚洲欧美中文日韩在线v日本 | 女女百合av大片一区二区三区九县 | 欧美多人在线 | 亚洲高清一区二区三区 | 午夜影视大全 | 在线一区视频 | 蜜桃av人人夜夜澡人人爽 | 国产91在线 | 欧美 | 成人网在线 | 亚洲精品乱码8久久久久久日本 | 欧美 中文字幕 | 国产高潮好爽受不了了夜色 | 精品视频一区二区 | 国产一区二区自拍 | 久久99精品国产自在现线小黄鸭 | 欧美精品一区二区三区在线四季 | 亚洲精品第一国产综合野 | 成人动慢 | 欧美黄色大片在线观看 | 91操操操|