计算机与通信
综合实验
计算机与通信综合实验硬件实验
实验一 A/D转换实验
一、实验目的
了解模/数转换的基本原理ADC使用0809。
二、实验内容
将实验系统上电位器提供的可调电压作为0809模拟信号的输入,编制程序,通过数字管将模拟量转换为数字量。
三、实验接线图
四、程序流程图
五、程序源代码
CODE SEGMENT ;H0809.ASM
ASSUME CS:CODE
ADPORT EQU 8000h
PA EQU 0FF21H ;字位口
PB EQU 0FF22H ;字形口
PC EQU 0FF23H ;键入口
ORG 1000H
START: JMP START0
BUF DB ?,?,?,?,?,?
data1: db 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h,88h,83h,0c6h,0a1h
db 86h,8eh,0ffh,0ch,89h,0deh,0c7h,8ch,0f3h,0bfh,8FH
START0: CALL BUF1
ADCON: MOV AX,00
MOV DX,ADPORT
OUT DX,AL
MOV CX,0500H
DELAY: LOOP DELAY
MOV DX,ADPORT
IN AL,DX
CALL CONVERS
CALL DISP
JMP ADCON
CONVERS:MOV AH,AL
AND AL,0FH
MOV BX,OFFSET BUF
MOV [BX 5],AL
MOV AL,AH
AND AL,0F0H
MOV CL,04H
SHR AL,CL
MOV [BX 4],AL
RET
DISP: MOV AL,0FFH ;00H
MOV DX,PA
OUT DX,AL
MOV CL,0DFH ;20H ;显示子程序 ,5ms
MOV BX,OFFSET BUF
DIS1: MOV AL,[BX]
MOV AH,00H
PUSH BX
MOV BX,OFFSET DATA1
ADD BX,AX
MOV AL,[BX]
POP BX
MOV DX,PB
OUT DX,AL
MOV AL,CL
MOV DX,PA
OUT DX,AL
PUSH CX
DIS2: MOV CX,00A0H
LOOP $
POP CX
CMP CL,0FEH ;01H
JZ LX1
INC BX
ROR CL,1 ;SHR CL,1
JMP DIS1
LX1: MOV AL,0FFH
MOV DX,PB
OUT DX,AL
RET
BUF1: MOV BUF,00H
MOV BUF 1,08H
MOV BUF 2,00H
MOV BUF 3,09H
MOV BUF 4,00H
MOV BUF 5,00H
RET
CODE ENDS
END START
六、程序运行结果
接线图:
源代码界面:
运行结果:
输出数为0:
输出数量为FF:
80输出数字:
实验二 8255A并行口试验(1)
一、实验目的
⒈ 掌握8255A微机接口法。
⒉ 掌握8255A工作方法和编程原理。
二、实验内容
用8255PA口控制PB口。
三、实验接线图
四、实验程序框图
五、程序源代码
CODE SEGMENT ;H8255-1.ASM
ASSUME CS:CODE
IOCONPT EQU 0FF2BH
IOBPT EQU 0FF29H
IOAPT EQU 0FF28H
ORG 11B0H
START: MOV AL,90H
MOV DX,IOCONPT
OUT DX,AL
NOP
NOP
NOP
IOLED1: MOV DX,IOAPT
IN AL,DX
MOV DX,IOBPT
OUT DX,AL
MOV CX,0FFFFH
DELAY: LOOP DELAY
JMP IOLED1
CODE ENDS
END START
六、程序运行结果
源代码界面:
接线图:
运行结果:
灯泡全亮:
灯泡3、5亮:
灯泡1灭:
实验三 8255A并行口试验(2)
一、实验目的
掌握通过8255A并行口传输数据的方法是控制发光二极管的亮度和灭度。
二、实验内容
以8255为输出口,控制12个发光管亮灭,模拟交通灯管理。
三、实验接线图
四、实验流程图
五、实验程序清单
CODE SEGMENT ;H8255-2.ASM
ASSUME CS:CODE
IOCONPT EQU 0FF2BH
IOAPT EQU 0FF28H
IOBPT EQU 0FF29H
IOCPT EQU 0FF2AH
ORG 11e0H
START: MOV AL,82H
MOV DX,IOCONPT
OUT DX,AL
MOV DX,IOBPT
IN AL,DX
MOV BYTE PTR DS:[0601H],AL
MOV DX,IOCONPT
MOV AL,80H
OUT DX,AL
MOV DX,IOBPT
MOV AL,DS:[0601H]
OR AL,0F0H
OUT DX,AL
MOV DX,IOCPT
MOV AL,0F0H
OUT DX,AL
CALL DELAY1
IOLED0: MOV AL,10100101B
MOV DX,IOCPT
OUT DX,AL
CALL DELAY1
ALL DELAY1
OR AL,0F0H
OUT DX,AL
MOV CX,8H
IOLED1: MOV DX,IOBPT
MOV AL,DS:[0601H]
AND AL,10101111B
OUT DX,AL
CALL DELAY2
OR AL,01010000B
OUT DX,AL
CALL DELAY2
LOOP IOLED1
MOV DX,IOCPT
MOV AL,0F0H
OUT DX,AL
CALL DELAY2
MOV AL,01011010B
OUT DX,AL
CALL DELAY1
CALL DELAY1
OR AL,0F0H
OUT DX,AL
MOV CX,8H
IOLED2: MOV DX,IOBPT
MOV AL,DS:[0601H]
AND AL,01011111B
OUT DX,AL
CALL DELAY2
OR AL,10100000B
OUT DX,AL
CALL DELAY2
LOOP IOLED2
MOV DX,IOCPT
MOV AL,0F0H
OUT DX,AL
CALL DELAY2
JMP IOLED0
DELAY1: PUSH AX
PUSH CX
MOV CX,0030H
DELY2: CALL DELAY2
LOOP DELY2
POP CX
POP AX
RET
DELAY2: PUSH CX
MOV CX,8000H
DELA1: LOOP DELA1
POP CX
RET
CODE ENDS
END START
六、程序运行结果
源代码界面:
实验接线图:
程序运行结果:
计算机与通信综合实验软件实验
学号是2014302540218,(学号尾数 Mod 4) + 1=1。
实验目的:
编写一段程序,已知长度为20的BUF1中有20个无符号数,将其中的数据依次取出并乘3,如果出现溢出,则将溢出的部分去掉保留尾数,逆序存放在BUF2中。
实验源代码:
BUF1 DB 100,95,90,85,80,75,70,65,60,55,50,45,40,35,30,25,20,15,10,5
BUF2 DB 20 DUP(?)
LEA SI, BUF1
LEA DI, BUF2
MOV CL, 20
NEXT1: MOV AL, [SI]
MOV BL, 3
MUL BL
MOV [DI+19], AL
INC SI
DEC DI
LOOP NEXT1
HLT
源代码界面:
运行结果:
BUF1中存储的数据是:100,95,90,85,80,75,70,65,60,55,50,45,40,35,30,25,20,15,10,5
代码经过执行,BUF2中存储的数据是:
15,30,45,60,75,90,105,120,135,150,165,180,195,210,225,240,255,14,29,44
经验证,所得到的结果满足实验要求。
16
展开阅读全文