微机接口实验指导书 启东计算机厂有限公司
D0D1D2D3D4D5D6D7IORIOWADD0ADD1RSTY78255CSR14.7K343332313029282753698356 U1D0D1D2D3D4D5D6D7RDWRA0A1RESETCS8255PA0PA1PA2PA3PA4PA5PA6PA7PB0PB1PB2PB3PB4PB5PB6PB7PC0PC1PC2PC3VCCPC4PC5PC6PC743214039383718192021222324251415161713121110PB0PB1PB2PB3PB4PB5PB6PB7PC0PC1PC2PC3PC4PC5PC6PC7PA0PA1PA2PA3PA4PA5PA6PA7L0L1L2L3L4L5L6L7K1K2K3K4K5K6K7K8 图4-3
四、实验软件框图
开始 初始化8255 设置8255控制字 置8255PB0为低电平 读取PC口值 将PC口值送PB口显示
五、实验软件清单
见随机光盘,文件名为H8255-1.ASM 六、实验步骤
1、按图4-3连好线路。
2、运行实验程序,拨动K1~8,L10~L8会跟着亮灭。
-21-
微机接口实验指导书 启东计算机厂有限公司
实验五 8253A定时/计数器实验
一、实验目的
学习8253A可编程定时/计数器与8088CPU的接口方法;了解8253A的工作方式; 掌握8253A在各种方式下的编程方法。
二、预备知识
1、 8253A内部结构
8253A定时/计数器具有定时、计数双功能。它具有三个相同且相互独立的16 位减法计数器,分别称为计数器0、计数器1、计数器2。每个计数器计数频率为0~2MHZ, 其内部结构如图5-1所示。由于其内部数据总线缓冲器为双向三态,故可直接接在系统数据总线上,通过CPU写入计数初值,也可由CPU读出计数当前值;其工作方式通过控制字确定;图中的读写控制逻辑,当选中该芯片时, 根据读写命令及送来的地址信息控制整个芯片工作;图中的控制字寄存器用于接收数据总线缓冲器的信息:当写入控制字时,控制计数器的工作方式,当写入数据时则装入计数初值,控制寄存器为8位, 只写不能读。
D0~D7 0
15 MSB 0 LSB 15 MSB OUT0 OUT1 OUT2 0 LSB 0 LSB 计数器 锁存器
数据 总线 缓冲器 计数器0 CLK0 E0 GATOUT0
15 MSB 15 LSB 0 15 MSB LSB
-RD 读/写 CLK1 MSB LSB -WR GAT E1 计数器1 A0 逻辑 OUT1 A1 -CS CLK0 CLK2 控制字 GATE0 E2 GAT计数器2 寄存器 OUT2 CLK1 GATE1 CLK2 GATE2 0 15 MSB
图5-1 8253A 内部结构图 图5-2 计数器 内部结构图 2、 计数器内部结构
如图5-2所示,每个计数器由一个16位可预置的减1计数器组成,计数初值可保存在16位的锁存器中,该锁存器只写不能读。在计数器工作时,初值不受影响,以便进行重复计数。图中每个计数器有一个时钟输入端CLK作为计数脉冲源, 计数方式可以是二进制,计数范围1~10000H,也可以是十进制,计数范围1~65536。门控端GATE用于控制计数开始和停止。输出OUT端当计数器计数值减到零时,该端输出标志信号 。 3 、 8253A端口地址选择见 表5-1
-22-
微机接口实验指导书 启东计算机厂有限公司
表5-1 /CS 0 0 0 0 0 0 0 0 1 0 4 、 8253A功能
8253 A既可作定时器又可作计数器:
(1) 计数: 计数器装入初值后,当GATE为高电平时,可用外部事件作为CLK 脉冲对计数值进行减1 计数,每来一个脉冲减1,当计数值减至0时,由OUT 端输出一个标志信号。 (2) 定时: 计数器装入初值后,当GATE为高电平时,由CLK 脉冲触发开始自动计数,当计数到零时,发计数结束定时信号。
除上述典型应用外,8253A还可作频率发生器、分频器、实时钟、单脉冲发生器等。 5、 8253A控制字
7 6 5 4 3 2 1 0 /RD /WR 1 1 1 1 0 0 0 0 × 1 0 0 0 0 1 1 1 1 × 1 A1 0 0 1 1 0 0 1 1 × × A2 0 1 0 1 0 1 0 1 × × 寄存器选择与操作 写入计数器#0 写入计数器#1 写入计数器#2 写入控制寄存器 读计数器#0 读计数器#1 读计数器#2 无操作(三态) 禁止(三态) 无操作(三态) 00 选计数器0 数制控制:0 = 二进制,1= BCD 01 选计数器1 10 选计数器2 工作方式选择:000 方式0 11 非法 001 方式1 ×10 方式2 00 计数器锁存命令 ×11 方式3 01 只读/写低8位,高8位自动置0 100 方式4 10 只读/写高8位,低8位自动置0 101 方式5 11 先写低8位,后写高8位 -23-
微机接口实验指导书 启东计算机厂有限公司
说明 :
(1) 8253 A每个通道对输入CLK按二进制或十进制从预置值开始减1计数,减到0时从OUT输出一个信号。
(2) 8253 A编程时先写控制字,再写时间常数。 6、 8253A工作方式
(1) 方式0:计数结束产生中断方式
当写入控制字后,OUT变为低电平,当写入初值后立即开始计数,当计数结束时,变成高电平。
(2) 方式1:可编程单次脉冲方式
当初值装入后且GATE由低变高时,OUT变为低电平,计数结束变为高电平。 (3) 方式2:频率发生器方式
当初值装入时,OUT变为高;计数结束,OUT变为低。该方式下如果计数未结束,但GATE为低时,立即停止计数,强逼OUT变高,当GATE再变高时,便启动一次新的计数周期。 (4) 方式3:方波发生器
当装入初值后,在GATE上升沿启动计数,OUT 输出高电平; 当计数完成一半时,OUT输出低电平。
(5) 方式4:软件触发选通
当写入控制字后,OUT输出为高;装入初值且GATE为高时开始计数,当计数结束,OUT端输出一个宽度等于一个时钟周期的负脉冲。 (6) 方式5:硬件触发选通
在GATE上升沿启动计数器,OUT一直保持高电平;计数结束,OUT端输出一个宽度等于一个时钟周期的负脉冲。
三、 实验内容
本实验原理图如图5-3所示,8253A的A0、A1接系统地址总线A0、A1,故8253A 有四个端口地址,如端口地址表5-1所示。8253A的片选地址为48H~ 4FH。 因此, 本实验板中的8253A四个端口地址为48H、49H、4AH、4BH,分别对应通道0、通道1、通道2和控制字。采用8253A通道2,工作在方式3(方波发生器方式),输入时钟CLK2 为1MHZ, 输出OUT2 要求为1KHZ的方波,并要求用接在GATE2引脚上的导线是接地(“0”电平)或甩空(“1”电平)来观察GATE对计数器的控制作用,用示波器观察输出波形。
-24-
微机接口实验指导书 启东计算机厂有限公司
D0D1D2D3D4D5D6D787654321U13D0D1D2D3D4D5D6D7 8253OUT0GATE0CLK0GATE2OUT2CLK210119161718VCCOUT2CLK21MHZOUT1CSRDWRA0GATE1CLK1A11321222319201415CS3RDWRA0A1 图 5-3 四、 实验线路连接
1、 8253A芯片(就在主板上)的CLK2引出插孔连主板上的分频输出插孔T1(1MHZ)。
五、 实验软件框图
六、 实验软件参考程序
开始 置8253工作方式控制字 启动8253 结束 见随机光盘,文件名为H8253.ASM
七、 实验步骤
1、按图5-3连好实验线路 2、 运行实验程序
用示波器测量8253A的OUT2输出插孔,应有频率为1KHZ的方波输出,幅值0~4V。
-25-