1、开机进行适当的有关接口部件及数码显示器、指示灯、讯响器等自检。 2、八位LED七段数码管作为时钟及其他界面信息显示。 3、基本显示模式为按照24小时制动态显示实时钟的时、分、秒信息。 4、4×4键盘作为参数设定与设备操作的输入设备,由“0”~“9”数字键及若干个功能键组成,“0”~“9”数字键须按照国际通行排列布局,键按下时应回馈短促的键音,键盘扫描还应采取消抖动处理。 5、时钟调校功能:按下“时钟设定”键则进入时钟设定界面,在调取并显示当前实时钟的时、分值基础上供逐位输入新的时、分值,当前数字位以2Hz频率闪烁显示的形式标示;按“确定”键则审核不存在超值域的情况下存入新的时、分值,同时对秒清0以及对秒的前级计时环节置初值;按“取消”键则不存新值返回基本显示模式;还可设置“←”键、“→”键等以方便操作。 6、利用实验板上的按钮、拨动开关替代设备的开关量输入信号,应当由开关量输入处理子模块程序统一对开关量输入信号进行检测输入并进行软件消抖动处理;利用实验板上的驱动LED指示灯的输出接口电路替代设备的开关量输出驱动信号,应当对输出控制信息建立输出缓存,并统一由输出驱动子模块程序根据输出缓存内容执行实质的输出驱动;利用实验板上的蜂鸣器替代设备的讯响部件,应当统一由讯响驱动子模块程序综合各功能程序模块所产生的讯响逻辑标记信息执行实质的蜂鸣器驱动。 7、当切换到压力煲工作模式时(用拨动开关模拟),机器“嘀”一声长鸣同时显示待机界面(待机提示符可自行定义),表示机器进入待机状态。 8、将装有实物的内胆放入机器内,旋转上盖至合盖位置(用拨动开关模拟),合紧时机器“嘀”提示一声。 9、烹饪功能选择:选择相应的烹饪功能按键(用单按键模拟,可设置不同的烹饪功能键,也可用用一个按键切换),对应功能的指示灯闪烁(用L0~L15模拟),默认压力和口感指示灯亮(可用L0~L15模拟),如无其他操作7秒钟后功能指示灯常亮,数码管动态显示跑圈,开始加热。 10、口感选择:选取烹饪功能后(蛋糕功能除外),用户通过按“口感”键来调节食物的烹饪效果,按照“标准---浓郁---清香”的顺序循环,数码管显示相应保压时间。(没有要求可不选,即按默认值) 11、压力选择:选取烹饪功能后(蛋糕和焗功能除外),如需调整压力,可按压力键选择其他压力,支持三档压力循环选择“微压---中压---高压” (没有要求可不选,即按默认值) 12、预约时间设置:预约时间范围为“0:30~24:00,调整方法为:选定烹饪功能后(蛋糕功能除外),按“预约”键,显示屏显示预约时间“0:30”,每按一次该键,预约时间增加30分钟,直到24小时,时间循环变化,支持长按,即按住该键不放开,预约时间自动增加。 预约时间设定完成后,若无需进行其他功能设定,该功能指示灯闪烁7秒后,数码管显示的预约时间开始闪烁并倒计时,预约时间结束时开始加热。 13、加热:高压或低压开关闭合,机器通电开始加热,烹饪功能指示灯常亮。加热达到设定的压力上限时则进入保压。 14、保压:进入保压阶段,数码管显示保压时间倒计时值,同时对压力进行检测,低于下限值则相应的压力开关再次闭合通电加热,高于上限值则开关断开撤除加热,不断重复这一过程。 13、保温/取消:保温功能用于维持电压力煲内的食物温度,当烹饪结束后,机器自动进入保温功能,数码管显示保温提示符(自行设定),保温灯亮起,并“嘀”提示5声;也可在待机状态时,按下“保温/取消”键,启动保温功能,保温8小时后自动退出保温进入待机状态。 进入保温时先对温度检测,当温度低于40℃则启动低功率加热,即3分钟加热,6分钟停止加热,并重复这一过程。 14、在电压力煲工作的任何阶段(待机除外),若要取消现有状态,可按“保温/取消”键,返回待机状态。 15、开盖报警:在待机、功能选择或保温阶段(安全眼已落下,压力假设低于10KPa),可以正常开盖,机器“嘀-嘀”两声,数码管、指示灯的显示同各阶段,但若是保温阶段则要撤除通电加热。 在加热或保压阶段开盖则报警,蜂鸣器“嘀---嘀---嘀……”长鸣,数码管提示错误信息,如“E1”,此时合盖则各阶段恢复正常。 超温报警:无论哪个阶段,只要温度超过145℃则报警,数码管提示错误信息,如“E2”,此时应断电撤除加热。
ORG 0000H ;复位入口 LJMP MAIN ;转往主程序 ORG 0003H ;外部中断0服务子程序入口 LJMP IX0P ;INT0下降沿请求中断:将小时数加1 ORG 000BH ;定时器0中断服务子程序入口 LJMP IT0P ;对T0引脚输入的负脉冲每计满2次即请求中断:将分钟数加1 ORG 001BH ;定时器1中断服务子程序入口 LJMP IT1P ;定时中断:进行实时钟计时
ORG 0030H ;主程序 MAIN:MOV SP,#6FH ;总初始化,设定栈底指针 LCALL D60MS ;稍加延时(60mS),以待各芯片均退出复位状态 MOV DPTR,#0FEFFH ;对U3(8255)接口芯片初始化 MOV A,#89H ;设定为A口输出(驱动字段)、B口输出(驱动字位),C口输入(键盘) MOVX @DPTR,A ;向U3(8255)控制口写入方式控制字 MOV DPTR,#0FEFCH ;DPTR指向U3(8255)-A口,8255输出口初始值全0,应即刻清为无效电平 MOV A,#0FFH ;A口应清为全1,即对应八段均不亮的字段码 MOVX @DPTR,A ;输出到U3(8255)的A口 (B口初始值全0就是全无效电平,无需改变) MOV DPTR,#0FDFFH ;对U5(8255)接口芯片初始化 MOV A,#8BH ;设定为A口输出(驱L8~15),B口输入(按钮PB0~7),C口输入(开关SW0~7) MOVX @DPTR,A ;向U5(8255)控制口写入方式控制字 MOV DPTR,#0FDFCH ;DPTR指向U5(8255)-A口 MOV A,#0FFH ;A口应清为全1,即对应所驱动的L8~15初始不亮 MOVX @DPTR,A ;输出到U5(8255)的A口
;**********自检灯与蜂鸣器******************************* CLR P3.2 ;自检,蜂鸣器响 LCALL D1S ;延时1S SETB P3.2 ;关蜂鸣器
MOV P1,#00H ;自检,P1口输出所驱动的L0~L7指示灯全亮 LCALL D1S ;延时1S MOV P1,#0FFH ;熄L0~L7指示灯 ;******************************************************
SETB EA ;开中断总允许 SETB IT0 ;设定INT0中断请求输入信号下降沿有效 SETB EX0 ;开外部INT0中断允许 MOV 38H,#00H ;38H单元为实时钟200uS计数单元,清0 MOV 39H,#00H ;39H单元为10mS计数单元,清0
;************初值显示******************* MOV 3AH,#45H ;秒单元初值 MOV 3BH,#59H ;分单元初值 MOV 3CH,#08H ;时单元初值,对应时钟初值08:59:45 ;**************************************************
MOV TMOD,#22H ;初始化T1为定时方式2,T0为计数方式2。 MOV TL0,#00H ;置T0计数初值。00H-FEH=2,每计数2次请求中断 MOV TH0,#00H SETB ET0 ;开T0中断允许 SETB TR0 ;启动T0计数工作 MOV TL1,#00H ;置T1计数初值。00H-48H=C8H=184,184TM≈200uS(实际199.6527778μS) MOV TH1,#00H ;即每约200uS请求中断一次。(存在一些走时误差)(TM=12/11.0592MHZ) SETB ET1 ;开T1中断允许 SETB TR1 ;启动T1定时工作 MOV 50H,#00H ;D/A输出数据单元初始值
;************AD转换结果单元的初值设置*************************** MOV 52H,#0AAH ;A/D转换结果数据单元初值AN1(压力) MOV 53H,#50H ;A/D转换结果数据单元初值AN0(温度) MOV 56H,#36 ;T0中断,计数1秒 MOV 11H,#100
篇幅有限,请下载查看,目前还缺少原理图,压缩包里面只有代码
ddhh.rar
(8.63 KB, 下载次数: 21)
|