[实验六]8254可编程定时/计数器
微机原理与接口技术实验室2021年5月28日 15:19
一、实验目的
1.掌握可编程8254定时/计数器的各种工作方式,进一步熟悉8254的编程方法。
2.熟悉使用逻辑笔或示波器观察8254的工作状态。
二、实验仪器与设备
1.TPC-ZK 微机接口实验系统1台。
2.PC微型计算机1台。
三、实验内容
编写程序,利用实验台上的8254定时器对1MHz时钟脉冲进行分频,产生频率为1Hz的方波信号,并用逻辑笔(或示波器)观察OUT1输出频率是否1Hz。
四、设计思想
1.相关知识
(1)8254是一个可编程通用定时/计数器,对8254芯片编程时,应首先向控制寄存器写入控制字,选择计数器及工作方式,然后对选中的计数器按照要求进行预置初值。
(2)8254控制字的含义如下表

2.实验电路说明
由于N=106>65536,所以必须使用两个计数器通道串联才能实现。CLK0可取实验台上提供的1MHz的时钟脉冲,通过两个计数器分频后得到1Hz的脉冲,用逻辑笔(或示波器)观察OUT1输出电平的变化(频率1Hz),在实验台上的8254模块电路图如图所示。
3.编程提示
(1)将计数器0、计数器1分别设置为方式3,计数初值设为1000。
分析a:计数器选用方式3的原因:因要将OUT0的输出接CLK1,所以输出最好为占空比为1:1的方波,而只有方式3占空比为1:1的方波,故选用方式3。
分析b:初始信号为1MHz,通过计数器0时经1000次计数(分频)得到(1000000/1000)=1000Hz的输出;再把1000Hz的输出通过计数器1,同样也经1000次计数(分频),即可得到1Hz输出。
(2)8254芯片在TPC-ZK平台下的端口地址:
8254的片选CS—-Y0(280H~187H)
控制寄存器地址:283H
计数器0地址: 280H
计数器1地址: 281H
计数器2地址: 282H
程序流程图如下:

例如:设置计数器0的工作方式是方式3,计数初值是1000,二进制形式。
分析:因为计数初值1000>255(8位二进制能表示的最大值),即计数初值1000必须用16位二进制才能表示完,所以在此读写指示是:11(先写低8位,再写高8位),然后得到控制字的值是36H。

五、预习要求
1.阅读本实验教程及相关教材。
2.预习编程提示及相关知识点。
3.复习8254的工作原理、各种计数方式、计数初值及GATE对计数器的影响。
4.复习8254的初始化编程方法和读取计数值的方法。
5.按照题目要求在实验前编写好相应的源程序。
六、实验步骤及调试
1.用HQFC集成开发环境编写源代码。
2.对输入的源程序检查无误后,经汇编、连接生成EXE可执行文件。
3.按实验要求连接好线路。
4.程序运行后,观察逻辑笔的闪烁情况。
5.改变CLK0的输入脉冲频率为2MHz时,观察输出频率的变化,记录其结果。
6.改变程序中的计数器的初值(大或小),观察输出频率的变化,记录其结果。
七、实验报告要求
1.画出程序流程图,整理出运行正确的程序清单,并加适当注释。
2.画出实验原理接线图。
3.写出观察到的程序运行结果。
4.当CLK0的输入脉冲频率为2MHz时,计数初值为1000,OUT1输出频率为多少?
