3)过零检测及过零触发过零检测在外部中断程序中完成,中断后根据当前运行状态设置散热风扇半功率、全功率和关三种状态。开和关状态直接设置控制光耦状态,当需要半功率时,需要记录中断次数,调整导通和关闭周期,这里没有用调整可控硅导通移相的方法调功,可减少电磁辐射。4)按键设置按键操作设置程序的输入条件为有效的按键和编码开关左右旋转标志,再细分每个按键分别处理,在什么条件下设置对应的工作时间、输出模式、显示模式
3)过零检测及过零触发
过零检测在外部中断程序中完成,中断后根据当前运行状态设置散热风扇半
功率、全功率和关三种状态。开和关状态直接设置控制光耦状态,当需要半功率时,需要记录中断次数,调整导通和关闭周期,这里没有用调整可控硅导通移相的方法调功,可减少电磁辐射。
4)按键设置
按键操作设置程序的输入条件为有效的按键和编码
开关左右旋转标志,再细分每个按键分别处理,在什么条件下设置对应的工作时间、输出模式、显示模式、
蜂鸣器鸣叫等。
5)显示状态设置
设置4字节保存显示数字部分内容,另2字节保存四周图标变量,由于四周的图标有闪烁和不闪烁状态,另2字节设置图标的闪烁状态。
6)显示输出扫描
根据显示状态变量的8字节变量内容,设置
数码管对应com和
seg,扫描显示输出。
7)加热输出及功率控制设置
加热和功率控制程序通过统一的变量输入,设置当前的微波、烧烤、热风还是几种混合加热,以及设置内灯及散热风扇输出等。
8)温度检测及计算
设置a/d转换,检测
热敏电阻的值,并
滤波处理,以及开路短路保护检测。其输出为故障状态标志和当前炉腔温度。在热风烘烤输出程序中根据温度设置对应的加热状态。
9)时钟、定时及运行时间计算及对应输出模式切换
程序中关于时间的设置很多,大多都在这个子程序中完成,如时钟计算、预约比较、倒计时、自动功能的多段加热模式切换等。
10)蜂鸣器设置
两个变量buz_n,buz_long来设置蜂鸣器鸣叫次数和单声鸣叫长度。可单独设置buz_long值为单声的鸣叫,在上电和按键操作时设置单声鸣叫。当定时结束或定时启动或故障提示等情况时,需要设置鸣叫多时,设置buz_n值就可以了。
11)定时中断子程序
定时中断子程序相对很简单,只设置中断次数记录就可以了。由于蜂鸣器鸣叫频率为2khz,所以定时中断时间为
250us。
其中内容比较多的部分是:按键操作、显示状态设置、时钟、定时及运行时间计算及对应输出模式切换、加热输出及功率设置等部分。
在软件的编写中,变量规划很重要,下面还列出了几个典型的变量规划:
整个产品的主要工作模式用run_state来记录:
run_state equ [
40h]
s_hotfan equ run_state.0 ;热风烘烤
s_m
icro equ run_state.1 ;微波