《微機原理接口與技術》(8086彙編)期末考試、考研常見考題、習題,題型彙總、知識點總結、專周(十四)

實驗五:模數轉換ADC0808的應用

實驗器材:
在這裏插入圖片描述
電路圖:
在這裏插入圖片描述

仿真圖:
在這裏插入圖片描述
在這裏插入圖片描述

程序源碼:

;author:liuxianfei0810
A8255 EQU 40H
B8255 EQU 42H
C8255 EQU 44H
Q8255 EQU 46H
ADC0808 EQU 20H
;author:liuxianfei0810
CODE SEGMENT 
	ASSUME CS:CODE,DS:DATA
START:
	MOV AX,DATA
	MOV DS,AX
	MOV DX,Q8255
	MOV AL,90H
	OUT DX,AL
	;author:liuxianfei0810
	MOV DX,C8255
	MOV AL,0FFH
	OUT DX,AL
	;author:liuxianfei0810
	MOV SI,OFFSET TEMPDATA
HERE:
	MOV DX,ADC0808;啓動AD轉換
	MOV AL,0
	OUT DX,AL
	MOV CX,5	;數碼管顯示
MON:
	MOV Al,[SI];取TEMPDATA
	;out=5*vin_analog/256
	;OUT=out*100
	MOV AH,0
	MOV BL,51
	DIV BL
	;MOV Bx,2
	;MUL Bx;AX*BX  結果: DXAX
	;mov bx,100;取百位數據
	;div bx
	;push dx;保存餘數,即保存十位和個位數字
;author:liuxianfei0810
	MOV BX,OFFSET SEGDATA
	XLAT;以BX+AL的和作爲偏移地址,從相應的數據段中取出一個字節到AL中
	OR AL,80H
	MOV DX,B8255
	OUT DX,AL
	MOV AL,11011111B;第四個即最左邊數碼管顯示
	MOV DX,C8255
	OUT DX,AL;完成首位顯示
	CALL DELAY_1S
	MOV AL,0FFH
	OUT DX,AL
	MOV AL,AH
	MOV AH,0
	MOV BL,5
	DIV BL
	;author:liuxianfei0810
	;pop dx;取出保存的十位和個位數字
	;mov ax,dx
	;and ax,00ffh
	;mov al,al
	;mov bl,10;取十位數據
	;div bl;al保存十位數字 ah保存個位數字
	;author:liuxianfei0810
	;mov al,al;用於顯示十位數字
	;MOV BX,OFFSET SEGDATA;用於顯示十位數字
	;XLAT
	;MOV DX,B8255
	;OUT DX,AL
	;MOV AL,11011111B
	;MOV DX,C8255
	;OUT DX,AL;完成十位顯示
	;CALL DELAY_1S	
	;author:liuxianfei0810
	;mov al,ah;用於顯示個位數字
	MOV BX,OFFSET SEGDATA
	XLAT
	MOV DX,B8255
	OUT DX,AL
	MOV AL,10111111B
	MOV DX,C8255
	OUT DX,AL;完成個位顯示
	CALL DELAY_1S	
	;author:liuxianfei0810
	MOV AL,0FFH
	OUT DX,AL
	MOV AL,01111111B
	OUT DX,AL	
	MOV AL,00011100B
	MOV DX,B8255
	OUT DX,AL;完成單位顯示
	CALL DELAY_1S	
	MOV DX,C8255
	MOV AL,0FFH
	OUT DX,AL
	CALL DELAY_1S
	LOOP MON
	MOV DX,ADC0808;取ADC0808轉換結果
	;author:liuxianfei0810
	IN AL,DX
	MOV [SI],AL;存至TEMPDATA
	JMP HERE
	;author:liuxianfei0810
DELAY_1S PROC
		PUSH BX
		PUSH CX
		MOV BX,1
LP2:  	MOV CX,10
LP1:	LOOP LP1
		DEC BX
		JNZ LP2
		POP CX
		POP BX
		RET
		;author:liuxianfei0810
DELAY_1S ENDP
CODE ENDS

DATA SEGMENT
SEGDATA DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH
			;,77H,7CH,39H,5EH,79H,71H
TEMPDATA DB 0
DATA ENDS
END START

(有關ADC0808芯片講解見後文)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章