?? cjtemp.asm
字號(hào):
;******************************************************************************
D/I equ P1.2 ;
R/W equ P1.3 ;
E equ P1.4 ;
CS1 equ P1.0 ;
CS2 equ P1.1 ;
RSTB equ P1.6 ;
counter equ 32h ;范圍計(jì)數(shù)器,掌握數(shù)值長度
hang equ 33h ;大循環(huán)行變量(頁碼)
lie equ 34h ;大循環(huán)行變量(列)
hangc equ 35h ;行計(jì)數(shù)器
liec equ 36h ;列計(jì)數(shù)器
menusel equ 39h ;菜單選中標(biāo)志(底色反色)
dianliuh equ 50h;
dianliul equ 51h;;小數(shù)點(diǎn)之后的電流數(shù)字(BCD碼)
vh equ 52h;
vl equ 53h;;小數(shù)點(diǎn)之后的電壓數(shù)字(BCD碼)
wenduh equ 54h ;
wendul equ 55h ;;小數(shù)點(diǎn)之后的溫度數(shù)字(BCD碼)
timeh equ 56h
timem equ 57h ;;
;******************************************************************************
ORG 0000H
aJMP START ;Power ON jump to start address
org 0060h
START: mov sp,#60h
lcall sysini
;-----------------------
mov dptr,#face1
lcall all32
lcall pause
lcall pause
lcall pause
lcall pause
mov dptr,#face2
lcall all32
lcall pause
lcall pause
lcall pause
lcall pause
mov menusel,#0feh
push menusel
main: ;-----------------------
pop menusel
inc menusel
inc menusel
anl menusel,#07h
push menusel
mov dptr,#mainmenu
lcall all32
lcall pause
lcall pause
lcall pause
lcall pause
;--------顯示格式如下---------------------------------------
;電流:XXXmA(I)
;電壓:X.XXV(voltage)
;溫度:XX.X℃(wendu)
;時(shí)間:XX:XX(time)
;-----------------------------------------------------------
mov menusel,#0ffh
mov dianliuh,#06h
mov dianliul,#79h;679mA
mov vh,#04h
mov vl,#98h;4.98V
mov wenduh,#21h
mov wendul,#04h;21.4v
mov timeh,#14h
mov timem,#36h;14:36
;----------------------顯示固定字符
mov dptr,#wendutab
lcall all32
;---------------------------------
;---disp I(left)------------------
mov hang,#0
mov lie,#48
mov a,dianliuh
lcall dispdigl
;---disp I(right)------------------
mov hang,#0
mov lie,#0
mov a,dianliul
swap a
anl a,#0fh
lcall dispdigr
mov hang,#0
mov lie,#16
mov a,dianliul
anl a,#0fh
lcall dispdigr
;---------------------------------------
;---disp voltage(left)------------------
mov hang,#2
mov lie,#48
mov a,vh
lcall dispdigl
;---disp voltage(right)------------------
mov hang,#2
mov lie,#16
mov a,vl
swap a
anl a,#0fh
lcall dispdigr
mov hang,#2
mov lie,#32
mov a,vl
anl a,#0fh
lcall dispdigr
;---------------------------------------
;---disp wendu(left)------------------
mov hang,#4
mov lie,#48
mov a,wenduh
swap a
anl a,#0fh
lcall dispdigl
;---disp wendu(right)------------------
mov hang,#4
mov lie,#0
mov a,wenduh
anl a,#0fh
lcall dispdigr
mov hang,#4
mov lie,#32
mov a,wendul
anl a,#0fh
lcall dispdigr
;---------------------------------------
;---disp time(left)------------------
mov hang,#6
mov lie,#48
mov a,timeh
swap a
anl a,#0fh
lcall dispdigl
;---disp time(right)------------------
mov hang,#6
mov lie,#0
mov a,timeh
anl a,#0fh
lcall dispdigr
mov hang,#6
mov lie,#32
mov a,timem
swap a
anl a,#0fh
lcall dispdigr
mov hang,#6
mov lie,#48
mov a,timem
anl a,#0fh
lcall dispdigr
lcall pause
;-------------模擬電壓的變化過程
mov a,vl
inc a
da a
mov vl,a
;-------------------------------
lcall pause
ajmp main
;--------系統(tǒng)初始化---------------------
sysini: CLR D/I
CLR R/W
CLR E
SETB CS1
SETB CS2
CLR RSTB;lcd硬件復(fù)位
NOP
NOP
NOP
NOP
SETB RSTB
lCALL DELAY
MOV A,#00111111B ;Turn display on
lCALL CMDWR1
lCALL CMDWR2
MOV A,#11000000B ;Display start line (0)
lCALL CMDWR1
lCALL CMDWR2
;-------------
mov menusel,#0ffh
ret
;----------------------------------------------
;入口參數(shù)為ACC(左邊顯示)
dispdigl:rl a
mov dptr,#ptab1
jmp @a+dptr
startm: nop
ret
dispdigr:rl a
mov dptr,#ptab2
jmp @a+dptr
startn: nop
ret
;---------------------------------------
ptab1: ajmp sub0
ajmp sub1
ajmp sub2
ajmp sub3
ajmp sub4
ajmp sub5
ajmp sub6
ajmp sub7
ajmp sub8
ajmp sub9
sub0: mov dptr,#dig0 ;設(shè)置顯示數(shù)字表格
lcall bloblx
ajmp STARTM
sub1: mov dptr,#dig1
lcall bloblx
ajmp STARTM
sub2: mov dptr,#dig2
lcall bloblx
ajmp STARTM
sub3: mov dptr,#dig3
lcall bloblx
ajmp STARTM
sub4: mov dptr,#dig4
lcall bloblx
ajmp STARTM
sub5: mov dptr,#dig5
lcall bloblx
ajmp STARTM
sub6: mov dptr,#dig6
lcall bloblx
ajmp STARTM
sub7: mov dptr,#dig7
lcall bloblx
ajmp STARTM
sub8: mov dptr,#dig8
lcall bloblx
ajmp STARTM
sub9: mov dptr,#dig9
lcall bloblx
ajmp STARTM
;--------------------------------------------
ptab2: ajmp subr0
ajmp subr1
ajmp subr2
ajmp subr3
ajmp subr4
ajmp subr5
ajmp subr6
ajmp subr7
ajmp subr8
ajmp subr9
subr0: mov dptr,#dig0 ;設(shè)置顯示數(shù)字表格
lcall blobrx
ajmp STARTn
subr1: mov dptr,#dig1
lcall blobrx
ajmp STARTn
subr2: mov dptr,#dig2
lcall blobrx
ajmp STARTn
subr3: mov dptr,#dig3
lcall blobrx
ajmp STARTn
subr4: mov dptr,#dig4
lcall blobrx
ajmp STARTn
subr5: mov dptr,#dig5
lcall blobrx
ajmp STARTn
subr6: mov dptr,#dig6
lcall blobrx
ajmp STARTn
subr7: mov dptr,#dig7
lcall blobrx
ajmp STARTn
subr8: mov dptr,#dig8
lcall blobrx
ajmp STARTn
subr9: mov dptr,#dig9
lcall blobrx
ajmp STARTn
;------顯示32個(gè)漢字(滿屏)-------
;------輸入的參數(shù)為1個(gè):表格地址
;---------------------------------
all32: nop
mov hang,#0
mov hangc,#04
mov lie,#0
mov liec,#04
kkk: lCALL datawr1
mov a,lie
add a,#16
mov lie,a
djnz liec, kkk;cs1 enable
mov lie,#0
mov liec,#4
xxx: lCALL datawr2
mov a,lie
add a,#16
mov lie,a
djnz liec,xxx;cs2 enable
mov liec,#4
mov lie,#0
inc hang
inc hang
djnz hangc,kkk
ret
;--------橫向顯示8個(gè)漢字菜單-----------------------------------
;--------入口參數(shù)為hang(1個(gè)參數(shù))-----------------------------
;--------------------------------------------------------------
heng8: nop ;--------------------
mov lie,#00 ;lie為常數(shù)(總是從第0列開始顯示)
mov liec,#04
lll: lCALL datawr1
mov a,lie
add a,#16
mov lie,a
djnz liec, lll;cs1 enable(在左側(cè)第一行顯示4個(gè)漢字)
mov lie,#0
mov liec,#4
rrr:
lCALL datawr2
mov a,lie
add a,#16
mov lie,a
djnz liec,rrr;cs2 enable
ret
;--------左屏縱向顯示8個(gè)漢字菜單-----------------------------------
;--------入口參數(shù)為lie(1個(gè)參數(shù))-----------------------------
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -