目录
实验一 8255并行口实验
实验题目: 8255并行口实验
实验目的: 掌握8255A的编程原理
实验原理: 两部分电路:开关量输入输出电路和8255可编程并口电路
实验内容: 8255A的A口作为输入口,与逻辑电平开关相连。8255A的B口作为输出口,与发光二极管连。编写程序,使得逻辑电平开关的变化在发光二极管上显示出来。
1.实验步骤:
(1)CS0<—>CS8255 PA0~PA7<—>平推开关的输K1~K8 PBO~PB7——发光二极管的输入LED1~LED8
(2)编程并全速或单步运行。
(3)全速运行时拨动开关,观察发光二极管的变化。当开关某位置于L时,对应的发光二极管点亮,置于H时熄灭。
(4)8255A是比较常用的一种并行接口芯片8255A有三个8位的输入输出端口,通常将A端口作为输入用,B端口作为输出用,C端口作为辅助控制用,本实验也是如此。实验中,8255A工作于基本输入输出方式(方式0)。
2.程序流程图:
3.实验电路图:
4.程序源代码:
assume cs:code
code segment public
org 100h
start:
mov dx,04a6h
mov al,90h ;A口输入,B口输出
out dx,al
start1:
mov dx,04a0h
in al,dx ;A口输入
mov dx,04a2h
out dx,al ;B口输出
jmp start1
code ends
end start
5.实验结果分析:
程序全速运行后,逻辑电平开关的状态改变应能在LED上显示出来,将开关按钮全部打开,对应的LED1-LED8灯全部点亮。
实验二 8255并行口实现十字路口红绿灯实验
实验题目: 8255并行口实现十字路口红绿灯实验
实验目的: 掌握8255A的编程原理
实验原理: 两部分电路:开关量输入输出电路和8255可编程并口电路
实验内容: 8255A的A口作为输入口,与逻辑电平开关相连。8255A的B口作为输出口,与发光二极管相连。编写程序,使得逻辑电平开关的变化在发光二极管上显示出来。
1.程序流程图:
2.实验电路图:
3.程序源代码:
DATA SEGMENT
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:
MOV AX,80H
MOV DX,04A6H
OUT DX,AX
F:
;状态1
MOV AX,24H
MOV DX,04A4H
OUT DX,AX
CALL DELAY
;状态2
MOV CX,4
F1:
MOV AX,44H
MOV DX,04A4H
OUT DX,AX
CALL S
MOV AX,04H
MOV DX,04A4H
OUT DX,AX
CALL S
LOOP F1
;状态3
MOV AX,81H
MOV DX,04A4H
OUT DX,AX
CALL DELAY
;状态4
MOV CX,4
F2:
MOV AX,82H
MOV DX,04A4H
OUT DX,AX
CALL S
MOV AX,80H
MOV DX,04A4H
OUT DX,AX
CALL S
LOOP F2
JMP F
;长延迟
DELAY PROC NEAR
PUSH CX
PUSH DI
MOV CX,200H
Y1:
MOV DI,200H
X1:
DEC DI
JNE X1
LOOP Y1
POP DI
POP CX
RET
DELAY ENDP
;短延迟
S PROC NEAR
PUSH CX
PUSH DI
MOV CX,150H
YY: MOV DI,150H
XX: DEC DI
JNE XX
LOOP YY
POP DI
POP CX
RET
S ENDP
MOV AH,4CH
INT 21H
CODE ENDS
END START
实验结果分析:
A口输出C口输出,南北口绿灯亮,东西口红灯亮,接着长延时,南北口黄灯闪烁三次,转换为红灯,东西口红灯转换为绿灯。短延迟后南北口红灯亮,东西口黄灯闪。按下结束按钮程序则结束,否则短延迟后十字路口红绿灯接着运行。
实验三 8253定时器/计时器接口实验
实验题目: 8253定时器/计时器接口实验
实验目的: 掌握8253定时器的编译原理,用示波器观察不同模式下的输出波形。
实验原理: 两部分电路:脉冲产生电路、8253定时器/计数器电路
实验内容: 8253计数器0,1,2工作于方波方式,观察其输出波形。
1.实验步骤:
(1)实验连线:
CS0<->CS8253, OUT0<->8253CLK2,OUT2<->发光二极管的输入LED1,示波器<->0UT1,CLK3<->8253CLK0,CLK3<->8253CLK1
(2)编程调试程序
(3)全速运行,观察实验结果
2.程序流程图:
3.实验电路图:
3.程序源代码:
assume cs:code
code segment public
org 100h
start:
mov dx,04a6h ;控制口
mov al,36h ;T0,方式3 927CH
out dx,al
mov dx,04a0h
mov al,7Ch
out dx,al
mov dx,04a0h
mov al 92h
out dx,al
mov dx,04a6h
mov al,76h ;T1,方式3 32h
out dx,al
mov dx,04a2h
mov al,32h
out dx,al
mov dx,04a6h
mov ax,0b6h ;T2,方式3 04h
out dx,al
mov dx,04a4h
mov al,04h
out dx,al
next:
nop
jmp next
code ends
end start
4.实验结果及分析:
程序全速运行后,LED1闪烁(周期为0.25s),OUT1示波器观察为方波,频率为15KHZ。
本次实验使用工作方式3完成循环往复的灯亮灭操作。由于接收到的是随机的单脉冲信号,不是有准确时间规律的信号,因此8253完成的是计数功能,而不是计时功能。
综上所述,8253定时器/计数器接口实验的结果分析主要是针对工作方式、信号类型和计数初值等方面进行的实验。
实验四 D/A实验
实验题目: D/A实验
实验目的: 熟悉数模转换的基本原理,掌握D/A的使用方法
实验原理: 本实验用A/D、D/A电路
实验内容: 利用D/A转换器产生锯齿和三角波。
1.实验步骤:
(1)实验接线
CSO <—>CS0832 示波器<—>DOUT DS 跳线:1<->2
(2)用实验箱左上角的“VERF.ADJ”电位器调节0832的8脚上的参考电压至5V。
(3)调试程序并全速运行,产生不同波形。
(4)用示波器观察波形。
(5)利用电位器“ZERO.ADJ”可以调零,“RANGE.ADJ”电位器调整满偏值。DAC0832在本实验中,工作在双缓冲接口方式下。当地址线A1=0时可锁存输入数据;当A1=1时,可起动转换输出。所以要进行D/A转换需分二步进行。
2.程序流程图:
3.实验电路图:
4.程序源代码:
(1)产生锯齿波:
assume cs:code
code segment public
org 100h
start: mov dx,04a0h
up1: mov bx,0
up2: mov ax,bx
out dx,ax ;锁存数据
mov dx,04a2h
out dx,ax ;输出使能
mov dx,04a0h
inc bx ;数据加一
jmp up2
code ends
end start
(2)产生三角波:
assume cs:code
code segment public
org 100h
start: mov dx,04a0h
mov bx,0
up: mov ax,bx
out dx,ax ;锁存数据
mov dx,04a2h
out dx,ax ;输出使能
inc bx
mov dx,04a0h
cmp bx,0ffh
jne up ;产生三角波上升沿
down: mov ax,bx
out dx,ax ;锁存数据
mov dx,04a2h
out dx,ax ;输出使能
dec bx
mov dx,04a0h
cmp bx,0
jne down ;产生三角波下降沿
jmp up
code ends
end start
5.实验结果及分析:
(1)产生锯齿波:
(2)产生三角波:
通过本次实验,我深入了解了D/A转换器的工作原理及其性能特点。这些知识不仅有助于我更好地理解电子系统中的数字与模拟信号转换,还为今后更深入的学习提供了基础。