一、實驗目的
掌握數碼管顯示數字的原理,
二、實驗原理和內容

三、編程提示

四、電路接線圖

五、程式設計流程圖

六、一些說明
- 將01h送到C口后,再將要顯示的資料送到A口,顯示的是個位,
- 將02h送到C口后,再將要顯示的資料送到A口,顯示的是十位,
- 注意判斷進位,
七、程式源代碼
stack segment stack
db 200 dup(0)
stack ends
data segment
APORT equ 288h
CPORT equ 28ah
CTRL equ 28bh
num db 3fh, 06h, 5bh, 4fh, 66h, 6dh, 7dh, 07h, 7fh, 6fh ;0~9
data ends
code segment
assume cs:code,ds:data,ss:stack
delay MACRO
local loop_delay
local flag
push cx
push bx
xor bx, bx
flag:mov cx, 0ffffh
loop_delay:loop loop_delay
inc bx
cmp bx, 10
jnz flag
pop bx
pop cx
ENDM
main: mov ax,data
mov ds,ax
mov ax, stack
mov ss, ax
mov dx, CTRL
mov al, 80h ;寫入控制字
out dx, al
xor si, si
xor di, di
loop1:cmp si, 10 ;檢查個位是否已經增加到10
jz carry ;進位
mov dx, CPORT
mov al, 02h
out dx, al
mov dx, APORT
mov al, num[di] ;顯示十位
out dx, al
delay
mov dx, CPORT
mov al, 01h
out dx, al
mov dx, APORT
mov al, num[si] ;顯示個位
out dx, al
inc si ;個位+1
delay
jmp loop1 ;還沒有進位個位繼續增加
carry:xor si, si ;進位后將個位清零
cmp di, 10 ;十位增加到10就從00重新開始
jz exit
mov dx, CPORT
mov al, 02h
out dx, al
mov dx, APORT
mov al, num[di]
out dx, al
inc di ;十位+1
delay
jmp loop1
exit:xor di, di
jmp loop1
mov ah,4ch
int 21h
code ends
end main
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/230723.html
標籤:其他
