void main(void)
{
u16 temp;
config_GIO(); //准双向口配置
Initialize_LCD(); //初始化LCD函数
ClearLine(0); //清屏
ClearLine(1);
flag_disp = 1;
display_drw(0); //显示欢迎屏
delay_ms(250);
delay_ms(250);
delay_ms(250);
delay_ms(250);
delay_ms(250);
delay_ms(250);
delay_ms(250);
delay_ms(250);
flag_pwm = 0; //SPWM归零标志清零
flag_prog = 0; //编程标志位清零
Timer0Init(); //定时中断初始化
configure(); //调用硬件配置
if(freq_pre > 50)
{
freq_pre = 5 ;
WrMoreToROM(DATA,1,3); //缓冲区数据写入AT24C02
}
if(driver_type > 2 || driver_type < 1)
{
driver_type = 1 ;
WrMoreToROM(DATA,1,3);
}
if(detection_type > 3 || detection_type < 1)
{
detection_type = 1 ;
WrMoreToROM(DATA,1,3);
}
flag_disp = 1; //显示运行画面
display_data = 1; //
while (1)
{
keyscan(); // 键盘扫描
if(flag_fault) // 故障之后处理
{
flag_start = 0; //关闭启动标志
deep = 0;
delay_ms(200);
deep = 1;
display_data = 4;
flag_disp = 1;
flag_fault = 0; //清除标志
}
if(display_data == 1 && flag_pwm && flag_RunFreq && !flag_prog) //运行画面,SPWM启动,定时中断,非编程
{
display_freq(1,freq_cur); // 显示频率
flag_RunFreq = 0;
}
if(flag_disp) // 画面显示
{
flag_disp = 0; //清零标志位
display_drw(display_data);
}
if(flag_timer0) //定时中断,周期性执行
{
flag_timer0 = 0; //清除定时中断标志
if(count_timer0 == 5) flag_RunFreq = 1; //运行频率显示标志位
}
}
if(flag_start && !flag_pwm) //执行启动SPWM
{
flag_pwm = 1;
delay_ms(250);
delay_ms(250);
A316_RST(); //A316复位信号
configure(); //初始化硬件配置
if(!flag_fault) en_pulse = 0; //检测正常,开启hc244使能
}
if(!flag_start && flag_pwm) //执行关闭SPWM
{
en_pulse = 1; //关闭hc244使能
flag_pwm = 0; //清除pwm标志位
freq_cur = 0;
if(display_data == 1)
{
temp = freq_pre;
temp *= 100;
display_freq(1,temp);
}
}
if(flag_ent)
{
flag_ent = 0;
if(display_data == 2 || display_data == 3) configure(); //调用硬件配置
}
}
}