📄 timer.c
字号:
#include "config.h"
sbit IR_Line = P3^7;
sbit KEY = P1^1;
bit REC_IR_STA=0;
unsigned int IR_cnt=0;
uchar Rev_IR_DAT[60];
uchar Rev_Byte= 0;
uchar Rev_bit = 0;
bit Rev_OK = 0;
bit Rcv_Flag=0;
uchar Rcv_cnt_Flag=0;
uchar Rcv_cnt=0;
uchar IR_Key=0;
void init_timer0(void) //初始化
{
TMOD &= 0XF0;
TMOD |= 0X1;
TL0 = 0x80;
TH0 = 0xFF;
TR0 = 1;
PT0 = 1;
ET0 = 1;
IR_Line=1;
EA = 1;
}
void timer_isr() interrupt 1 //中断函数
{
DISABLE;
if(IR_Line==REC_IR_STA)
{
IR_cnt++;
if(IR_cnt>200)
IR_cnt=200;
}
else
{
REC_IR_STA=IR_Line;
// if((IR_cnt>2)&&(IR_cnt<0x0d))
// {
Rev_IR_DAT[Rev_bit] = IR_cnt;
Rev_bit++;
/*
Rev_IR_DAT[Rev_Byte]<<=1;
if(IR_cnt>7)
Rev_IR_DAT[Rev_Byte]|=1;
if(Rev_bit==8)
{
Rev_bit=0;
Rev_Byte++;
}
if((Rev_Byte==2)&&(Rev_bit==5))
{
Rcv_Flag=1;
Rcv_cnt_Flag=0;
}
*/
// }
// else
// {
// Rev_Byte =0;
// Rev_bit =0;
// }
/*
if(Rcv_Flag)
{
Rcv_cnt_Flag++;
if(Rcv_cnt_Flag==3)
{
Rcv_cnt_Flag=0;
Rcv_Flag=0;
Rcv_cnt++;
if(Rcv_cnt==2)
{
Rcv_cnt=0;
Rev_OK=1;
Rev_Byte =0;
Rev_bit =0;
if((Rev_IR_DAT[1]==0x00)&&(Rev_IR_DAT[2]==0x80))
IR_Key=1;
else if((Rev_IR_DAT[1]==0x00)&&(Rev_IR_DAT[2]==0x83))
IR_Key=2;
else if((Rev_IR_DAT[1]==0x00)&&(Rev_IR_DAT[2]==0x02))
IR_Key=3;
}
}
}
*/
// {
// Rev_IR_DAT[Rev_Byte]=0xFF;
// Rev_Byte++;
if(Rev_bit>59)
{
Rev_OK=1;
Rev_bit=0;
}
// }
IR_cnt=0;
}
TL0 = 0x80;
TH0 = 0xFF;
ENABLE;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -