<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于C語言的SAA3010紅外遙控接收的源代碼

          基于C語言的SAA3010紅外遙控接收的源代碼

          作者: 時(shí)間:2012-08-03 來源:網(wǎng)絡(luò) 收藏

          的C程序

          本文引用地址:http://www.ex-cimer.com/article/171080.htm

          // 用單片機(jī)進(jìn)行已經(jīng)是很平常的應(yīng)用了,基本上稍懂單片機(jī)就可以自己編//
          // 但往往很多人編的程序要么繁瑣,要么占用大量存儲器、CPU資源, //
          // 而且用于現(xiàn)場時(shí)還可能因?yàn)槭艿礁蓴_而不能正常工作 //
          // 真正試過的都會發(fā)現(xiàn),要想編個(gè)真正好用的程序不是那么簡單的 //

          // 其實(shí),所有芯片的編碼都是比較簡單的(有限的狀態(tài)),只要仔細(xì)分析它的編碼//
          // 我們完全可以用狀態(tài)機(jī)的方式來處理各種可能的情況,甚至從被干擾的雜亂波形中找出正確的編碼//
          // 下面是狀態(tài)機(jī)的遙控接收程序示例: //
          //--------------------------------------------------------------------------//
          // //
          // (c) Copyright 2001-2003 xuwenjun //
          // All Rights Reserved //
          // V1.00 //
          //--------------------------------------------------------------------------//
          //標(biāo) 題: 遙控芯片接收程序 //
          //文件名: ir_3010.c //
          //版 本: V1.00 //
          //修改人: xuwenjun E-mail:xuwenjun@21cn.com //
          //日 期: 03-06-14 //
          //描 述: SAA3010遙控芯片接收程序 //
          //--------------------------------------------------------------------------//
          //老版本: 無 老版本文件名: //
          //創(chuàng)建人: xuwenjun E-mail:xuwenjun@21cn.com //
          //日 期: 03-06-14 //
          //描 述: SAA3010遙控芯片接收程序 //
          // 當(dāng)ykok=1時(shí),ykcode中的數(shù)據(jù)就是接收到的遙控碼(14位的最后8位) //
          //--------------------------------------------------------------------------//
          //占用以下資源: //
          // 1. 遙控使用外部中斷0,接P3.2口 //
          // 2. 遙控使用定時(shí)計(jì)數(shù)器1 //
          // 3. 5.1字節(jié)data RAM //
          // 4. 293字節(jié) code ROM //
          //--------------------------------------------------------------------------//
          //聲 明: //
          // 以下代碼僅免費(fèi)提供給學(xué)習(xí)用途,但引用或修改后必須在文件中聲明出處. //
          // 如用于商業(yè)用途請與作者聯(lián)系. E-mail:xuwenjun@21cn.com //
          // 有問題請mailto xuwenjun@21cn.com 歡迎與我交流! //
          //--------------------------------------------------------------------------//

          #i nclude reg52.h>
          #define uchar unsigned char

          // SAA3010存儲定義
          uchar ykcode; //遙控碼(14位的最后8位)
          bit ykok; //遙控?cái)?shù)據(jù)有效標(biāo)志

          uchar ykbnum; //遙控已接收位數(shù)
          uchar ykbtc; //遙控中斷時(shí) ykbtc=TH1
          uchar ykdelay; //遙控延時(shí)接收
          bdata uchar ykcodetemp; //遙控臨時(shí)碼
          sbit ykcodetemp0=ykcodetemp^0;


          // SAA3010端口定義
          //sbit YKIO=P3^3; //遙控使用外部中斷0,接P3.2口

          // SAA3010函數(shù)原型: 公用函數(shù)
          void YkInit(void); //遙控接收初始化
          unsigned char YkGetcode(void); //返回遙控碼
          bit YkTest(void); //檢查有無遙控信號

          /*
          // SAA3010函數(shù)原型: 公用函數(shù)
          extern void YkInit(void); //遙控接收初始化
          extern unsigned char YkGetcode(void); //返回遙控碼
          extern bit YkTest(void); //檢查有無遙控信號
          */

          /*
          // 外部引用四位LED顯示模塊 //
          extern unsigned char code tab_duam[]; //位映射
          extern void led_send(unsigned char d); //發(fā)送子程序
          extern void led_cls(void); //清除顯示
          extern void led_show(unsigned int n); //顯示數(shù)字子程序
          extern void led_showhh(unsigned int n); //16進(jìn)制顯示數(shù)字子程序
          extern void led_test(void); //4LED測試函數(shù)
          extern void led_delay(unsigned char ms); //延遲函數(shù)
          */

          // SAA3010函數(shù)內(nèi)容
          void YkInit(void) //遙控接收初始化
          {
          TMOD=0x11; //TMOD T0,T1均選用方式1(16位定時(shí))
          SCON=0x00;
          TH1=0;
          TL1=0;
          IE|=0x89; //SETB EX0 0x1 外部中斷 0 允許
          //SETB ET0 0x8 定時(shí)器 1 中斷允許
          //SETB EA 0x80 開中斷
          IP|=0x01; //SETB INT0 中斷優(yōu)先
          TCON |= 0x41; //TCON EX0下降沿觸發(fā),啟動T1 //
          ykbnum=0;
          ykcodetemp=0;
          ykdelay=0;

          }

          unsigned char YkGetcode(void) //返回遙控碼
          {
          return(ykcode);
          }

          bit YkTest(void) //檢查有無遙控信號
          {
          return(ykok);
          }

          紅外遙控器相關(guān)文章:紅外遙控器原理

          上一頁 1 2 下一頁

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();