按图20连接好电路,将8255的端口A的PA0~PA6分别与七段数码管的段码驱动输入端a~g相连,位码驱动输入端S1接+5V(选中),S0、dp接地(关闭)。编程从键盘输入一位十进制数字(0~9),并且在七段数码管上显示出来。(实验台上的七段数码管为共阴型,段码采用同相驱动,输入端加高电平,选中的数码管亮,位码加反相驱动器,位码输入端高电平选中。参考流程图见图21)
(2)交通灯控制
实验电路如图22所示。用L7(红)、L6(黄)、L5(绿)作为南北路口的交通灯与PC7、PC6、PC5相连;L2(红)L1(黄)L0(绿)作为东西路口的交通灯与PC2、PC1、PC0相连。编程使六个灯按照交通灯变化规律亮灭。十字路口交通灯的变化规律要求为:
①南北路口的绿灯、东西路口的红灯同时亮30秒左右;
②南北路口的绿灯灭、黄灯闪烁若干次,此时东西路口的红灯继续亮; ③南北路口的黄灯灭、红灯亮,东西路口红灯灭、同时绿灯亮30秒左右; ④南北路口的红灯继续亮,同时东西路口的绿灯灭、黄灯闪烁若干次; ⑤转①重复。
交通灯控制流程图如图23所示。
U4 8255
PC7
PC6
PC5
PC4
PC3 PC2 PC1 PC0
6CS ~288H 图22 (3)竞赛抢答器
图24为竞赛抢答器(模拟)的原理图,逻辑开关K0~K7代表竞赛抢答按钮0~7号,当某个逻辑电平开关置“1”时,相当某组抢答按钮按下。在七段数码管上将其组号(0~7)显示出来,并使微机扬声器响一下。
开始 将8255设为A口输出,C口输出 1011121317161514L7L6L5 L2L1L0(红)(黄)(绿)南北路口绿灯亮,东西路口红灯亮 长延时 南北路口绿灯亮,东西路口红灯亮 (红)(黄)(绿)南北路口绿灯亮,东西路口红灯亮 延时 有键按下吗? Y 结束 N 图23 交通灯控制程序流程图 23
图 24
设置8255为C口输入、A口输出,读取C口数据,若为0表示无人抢答,若不为0则有人抢答。根据读取数据可判断其组号。从键盘上按空格键开始下一轮抢答,按其它键程序退出。
3、编程提示
(1)8255控制寄存器端口地址 28BH 8255端口A的地址 288H 8255端口C的地址 28AH 4、预习要求
(1)仔细阅读本实验指导书; (2)复习8255方式0的工作原理、
使用方式和初始化编程方法; (3)根据流程图编好程序。 5、报告要求
(1)小结8255方式0的特点;
(2)把本实验与简单并行接口实验相比较。
图25
24
实验七 可编程定时器/计数器
1、实验目的
(1)掌握可编程定时器/计数器8253基本工作原理和编程方法; (2)熟悉单脉冲发生器和逻辑笔的使用方法。 2、实验内容
(1)按图26虚线连接电路,将计数器0设置为方式2,计数器初值为N(N≤0FH),用手动逐个输入单脉冲,编程使计数值在屏幕上显示,并同时用逻辑笔观察OUT0电平变化(当输入N个脉冲后OUT0变为低电平)。
(2)按图27连接电路,将计数器0、计数器1分别设置为方式3,计数初值设为1000,用逻辑笔观察OUT1输出电平的变化(频率1HZ)。
3、编程提示
(1)8253控制寄存器地址
计数器0地址 计数器1地址
283H
280H 281H
单脉冲
(2)参考流程图(见图28、29):
OUT0接逻辑笔
图26 单脉冲发生器作为8253的输入
OUT1接逻辑笔
图27 8253工作在级连方式
25
开 始设计数器0为工作方式0送计数器初值开 始设计数器0为工作方式3向计数器0送初值1000先送低字节后送高字节设计数器1为工作方式3向计数器1送初值1000先送低字节后送高字节结 束读计数器值显示计数值有键按下吗?NY结 束图 28
4、预习要求
图 29
(1)阅读实验台单脉冲发生器与逻辑笔的使用方法; (2)仔细阅读本实验书的要求;
(3) 复习8253工作原理、各种工作方式、计数初值及GATE对计数器的影响; (4)复习8253的初始化编程方法和读取计数值的方法; (5)分析流程图,编好程序。 5、报告要求
(1)根据实验结果,整理与分析8253的各种计数方式; (2)分析并总结GATE对计数器工作的影响; (3)分析并总结8253级联方式的特点及应用;
(4)总结在计数过程中如何读取计数值。考虑能否用8253测量一个脉冲的宽度(时间间隔)。
实验八 模拟电子琴的制作
1、实验目的
(1)进一步巩固汇编语言程序设计能力;
(2)进一步熟悉并行接口8255A和定时/计数器8253A的应用方法。 (3)学习利用PC机的扬声器发声的方法 2、实验内容
(1)以8255接八个开关K0~K7,做电子琴按键输入。 (2)以8253控制扬声器,拨动不同的开关,发出相应的音阶。 要求: K0—静音
K1—发si的音,频率493Hz K2—发la的音,频率440Hz K3—发sol的音,频率392Hz K4—发fa的音,频率349Hz
26
K5—发mi的音,频率329Hz K6—发re的音,频率293Hz K7—发do的音,频率261Hz 3、编程提示
(1)实验箱上8255A的端口地址如下: 控制寄存器端口地址 28BH 8255端口A的地址 288H
(2)PC机内8255A的端口地址如下: 控制寄存器端口地址 63H 8255端口A的地址 60H 8255端口B的地址 61H
(3)PC机内8253A的端口地址如下: 控制寄存器地址 计数器0地址 计数器1地址 计数器2地址
43H 40H 41H 42H
PC机内的8253A
来自PC机内的8255A的PB0 GATE2 OUT2 1.19MHz
CLK2 扬声器
与门 驱动滤波
288H
CS 实验箱上的8255A
PA0 PA1 PA2 PA3 PA4 PA5 PA6 PA7 K0 K1 K2 K3 K4 K5 K6 K7
来自PC机内的8255A的PB1
(4)PC机内8255A和8253A的连接: PC机内部计数器2的CLK2 连接的是1.19318MHz,
实验八 模拟电子琴的实验原理图
PC机内部计数器2的GATE2连接的是PC机内部8255A的PB0,PC机内部计数器2的OUT2和PC机内部8255A的PB1作为与门输入,与门输出经驱动滤波接扬声器。 4、预习要求
(1)仔细阅读本实验指导书;
(2)复习8255方式0的工作原理、使用方式和初始化编程方法;复习8253工作原理、各种工作方式、初始化方法。
(3)根据题目的功能要求编好程序。 5、思考题
(1)如果已知高音和低音的各个音符对应的频率值,要求能够根据8255的C口某些位的值,选择弹奏出高、中、低音,如何实现?(同一个音符,高音频率是中音频率的两倍,低音频率是中音频率的一半。) (2)如果把拨动开关换成PC机键盘的按键,如何实现?
(3)如果已经知道一首乐曲的乐谱,要让PC机自动演奏这首乐曲,如何实现? 6、报告要求
(1)分析总结PC机扬声器发声的原理和实现方法; (2)分析实验过程中遇到的问题及解决方法。
27