📄 int1.c
字号:
/**********************************************************************
*File Name : int.c
*Creat Time : 2002/02/11
*Program Author : mqli
*File Discreption :
************************************************************************/
#include "common.h"
#include "i2c.h"
#include "key.h"
#include "main.h"
#include "Var.h"
void EX0_int (void) interrupt 0 /* External Interrupt 0 */
{
}
void EX1_int (void) interrupt 2 /* External Interrupt 1 */
{
}
void T0_int (void) interrupt 1 /* Timer 0 Overflow */
{
TF0=0;
TR0=0;
#if ( SYSTEM_CRYSTAL ==USE_CRYSTAL_40M)
TH0=0x00; /*reload value 19.6ms for X=40M*/
TL0=0x00; /*reload value 19.6ms for X=40M*/
#elif(SYSTEM_CRYSTAL ==USE_CRYSTAL_27M)
//TH0=0xDC; /*reload value 4ms for X=27M*/
//TL0=0xCF; /*reload value 4ms for X=27M*/
TH0=0x50; /*reload value 20ms for X=27M*/
TL0=0x37; /*reload value 20ms for X=27M*/
#elif (USE_CRYSTAL_27MX2)
TH0=0x50; /*reload value 20ms for X=27M*/
TL0=0x37; /*reload value 20ms for X=27M*/
#elif( SYSTEM_CRYSTAL== USE_CRYSTAL_24M598_X2)
TH0=0xCC; /*reload value 3ms for 25.598*2**/
TL0=0xD5;
#elif( SYSTEM_CRYSTAL== USE_CRYSTAL_40M039_X2)
TH0=0x97; /*reload value 4ms for 40.039*2**/
TL0=0xBC;
#elif( SYSTEM_CRYSTAL== USE_CRYSTAL_12M_X2)
TH0=0xE0; /*reload value 4ms for 12M*2**/
TL0=0xB8;
#else
TH0=0xff; /*reload value 25ms for X=22.118M*/
TL0=0x4b; /*reload value 25ms for X=22.118M*/
#endif
Timer_for_Refresh_LCD_Display++;
if(System_Flag_Being_Scrolling||System_Flag_Temp_DisplaY)
{
Timer_for_Sytem_Display++;
}
TR0=1;
}
void T1_int (void) interrupt 3 /* Timer 1 Overflow */
{
}
DE_DATA U8 RS232_Receive_Buffer;
void SCON_int (void) interrupt 4 /* Serial Port */
{
//mast the transfer interrupt
if (TI)
{
TI=0;
return;
}
//get four bytes of a frame
RS232_Receive_Buffer=SBUF;
RI=0;
}
#if (IR_SYSTEM==NEC_IR_SYSTEM)
#if( SYSTEM_CRYSTAL ==USE_CRYSTAL_40M)
#define NEC_IR_KEY_VALID_INTERVAL 5 // >(108-9-2.75)/19.6 //crystal=40M
#define NEC_IR_0_BIT_WIDTH 3750 /* //1.125ms/(12/fs*1000)*/
#define NEC_IR_1_BIT_WIDTH 7500 /* //2.25ms/(12/fs*1000)*/
#define NEC_IR_START_BIT_WIDTH 45000 /* //13.5ms/(12/fs*1000)*/
#define NEC_IR_TIME_BIAS 1000 /* //0.3ms/(12/fs*1000)*/
#define NEC_IR_REPEAT_BIT_WIDTH 37500 /*//11.25ms/(12/fs*1000)*/
#define NEC_IR_0_BIT_WIDTH_MIN 2750 //3750-1000
#define NEC_IR_1_BIT_WIDTH_MIN 6500 //7500-1000
#define NEC_IR_START_BIT_WIDTH_MIN 35000 //4500-1000
#define NEC_IR_REPEAT_BIT_WIDTH_MIN 36948 //37500-552
#define NEC_IR_0_BIT_WIDTH_MAX 4750 //3750+1000
#define NEC_IR_1_BIT_WIDTH_MAX 8500 //7500+1000
#define NEC_IR_START_BIT_WIDTH_MAX 46000 //45000+000
#define NEC_IR_REPEAT_BIT_WIDTH_MAX 38052 //37500+552
#elif ( SYSTEM_CRYSTAL ==USE_CRYSTAL_24M598_X2)
//the timer2 max overflow T=15.98ms
#define NEC_IR_KEY_VALID_INTERVAL 7 // >(108-9-2.75)/15.98 //crystal=24.598 X2M=49.196072
#define NEC_IR_0_BIT_WIDTH 4612 /* 1.125ms/(12/fs*1000)*/
#define NEC_IR_1_BIT_WIDTH 9224 /* 2.25ms/(12/fs*1000)*/
#define NEC_IR_START_BIT_WIDTH 55345 /* 13.5ms/(12/fs*1000)*/
#define NEC_IR_TIME_BIAS 1229 /* 0.3ms/(12/fs*1000)*/
#define NEC_IR_REPEAT_BIT_WIDTH 46121 /* 11.25ms/(12/fs*1000)*/
#define NEC_IR_0_BIT_WIDTH_MIN 3612 //4612-1000
#define NEC_IR_1_BIT_WIDTH_MIN 8224 //9224-1000
#define NEC_IR_START_BIT_WIDTH_MIN 54345 //55345-1000
#define NEC_IR_REPEAT_BIT_WIDTH_MIN 45121 //46121-1000
#define NEC_IR_0_BIT_WIDTH_MAX 5712 //4612+1000
#define NEC_IR_1_BIT_WIDTH_MAX 10224 //9224+1000
#define NEC_IR_START_BIT_WIDTH_MAX 56345 //55345+1000
#define NEC_IR_REPEAT_BIT_WIDTH_MAX 47121 //46121+1000
#elif ( SYSTEM_CRYSTAL ==USE_CRYSTAL_40M039_X2)
//the timer2 max overflow T=15.98ms
#define NEC_IR_KEY_VALID_INTERVAL 12 // >(108-9-2.75)/ //crystal=80.078096
#define NEC_IR_0_BIT_WIDTH 7507 /* 1. 125ms/(12/fs)*1000*/
#define NEC_IR_1_BIT_WIDTH 15014 /*2.25ms/(12/fs)*1000*/
//#define NEC_IR_START_BIT_WIDTH 90085 /*13.5ms/(12/fs)*1000*/
//for the X=80.07, the MAX time of TIMER2 is 9.8ms, so the 11.25 mean that a overflow will take place ,then remain 11.25-9.8=1.45ms
#define NEC_IR_REPEAT_BIT_WIDTH 9675 /*(11.25-9.8)ms/(12/fs*1000)*/
//#define NEC_IR_TIME_BIAS 2001 /*0.2ms/(12/fs)*1000)*/
#define NEC_IR_0_BIT_WIDTH_MIN 6007
#define NEC_IR_1_BIT_WIDTH_MIN 13514
//#define NEC_IR_START_BIT_WIDTH_MIN 5000
#define NEC_IR_REPEAT_BIT_WIDTH_MIN 9001
#define NEC_IR_0_BIT_WIDTH_MAX 9000
#define NEC_IR_1_BIT_WIDTH_MAX 16514
//#define NEC_IR_START_BIT_WIDTH_MAX 5800
#define NEC_IR_REPEAT_BIT_WIDTH_MAX 11613
#elif(SYSTEM_CRYSTAL ==USE_CRYSTAL_27M)
#define NEC_IR_KEY_VALID_INTERVAL 4 // >(108-9-2.75)/ //crystal=27
#define NEC_IR_0_BIT_WIDTH 2531 /* 1.125ms/(12/fs)*1000*/
#define NEC_IR_1_BIT_WIDTH 5062 /*2.25ms/(12/fs)*1000*/
//for the X=27, the MAX time of TIMER2 is 28.9ms, so it mean that only one overflow will take place between key code part and the repeat part
//then there is 11.25ms bit
#define NEC_IR_REPEAT_BIT_WIDTH 25312 /*11.25ms/(12/fs)*1000*/
//err=0.4ms =900(X=27M)
#define NEC_IR_0_BIT_WIDTH_MIN 1900 // 1600 // 2025
#define NEC_IR_1_BIT_WIDTH_MIN 4100 //4557
#define NEC_IR_REPEAT_BIT_WIDTH_MIN 21000
#define NEC_IR_0_BIT_WIDTH_MAX 3400// 3034
#define NEC_IR_1_BIT_WIDTH_MAX 5900// 5568
#define NEC_IR_REPEAT_BIT_WIDTH_MAX 29000
#else
#define NEC_IR_KEY_VALID_INTERVAL 3 // >(108-9-2.75)/35.7 //crystal=22118M
#define NEC_IR_0_BIT_WIDTH 2073 /* //1.125ms/(12/fs*1000)*/
#define NEC_IR_1_BIT_WIDTH 4147 /* //2.25ms/(12/fs*1000)*/
#define NEC_IR_START_BIT_WIDTH 24882 /*13.5ms/(12/fs*1000)*/
#define NEC_IR_TIME_BIAS 552 /*0.3ms/(12/fs*1000)*/
#define NEC_IR_REPEAT_BIT_WIDTH 20736 /*11.25ms/(12/fs*1000)*/
#define NEC_IR_0_BIT_WIDTH_MIN 1521 //2073-552
#define NEC_IR_1_BIT_WIDTH_MIN 3595 //4147-552
#define NEC_IR_START_BIT_WIDTH_MIN 24330 //24882-552
#define NEC_IR_REPEAT_BIT_WIDTH_MIN 20184 //20736-552
#define NEC_IR_0_BIT_WIDTH_MAX 2625 //2073+552
#define NEC_IR_1_BIT_WIDTH_MAX 4699 //4147+552
#define NEC_IR_START_BIT_WIDTH_MAX 25434 //24882+552
#define NEC_IR_REPEAT_BIT_WIDTH_MAX 21288 //20736+552
#endif
CODE U8 IR_Key_Repeat_Enable_Table[]=
{
0,//KEY_IR_0= 0x00,
0,//KEY_IR_1 = 0x01,
0,//KEY_IR_2 = 0x02,
0,//KEY_IR_3 = 0x03,
0,//KEY_IR_4 = 0x04,
0,//KEY_IR_5 = 0x05,
0,//KEY_IR_6 = 0x06,
0,//KEY_IR_7= 0x07,
0,//KEY_IR_8= 0x08,
0,//KEY_IR_9= 0x09,
0,//KEY_IR_BAND= 0x0A,
0,//KEY_IR_AUTO_ALL= 0x0B,
0,//KEY_IR_VOL_P= 0x0C,
0,//KEY_IR_VOL_M= 0x0D,
0,//KEY_IR_TUNER_AREA= 0x0E,
0,//KEY_IR_STOP= 0x0F,
0,//KEY_IR_PROGRAM= 0x10,
0,//KEY_IR_UP= 0x11,
0,//KEY_IR_PREVIOUS = 0x12,
0,//KEY_IR_NEXT= 0x13,
0,//KEY_IR_DOWN= 0x14,
0,//KEY_IR_TRACK_DOWN= 0x15,
0,//KEY_IR_TRACK_UP= 0x16,
0,//KEY_IR_SEEK_DOWN= 0x17,
0,//KEY_IR_SEEK_UP= 0x18,
1,//KEY_IR_RDS_DISPLAY= 0x19,
1,//KEY_IR_RDS_PTY= 0x1A,
0,//KEY_IR_SLOW= 0x1B,
0,//KEY_IR_MUTE= 0x1C,
0,//KEY_IR_STEREO= 0x1D,
0,//KEY_IR_REPEAT= 0x1E,
0,//KEY_IR_P_I= 0x1F,
1,//KEY_IR_VOL_UP= 0x20,
1,//KEY_IR_VOL_DOWN= 0x21,
0,//KEY_IR_PREVIOUS = 0x22,
0,//KEY_IR_NEXT= 0x23,
0,//KEY_IR_DOWN= 0x24,
0,//KEY_IR_TRACK_DOWN= 0x25,
0,//KEY_IR_TRACK_UP= 0x26,
0,//KEY_IR_SEEK_DOWN= 0x27,
0,//KEY_IR_SEEK_UP= 0x28,
0,//KEY_IR_RDS_DISPLAY= 0x29,
0,//KEY_IR_RDS_PTY= 0x2A,
0,//KEY_IR_SLOW= 0x2B,
0,//KEY_IR_MUTE= 0x2C,
0,//KEY_IR_STEREO= 0x2D,
0,//KEY_IR_REPEAT= 0x2E,
0,//KEY_IR_P_I= 0x2F,
};
CODE U8 IR_Key_Assign_Table[]={
KEY_IR_,// 0x00,
KEY_IR_ ,// 0x01,
KEY_IR_,// 0x02,
KEY_IR_ ,// 0x03,
KEY_IR_ ,// 0x04,
KEY_IR_ ,// 0x05,
KEY_IR_ ,// 0x06,
KEY_IR_,// 0x07,
KEY_IR_,// 0x08,
KEY_IR_,// 0x09,
KEY_IR_,// 0x0A,
KEY_IR_,// 0x0B,
KEY_IR_,// 0x0C,
KEY_IR_,// 0x0D,
KEY_IR_NEXT,// 0x0E,
KEY_IR_STOP,// 0x0F,
KEY_IR_OK,// 0x10,
KEY_IR_UP,// 0x11,
KEY_IR_FB,// 0x12,
KEY_IR_FF,// 0x13,
KEY_IR_DOWN,// 0x14,
KEY_IR_,// 0x15,
KEY_IR_,// 0x16,
KEY_IR_PREVIOUS,// 0x17,
KEY_IR_PLAY,// 0x18,
KEY_IR_VOLOUME_DOWN,// 0x19,
KEY_IR_VOLOUME_UP,// 0x1A,
KEY_IR_,// 0x1B,
KEY_IR_,// 0x1C,
KEY_IR_,// 0x1D,
KEY_IR_,// 0x1E,
KEY_IR_MENU,// 0x1F,
KEY_IR_,// 0x20,
KEY_IR_,// 0x21,
KEY_IR_,// 0x22,
KEY_IR_,// 0x23,
KEY_IR_,// 0x24,
KEY_IR_,// 0x25,
KEY_IR_,// 0x26,
KEY_IR_,// 0x27,
KEY_IR_,// 0x28,
KEY_IR_,// 0x29,
KEY_IR_,// 0x2A,
KEY_IR_,// 0x2B,
KEY_IR_,// 0x2C,
KEY_IR_,// 0x2D,
KEY_IR_MUTE,// 0x2E,
KEY_IR_,// 0x2F,
KEY_IR_,// 0x33,
KEY_IR_,// 0x31,
KEY_IR_,// 0x32,
KEY_IR_,// 0x33,
KEY_IR_,// 0x34,
KEY_IR_,// 0x35,
KEY_IR_,// 0x36,
KEY_IR_,// 0x37,
KEY_IR_,// 0x38,
KEY_IR_,// 0x39,
KEY_IR_,// 0x3A,
KEY_IR_,// 0x3B,
KEY_IR_,// 0x3C,
KEY_IR_,// 0x3D,
KEY_IR_,// 0x3E,
KEY_IR_,// 0x3F,
KEY_IR_,// 0x40,
KEY_IR_,// 0x41,
KEY_IR_,// 0x42,
KEY_IR_,// 0x43,
KEY_IR_,// 0x44,
KEY_IR_,// 0x45,
KEY_IR_,// 0x46,
KEY_IR_,// 0x47,
KEY_IR_,// 0x48,
KEY_IR_,// 0x49,
KEY_IR_,// 0x4A,
KEY_IR_,// 0x4B,
KEY_IR_,// 0x4C,
KEY_IR_,// 0x4D,
KEY_IR_,// 0x4E,
KEY_IR_,// 0x4F,
KEY_IR_,// 0x55,
KEY_IR_,// 0x51,
KEY_IR_,// 0x52,
KEY_IR_,// 0x53,
KEY_IR_,// 0x54,
KEY_IR_,// 0x55,
KEY_IR_,// 0x56,
KEY_IR_,// 0x57,
KEY_IR_,// 0x58,
KEY_IR_,// 0x59,
KEY_IR_,// 0x5A,
KEY_IR_,// 0x5B,
KEY_IR_,// 0x5C,
KEY_IR_,// 0x5D,
KEY_IR_,// 0x5E,
KEY_IR_,// 0x5F,
KEY_IR_,// 6x60,
KEY_IR_ ,// 6x61,
KEY_IR_ ,// 6x62,
KEY_IR_ ,// 6x63,
KEY_IR_ ,// 6x64,
KEY_IR_ ,// 6x65,
KEY_IR_ ,// 6x66,
KEY_IR_,// 6x67,
KEY_IR_,// 6x68,
KEY_IR_,// 6x69,
KEY_IR_,// 6x6A,
KEY_IR_,// 6x6B,
KEY_IR_,// 6x6C,
KEY_IR_,// 6x6D,
KEY_IR_,// 6x6E,
KEY_IR_,// 6x6F,
KEY_IR_,// 0x70,
KEY_IR_,// 0x71,
KEY_IR_ ,// 0x72,
KEY_IR_,// 0x73,
KEY_IR_,// 0x74,
KEY_IR_,// 0x75,
KEY_IR_,// 0x76,
KEY_IR_,// 0x77,
KEY_IR_,// 0x78,
KEY_IR_,// 0x79,
KEY_IR_,// 0x7A,
KEY_IR_,// 0x7B,
KEY_IR_,// 0x7C,
KEY_IR_,// 0x7D,
KEY_IR_,// 0x7E,
KEY_IR_,// 0x7F,
KEY_IR_,// 0x80,
KEY_IR_,// 0x81,
KEY_IR_,// 0x82,
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -