3.2各功能子程序⑴設(shè)置時(shí)間子程序當(dāng)用戶新購買回電表時(shí),需要重新設(shè)置電表時(shí)間,當(dāng)主程序檢測到P1.7有效時(shí),調(diào)用設(shè)置時(shí)間子程序。⑵查詢電量子程序當(dāng)查詢健有效時(shí),用戶輸入要查詢的月份,按確定健后,若為有效月份,則查表顯示對應(yīng)月份所用電量。其流程圖如圖4。其中有效月份檢測子程序代碼如下:checkmonth:kk1:lcallscankey;調(diào)用鍵盤掃描子程序jnbflag,kk1;flag為有按鍵標(biāo)志位,flag=1時(shí)為有按鍵mova,key;key中為按鍵值cjnea,#0
3.2 各功能子程序
⑴ 設(shè)置時(shí)間子程序
當(dāng)用戶新購買回電表時(shí),需要重新設(shè)置電表時(shí)間,當(dāng)主程序檢測到P1.7有效時(shí),調(diào)用設(shè)置時(shí)間子程序。
⑵ 查詢電量子程序
當(dāng)查詢健有效時(shí),用戶輸入要查詢的月份,按確定健后,若為有效月份,則查表顯示對應(yīng)月份所用電量。其流程圖如圖4。其中有效月份檢測子程序代碼如下:
checkmonth:
kk1: lcall scan
key;調(diào)用鍵盤掃描子程序
jnb flag,kk1 ;flag為有按鍵標(biāo)志位,flag=1時(shí)為有按鍵
mova,key ;key中為按鍵值
cjne a,#0bh,cn ;按鍵是確定鍵嗎?,不是則轉(zhuǎn)到cn
mov r4,pushnum ;pushnum為有效按鍵個(gè)數(shù)
cjne r4,#02h,
out;輸入的是2位數(shù)嗎?,不是則退出
mov r1,suff+1;輸入了2位數(shù) ,suff為輸入2位數(shù)的暫存緩沖區(qū)
mov a,suff ;
mov b,#
10 mul ab
add a,r1 ;輸入的2位數(shù)轉(zhuǎn)換為月份
mov r1,a
jz out ;若輸入數(shù)值為0,則無效輸入,退出
clr c
subb a,#13 ;輸入的月份大于13嗎,大于則為無效月份,退出
jnc out
mov valid,r1 ;有效月份存入valid中
setb fvalid ;fvalid為輸入有效月份標(biāo)志位
ret
cn:cjne a,#0
ah,wnum ;按鍵為退格鍵嗎?,不是則轉(zhuǎn)到wnum