附录:(程序) ; 定义计时单元地址
MIN EQU 31H ;存放分钟变量 SEC EQU 32H ;存放秒钟变量
DEDA EQU 33H ;存放10ms计数值 ; 按键端口状况值
K1_N EQU 34H ;存放按键当前端口状况值 K1_P EQU 35H ;存放按键上次端口状况值 K1_C EQU 37H ;存放按键计数单元 X EQU 36H ;LCD 地址变量 ; 按键引脚定义
K1 EQU P3.3 ;按键1引脚定义 K2 EQU P3.4 ;按键2引脚定义 ;LCD 引脚定义
RS EQU P3.5 ;LCD RS引脚定义 RW EQU P3.6 ;LCD RW引脚定义 E EQU P3.7 ;LCD RS引脚定义 ORG 0000H ;程序由地址0开始执行 JMP MAIN
ORG 0BH ;定时器0中断地址设置 JMP T0_INT
;――――――――――――― 主程序 ―――――――――――――― MAIN: ;开始
MOV SP,#60H ;堆栈指针指向60H CLR E ;E=0,禁止读/写LCD ACALL SET_LCD ;调LCD控制子程序 ACALL INIT ;初始化变量
MOV K1_P,#01H ;按键上次端口设置1 ACALL INIT_TIMER ;调用初始化定时器 ACALL MEU ;调用工作菜单子程序 LOOP:ACALL CONV ;时间计数处理 ACALL LOOP1 ;调用清零键子程序 ACALL KEY ;判断是否有键按下 JZ LOOP ;无键按下转LOOP MOV K1_P,K1_N ;交换数据
ACALL KEY0 ;调用按键功能子程序 JMP LOOP ;跳LOOP处循环 ; 初始变量清零子程序
INIT: ;初始变量清零 CLR A ;A清为零