机自学院自动化系2016.3.20
目录
实验一开关状态显示 (3)
实验二模拟交通灯实验 (6)
实验三8253定时器/计数器实验 (10)
实验四D/A转换器实验 (15)
实验五A/D转换器实验 (18)
实验六8259中断控制(1) (22)
实验七8259中断控制(2) (25)
实验一开关状态显示
一、实验目的
熟悉实验箱和软件开发平台的使用。了解基本I/O端口的操作方法和技巧,掌握编程和调试基本技能。
二、实验内容
利用74LS244作为输入口,读取开关状态,根据给定表格中开关状态对应的输出关系,通过74LS273驱动发光二极管显示出来。
三、实验区域电路连接图
参考上图连线:
Y0~Y1接K1~K2(对应J1、J2);Q0~Q7接L1~L8(对应J3至J10);CS1接8000H 孔(对应J12);CS2接9000H孔(对应J11);IOWR→IOWR;IORD→IORD;然后用数据排线连接JX7→JX17(BUS2)。
四、编程指南
本实验要求编写程序将连接在74LS244芯片端口的开关状态读入,根据下面表格给出的开关状态对应的LED输出灯亮状态,控制74LS273芯片驱动LED。按下MON或系统复位键则返回监控。
五、程序框图
六、实验步骤
1. 按连线图连接好,检查无误后打开实验箱电源。
2. 在PC端软件开发平台上输入设计好的程序,编译通过后下载到实验箱。
3. 运行程序后,拨动K1-K2,L1-L8会跟着亮灭。
4. 如果运行不正常就要检查连线,程序。排查错误,修改程序,直到运行程序正常。
七、实验程序清单及注释
根据要求编写程序,最后记录调试成功的程序,写好注释便于自己或他人阅读。
八、实验报告
应包括画电路图、实验程序框图、编程(要有注释)、调试过程及心得体会等。问答题:
1. I/O端口的寻址方式有哪2种?在x86系统中,采用哪一种?
2. 在输入/输出电路中,为什么常常要使用锁存器和缓冲器?
实验二模拟交通灯实验
一、实验目的
1. 学习在PC机系统中扩展简单I/O 接口的方法。
2. 进一步学习编制数据输出程序的设计方法。
3. 学习模拟交通灯控制的方法。
二、实验内容
用8255做输出口,控制十二个发光管(4组红绿黄灯)的亮灭,模拟十字路口交通灯管理。
三、实验区域电路连接图
PC0→L3;PC1→L7;PC2→L11;PC3→L15;红灯
PC4→L2;PC5→L6;PC6→L10;PC7→L14;绿灯
PB4→L1;PB5→L5;PB6→L9;PB7→L13。黄灯
8255数据、控制线内部已线连好。
四、编程指南
1. 通过8255A控制发光二极管,PB4-PB7对应黄灯,PC0-PC3对应红灯,PC4-PC7对应绿灯,以模拟交通路灯的管理。
2. 要完成本实验,必须先了解交通路灯的亮灭规律,设有一个十字路口l、3为南北方向,2、4为东西方向,初始状态为四个路口的红灯全亮,之后,1、3路口的绿灯亮,2、4路口的红灯亮,1、3路口方向通车。延时一段时间后,l、3路口的绿灯熄灭,而l、3路口的黄灯开始闪烁,闪烁若干次以后,l、3路口红灯亮,而同时2、4路口的绿灯亮,2、4路口方向通车,延时一段时间后,2、4路口的绿灯熄灭,而黄灯开始闪烁,闪烁若干次以后,再切换到l、3路口方向,之后,重复上述过程。
3. 程序中设定好8255A的工作模式及三个端口均工作在方式0,并处于输出状态。
4. 各发光二极管共阳极,使其点亮应使8255A相应端口的位清0。
五、程序框图
六、实验步骤
1. 按连线图连接好,检查无误后打开实验箱电源。
2. 在PC端软件开发平台上输入设计好的程序,编译通过后下载到实验箱。
3. 运行程序后,观察模拟交通管理灯是否按照设计的规律变化。
4. 如果运行不正常就要检查连线,程序。排查错误,修改程序,直到运行程序正常。
七、实验程序清单及注释
根据要求编写程序,最后记录调试成功的程序,写好注释便于自己或他人阅读。
八、实验报告
应包括画电路图、实验程序框图、编程(要有注释)、调试过程及心得体会等。
问答题:
1.8255A的哪个端口能实现位操作输出(按位置位/复位)?执行控制字写入
操作的端口是哪个?
2.写出下图中Intel8255A占用的4个端口地址。
A
A4
实验三8253定时器/计数器实验
一、实验目的
1.学会8253芯片与微机接口的原理和方法。
2. 掌握8253定时器/计数器的工作原理和编程方法。
二、实验内容
编写程序,将8253的计数器0设置为方式2(频率发生器),计数器1设置为方式3(方波频率发生器),计数器0的输出作为计数器1的输入,计数器1的输出接在一个LED上,运行后可观察到该LED在不停地闪烁。
1.编程时用程序框图中的二个计数初值,计算OUT1的输出频率,用表观察LED,进行核对。
2.修改程序中的二个计数初值,使OUT1的输出频率为1Hz,用手表观察LED,进行核对。
3.上面计数方式选用的是16进制,现若改用BCD码,试修改程序中的二个计数初值,使LED的闪亮频率仍为1Hz。
三、实验区域电路连接图
CS3→0040H;JX8→JX0;IOWR→IOWR;IORD→IORD;A0→A0;A1→A1;
GATE0→+5V;GATE1→+5V;OUT0→CLK1;OUT1→L1;CLK0→0.5MHz;(单脉冲与时钟单元)四、编程指南
8253是一种可编程定时/计数器,有三个十六位计数器,其计数频率范围为0-2MHz,用+5V单电源供电。8253的六种工作方式:
⑴方式0:计数结束中断⑷方式3:方波频率发生器
⑵方式l:可编程频率发生⑸方式4:软件触发的选通信号
⑶方式2:频率发生器⑹方式5:硬件触发的选通信号
8253方式控制字
SC1SC0RL1RL0M2M1M0BCD
00:选择计数器0 01:选择计数器1 10:选择计数器2 11:未使用00:锁定计数器
01:选择低8位
10:选择高8位
11:选择16位
(先读写低8位
后读写高8位)
000:选择方式0
001:选择方式1
x10:选择方式2
x11:选择方式3
100:选择方式4
101:选择方式5
计数码
制选择:
0:二进
制计数
1:BCD
码计数
8253初始化编程
1.8253初始化编程
8253的控制寄存器和3个计数器分别具有独立的编程地址,由控制字的内容确定使用的是哪个计数器以及执行什么操作。因此8255在初始化编程时,并没有严格的顺序规定,但在编程时,必须遵守两条原则:
①在对某个计数器设置初值之前,必须先写入控制字;
②在设置计数器初始值时,要符合控制字的规定,即只写低位字节,还是只写高位
字节,还是高、低位字节都写(分两次写,先低字节后高字节)。
2.8253的编程命令
8253的编程命令有两类:一类是写入命令,包括设置控制字、设置计数器的初始值命令和锁存命令;另一类是读出命令,用来读取计数器的当前值。
锁存命令是配合读出命令使用的。在读出计数器值前,必须先用锁存命令锁定当前计数寄存器的值。否则,在读数时,减1计数器的值处在动态变化过程中,当前计数输出寄存器随之变化,就会得到一个不确定的结果。当CPU将此锁定值读走后,锁存功能自动失效,当前计数输出寄存器的内容又跟随减1计数器变化。在锁存和读出计数值的过程中,减1计数器仍在作正常减1计数。这种机制确保了即能在计数过程中读取计数值,又不影响计数过程的进行。
五、程序框图
六、实验步骤
1. 按连线图连接好,检查无误后打开实验箱电源。
2. 在PC端软件开发平台上输入设计好的程序,编译通过后下载到实验箱。
3. 运行程序后,观察LED闪烁周期(可以看10次或更多次闪烁时间,以提高观察准确度)。
再按要求调整初始值,使得闪烁周期为1S时间。
4. 如果运行不正常就要检查连线,程序。排查错误,修改程序,直到运行程序正常。
七、实验程序清单及注释
根据要求编写程序,最后记录调试成功的程序,写好注释便于自己或他人阅读。
八、实验报告
应包括画电路图、实验程序框图、编程(要有注释)、调试过程及心得体会、计算步骤及结果、观察过程、实验内容部分要求的1Hz及BCD码的修改程序。
问答题:
1.8253初始化编程时需要遵循的原则是什么?
2.简述8253初始化编程的步骤。
实验四D/A转换器实验
一、实验目的
了解D/A转换的基本原理,掌握DAC0832芯片的性能、使用方法及对应的硬件电路。
二、实验内容
编写程序,要求输出锯齿波、三角波及方波,分别用示波器观察波形;如有能力,把三段程序编在一起,循环输出三种波形。
三、实验区域电路连接图
连线如下所示:
CS5→8000H;
IOWR→IOWR;
JX2→JX17;
AOUT→示波器。
四、编程指南
1. 首先须由CS片选信号确定量DAC寄存器的端口地址,然后锁存一个数据通过0832输出,典型程序如下:
MOV DX,DAPORT ;0832口地址
MOV AL ,DATA ;输出数据到0832
OUT
DX ,AL
2. 产生波形信号的周期由延时常数确定。
五、程序框图
六、实验步骤
1. 按连线图连接好,检查无误后打开实验箱电源。
2. 在PC 端软件开发平台上输入设计好的程序,编译通过后下载到实验箱。
3. 运行程序后,用示波器测量0832左侧AOUT 插孔,应有方波或锯齿波输出。
4. 如果运行不正常就要检查连线,程序。排查错误,修改程序,直到运行程序正常。
七、实验程序清单及注释
根据要求编写程序,最后记录调试成功的程序,写好注释便于自己或他人阅读。
八、实验报告
应包括画电路图、三个实验程序框图、编程(要有注释)、调试过程及心得体会等。得到的波形图要标示出示波器的量度(纵向每格电压幅度、横向每格时间标度)。波形的转折点处要标示清楚。给出清晰、明了的示波器波形解读(幅度和周期)。
问答题:
1.DAC产生波形的频率如何调节?频率上限的限制取决于那些因素?
2. 如果要求产生正弦波一般用什么方法实现?具体如何实施的(给个方案)。
实验五A/D转换器实验
一、实验目的
了解模/数转换基本原理,掌握ADC0809的使用方法。掌握A/D转换与计算机的接口方法,了解ADC0809芯片的转换性能及编程,了解计算机如何进行数据采集。
二、实验内容
编写程序,用查询方式采样输入模拟电压(模拟量电压从实验装置的电位器接入),并将其转换为二进制数字量,用发光二极管显示。
三、实验区域电路连接图
IN0→AOUT1(可调电
压,VIN→+5V);
IOWR→IOWR;
IORD→IORD;
CLK→500K(单脉冲与时
钟单元);
ADDA、ADDB、ADDC→GND;
CS4→8000H
JX6→JX17(数据总线)
PA0~7→L1~L8
四、编程指南
1. ADC0809的START端为A/D转换启动信号,ALE端为通道选择地址的锁存信号,实验
电路中将其相连,以便同时锁存通道地址并开始A/D采样转换,其输入控制信号为CS 和WR,故启动A/D转换只须如下两条指令:
MOV DX,ADPORT ;ADC0809端口地址
OUT DX,AL ;发CS和WR信号并送通道地址
2. A/D转换芯片为逐次逼近型,精度为8位,每转换一次约100微秒,所以程序若为查
询式,则在启动后要加适当延时。用延时方式等待A/D转换结果,使用下述指令读取A/D转换结果。
MOV DX,ADPORT ;ADC0809端口地址
IN AL,DX
3. 循环不断采样A/D转换的结果,边采样边显示A/D转换后的数字量。
五、程序框图
六、实验步骤
1. 按连线图连接好,参考实验一连接8255和LED让ADC转换结果在LED上显示。电位
器只需连接中心抽头,电源内部已经连接好了(电位器无需连接电源,以防短路)。
检查无误后打开实验箱电源。
2. 在PC端软件开发平台上输入设计好的程序,编译通过后下载到实验箱。
3. 运行程序后,观察LED显示,记录代码,计算获得的代码是否与输入电压符合。如果
显示的代码末位跳动厉害,影响观察,可以插入延时(大概1秒左右)。
4. 如果运行不正常就要检查连线,程序。排查错误,修改程序,直到运行程序正常。
5. 修改程序把延时获取A/D数据的方式改成查询EOC获取A/D数据的方式,指定8255