1. A/D转换及显示程序
CODE SEGMENT
ASSUME CS:CODE
ADPORT E QU 0010h ;片选Y1=0010H
ORG 1000H
START: JMP ADCONTORL
ADCONTORL:CALL FORMAT ;格式化子程序
ADCON: MOV AX,00 ;AD0通道号送AL
MOV DX,ADPORT ;AD控制口地址0010H送DX
OUT DX,AL ;启动AD转换,即00H送0010H
MOV CX,0500H ;软件延时100μs
DELAY: LOOP DELAY
MOV DX,ADPORT ;0010H送DX
IN AL,DX ;从0010H读取AD转换数据送AL
CALL CONVERS ;调用拆字子程序,将AD转换数据拆成二进制的高4位
和低4位
CALL DISP ;调用7段数码显示子程序
JMP ADCON ;转ADCON继续
CONVERS:MOV AH,AL ;拆字子程序
AND AL,0FH
MOV BX,077AH
MOV DS:[BX],AL
INC BX
MOV AL,AH
AND AL,0F0H
MOV CL,04H
SHR AL,CL
MOV DS:[BX],AL
RET
disp: mov dx,077Fh 7段数码显示子程序
mov ah,20h
disp0: mov cx, 0ffh
mov bx,dx
mov bl,ds:[bx]
mov bh,0h
push dx
mov dx,0ff22h ;DX指向字形控制
mov al,cs:[bx+1060h]
OUT DX,AL
mov dx,0ff21h
mov al,ah
OUT DX,AL
disp1: loop disp1
pop dx
dec dx
shr ah,01h
jnz disp0
mov dx,0ff22h
mov al,0ffh
OUT DX,AL
ret
data1: db 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h,88h,83h,0c6h,0ah db 86h,8eh,0ffh,0ch,89h,0deh,0c7h,8ch,0f3h,0bfh ;十六进制数字形代码表FORMAT: MOV BX,0 ;格式化子程序MOV WORD PTR DS:[BX+077AH],0000H
ADD BX,2
MOV WORD PTR DS:[BX+077AH],0009H
ADD BX,2
MOV WORD PTR DS:[BX+077AH],0008H
RET
CODE ENDS
END START
2. D/A转换0832应用程序
ODE SEGMENT
ASSUME CS:CODE
DAPORT EQU 0020H ;片选Y2=0020H
ORG 10a0h
START: MOV AL,0FFH ;FFH送AL寄存器
DACON1: MOV DX,DAPORT ;DX指向0020H
OUT DX,AL ;将FFH送DX启动D/A转换,输出电压+5V MOV CX,0400H ;延时一段时间
DACO2: LOOP DACO2
NOT AL ;将AL求反=00H
JMP DACON1
CODE ENDS
END START
3. 并口8255 应用交通灯控制
CODE SEGMENT
ASSUME CS:CODE
IOCONPT EQU 0FF2BH ;控制口
IOAPT EQU 0FF28H ;数据口A口
IOBPT EQU 0FF29H ;数据口B口
IOCPT EQU 0FF2AH ;数据口C口
START: MOV DX,IOCONPT ;DX指向控制口
MOV AL,80H ;控制字送AL
OUT DX,AL ;设置A、B、C口为输出工作方式MOV DX,IOBPT ;将B口置0FFH,点亮
MOV AL,0FFH
OUT DX,AL
MOV DX,IOCPT
MOV AL,0FH ;H
OUT DX,AL
CALL DELAY1
IOLED0: MOV AL,01011010B ;13L 24H
MOV DX,IOCPT
OUT DX,AL
CALL DELAY1
CALL DELAY1
MOV AL,00001010B ;13LN
OUT DX,AL
MOV CX,8H
IOLED1: MOV DX,IOBPT
MOV AL,50H
OUT DX,AL
CALL DELAY2
MOV AL,00H
OUT DX,AL
CALL DELAY2
LOOP IOLED1
MOV DX,IOCPT
MOV AL,10100101B
OUT DX,AL
CALL DELAY1
CALL DELAY1
MOV AL,00000101B
OUT DX,AL
MOV CX,8H
IOLED2: MOV DX,IOBPT
MOV AL,0A0H
OUT DX,AL
CALL DELAY2
MOV AL,00H
OUT DX,AL
CALL DELAY2
LOOP IOLED2
MOV DX,IOCPT
OUT DX,AL
CALL DELAY2
JMP IOLED0 DELAY1: PUSH AX
PUSH CX
MOV CX,0030H DELY2: CALL DELAY2 LOOP DEL Y2
POP CX
POP AX
RET
DELAY2: PUSH CX
MOV CX,8000H DELA1: LOOP DELA1 POP CX
RET
CODE ENDS
END START