⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cooker_head.asm

📁 中颖SH69P44开发的电磁炉原程序和线路图
💻 ASM
📖 第 1 页 / 共 3 页
字号:
;;*****************************************************
; 特殊寄存器表
;;*****************************************************
IE		EQU	00H     	;中断使能IEX, IET0, IET1, IEP
IRQ		EQU	01H		;中断标志
TM0		EQU	02H		;定时器0分频寄存器
TM1		EQU	03H		;定时器1分频寄存器
TL0		EQU	04H		;定时器0的计数器
TH0		EQU	05H		
TL1		EQU	06H		;定时器1的计数器
TH1		EQU	07H
PORTA		EQU	08H		;I/O口缓存
PORTB		EQU	09H
PORTC		EQU	0AH
PORTD		EQU	0BH
PORTE		EQU	0CH
PORTF		EQU	0DH
TBR		EQU	0EH		
INX		EQU	0FH
DPL		EQU	10H		;数据指针
DPM		EQU	11H
DPH		EQU	12H
VACR		EQU     13H     	;A/D口配置控制
ADCS		EQU	14H		;ADC通道选择			
ADCDL		EQU	15H		;ADC结果低位
ADCDH		EQU	16H		;ADC结果高位
GOT		EQU	17H		; BIT3=GO/DONEB, BIT2&BIT1=TADC1&0, BIT0=ADCS
PAXOUT		EQU	18H		;PORT口输出控制
PBXOUT		EQU	19H
PCXOUT		EQU	1AH
PDXOUT		EQU	1BH
PEXOUT		EQU	1CH
PFXOUT		EQU	1DH
T0SE		EQU     1EH		;定时器源选择
WDT     	EQU     1FH		;看门狗设置

PWM0		EQU	20H		;PWM0控制寄存器
PWM1		EQU	21H		;PWM1控制寄存器
PP0L		EQU	22H		
PP0M		EQU	23H
PP0H		EQU	24H
PD0L		EQU	25H
PD0M		EQU	26H
PD0H		EQU	27H
PP1L		EQU	28H
PP1M		EQU	29H
PP1H		EQU	2AH
PD1L		EQU	2BH
PD1M		EQU	2CH
PD1H		EQU	2DH

;;*****************************************************
;用户寄存器表,BANK 0
;;*****************************************************
;状态寄存器,电磁炉运行过程中需要的控制状态字节
;;*****************************************************
BUTTON_STATUS	EQU	30H
;+++++++++++++++++++++++++++++++++++++++++++++++++++++
;按键控制寄存器
;	.0=1表示有按键出现,不管怎样,一旦按键按下,那么执
;	行键盘扫描程序,那么这一位就被置位.在执行键盘扫描
;	程序以前,清除这一位.
;	.1=1表示按键已经被处理,每次执行功能分析函数的时候
;	这一位被置位,一旦出现新的按键的时候,这一位被清除
;	.2=1表示扫描按键定时已到,程序中的最小基本定时是
;	20MS(市电是50Hz),那么每当20MS定时已到,设置这一位
;	每当执行完毕键盘扫描程序,那么清除这一位.
;	.3=1表示出现了合法按键.档出现按键,但是按键又没有
;	被处理的时候才设置这一位,当执行完按键扫描程序的时
;	候,清除这一位.
;+++++++++++++++++++++++++++++++++++++++++++++++++++++

MAIN_STATUS	EQU	31H
;+++++++++++++++++++++++++++++++++++++++++++++++++++++
;开关机状态寄存器
;	.0=1加热状态,开机加热的默认状态是加热状态,按C/T
;	按键可以切换加热和保温状态
;	.1=1保温状态标志. 
;	.2=1开机使能,只有在关机状态下,按ON/OFF按键,才能
;	设置这一位;在开机状态下,按ON/OFF按键或者,其他需
;	要关机的条件满足时,清除这一位.
;	.3=1保温达到设定值标志,如果保温达到设定值,置位
;	这个标志,如果温度没有达到,清除这一位标志
;+++++++++++++++++++++++++++++++++++++++++++++++++++++

PWM_STATUS	EQU	32H
;+++++++++++++++++++++++++++++++++++++++++++++++++++++
;PWM控制寄存器
;	.0=1软启动结束标志,每次IGBT重新开启的时候都需要
;	清除这一位,而每当软启动结束的时候设置这一位
;	.1=1IGBT允许开启标志 
;	.2=1需要过零处理标志,当系统应该开启IGBT的时候,
;	但是又没有开启IGBT,则需要设置这一位,进行过零处理
;	.3=1软启动定时已到标志
;+++++++++++++++++++++++++++++++++++++++++++++++++++++

COMPARE_STATUS	EQU	33H
;+++++++++++++++++++++++++++++++++++++++++++++++++++++
;比较状态寄存器
;	.0=1两个数比较,前者等于后者
;	.1=1两个数比较,前者小于后者 
;	.2=1两个数比较,前者大于后者
;	.3=1
;+++++++++++++++++++++++++++++++++++++++++++++++++++++

HEAT_POINT	EQU	34H
;+++++++++++++++++++++++++++++++++++++++++++++++++++++
;火力点状态寄存器:
;	系统一共分为10档火力描述如下:
;	00H,表示没有按下火力按键,不进入工作模式
;	01H,表示第一档火力,它是500W断续加热,加热3S停3S
;	02H,表示第二档火力,它是500W连续加热
;	03H,表示第三档火力,它是650W连续加热
;	04H,表示第四档火力,它是800W连续加热
;	05H,表示第五档火力,它是1000W连续加热
;	06H,表示第六档火力,它是1200W连续加热
;	07H,表示第七档火力,它是1400W连续加热
;	08H,表示第八档火力,它是1600W连续加热
;	09H,表示第九档火力,它是1800W连续加热
;	0AH,表示第十档火力,它是2000W连续加热
;+++++++++++++++++++++++++++++++++++++++++++++++++++++

KEEP_TEMP	EQU	35H
;+++++++++++++++++++++++++++++++++++++++++++++++++++++
;保温寄存器:
;	系统一共分为9档保温,保温时候的火力是根据当前温
;	度,和设定温度之间的差值来确定的,如果相差越大,那
;	么,加热的火力越大
;	01H,表示第一档保温,50度
;	02H,表示第二档保温,70度
;	03H,表示第三档保温,90度
;	04H,表示第四档保温,120度
;	05H,表示第五档保温,140度
;	06H,表示第六档保温,160度
;	07H,表示第七档保温,180度
;	08H,表示第八档保温,200度
;	09H,表示第九档保温,240度
;+++++++++++++++++++++++++++++++++++++++++++++++++++++

WRONG	EQU	36H
;+++++++++++++++++++++++++++++++++++++++++++++++++++++
;故障状态寄存器:
;	主要是纪录系统运行过程中可能出现的故障状态
;	0001B,表示电压故障,当电压高于260V或者低于170V的
;	时候设置这一位,当电压低于250V并且高于180V清除者
;	一位.
;	0010B,表示无锅故障,当检测到电流小于一定值时,认定
;	无锅,设置这一位.当探锅脉冲个数小于5个的时候认为
;	有锅,清除这一位.
;	0100B,表示IGBT温度故障,当IGBT温度高于100度的时候
;	设置这一位,当IGBT温度低于90度的时候清除这一位.
;	1000B,表示锅底温度故障,当锅底温度高于260度的时候
;	设置这一位,当锅底温度低于240度的时候清除这一位.
;+++++++++++++++++++++++++++++++++++++++++++++++++++++


FAULT_STATUS	EQU	37H

;+++++++++++++++++++++++++++++++++++++++++++++++++++++
;系统错误寄存器:
;	这个寄存器主要纪录由于系统硬件引起的故障状态.
;	01H表示IGBT热敏电阻断路
;	02H表示IGBT热敏电阻短路
;	03H表示锅底热敏电阻断路
;	04H表示锅底热敏电阻短路
;	05H表示风扇失效
;	06H表示振荡回路断路
;	07H~0FH保留
;+++++++++++++++++++++++++++++++++++++++++++++++++++++

BUZZER_STATUS	EQU	38H
;+++++++++++++++++++++++++++++++++++++++++++++++++++++
;蜂鸣器状态寄存器:
;	0001B表示蜂鸣器处于鸣叫状态
;	0010B表示蜂鸣器鸣叫时间已到(160MS)
;	0100B保留
;	1000B不能使用
;+++++++++++++++++++++++++++++++++++++++++++++++++++++

FILTER_STATUS	EQU	38H
;+++++++++++++++++++++++++++++++++++++++++++++++++++++
;滤波器状态寄存器:
;	0001B不能使用
;	0010B不能使用
;	0100B不能使用
;	1000B=时钟信号有效
;+++++++++++++++++++++++++++++++++++++++++++++++++++++

FAN_STATUS	EQU	39H
;+++++++++++++++++++++++++++++++++++++++++++++++++++++
;风扇状态寄存器:
;	主要纪录风扇的工作状态
;	0001B=需要风扇30秒延时
;	0010B=30秒风扇延时定时已到
;	0100B=风扇失效
;	1000B=保留
;+++++++++++++++++++++++++++++++++++++++++++++++++++++

DCONT_STATUS	EQU	3AH
;+++++++++++++++++++++++++++++++++++++++++++++++++++++
;断续加热状态寄存器:
;	0001B=标志电磁炉处于断续加热状态
;	0010B=标志处于断续加热加热状态
;	0100B=1秒定时已到
;	1000B=保留
;+++++++++++++++++++++++++++++++++++++++++++++++++++++

RUN_COUNTER	EQU	3BH
;+++++++++++++++++++++++++++++++++++++++++++++++++++++
;纪录程序循环次数计数器:
;	在发出探锅脉冲后,纪录程序循环15次后,检测脉冲个
;	数,判断是否有锅
;+++++++++++++++++++++++++++++++++++++++++++++++++++++

PLUSE_COUNTER	EQU	3CH
;+++++++++++++++++++++++++++++++++++++++++++++++++++++
;探锅脉冲计数器:
;	发出探锅脉冲后,纪录振荡回路出现的振荡次数,小于5
;	次,认为有锅,否则认为无锅
;+++++++++++++++++++++++++++++++++++++++++++++++++++++

PLUSE_STATUS	EQU	3DH
;+++++++++++++++++++++++++++++++++++++++++++++++++++++
;探锅脉冲状态寄存器:
;	0001B=发送探锅脉冲定时开始标志
;	0010B=定时已到标志
;	0100B=保留
;	1000B=保留
;+++++++++++++++++++++++++++++++++++++++++++++++++++++


BUTTON_BAK1_L	EQU	3EH
BUTTON_BAK1_M	EQU	40H
BUTTON_BAK1_H	EQU	41H
BUTTON_BAK2_L	EQU	3FH
BUTTON_BAK2_M	EQU	42H
BUTTON_BAK2_H	EQU	43H
;+++++++++++++++++++++++++++++++++++++++++++++++++++++
;按键备份寄存器:备份出现的按键.BUTTON_BAK1_*备份前一次
;出现的按键情况.BUTTON_BAK2_*备份后一次出现的按键情况
;+++++++++++++++++++++++++++++++++++++++++++++++++++++

TEMP		EQU	44H
;+++++++++++++++++++++++++++++++++++++++++++++++++++++
;暂存寄存器
;+++++++++++++++++++++++++++++++++++++++++++++++++++++

KEY_CN		EQU	45H
;+++++++++++++++++++++++++++++++++++++++++++++++++++++
;按键次数计数器,只有当连续8次出现按键的时候才认为出现按
;键
;+++++++++++++++++++++++++++++++++++++++++++++++++++++

SHOW_STATUS	EQU	46H
;+++++++++++++++++++++++++++++++++++++++++++++++++++++
;显示状态寄存器:
;	0001B=数码管显示使能,显示定时数据
;	0010B=保留
;	0100B=20ms定时已到标志
;	1000B=高或低标志;1=高,0=低
;+++++++++++++++++++++++++++++++++++++++++++++++++++++
AUTO_STATUS	EQU	47H
;+++++++++++++++++++++++++++++++++++++++++++++++++++++
;自动功能状态寄存器:
;	01H=开水
;	02H=褒粥
;	03H=米饭
;	04H=炒菜
;	05H=烧烤
;	06H=温奶
;	07H=火锅
;+++++++++++++++++++++++++++++++++++++++++++++++++++++

SNUM0		EQU	48H
SNUM1		EQU	49H
;+++++++++++++++++++++++++++++++++++++++++++++++++++++
;按键定时计数器:用于纪录按键定时的时间.SNUM0是个位定时
;SNUM1是十位定时
;+++++++++++++++++++++++++++++++++++++++++++++++++++++

SHOW_ORDER	EQU	4AH
;+++++++++++++++++++++++++++++++++++++++++++++++++++++
;显示顺序寄存器
;+++++++++++++++++++++++++++++++++++++++++++++++++++++
TEMP0		EQU	4BH
;+++++++++++++++++++++++++++++++++++++++++++++++++++++
;暂存寄存器
;+++++++++++++++++++++++++++++++++++++++++++++++++++++

TIME_STATUS	EQU	4CH
;+++++++++++++++++++++++++++++++++++++++++++++++++++++
;定时状态寄存器:
;	0001B=5秒定时已到,如果5秒内没有出现火力按键,那
;	么关闭显示
;	0010B=1秒定时已到标志,这1秒内不检测电流
;	0100B=5秒定时已到标志,这5秒内检测比较小的值
;	1000B=1分钟定时已到标志
;+++++++++++++++++++++++++++++++++++++++++++++++++++++

EVEN_STATUS	EQU	4DH
;+++++++++++++++++++++++++++++++++++++++++++++++++++++
;平均值状态寄存器:
;	0001B=锅底温度平均值求取完毕
;	0010B=IGBT温度平均值求取完毕
;	0100B=电罔电压平均值求取完毕
;	1000B=电流平均值求取完毕
;+++++++++++++++++++++++++++++++++++++++++++++++++++++

COMP1		EQU	4EH
COMP2		EQU	4FH
;+++++++++++++++++++++++++++++++++++++++++++++++++++++
;4位比较寄存器:
;	COMP1存储被比较数,COMP2存储比较数
;+++++++++++++++++++++++++++++++++++++++++++++++++++++

EVEN_C1		EQU	50H
EVEN_C2		EQU	51H
;+++++++++++++++++++++++++++++++++++++++++++++++++++++
;256次AD平均值计数器:
;+++++++++++++++++++++++++++++++++++++++++++++++++++++

PSTA1		EQU	52H
PSTA2		EQU	53H
PSTA3		EQU	54H
;+++++++++++++++++++++++++++++++++++++++++++++++++++++
;程序运行备份寄存器:
;	纪录当前程序的运行入口,如果程序非法重起,那么程
;	序将不初始化而直接跳回程序

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -