📄 main.c
字号:
/*==================================================================
AV解码功率放大器
主控MCU: MX10FMAXDPC
显示芯片: PT16312
音量控制芯片: M62429
数字音频接收芯片: CS8415
AUDIO DAC: CS4360
AUDIO ADC: CS5340
音频解码器: CS493263(不带PROLOGIC II)
功放芯片: FL,FR采用TDA7265,CENTER采用TDA2050,SUB WOOFER采用TDA7296
===================================================================
作者: David.Dong
编写日期: 2004-11-16
修改日期: 2004-12-17
==================================================================*/
#define Variable_GLOBE
#include "reg52.h"
#include "intrins.h"
#include "..\..\inc\globedef.h"
#include "..\..\inc\keydef.h"
#include "..\..\inc\keyproc.h"
#include "..\..\inc\vfddef.h"
#include "..\..\inc\intctrl.h"
#include "..\..\inc\delay.h"
#include "..\..\inc\m61538.h"
#include "..\..\inc\tuner.h"
#include "..\..\inc\i2c.h"
void MCU_Init(void);
void State_Init(void);
/*==================================================================
描述: 完成任务的循环,主要是处理按键输入,根据按键输入调整工作状态
==================================================================*/
void main(void)
{
MCU_Init(); //mcu初始化, 包括定时器,外部中断,I/O等
DelayX1ms(200); //延时50ms
State_Init(); //初始一些状态
DelayX1ms(50);
VFD_Init();
TR1 = 1; //VFD芯片初始化
TR2 = 1; //定时器1开始计数
do
{
if(ReadKey_Timer == 20)
{
VFD_SearchKey(); //查询面板按键,飞梭按键在Timer1中断中,
ReadKey_Timer = 0;
}
KEY_Proc(); //按键处理
if(1 == POWER_Status) //如果在工作状态
{
Tuner_Proc(); //tuner部分处理
VFD_Task_Proc(); //VFD刷新显示
}
}while(1);
}
void MCU_Init(void)
{
//IE寄存器
EA = 0; //关闭所有中断
ES = 0; //禁止串口中断
ET1 = 1; //允许Timer1中断
EX1 = 1; //允许EX1中断
ET0 = 1; //允许Timer0中断
EX0 = 0; //允许EX0中断
Timer2_CntL = 0x18;
Timer2_CntH = 0xFC;
RCAP2L = Timer2_CntL;
RCAP2H = Timer2_CntH;
ET2 = 1;
TF2 = 0;
EXF2 = 0;
RCLK = 0;
TCLK = 0;
EXEN2 = 0;
C_T2 = 0;
CP_RL2 = 0;
TR2 = 1;
P0 = 0xFF; //各个端口都初始化为输入状态
P1 = 0xFF; //
P2 = 0xFF; //
P3 = 0xFF; //
TMOD=0x11; //置计数/定时器1为16位定时器
//TCON=0x45; //外部中断
TR0 = 0; //定时器0停止计数
TR1 = 1; //定时器1开始计数
TR2 = 1; //定时器1开始计数
IT1 = 1; //设置外部中断1为下降沿中断
IT0 = 1; //设置外部中断0为下降沿中断
#ifdef USE_STC_MCU
AUXR |= 0x1;
#endif
EA=1; //开中断
}
/*================================================
描述: 工作状态, 音量等的状态初始化
参数: 无
返回: 无
================================================*/
void State_Init(void)
{
AV_STANDBY = 1;
Current_State = STANDBY; //设置初始状态为STANDBY
Current_Key = NO_KEY; //当前无按键输入
Mute_Switch = 1; //在静音状态
CD4053_SELECT = 1; //选择是5.1输入还是2ch输入
ReadKey_Timer = 0;
POWER_Status = 0;
Remote_value = NO_KEY;
IR_KeyAct = 0;
Jog_Key = NO_KEY;
Volume_Key_Dealed = 0;
Current_Remote_In = 0;
Key_Timer = 0;
FMAM_PRESSED = 0;
TO_MAIN_DISPLAY = 0;
Auto_Scan_Enable = 0;
Jog_B_Buffer = 0;
TRI_TUNER_DATA;
CLEAR_M61538_CLK;
CLEAR_M61538_DATA;
FLASH_TEMP = 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -