intspassing.c
来自「T108 LCD屏的DEMO源代码!需要的就下吧」· C语言 代码 · 共 66 行
C
66 行
#include <reg51.h>
#include "Common.h"
#include "Global.h"
#include "ICControl.h"
#include "Initial.h"
#include "TWICreg.h"
#include "Keypad.h"
#include "VideoDetect.h"
code uCHAR aKeyTable[16]={REMOTE_KEY_POWER,REMOTE_KEY_SOURCE,0,REMOTE_KEY_MENU,0,REMOTE_KEY_CH_INC,0,REMOTE_KEY_CH_DEC,
REMOTE_KEY_LEFT,0,REMOTE_KEY_RIGHT,0,0,0,0,0};
void INT0Passing(void) interrupt 0
{
uCHAR INTRead1=0;
uCHAR INTRead2=0;
EX0 = 0; // Disable Externel Interrup 0
INTRead1=IC_ReadByte(TWIC_P0,INTSTS_REG);
INTRead2=IC_ReadByte(TWIC_P0,INSTS2_REG);
IC_WritByte(TWIC_P0,INTSTS_REG,0xFF); //Clear interrupt
IC_WritByte(TWIC_P0,INSTS2_REG,0x01); //Clear interrupt
//Detect Ir
if(INTRead1&0x80) //INTSTS
{
m_cCurreKey=IC_ReadByte(TWIC_P1,IR_STREAM4);
}
//Detect Keypad
if(INTRead2&0x01) //INTSTS2
{
INTRead2=IC_ReadByte(TWIC_P0,GPIO_OUT_CTRL_REG)&0x0F;
m_cCurreKey=aKeyTable[INTRead2];
}
EX0 = 1; // Enable Externel Interrup 0
}
void PoolingINT(void)
{
uCHAR INTRead1=0;
uCHAR INTRead2=0;
INTRead1=IC_ReadByte(TWIC_P0,INTSTS_REG);
INTRead2=IC_ReadByte(TWIC_P0,INSTS2_REG);
IC_WritByte(TWIC_P0,INTSTS_REG,0xFF); //Clear interrupt
IC_WritByte(TWIC_P0,INSTS2_REG,0x01); //Clear interrupt
//Detect Ir
if(INTRead1&0x80) //INTSTS
{
// IC_WritByte(TWIC_P0,INTSTS_REG,0xFF); //Clear interrupt
//while(IC_ReadByte(TWIC_P0,INTSTS_REG)&0x80);
if((IC_ReadByte(TWIC_P1,IR_STREAM_REG)&0x01)!=0)
m_cCurreKey=0;
else
m_cCurreKey=IC_ReadByte(TWIC_P1,IR_STREAM4);
}
//Detect Keypad
if(INTRead2&0x01) //INTSTS2
{
INTRead2=IC_ReadByte(TWIC_P0,GPIO_OUT_CTRL_REG)&0x0F;
m_cCurreKey=aKeyTable[INTRead2];
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?