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

標題: 51單片機使用紅外控制家里的燈 源程序 [打印本頁]

作者: jkla    時間: 2020-4-18 11:53
標題: 51單片機使用紅外控制家里的燈 源程序
通過紅外通信,使用遙控器控制家里的燈開關,使用繼電器作為開關,高電平觸發。使用繼電接220v一定要看繼電器的耐壓值,需要大于220v才可以,小于220v的不能用作一般家電控制。程序簡單,適合初學者學習,接220v需謹慎。

單片機源程序如下:

  1. #include "H_W.h"
  2. //#define GPIO_LED P2
  3. #define GPIO_SMG P0
  4. #define uchar unsigned char
  5. #define uint  unsigned int
  6. uchar code smgduan[17] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,
  7.                                                 0x7c,0x39,0x5e,0x79,0x71,0x76};
  8. //uchar remote_c_data[4];
  9. uchar display[8];
  10. //uchar Time = 0;
  11. uchar Signal_Code;

  12. sbit relay = P2^0;

  13. sbit LSA = P1^0;
  14. sbit LSB = P1^1;
  15. sbit LSC = P1^2;

  16. void Delay(uint i)
  17. {
  18.          while(i--);
  19. }

  20. /* 定義八個數碼管顯示器的位選函數 ,掃描數碼管 */
  21. void Digdisplay()
  22. {
  23.         uchar i;
  24.         for(i = 0; i < 3; i++)
  25.         {
  26.                  switch(i)
  27.                 {
  28.                
  29.                          case (0):
  30.                                         LSA = 0; LSB = 0; LSC = 0; break;           // 000
  31.                         case (1):                                                                          
  32.                                         LSA = 1; LSB = 0; LSC = 0; break;           // 001
  33.                         case (2):                                                                          
  34.                                         LSA = 0; LSB = 1; LSC = 0; break;           // 010
  35.                 }
  36.                 GPIO_SMG = display[i];
  37.                 Delay(100);                     //改變參數的值能實現滾動顯示。最大為65535,否則會溢出。
  38.                 GPIO_SMG = 0x00;           //清空數碼管,以防止出現重影。
  39.         }
  40. }



  41. void main(void)
  42. {
  43.         Remote_Init();
  44. //        GPIO_LED = 0xff;
  45.         relay = 0;
  46.          while(1)
  47.         {
  48. //                Time = 0;  //每次使用前必須初始化為零
  49.                  display[0] = smgduan[remote_c_data[2] / 16];
  50.                 display[1] = smgduan[remote_c_data[2] % 16];
  51.                 display[2] = smgduan[16];
  52.                 Digdisplay();
  53.                 Signal_Code = remote_c_data[2];
  54.                 if(Signal_Code == 0x45)
  55.                 {
  56. //                           GPIO_LED = 0x00;
  57.                         relay = 1;                        //開燈
  58.                 }
  59.                 else if(Signal_Code == 0x46)
  60.                 {
  61. //                        GPIO_LED = 0xff;
  62.                         relay = 0;                        //關燈
  63.                 }
  64.         }
  65. }

  66. void ReadIr() interrupt 0
  67. {
  68.         remote_Control();        
  69. }
復制代碼

全部程序51hei下載地址:
紅外通信.rar (29.15 KB, 下載次數: 11)

作者: 51hei團團    時間: 2020-4-18 14:40
很實用 能分享或者介紹下原理圖嗎?
作者: jkla    時間: 2020-4-18 15:14
51hei團團 發表于 2020-4-18 14:40
很實用 能分享或者介紹下原理圖嗎?

原理圖沒有的,重點在紅外通信上面,首先測試遙控器各個鍵所對應的鍵值,通過數碼管或者串口顯示,記下你想使用的鍵及對應的鍵值,然后在主函數里面判斷接收到遙控器的鍵值,從而執行相應的功能。我寫的這個是判斷接收到遙控器的鍵值與0x45比較,一樣繼電器吸合,開燈;與0x46比較,一樣繼電器斷開,關燈;你可以接其他的。




歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 欧美日韩视频在线播放 | 青青艹在线视频 | 人人99 | 精品亚洲一区二区三区 | 日韩一区二区三区av | 久久黄网 | 99亚洲精品 | 日韩精品一区中文字幕 | 精品日韩一区 | 超碰操 | 国产精品久久久久无码av | 亚洲人成网站777色婷婷 | 麻豆视频在线免费观看 | av毛片| 久久久久久国产精品 | 午夜影视 | 欧美九九九 | 日韩欧美一区二区在线播放 | 亚洲国产中文字幕 | 久久成人国产精品 | 成人在线一级片 | 亚洲国产一区在线 | 日韩在线视频观看 | 国产精品久久久久久久久 | 午夜手机在线 | 国产精品一级在线观看 | 欧美成视频 | 精品www | 欧美激情欧美激情在线五月 | 欧美日本亚洲 | 久久精品亚洲一区 | 黄色毛片在线看 | 东京av男人的天堂 | 亚洲一区二区不卡在线观看 | 久久综合久| 中文字幕不卡在线观看 | 日本在线一区二区三区 | 欧美成人免费在线视频 | 免费久久99精品国产婷婷六月 | 色婷婷国产精品综合在线观看 | 一区二区免费在线观看 |