?? h23.asm
字號(hào):
LowTemp equ -99 ; A/D 0
HighTemp equ 99 ; A/D 255
ADPort equ 09000h
CurTemp equ 51h
OUTBIT equ 08002h
OUTSEG equ 08004h ; 段控制口
IN equ 08001h
LEDBuf equ 60h
ORG 0000H
ljmp Start
LEDMAP:
db 3fh, 06h, 5bh, 4fh, 66h, 6dh, 7dh, 07h
db 7fh, 6fh, 77h, 7ch, 39h, 5eh, 79h, 71h
Delay:
mov r7, #0
DelayLoop:
djnz r7, DelayLoop
djnz r6, DelayLoop
ret
DisplayLED:
mov r0, #LEDBuf
mov r1, #6
mov r2, #00100000b
Loop:
mov dptr, #OUTBIT
mov a, #0
movx @dptr, a
mov a, @r0
mov dptr, #OUTSEG
movx @dptr, a
mov dptr, #OUTBIT
mov a, r2
movx @dptr, a
mov r6, #1
call Delay
mov a, r2
rr a
mov r2, a
inc r0
djnz r1, Loop
mov dptr, #OUTBIT
mov a, #0
movx @dptr, a
ret
; ================================
DisplayResult:
mov a, CurTemp
jnb acc.7, GE0
mov LEDBuf, #40h ; '-'
dec a
cpl a
jmp Goon
GE0:
mov LEDBuf, #0 ; ' '
Goon:
mov b, #10
div ab
mov dptr, #LEDMAP
movc a, @a+dptr
mov LEDBuf+1, a
mov a, b
movc a, @a+dptr
mov LEDBuf+2, a
mov LEDBuf+3, #0 ; ' '
mov LEDBuf+4, #0 ; ' '
mov LEDBuf+5, #0 ; ' '
ret
ReadAD:
mov dptr, #ADPort
clr a
movx @dptr, a ; start A/D
mov a, #80
djnz acc, $ ; delay
movx a, @dptr
mov b,a
mov a,#0ffh
clr c
subb a,b
ret
ReadTemp:
mov r1, #0
mov r2, #0
mov r0, #16
RLoop:
call ReadAD
add a, r2
mov r2, a
jnc GN1
inc r1
GN1:
djnz r0, RLoop
mov a, r2
swap a
anl a, #0fh
xch a, r1
swap a
anl a, #0f0h
orl a, r1 ; a = r1r2/16
mov b, #(HighTemp-LowTemp)
mul ab
mov a, b ; /256
add a, #LowTemp
mov CurTemp, a
ret
Start:
mov sp, #70h
MLoop:
call DisplayResult
call DisplayLED
call ReadTemp
sjmp MLoop
end
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -