实验名称 双色灯实验
1.实验目的和要求
实验要求:
编写程序,以8255作为输出口,控制4个双色LED灯(可发红,绿,黄光)闪亮。
实验目的:
? 学习单板方式下扩展简单I/O接口的方法以及双色灯的实验方法。
? 进一步学习微处理器的编程技术。
2.实验原理
实验电路图如下所示:
实验程序:
D1 EQU 10H
D2 EQU 200H
DATA SEGMENT
PB DB ?
DATA ENDS
STACK SEGMENT STACK
STA DW 50 DUP(?)
TOP EQU LENGTH STA
STACK ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:
PUSH CS
POP DS
MOV DX,203H ;设置为全输出
MOV AL,80H
OUT DX,AL
MOV DX,202H
MOV AL,00
OUT DX,AL ;清LED
MOV DX,202H ;全红
MOV AL,0F0H
OUT DX,AL
MOV BX,7fH
CALL DLY
BG: MOV AL,01101001B ;南北绿,东西红
OUT DX,AL
MOV BX,D2
CALL DLY
MOV CX,03H
XH1: AND AL,0F6H ;绿灭
OUT DX,AL
MOV BX,D1
CALL DLY
OR AL,09H ;绿亮
OUT DX,AL
MOV BX,D1
CALL DLY
LOOP XH1
OR AL,90H ;南北黄
OUT DX,AL
MOV BX,D1
CALL DLY
MOV BX,D1
CALL DLY
MOV AL,10010110B ;南北红,东西绿
OUT DX,AL
MOV BX,D2
CALL DLY
MOV CX,03
XH2: AND AL,0F9H
OUT DX,AL
MOV BX,D1
CALL DLY
OR AL,06H
OUT DX,AL
MOV BX,D1
CALL DLY
LOOP XH2
OR AL,60H
OUT DX,AL
MOV BX,D1
CALL DLY
MOV BX,D1
CALL DLY
JMP BG
DLY PROC NEAR
PUSH CX
DDD: MOV CX,0FFFH
CCC: LOOP CCC
DEC BX
CMP BX,0
JNE DDD
POP CX
RET
DLY ENDP
CODE ENDS
END START
3.主要仪器设备(实验用的软硬件环境)
AEDK系列试验机调试软件LCA88ET
4.操作方法与实验步骤
1、将DG1~DG4,DR1~DR4用导线连接至8255的PC0~PC7,8255的CS芯片片选连接至138译码处的200H~207H插孔。电路连接图如下:
2、打开电源开关,编译程序,加载程序至实验板上。
3、观察并分析实验现象
5.实验内容及实验数据记录
双色LED灯是由一个红色LED管芯和一个绿色LED管芯封装在一起,公用负端。当红色正端加高电平,绿色正端加低电平时,红灯亮;红色正端加低电平,绿色正端加高电平时,绿灯亮;两端都加高电平时,黄灯亮。
本实验8255工作于方式0,四个双色灯红绿交替闪亮。
6.实验数据处理与分析
通过实验得出,LED灯的闪烁有一定的规律,四个双色灯红绿交替闪亮,每个灯的红、绿或者黄的状态是由输入信号的一对对应位来控制的。另外,灯每次闪烁的时间都是不一样的,一般经过一定的时间延时(通常为几秒)之后才会有下一个LED灯的变化。我们通过改变延时时间后看到灯的变化速度随之发生改变,但变化情况与延时前的顺序一样。
7.质疑、建议、问题讨论
实验中,在实验箱中接好线路并且编译后,四个灯均没有亮。在重新检查线路连接的过程中,发现是由于线路接触不良导致灯不亮,在几位同学的一起努力下,四个双色灯开始红绿交替闪亮。另外,本次实验的关键在于弄清对等各种颜色状态的控制,给低电平时灯不亮,给高电平时灯才会亮。通过改变给端口202赋不同的值,并且通过调用延时程序,可以实现灯不同顺序的闪烁和延迟。
实验名称 开关状态显示实验
1.实验目的和要求
实验要求:编写程序,通过8255的PA口为开关量输入,PC口为开关量输出,要求随时将PA口的开关状态通过PC口的发光二极管显示出来。
实验目的:学习使用8255各个口的不同工作方式。
2.实验原理
实验电路图如下所示:
实验程序:
DATA SEGMENT
DATA ENDS
STACK SEGMENT STACK
STA DW 50 DUP(?)
TOP EQU LENGTH STA
STACK ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,ES:DATA,SS:STACK
START:
MOV DX,203H ;设置为A口输入,B口输出
MOV AL,90H
OUT DX,AL
BG: MOV DX,200H ;将A口状态从B口输出
IN AL,DX
MOV DX,202H
OUT DX,AL
JMP BG
CODE ENDS
END START
3.主要仪器设备(实验用的软硬件环境)
AEDK系列试验机调试软件LCA88ET
4.操作方法与实验步骤
将K1~K8连接到PA0~PA7、将DL1~DL8连接至8255的PC0~PC7,8255的 CS用连线连至译码处的200H~207H
5.实验内容及实验数据记录
8255工作于方式0,PA口设置为输入,PC口设置为输出,输入量为开关量。通过8255可实时显示在LED灯上。按下HALT或RST则返回监控。
6.实验数据处理与分析
通过实验可以看出,LED灯的闪烁是通过开关控制的,如果开关断开,则对应的LED灯不亮,如果拨动开关闭合,则对应的灯变亮。如果改变程序后无论开关状态如何改变都可以使LED灯永远到达于某一个亮/暗的状态。
7. 质疑、建议、问题讨论
在本次实验中,线路比较多,再加上线路也不太稳定,这就需要我们更加耐心地对待。并且,通过对实验程序的分析,也提高了我们对汇编语言的认识。
实验名称 定时器/计数器实验
1.实验目的和要求
实验要求:
编程将8253的定时器0设置为方式3,定时器1设置为方式2,定时器2设定在方式2,定时器0输出,作为定时器1的输入,定时器1的输出作为定时器2的输入,定时器2的输出接在一个LED上,运行可观察到该LED灯不断闪烁。
实验目的:
了解8253定时器的硬件连接方法及时序关系。掌握8253的各种模式的编程及其原理。
2.实验原理
实验电路图如下所示:
定时计数器连线图:
实验程序:
TIM_CTL EQU 22bH
TIMER0 EQU 228H
TIMER1 EQU 229H
TIMER2 EQU 22aH
MODE03 EQU 00110110B
MODE13 EQU 01110100B
MODE22 EQU 10110100B
DATA SEGMENT
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START: PUSH DS
MOV AX,0
PUSH AX
MOV AX,DATA
MOV DS,AX
CLI ;关中断
MOV DX,TIM_CTL ;定时器0工作在方式3
MOV AL,MODE03
OUT DX,AL
MOV DX,TIMER0
MOV AL,00H
OUT DX,AL
mov al,01h
out dx,al
MOV DX,TIM_CTL ;定时器1工作在方式3
MOV AL,MODE13
OUT DX,AL
MOV DX,TIMER1
MOV AL,18H
OUT DX,AL
mov al,00h
out dx,al
MOV DX,TIM_CTL ;定时器2工作在方式2
MOV AL,MODE22
OUT DX,AL
MOV DX,TIMER2
MOV AL,0aH
OUT DX,AL
mov al,00h
out dx,al
STI
JMP $
CODE ENDS
END START
3.主要仪器设备(实验用的软硬件环境)
AEDK系列试验机调试软件LCA88ET
4.操作方法与实验步骤
? 8253中GATE0、GATE1、GATE2接+5V。
? CLK0接波特率开关边的f插孔,CLK1接OUT0,CLK2接OUT1。
? CS接228H~22FH孔。
5.实验内容及实验数据记录
8253的工作频率是0~2MHz,所以输入的CLK频率必须在2MHz以下。实验板上的晶振是14.7456MHz,因此须经过8284和393分频后再作为8253的CLK输入(一般可实验板上将波特率开关边上F插孔引至定时器0输入。
6.实验数据处理与分析
实验中,实验程序加载到实验箱上运行后可观察到该LED在不停闪烁。发光管的亮暗情况是通过开关控制的其中开关CLK0作为输入口,经过CLK1、CLK2两个开关后接至发光管DL1上,通过CLK2控制发光管的亮暗及亮暗时间。如果改变程序后,将开关CLK2连接至其他输入端和发光管,依然可以看到是通过开关CLK2控制发光管亮暗及亮暗时间。
7.质疑、建议、问题讨论
此次实验让我加深了对8253工作原理的理解,8253定时计数器以硬件计数器构成,计数脉冲触发硬件计数器计数,如果计数脉冲的周期固定,则计数同时产生定时,通过对计数器的工作方式和相关参数的设定,可以输出不同的波形来实现控制机器的工作状态,但8253的每个计数通道的计数都有上限,当计数的时间不能满足要求时,可以通过两个计数器的叠加实现更长的时间技术要求。
实验名称 A/D转换实验
1. 实验目的和要求
实验要求:
编程用查询方式采样电位器输入电压,并将采样到的结果实时地通过8279显示在数码管上。(只须显示一位即可。用0~F表示0~+5V电压)
实验目的:
1、掌握A/D芯片ADC0809转换性能及编程方法。
2、学习A/D芯片与其他芯片(如8279)接口的方法,初步建立系统的概念。
2.实验原理
实验电路图如下所示:
A/D转换实验程序:
Z8279 EQU 212H
D8279 EQU 210H
LEDMOD EQU 00 ;左边输入,八位显示外部译码八位显示
LEDFEQ EQU 38H ;扫描频率
CODE SEGMENT
ASSUME CS:CODE,DS:code
START: push cs
pop ds
call delay
MOV DX,Z8279
MOV AL,LEDMOD
OUT DX,AL
MOV AL,LEDFEQ
OUT DX,AL
MOV CX,06H
XZ: MOV DX,D8279
MOV AL,00H
OUT DX,AL
LOOP XZ
MOV DX,D8279
MOV AL,5eH
OUT DX,AL
MOV DX,D8279
MOV AL,77H
OUT DX,AL ;以上为写(AD )
NOP
bg: mov dx,208h
mov al,0
out dx,al
call delay
in al,dx
mov cl,04h
ror al,cl
and al,0fh
;MOV BL,AL ;查表,将键码放入AL中
push ax
; mov cx,08h
; mov al,00h
; clear: out dx,al
; loop clear
mov dx,z8279
mov al,83h
out dx,al
; MOV AL,BL
pop ax
LEA BX,LED
XLAT
MOV DX,D8279 ;将AL中内容写到数码管上
OUT DX,AL
call delay
jmp bg
LED DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39H
DB 5EH,79H,71H
delay proc near
push cx
mov cx,0f00h
loop $
pop cx
ret
delay endp
CODE ENDS
END START
3.主要仪器设备(实验用的软硬件环境)
AEDK系列试验机调试软件LCA88ET
4.操作方法与实验步骤
CS79接译码处210H~217H插孔,A/D的CS插孔接译码出208H~20FH插孔,EOC接IRQ2,0809的IN0接至电位器W1的中心抽头插孔(注意:W1电位器两端已经接好,不需再接,以防出现地与电源短路严重问题)。
5.实验内容及实验数据记录
实验中,通过调节变阻器,可观察到数码显示管上会显示数字,并且如果按同一方向旋转,则显示的数字呈递加或者递减,显示的数字范围为0~F。本实验中所用实验用A/D转换芯片为逐渐逼近型,精度为8位,每转换一次约100微秒,所以程序若为查询式,则在启动后要加适当延时。
6.实验数据处理与分析
通过调节变阻器使输入电压为0-5V3方式下,A/D转换结束后会自动产生EOC信号,将其与PC总线的IRQ2相连即能实现中断采集。模拟输入经过A/D转换后输出数字变量存放在内存缓冲区里。
7.质疑、建议、问题讨论
这次实验根据不同电压模拟量的输入,通过采样产生不同的数字信号显示在数码管上。由于ADC0809可以有不同的控制方式,如果在控制过程中加入8255芯片可以更好的来实现A/D转换的控制。通过本次实验,我们更加了解了0809芯片进行模数转换的基本原理等。
实验名称 D/A转换实验
1.实验目的和要求
实验要求:
编写程序,使D/A转换模块输出三角波和锯齿波。
实验目的:
1、掌握DAC0832芯片的4性能、使用方法及对应的硬件电路。
2、了解D/A转换的基本原理。
2.实验原理
实验电路图如下所示:
D/A转换实验程序:
CODE SEGMENT
ASSUME CS:CODE,DS:code,SS:code
START:
push cs
pop ds
BG: nop
MOV DX,228H ;锯齿波
MOV AL,00H
MOV CX,01ffH
BB: OUT DX,AL
ADD AL,01H
CMP AL,00H
JNZ BB
LOOP BB
nop
MOV AL,00H
MOV CX,01ffH
EE: OUT DX,AL
ADD AL,01H
CMP AL,0FFH
JNE EE
FF: OUT DX,AL
SUB AL,01H
CMP AL,00H
JNE FF
LOOP EE
jmp bg
CODE ENDS
END START
3.主要仪器设备(实验用的软硬件环境)
AEDK系列试验机调试软件LCA88ET
4.操作方法与实验步骤
DAC0832的片选CS0832孔接译码处的228H~22FH处。用示波器测量Vout脚波形。
5.实验内容及实验数据记录
D/A转换是把数字量转换成模拟量的变换,D/A电路输出的是模拟电压信号。
6.实验数据处理与分析
通过此次实验,我们发现改变不同的初始值可以得到幅度和波形不同的波。产生方波需控制输出高低电平的时间,产生三角波的表格需由数字量的增减来控制,同时要注意三角波要分两端来产生。
7.质疑、建议、问题讨论
在此次实验中,倘若要完成四个波形的实验,对于我们来说还是比较困难的。这需要我们能够很明白地读懂实验程序,弄清形成各种波形的原理,这样我们才能通过改变程序来实现各种波形的形成。