上面为拆字的部分程序,通过程序我们可以清楚的看到,拆字模块主要通过判断进程码,不同的进程码拆送不同的单元到显缓,上面一段程序为在待机进程00H,保温进程25H下拆送时分秒到显缓,而若非待机,保温。则程序跳转到CZ5,如下程序:
CZ5:MOV A,27H ; 步骤码 ANL A,#0FH ;保留低4位(个位 MOV 36H,A MOV A,27H
ANL A,#0F0H ;保留高4位(十位 SWAP A ;交换到低4位 MOV 37H,A
JB 26H.1,CZ0 ;为1不送倒计时(跳出 MOV A,59H ;倒计时
ANL A,#0FH ;保留低4位(个位 MOV 32H,A MOV A,59H
ANL A,#0F0H ;保留高4位(十位 SWAP A ;交换到低4位 MOV 33H,A MOV A,5AH
ANL A,#0FH ;保留低4位(个位 MOV 34H,A
为拆送倒计时,工步号到对应的显缓单元,以此来实现豆浆机运作过程中所需要的打浆倒计时和工步号显示。
7.时钟设定子模块 功能简述
该模块主要功能为提供用户对实时钟的调校功能。 程序设计思路与方案
当用户在使用时,如发现实时钟不准确,可简单的对实时钟进行调校功能,通过设定按键加减时分,轻松的完成实时钟的调校。主要设定六个按键,包括进入调时键K4,确定调时并退出调
时K5,小时加1键K0,小时减1键K1,分钟加1键K2,分钟减1键K2。 原理说明及部分代码
利用进程码进行设定,只有在待机,保温进程下才能对实时钟进行调校。 通过线反转法扫描键号来判断按键是否按下以实现对实时钟的调校功能。在进入调校后通过4个按键分别对小时和分钟进行加减,并将秒单位及前一级单位置0,较准确的完成实时钟的调校功能。
KTE:JNB 24H.0,L2
MOV A,65H CJNE A,#10H,L3 MOV A,64H CJNE A,#04H,L3
下面程序为线反转法扫描键号,若发现有按键按下,则新键号会存到64H中,以此实现对应的功能。65H存的10H为初始状态,即无00~0F键按下。
8.工作模式子模块 功能简述
该模块的功能主要为用户提供模式选择,正常的模式选择有豆浆机和果汁,由于本程序只设计豆浆机,但仍然提供了果汁的模式选择,较好了模拟了正常产品的功能选择。
程序设计思路及方案
当用户按下功能选择按键时,会将28H.0置0,驱动L0亮起,模拟豆浆模式,而后再按下功能选择键,则模式会在果汁和豆浆中切换。
原理说明及部分代码:
原理我们可以分析部分程序来进行,以下面部分程序为例: GZMS: MOV A,23H
CJNE A,#00H,GZ0 ;刚开始选择功能键才有效 JNB 2FH.1,GZ0
JB 2EH.1,GZ0 ;判断PB1功能选择键是否按下
以上的程序是通过判断在待机状态时的功能选择键是否按下,通过按键的按下再实行以下程序; INC 50H
MOV 28H,50H MOV A,50H CJNE A,#0FEH,GZ0 MOV 50H,#0FCH
通过对50H单元加1,而50H内容有初值0FDH,加1后变为FE即驱动L0亮起,即选择豆浆模式,而后L0与L1交替切换亮灭,即模拟豆浆和果汁模式切换。
9.水位告警子模块 功能简述
该模块主要功能为在启动时检测是否水位是否正常 程序设计思路及方案
为了模拟高低水位,我们设置为SW0模拟高水位,SW1模拟低水位,设立闪烁标志位,借此分辨不同水位不同的闪烁告警方式。
原理说明及部分代码
水位告警模块是为了让用户能再一个安全的水位状态下进行煮浆,即保证了煮出豆浆的优良度,亦能够较好的保护使用者的安全与豆浆机的使用寿命。
通过SW1模拟高水位,当SW0为“0”时,则为高水位,反之则未超水位。SW1为“0”时为低水位,反之水位正常。而通过加入闪烁标志位和高低水位告警标志位26H.4,在调用告警闪闪闪模块中,可区分高低水位的告警,即高水位告警为闪烁3次,同步蜂鸣器响;低水位告警为闪烁一次,同步蜂鸣器。
10.模拟水温子模块 功能简述
该模块主要功能为在通过AN1控制A/D转换数据拆送到数码管最右边两位模拟水温。.
程序设计思路与方案
为了更好的模拟水温拆送,在此模块中独立进行拆字程序,而非在拆字模块中进行拆送,通过对A/D数据的BCD转换,将0~256转换为0~99拆送显示温度,而AN1可调整模拟水温。
原理说明及部分代码
通过设定AN1调整,由以下程序完成: MOV DPTR,#0FBF9H ;A/D子程序。
MOVX A,@DPTR ;读取A/D转换结果的8位二进制数字值
即可以通过AN1调整模拟水温。而A/D转换结果存为缓冲单元,而后进行BCD转换,将其二进制数转换为0~99的BCD码拆送温度显示。超过99则送“EE”到温度显示显缓单元中。
11.无效启动子模块