找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

帖子
查看: 4113|回復: 1
收起左側

STM32F103的紅外遙控的源程序

[復制鏈接]
ID:205526 發(fā)表于 2019-3-31 20:33 | 顯示全部樓層 |閱讀模式
本次的源程序是使用C語言編寫,屬于學習STM32單片機的實驗,可以進行二次開發(fā)!接上繼電器可以遙控其他想控制的設備!

單片機源程序如下:
  1. /*-------------------------------------------------------------------------------
  2. 文件名稱:main.c
  3. 文件描述:TC9012 系列紅外遙控器解碼實驗
  4. 硬件平臺:尼莫M3S開發(fā)板+超薄紅外遙控器

  5. 備    注:通過簡單修改可以移植到其他開發(fā)板,部分資料來源于網(wǎng)絡。
  6. ---------------------------------------------------------------------------------*/
  7. #include <stdio.h>
  8. #include "stm32f10x.h"
  9. #include "led.h"
  10. #include "Delay.h"
  11. #include "key.h"
  12. #include "timer.h"
  13. #include "beep.h"
  14. #include "usart.h"
  15. #include "adc.h"
  16. #include "lcd.h"
  17. #include "24cxx.h"
  18. #include "flash.h"
  19. #include "can.h"
  20. #include "remote.h"


  21. int main(void)
  22. {               
  23.         u8 key;
  24.         u8 t=0;        
  25.         u8 *str=0;
  26.         
  27.         LED_Init();//LED初始化
  28.   KEY_Init();//按鍵初始化
  29.   SysTick_Init();//延時初始化
  30.   USART1_Int(9600);
  31.         LCD_Init();
  32.   printf("\n\r(德飛萊)尼莫M3S開發(fā)板TFT LCD CAN mode 測試程序\r");                  

  33.          Remote_Init();                        //紅外接收初始化                        

  34.          POINT_COLOR=RED;//設置字體為紅色
  35.         LCD_ShowString(60,50,200,16,16,"M3S STM32");        
  36.         LCD_ShowString(60,70,200,16,16,"REMOTE test");        
  37.         LCD_ShowString(60,90,200,16,16,"00000000");
  38.         LCD_ShowString(60,110,200,16,16,"TC9012 IC");

  39.   LCD_ShowString(60,130,200,16,16,"KEYVAL:");        
  40.   LCD_ShowString(60,150,200,16,16,"KEYCNT:");        
  41.   LCD_ShowString(60,170,200,16,16,"SYMBOL:");         
  42.          while(1)
  43.         {
  44.         key=Remote_Scan();        
  45.                 if(key)
  46.                 {         
  47.                         LCD_ShowNum(116,130,key,3,16);                //顯示鍵值
  48.                         LCD_ShowNum(116,150,RmtCnt,3,16);        //顯示按鍵次數(shù)                  
  49.                         switch(key)
  50.                         {
  51.                                 case 0:str="ERROR";break;                           
  52.                                 case 162:str="CH-";break;            
  53.                                 case 98:str="CH";break;            
  54.                                 case 2:str="NEXT";break;                 
  55.                                 case 226:str="CH+";break;                  
  56.                                 case 194:str="PLAY";break;           
  57.                                 case 34:str="PREV";break;                  
  58.                                 case 224:str="VOL-";break;                  
  59.                                 case 168:str="VOL+";break;                  
  60.                                 case 144:str="EQ";break;                    
  61.                                 case 104:str="0";break;                  
  62.                                 case 152:str="FL-";break;           
  63.                                 case 176:str="FL+";break;            
  64.                                 case 48:str="1";break;                    
  65.                                 case 24:str="2";break;                    
  66.                                 case 122:str="3";break;                  
  67.                                 case 16:str="4";break;                                                                  
  68.                                 case 56:str="5";break;         
  69.                                 case 90:str="6";break;
  70.                                 case 66:str="7";break;
  71.                                 case 74:str="8";break;
  72.                                 case 82:str="9";break;                 
  73.                         }
  74.                         LCD_Fill(116,170,116+8*8,170+16,WHITE);        //清楚之前的顯示
  75.                         LCD_ShowString(116,170,200,16,16,str);        //顯示SYMBOL
  76.                 }
  77.                 else Delay_ms(10);         
  78.                 t++;
  79.                 if(t==20)
  80.                 {
  81.                         t=0;
  82.                         LED2_REV;
  83.                 }
  84.         }
  85. }
復制代碼

所有資料51hei提供下載:
STM32F103的紅外遙控的源程序.7z (237.13 KB, 下載次數(shù): 129)




回復

使用道具 舉報

ID:331198 發(fā)表于 2020-6-16 08:49 | 顯示全部樓層
謝謝分享,試試
回復

使用道具 舉報

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

本版積分規(guī)則

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

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表