紅外遙控收發(fā)仿真電路如下,但是程序目前還沒有開始寫 求大神給個思路
0.png (37.49 KB, 下載次數(shù): 149)
下載附件
2016-12-24 01:44 上傳
接收端的單片機程序源碼:
- //-----------------------------------------------------------------
- // 名稱: 紅外遙控器接收程序
- //-----------------------------------------------------------------
- // 說明: 程序運行時,根據(jù)SONY紅外協(xié)議接收數(shù)據(jù)并解碼,然后將12位編碼
- // 以16進制數(shù)顯示LCD上.
- //
- //-----------------------------------------------------------------
- #include <reg51.h>
- #include <string.h>
- #include <intrins.h>
- #include <stdio.h>
- #define INT8U unsigned char
- #define INT16U unsigned int
- INT8U Disp_Buffer[17]; //顯示緩沖
- sbit Read_IR = P3^2; //讀取紅外輸入信號
- //接收到的12位紅外編碼及上次接收的編碼
- volatile INT16U IR_D12 = 0x000, Old_IR_D12 = 0x000;
- volatile INT16U IR_us = 0; //紅外載波時長
- extern delay_ms(INT16U x);
- extern void Initialize_LCD();
- extern void LCD_ShowString(INT8U,INT8U,INT8U *);
- //-----------------------------------------------------------------
- // 主程序
- //-----------------------------------------------------------------
- void main()
- {
- }
- //-----------------------------------------------------------------
- // INT0中斷函數(shù) (通過實測,以70,140為兩個時長的上限)
- //-----------------------------------------------------------------
- void IR_INT_ISR() interrupt 0
- {
- }
復制代碼
發(fā)送端:
- //-----------------------------------------------------------------
- // 名稱: 紅外遙控仿真發(fā)射器
- //-----------------------------------------------------------------
- // 說明: 本例運行時,按鍵鍵值以40KHz紅外線載波發(fā)射出去,所模擬的載波
- // 數(shù)據(jù)格式符合索尼紅外遙控編碼格式(SIRC).
- //
- //-----------------------------------------------------------------
- #define INT8U unsigned char
- #define INT16U unsigned int
- #define INT32U unsigned long
- #include <reg51.h>
- #include <intrins.h>
- #include <stdio.h>
- sbit IRLED = P3^2; //紅外發(fā)射管定義
- sbit BEEP = P3^7; //蜂鳴器定義
- #define KEY_IN P1 //按鍵輸入端口定義
- //8組紅外編碼(每組12位,用3位16進制數(shù)表示)
- INT16U IR_Codes[] = {0x509,0x334,0x556,0x778,0x9AA,0xFCC,0xDEE,0xAAC};
- #define delay12us() { _nop_();_nop_();_nop_();_nop_();_nop_();_nop_();\
- _nop_();_nop_();_nop_();_nop_();_nop_();_nop_();}
- //-----------------------------------------------------------------
- // 延時函數(shù)(us)
- //-----------------------------------------------------------------
- void delay_us(INT8U x) { while (--x);}
- //-----------------------------------------------------------------
- // 延時函數(shù)(ms)
- //-----------------------------------------------------------------
- void delay_ms(INT16U x) { INT8U t; while(x--) for(t = 0; t < 120; t++);}
- //-----------------------------------------------------------------
- // 輸出提示音
- //-----------------------------------------------------------------
- void Sounder()
- {
- INT8U i;for( i = 0; i < 200; i++) { BEEP = ~BEEP; delay_us(240);}
- }
- //-----------------------------------------------------------------
- // 發(fā)送N倍的600us載波(1/40K/2=12us)
- //-----------------------------------------------------------------
- void Emit_IR_Carrier_Nx600us(INT8U N)
- {
- }
- //-----------------------------------------------------------------
- // 發(fā)送12位數(shù)據(jù)
- //-----------------------------------------------------------------
- void Emit_D12(INT16U D12)
- {
- }
- //-----------------------------------------------------------------
- // 主程序
- //-----------------------------------------------------------------
- void main()
- {
- }
復制代碼
0.png (40.21 KB, 下載次數(shù): 115)
下載附件
2016-12-24 01:45 上傳
殘缺程序與電路圖,求大神幫助,給個編寫程序的思路:
15 紅外遙控收發(fā)仿真.rar
(32.12 KB, 下載次數(shù): 457)
2016-12-23 18:22 上傳
點擊文件名下載附件
|