?? adc0809a.asm
字號:
;-------------------------------------------------------
; 程序說明
;實現功能:通過ADC0809(模/數轉換器)將輸入的模擬電壓轉換成8位
;的16進制數并顯示在屏幕上(通過延時方式進行A/D轉換),按任意鍵退出程序。
;
; 測試專用,適用于唐都TD-PIT實驗箱 胖大海
;-------------------------------------------------------
ADC0809 EQU 1040H ;定義ADC0809的IN0的端口地址
CODE SEGMENT
ASSUME CS:CODE
START:
MOV DX,ADC0809 ;IN0的端口地址送DX
OUT DX,AL ;通過向IN0的端口地址送數據來啟動IN0開始轉換
;注意此時的AL值的大小對程序的執行無影響
CALL DELAY ;延遲一會兒
IN AL,DX ;讀取轉換結果
;----------------------------------------------------
;顯示讀取的16進制轉換結果,先顯示高位再顯示低位
MOV CH,AL ;把低4位保存到CH中,先處理高4位
AND AL,0F0H
MOV CL,04H
SHR AL,CL
CMP AL,09H
JG A1
ADD AL,30H
JMP A2
A1: ADD AL,37H
A2: MOV DL,AL
MOV AH,02H
INT 21H
MOV AL,CH ;處理低4位
AND AL,0FH
CMP AL,09H
JG A3
ADD AL,30H
JMP A4
A3: ADD AL,37H
A4: MOV DL,AL
MOV AH,02H
INT 21H
;----------------------------------------------------
CALL DELAY ;輸出一個回車
MOV DL,0DH
MOV AH,02H
INT 21H
MOV AH,06H ;是否有鍵盤輸入,有則退出
MOV DL,0FFH
INT 21H
JNE EXIT1
JMP START
EXIT1:
MOV AH,4CH
INT 21H
;------------------------------------------------------------
;延遲子程序
DELAY PROC NEAR
PUSH CX
PUSH AX
MOV CX,4000H
DELAY1: MOV AX,0FF0H
DELAY2: DEC AX
JNZ DELAY2
LOOP DELAY1
POP AX
POP CX
RET
DELAY ENDP
;------------------------------------------------------------
CODE ENDS
END START
;------------------------------------------------------------
; 參考接線:
;ADC0809的D0-D7接ISA仿真借口的XD0-XD7
;ADC0809的A-C接ISA仿真借口的XA0-XA2
;ADC0809的WR、RD、CS分別接ISA仿真借口的XIOW、XIOR、IOY2
;ADC0809的CLK接信號源單元的10KHz
;ADC0809的IN0接ADJ(模擬電壓源)
;
; 一些說明:
;因為PCI的I/O基地址是系統動態給定的,不同的機型的PCI的I/O基地址各不相同
;而I/O信號線對應的實際地址=基地址+相對偏移。
;IOY2的相對偏移為40-5FH,所以當你選中IOY2時(假設I/O基地址
;為1400),IOY2可使用的I/O地址范圍為1440H-145FH
;(即1400H+40H到1400H+5FH)
;
;如果線接對了、I/O地址也都對、程序也一樣,還是出不來,
;那就是箱子有問題。
;------------------------------------------------------------
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -