3.2各功能子程序⑴设置时间子程序当用户新购买回电表时,需要重新设置电表时间,当主程序检测到P1.7有效时,调用设置时间子程序。⑵查询电量子程序当查询健有效时,用户输入要查询的月份,按确定健后,若为有效月份,则查表显示对应月份所用电量。其流程图如图4。其中有效月份检测子程序代码如下:checkmonth:kk1:lcallscankey;调用键盘扫描子程序jnbflag,kk1;flag为有按键标志位,flag=1时为有按键mova,key;key中为按键值cjnea,#0
3.2 各功能子程序
⑴ 设置时间子程序
当用户新购买回电表时,需要重新设置电表时间,当主程序检测到P1.7有效时,调用设置时间子程序。
⑵ 查询电量子程序
当查询健有效时,用户输入要查询的月份,按确定健后,若为有效月份,则查表显示对应月份所用电量。其流程图如图4。其中有效月份检测子程序代码如下:
checkmonth:
kk1: lcall scan
key;调用键盘扫描子程序
jnb flag,kk1 ;flag为有按键标志位,flag=1时为有按键
mova,key ;key中为按键值
cjne a,#0bh,cn ;按键是确定键吗?,不是则转到cn
mov r4,pushnum ;pushnum为有效按键个数
cjne r4,#02h,
out;输入的是2位数吗?,不是则退出
mov r1,suff+1;输入了2位数 ,suff为输入2位数的暂存缓冲区
mov a,suff ;
mov b,#
10 mul ab
add a,r1 ;输入的2位数转换为月份
mov r1,a
jz out ;若输入数值为0,则无效输入,退出
clr c
subb a,#13 ;输入的月份大于13吗,大于则为无效月份,退出
jnc out
mov valid,r1 ;有效月份存入valid中
setb fvalid ;fvalid为输入有效月份标志位
ret
cn:cjne a,#0
ah,wnum ;按键为退格键吗?,不是则转到wnum