微机原理课程设计压力测试系统的设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
源程序:
CODE SEGMENT ;电椅代码段
ASSUME CS:CODE ;段分配
ORG 1000H ;起始地址
ADPORT EQU FFFOH ;定义AD口
IOCONPT EQU 0FF2BH ;定义8255控制口
IOBPT EQU 0FF29H ;定义8255B口
START:CALL FORMAT ;初始化
ADCON:CALL DISP ;调用DISP 显示
ADCON1:MOV AX,00 ;启动A/D
MOV DX, ADPORT
OUT DX, AL
MOV CX,0500H
DELAY1:LOOP DELAY1 ;延时
MOV DX,ADPORT ;将通道0地址写入DX IN AL,DX ;读取A/D转化值
PUSH AX ;输入AX 即将A/D转化数据存入AX中
IO: MOV DX,IOCONPT ;
MOV AL,10010010B
OUT DX,AL
MOV DX,,IOBPT
IN AL,DX ;从DX中读入AL,读出A/D转化
值
TEST AL,80H ;测试提取8255PB7口
JNZ LESS 30 ;不等跳转LESS 30
TEST AL 40H ;测试提取8255PB6口
JNZ GREATER 150 ;不等跳转GREATER 150 LESS 30:POP AX
MOV DX,,IOCPT
MOV AL,80H
OUT DX,AL ;输出8255PB7口值
CALL LL1 ;显示
GREATER:POP AX
MOV DX,IOCPT
MOV AL,40H
OUT DX,AL ;8255PB6口值
CALL LL1 ;显示
LL1: CALL CONVERS
CALL DISP
JMP ADCON1
CONVERS: MOV BL,AL
aam
MOV BX,077DH
mov DS:[BX],al
mov al,ah
aam
INC bx
mov DS:[Bx],al
INC bx
mov DS:[Bx],ah
RET ;通过两次校验将显示的三位数值分开进行存贮
disp: mov dx,077Fh
mov ah,20h ;动态显示,是最左边的数码管亮disp0: mov cx,00ffh
mov bx,dx ;bx=077FH
mov bl,ds:[bx]
mov bh,0h
push dx
mov dx,0ff22h
mov al,cs:[bx+OFFSET DATA1]
OUT DX,AL
mov dx,0ff21h
mov al,ah
OUT DX,AL
disp1: loop disp1 ;循环,延时
pop dx
dec dx
shr ah,01h
jnz disp0 ;不为0转移至disp0
mov dx,0ff22h
mov al,0ffh
OUT DX,AL
ret ;这里disp、disp0、disp1的作用是为了显示三位数值,从左至右依次
的输出各位至。高三位不变,低三位进行显示
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