RSS

HT46X23设计微波炉控制器实例分析

来源:网络 作者:不详 时间:2007-03-02 Tag: 点击:



程序编写和程序调试

    软件简单规划后,就需要具体的编写,将任务分解后,每部分已经比较简单了,调试时可以考虑各子程序单独调试,人为模拟输入各种情况下的数据及状态,检查输出是否正确。再将相关联的一起调试。除非很有把握,不要将程序全编写完了再调试,那样就不知道到底哪里有问题。

程序简单题纲如下:
;定义常量,某些固定的值,多次用到或经常修改的常量,单独定义后调用。
buz_l0 equ 50d    ;50*4=200ms设置所有默认蜂鸣器鸣叫声音长度。
sw_t0 equ 70d    ;有效按键响应时间,按键去抖动时间
。。。。。。
;定义I/O,将各输入/输出单独按功能或原理图网络标号定义,当原理图修改时方便软件修改
buz_p equ pa.3
grill_p equ pc.0
micro_p equ pc.1
......
;定义变量,
run_state equ [40h]    ;或则用自动变量定义
......
;程序开始
 org 0h
 jmp start_l
 org 04H       ;外部中断向量
 jmp int_set     ;跳转过零中断处理程序
 org 08H       ;定时中断向量,中断周期为250us
 mov temp_a,a   ;保存
 mov a,status
 mov temp_s,a
 inc t_int0        ;每次中断0.25us
 mov a,temp_s
 mov status,a
 mov a,temp_a
 reti
;中断处理程序,注意先保存用到的ACC和标志寄存器status,返回前恢复
int_set:
 ......;中断处理程序,设置风扇输出
 reti
;主程序开始
start_l:
;初始化RAM、I/O、timer、中断等,一般先将通用RAM全清零
;注意继电器等关键变量的初始化,否则上电时继电器可能会跳一下。
;初始化某些特殊变量
;主循环程序部分
main:
 call sw_in_set ;注意按键设置会将显示关闭,则显示输出程序在后
 call dsp_out_set ;显示扫描程序
 call sw_out_set ;按键功能及状态设置
 call ad_tem_set ;A/D转换及温度计算
 call dsp_state_set ;显示状态计算
main_delay_2ms:
 mov a,t_int0 ;0.25*8=2   等待2ms时间到
 sub a,8
 snz c
 jmp main_delay_2ms
 call sw_in_set ;注意按键设置会将显示关闭,则显示输出程序在后
 call dsp_out_set ;调用显示扫描程序
 call heat_out _set ;调用加热状态及功率设置
 call buz_set ;调用蜂鸣器设置子程序
 call time_set
main_delay_4ms:
 mov a,t_int0   ;0.25ms*16=4ms   等待4ms时间到
 sub a,16
 snz c
 jmp main_delay_2ms
 clr t_int0
 jmp main
;各子程序分列后面
sw_in_set: ;按键检测、编码开关检测、门状态检测
 ......
 ret
dsp_out_set: ;显示扫描程序
 ......
 ret
sw_out_set: ;按键功能及状态设置
 ......
 ret
ad_tem_set: ;A/D转换及温度计算
 ......
 ret
dsp_state_set: ;显示状态计算
 ......
 ret
heat_out _set: ;调用加热状态及功率设置
 ......
 ret
buz_set: ;蜂鸣器设置子程序
 ......
 ret
time_set: ;时间及定时处理程序
 ......
 ret
;程序中会用到很多表,为调用方便,则将其放到最后页面
 org 0f00h
dsp_code_l0:
 dc 10011111b;0
......
end ;程序结束


1.部分资源来自网络,经ET电子归类整理,旨在服务电子爱好者并无商业目的,不保证正确性与完整性.
2.如果您觉得本站资源对您有用,请告知您的好友,用搜索引擎搜"ET电子"即可.


最新评论共有 0 位网友发表了评论
发表评论
评论内容:不能超过250字,需审核,请自觉遵守互联网相关政策法规。
用户名: 密码:
匿名?
注册
教程下载