微波EDA网,见证研发工程师的成长!
首页 > 应用设计 > 消费类电子 > 微波炉控制器的选型及其实例分析

微波炉控制器的选型及其实例分析

时间:09-18 来源:互联网 点击:
    • 程序编写和程序调试

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

      程序简单题纲如下:

      ;定义常量,某些固定的值,多次用到或经常修改的常量,单独定义后调用。
      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 ;程序结束

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top