⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mainc.c

📁 lcm显示代码.用于1602的液晶原代码.测试已经通过.
💻 C
字号:

#include		<REG51.H>
#include		<ABSACC.H>
#include		"Device.h"

#define		HIGH_TH	21					/*最高PWM级数门限*/
#define		LOW_TH 	HIGH_TH+25			/*最低PWM级数门限*/
#define		INIT_TH 	HIGH_TH+12			/*复位后初始PWM级数*/
#define		INIT_TS		20					/*初始化时隙计数值*/
#define		TS_MAX		INIT_TS+40			/*10ms后时隙计数值*/

void		Main_Initlization( void );			/*	主初始化程序*/
void		Interrupt_INT0( void );				/*	遥控解码*/
void		Interrupt_INT1( void );				/*	20ms定时脉冲中断*/
void		Interrupt_T0( void );				/*	遥控解码*/
void		Interrupt_T1( void );				/*	0.25ms定时器*/

void		LED_Flash_Control( void );		/*	LED闪烁控制*/
void		KEY_TimeOut( void );				/*	遥控按键超时判断*/
void		KEY_Process( void );				/*	遥控按键解码*/

unsigned char		RUN_Counter;				/*	运行LED闪烁控制*/
unsigned char		KEY_TimeOut_Counter;		/*	遥控器按键释放超时计数器*/
bit				LED_MODE;					/*	LED闪灯模式*/
bit				NEW_KEY_Flag;				/*	新按下键盘标志*/
unsigned long		RemoteCode;				/*	遥控码*/
unsigned char		RemoteCounter;				/*	遥控码解码位计数*/
unsigned long		Decode;						/*	解码输出*/
bit				Decode_Flag;				/*	解码输出标志*/
bit				PowerFlag;					/*	总电源开关状态*/
unsigned char		Control[4];					/*	控制字*/
unsigned char		TimeSlot;					/*	PWM定时器*/
unsigned char		P1_Mirror;					/*	PWM和LED输出镜像寄存器*/


/********************************************************************/
/*							主程序								*/
/********************************************************************/
void		main( void )
{
	Main_Initlization( );						/*主初始化程序*/

	while( 1 )
	{
		LED_Flash_Control( );				/*	LED闪烁控制*/
		KEY_TimeOut( );						/*	遥控按键超时判断*/
		KEY_Process( );						/*	遥控按键解码*/
	}
}

/********************************************************************/
/*		遥控按键解码处理程序								*/
/********************************************************************/
void		KEY_Process( void )				/*	遥控按键解码*/
{
	if( Decode_Flag )							/*	按键解码成功*/
	{
		Decode_Flag = 0;
		switch( Decode )
		{
			case	0x00000FFE:				/*	Power 键*/
								if( NEW_KEY_Flag )
									PowerFlag = ~PowerFlag;
								break;
			/*	左侧第一路*/					
			case	0x0000C7E7:				/*	亮度增加,左侧第1路*/
								if( PowerFlag )
									if( Control[0] > HIGH_TH )
										Control[0] --;
								break;
			case	0x0001E7C3:				/*	亮度降低,左侧第1路*/
								if( PowerFlag )
									if( Control[0] < LOW_TH )
										Control[0] ++;
								break;
			/*	左侧第二路*/					
			case	0x000067F3:				/*	亮度增加,左侧第2路*/
								if( PowerFlag )
									if( Control[1] > HIGH_TH )
										Control[1] --;
								break;
			case	0x0000E7E3:				/*	亮度降低,左侧第2路*/
								if( PowerFlag )
									if( Control[1] < LOW_TH )
										Control[1] ++;
								break;
			/*	左侧第三路*/					
			case	0x000107DF:				/*	亮度增加,左侧第3路*/
								if( PowerFlag )
									if( Control[2] > HIGH_TH )
										Control[2] --;
								break;
			case	0x000167D3:				/*	亮度降低,左侧第3路*/
								if( PowerFlag )
									if( Control[2] < LOW_TH )
										Control[2] ++;
								break;
			/*	左侧第四路*/
			case	0x00008FEE:				/*	亮度增加,左侧第4路*/
								if( PowerFlag )
									if( Control[3] > HIGH_TH )
										Control[3] --;
								break;
			case	0x00018FCE:				/*	亮度降低,左侧第4路*/
								if( PowerFlag )
									if( Control[3] < LOW_TH )
										Control[3] ++;
								break;
		}
		NEW_KEY_Flag = 0;
	}
}

/********************************************************************/
/*		主初始化程

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -