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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2308|回復: 10
收起左側

單片機學習型紅外遙控開關程序 用Keil uVision 4編譯 什么不能通過?

[復制鏈接]
回帖獎勵 50 黑幣 回復本帖可獲得 50 黑幣獎勵! 每人限 1 次
ID:17109 發表于 2019-9-3 16:48 | 顯示全部樓層 |閱讀模式
那位師博能把這個學習型紅外遙控開關,用Keil uVision 4編譯   通過生成hex代碼    修改好用壓縮包上傳,謝謝
#include<AT89X51.H>   //裝入AT89X51頭文件
#include<ir.h>                        //裝入紅外解碼程序
#include<24c02.H>                //裝入24c02讀寫程序
sbit key=P1^0;                        //定義按鍵IO
sbit led=P0^0;       //定義指示led
sbit rel=P0^1;                        //定義輸出控制腳

unsigned char kaver;  //定義kaver為輸出口狀態緩存
unsigned char iccdate,irdate;  //定義24c02數據和解碼數據

//延時10ms函數,用于開關消抖等
delay10ms()   
{
        unsigned char i,j;         
        for(i=20;i>0;i--)         
        for(j=248;j>0;j--);         
}

//學習紅外解碼并寫入24c02的函數
study()
{
    IR_IN();
         irdate=IRCOM[3];
    iccdate=ReadIIC(W_cmd,0x00,R_cmd);
        if(irdate!=iccdate)        //只在解碼結果與讀取結果不同時寫入24C02
        {
                if(irdate!=0)                        //防止沒有接收到紅外信號,IRCOM[3]置零時,誤寫入0
                {
                WP=0;
                WriIIC(W_cmd,0x00,irdate);
                delay10ms();
                WP=1;
                led=0;
                while(key==0);                //學習成功等待按鍵釋放,led停止閃動作為指示
                }
         }
}
//進入學習狀態時的led閃動函數
flash()
{
    unsigned char i;
          while(key==0)
          {
             led=~led;
                  for(i=50;i>0;i--)
                                  study();                 
          }
}
//按鍵模式識別函數
keymod()
{
        unsigned char m=0;
        while(key==0)                          //如果按鍵按下,開始對按鍵時間進行計數
        {               
                        delay10ms();                        //計數時間延時
                        m++;
                        delay10ms();                        //計數時間延時
                        if(m>=90)                                //如果計數次數大于90次,等于按鍵按下時間大于約5秒后,進入led閃動學習模式
                        {
                                m=0;
                                flash();
                        }
        }

         if(m<90)              //如果計數次數小于90,則按鍵作為開關使用
         {
                 m=0;
                kaver=~kaver;
         }

}
////////////////////主函數////////////////////////////////////
main()
{
        WP=1;                        //24c02寫保護
        while(1)
        {
                IRCOM[3]=0;
            IR_IN();                                // 讀4字節32位按鍵編碼 ,前16位用戶碼為IRCOM[1]+IRCOM[2],8位鍵值碼為IRCOM[3]
                irdate=IRCOM[3];                                        //8位鍵值反碼為IRCOM[4] 這里只調用 IRCOM[3]鍵值碼作為數據碼
                iccdate=ReadIIC(W_cmd,0x00,R_cmd);
                if(irdate==iccdate)                                                //如果解碼結果與24C讀取碼相同,kaver翻轉一次
                {
                        irdate=0;
                        kaver=~kaver;
                }

      if(key==0)         
                        keymod();
                rel=~kaver;
                led=kaver;
        }
}

學習型紅外遙控開關.rar

1.14 KB, 下載次數: 12

回復

使用道具 舉報

ID:373185 發表于 2019-9-3 16:59 | 顯示全部樓層
把編譯出錯的信息貼上來 才能判斷
回復

使用道具 舉報

ID:97554 發表于 2019-9-3 18:08 | 顯示全部樓層
頭文件三個都有問題,自己看看

#include<AT89X51.H>   這個改成#include<reg51.h>
#include<ir.h>                       
#include<24c02.H>            這兩個程序文件沒有那什么編譯?

你先把第一行那個改了之后看能不能編譯。   
回復

使用道具 舉報

ID:607016 發表于 2019-9-4 09:24 | 顯示全部樓層
#include<ir.h>                        //裝入紅外解碼程序
#include<24c02.H>                //裝入24c02讀寫程序
這兩個應該是驅動,沒有自然是無法編譯的
回復

使用道具 舉報

ID:208271 發表于 2019-9-4 10:27 | 顯示全部樓層
你這個用的是什么型號的單片機,編譯問題是什么
回復

使用道具 舉報

ID:46999 發表于 2019-9-4 11:30 | 顯示全部樓層
補上ir.h /24c02.h  再重新編譯            
回復

使用道具 舉報

ID:607323 發表于 2019-9-4 11:43 | 顯示全部樓層
請發一下報錯的提示信息
回復

使用道具 舉報

ID:17109 發表于 2019-9-6 14:17 來自手機 | 顯示全部樓層
cainiao4414 發表于 2019-9-4 09:24
#include                        //裝入紅外解碼程序
#include                //裝入24c02讀寫程序
這 ...

不知道在那里能走到紅外解碼程序和24c02可以給補上編譯嗎謝謝
回復

使用道具 舉報

ID:483423 發表于 2019-9-6 16:32 | 顯示全部樓層
頭文件和里面定義的變量有沒有問題?
回復

使用道具 舉報

ID:17109 發表于 2019-9-28 11:53 | 顯示全部樓層
楊雪飛 發表于 2019-9-3 18:08
頭文件三個都有問題,自己看看

#include   這個改成#include

補上ir.h  24c02.H AT89X51.H  師博看那里有問題 請修改一下謝謝
回復

使用道具 舉報

ID:17109 發表于 2019-9-28 11:55 | 顯示全部樓層
補上編譯有問題請師博看看那里,有問題

學習型紅外遙控開關.rar

18.93 KB, 下載次數: 18

回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 久久88 | 亚洲区视频 | 久久久久久国产精品久久 | 337p日韩| 开操网| 日韩毛片在线观看 | 欧美二区在线 | 91精品国产91久久久久游泳池 | 精品国产91乱码一区二区三区 | 中文欧美日韩 | 操网站| 伊人青青久久 | 日韩一区二区三区视频 | 黄色国产在线播放 | 欧美日韩专区 | 久久国产美女视频 | 国产一级片在线观看视频 | 欧美在线一区二区三区 | 亚洲3p| 国产精品成人在线观看 | 亚洲欧洲在线观看视频 | 久久骚| 欧美视频在线一区 | 亚洲自拍偷拍av | 久久精品久久综合 | 亚洲天堂中文字幕 | 欧美日韩视频一区二区 | 欧美一级在线观看 | 成人一级黄色毛片 | 亚洲福利在线视频 | 538在线精品 | 亚洲国产成人av好男人在线观看 | 91久久北条麻妃一区二区三区 | 日韩精品一区二区三区中文在线 | 久久伊人在 | 亚洲一区二区在线视频 | 亚洲成人三级 | 99久久久国产精品 | 黄色三级免费网站 | 久久久久久亚洲精品 | 国产特一级黄色片 |