|
*****************************************************************
*文件名稱:main.c
*說 明: 紅外接收程序。
*單片機: STC89C52,晶振頻率:11.0592MHz
*版 本: V1.0
*作 者: lxs
*時 間: 2019-03-07
*****************************************************************/
#include <Infrared.h>
#include <smg.h>
u8 smgbuff[8] ={16,16,16,16,16,16,16,16}; //顯示數據緩沖區
u8 T0RH = 0;
u8 T0RL = 0;
#define ON 0
#define OFF 1
sbit LED1 = P1^0;
extern u8 ircode[4];
extern bit irflag;
void ConfigTimer0(u16 ms);
void main()
{
EA=1;
InitInfrared();
ConfigTimer0(1);
while (1)
{
if (irflag)
{
if(ircode[2]==0X0C)
{
LED1=0;
}
else if(ircode[2]==0X18)
{
LED1=1;
}
}
}
}
/******************************************
*函數名稱:ConfigTimer0(u16 ms)
*函數功能:配置并啟動T0
*入口參數:ms-T0定時時間
*出口參數:無
*******************************************/
void ConfigTimer0(u16 ms)
{
u32 tmp; //臨時變量
tmp = 11059200 / 12;
tmp = (tmp * ms) / 1000;
tmp = 65536 - tmp;
tmp = tmp + 13;
T0RH = (u8)(tmp>>8);
T0RL = (u8)tmp;
TMOD &= 0xF0;
TMOD |= 0x01;
TH0 = T0RH;
TL0 = T0RL;
ET0 = 1;
TR0 = 1;
}
/******************************************
*函數名稱:ConfigTimer0(u16 ms)
*函數功能:T0中斷服務函數,執行數碼管掃描顯示
*入口參數:ms-T0定時時間
*出口參數:無
*******************************************/
void Timer0_ISR() interrupt 1
{
TH0 = T0RH; //重新加載重載值
TL0 = T0RL;
SmgScan(smgbuff,9); //數碼管掃描顯示
}
|
-
-
紅外遙控.rar
2019-5-22 08:42 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
39.88 KB, 下載次數: 4, 下載積分: 黑幣 -5
|