?? h39.asm
字號:
; 硬件實驗三十九 壓力(溫度)傳感器實驗
CS0809 equ 0a000h ; AD0809片選
OUTBIT equ 08002h ; 位控制口
OUTSEG equ 08004h ; 段控制口
IN equ 08001h ; 鍵盤讀入口
LEDBuf equ 60h ; 顯示緩沖
Num equ 70h ; 顯示的數(shù)據(jù)
DelayT equ 75h ;
ADResult equ 76h ; A/D轉(zhuǎn)換結(jié)果
org 0
ljmp Start
AD0809Read:
mov dptr, #CS0809
mov a, #0
movx @dptr, a ; 起動 A/D
mov a, #40h
djnz ACC, $ ; 延時 > 100us
movx a, @dptr ; 讀入結(jié)果
mov ADResult, a
ret
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 acc, DelayLoop
ret
SearchLedMap:
anl a, #0fh
mov dptr, #LEDMAP
movc a, @a+dptr
ret
DisplayLED:
mov r0, #LEDBuf
mov r1, #6 ; 共6個八段管
mov r2, #00100000b ; 從左邊開始顯示
Loop:
mov dptr, #OUTBIT
mov a, #0
movx @dptr, a ; 關(guān)所有八段管
mov a, @r0
mov dptr, #OUTSEG
movx @dptr,a
mov dptr, #OUTBIT
mov a, r2
movx @dptr, a ; 顯示一位八段管
mov a, #01
call Delay
mov a, r2 ; 顯示下一位
rr a
mov r2, a
inc r0
djnz r1, Loop
mov dptr, #OUTBIT
mov a, #0
movx @dptr, a ; 關(guān)所有八段管
ret
Start:
nop
call AD0809Read
mov LEDBuf+0, #40h
mov LEDBuf+1, #40h
mov LEDBuf+2, #40h
mov LEDBuf+3, #40h
mov a, ADResult
swap a
call SearchLedMap
mov LEDBuf+4, a
mov a, ADResult
call SearchLedMap
mov LEDBuf+5, a
mov DelayT,#80
DisplayAgain:
call DisplayLED
djnz DelayT,DisplayAgain
nop
sjmp Start
end
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -