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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

單片機紅外線遙控繼電器實驗 Proteus仿真加源程序

[復制鏈接]
跳轉到指定樓層
樓主
很多朋友都需要的51紅外控制繼電器的仿真分享給51黑電子論壇的朋友們

單片機紅外線遙控LED和繼電器仿真原理圖(proteus工程文件可到本帖附件下載):

單片機源程序:


  1. //----------------------------------------------------------------------------------------------------------------------------------
  2. // 程序名:HW6-2.c
  3. // 程序功能:紅外線遙控LED
  4. // --------------------------------------------------------------------------------------------------------------------------------

  5. #include<reg51.h>                                                   //頭文件
  6. sbit IRIN=P3^2;                                                       //定義紅外IR信號輸入位
  7. sbit SPK=P0^0;                                     //定義蜂鳴器接口
  8. sbit RELAY=P2^7;                                   //定義繼電器接口
  9. unsigned char IRDATA[7];                                   //定義數組,存儲紅外接收到的數據

  10. //-------------------------------------- 主函數 --------------------------------------
  11. void main()
  12. {
  13.         EA=1;                                          // 允許總中斷
  14.     EX0=1;                                         // 允許外部中斷INT0中斷
  15.         IT0=1;                                         // 外部中斷INT0采用脈沖觸發方式
  16.         P1=0x00;                                       // 設置P1初始值
  17.         SPK=1;                                         // 設置SPK初始值
  18.         IRIN=1;                                        // IR 輸入位設置為高電平
  19.         while(1);                                      // 無限循環
  20. }

  21. //--------------------------------------- 延時函數  ------------------------------------

  22. void delay(unsigned char x)                               //延時約x*0.1ms  
  23. {                                                                                         
  24.         unsigned char i;                                                                
  25.         while(x--)                                                           
  26.         {for(i=0;i<10;i++){}}                                
  27. }

  28. //-------------------------------------  發聲函數  -------------------------------------

  29. void fs_d ( )                                                  
  30. {                                                                                                                   
  31.         unsigned char i;                                               
  32.         for(i=0;i<100;i++)
  33.          {
  34.            delay(4);                                                     
  35.            SPK=~SPK;
  36.          }                                                                        
  37.         SPK=1;
  38. }

  39. //-------------------------------------  中斷解碼函數   -----------------------------------


  40. void IR_IN() interrupt 0 using 0                           //外部中斷INT0函數
  41. {
  42. unsigned char j,k,n=0;                                               //先定義變量,且n=0
  43.     EX0=0;                                                                               //暫時先關中斷
  44.         delay(20);                                                           //延時0.10ms*20=2ms
  45.         if(IRIN==1)                                                   //如果IRIN出現高電平,是干擾信號
  46.          {                                                                    
  47.            EX0=1;
  48.            return;                                      //返回                 
  49.          }
  50.         while(!IRIN){delay(1);}                                    //避開9ms前導低電平信

  51.    for(j=0;j<4;j++)                                                        //一共有4組數據
  52.      {       
  53.           for(k=0;k<8;k++)                                                //每組數據有8位
  54.          {
  55.    while(IRIN){delay(1);}                                // 避開4.5ms高電平
  56.    while(!IRIN){delay(1);}                                 
  57. // 開始接收數據         
  58.    while(IRIN)                                                 
  59.          {
  60.            delay(1);                                                //延時0.1ms
  61.        n++;                                                                //每過0.1ms時n就加1
  62.            if(n>=30)                                            //如果超過30,放棄
  63.                 {                                                              
  64.                   EX0=1;
  65.                   return;}                                  //返回
  66.                 }
  67.                   
  68.               IRDATA[j]=IRDATA[j]>>1;                   //右移1位
  69.           if(n>=8){IRDATA[j]=IRDATA[j]|0x80;}                                                                   
  70.               n=0;                                            //n清0
  71.             }
  72.      }
  73. //檢查接收的數據和數據反碼是否相反          
  74.     if(IRDATA[2]!=~IRDATA[3])                            //判斷數據碼和數據反碼是不是相反
  75.            {                                                                            //否則就放棄
  76.              EX0=1;
  77.              return;
  78.            }       
  79.         else {}
  80.            fs_d ( );                                   //調用發聲函數
  81.            P1=IRDATA[2];                                   // P1端口輸出  
  82.            EX0=1;                                                               //開中斷
  83. }       

  84. //--------------------------------------------------------------------------------------------------


復制代碼




該系列源碼包含有很多非常經典,代碼風格十分規范,而且注釋詳細的單片機例程,還帶仿真,對于MCU學習特別是初學者是很有幫助的,全部源碼下載(共25個項目):http://www.zg4o1577.cn/bbs/dpj-79328-1.html

本例程下載(含proteus仿真工程文件與源碼):
6-2單片機紅外線遙控繼電器實驗.rar (49.42 KB, 下載次數: 55)



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

使用道具 舉報

沙發
ID:102963 發表于 2018-1-31 18:01 | 只看該作者
發送端沒有代碼,缺一半!
回復

使用道具 舉報

板凳
ID:272625 發表于 2018-2-5 21:21 來自觸屏版 | 只看該作者
仿真跟源程序都不對,大家不要下載。浪費黑幣!
回復

使用道具 舉報

無效樓層,該帖已經被刪除
您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 欧美激情久久久 | 在线播放一区 | 欧美高清一区 | 人人干在线视频 | 日本中文字幕在线视频 | 免费高清av | 国产高清视频一区二区 | 久久久久久久一区二区三区 | 超碰国产在线 | 免费中文字幕日韩欧美 | 日本精品一区二区 | 欧美精品在线播放 | 久久久夜色精品亚洲 | 久草在线 | 免费精品| 在线 丝袜 欧美 日韩 制服 | 国内精品一区二区三区 | 第一av | 久操伊人| 岛国毛片在线观看 | 狠狠干狠狠操 | 亚洲欧美日韩精品久久亚洲区 | 午夜电影福利 | 仙人掌旅馆在线观看 | 日本久久久一区二区三区 | 国产成人一区二区三区精 | 国产精品久久国产精品99 | 欧美性生交大片免费 | 亚洲h在线观看 | 精品欧美一区二区三区精品久久 | 欧美一区二区三区一在线观看 | 黄色片视频网站 | 国产免国产免费 | 国产成人精品一区二区三区在线 | 中文字幕高清在线 | 一区二区三区四区免费在线观看 | 亚洲精品乱码8久久久久久日本 | 日日日日操 | 在线观看视频亚洲 | 国产精品国产亚洲精品看不卡15 | 黄色精品视频网站 |