8253定时控制器是Intel公司生产的一种可编程定时/计数器芯片,常用于微处理器系统中的定时、计数和脉冲发生等功能。在汇编语言编程中,8253的操作通常涉及到对硬件寄存器的直接访问,以设定工作模式、计数值以及控制定时器的行为。
一、8253的基本工作原理:
8253包含三个独立的计数器,每个计数器都可以工作在六种不同的工作模式中。这些模式包括单稳态、方波发生器、分频器、闸门控制、软件触发和硬件触发。计数器可以对输入的时钟脉冲进行计数,并在达到预设的计数值时产生中断或输出信号。8253通过一个8位的数据总线(D7-D0)与CPU交互,同时通过控制线如CS(片选)、WR(写使能)和RD(读使能)来执行读写操作。
二、8253的工作方式:
1. 方式0:二进制计数器,计数到设定值时产生中断。
2. 方式1:二进制计数器,计数到设定值时复位并重新开始计数。
3. 方式2:BCD码计数器,计数到设定值时产生中断,然后自动重置。
4. 方式3:频率除法器,计数到设定值时产生方波输出。
5. 方式4:软件触发的单稳态触发器。
6. 方式5:硬件触发的单稳态触发器。
三、8253的初始化:
初始化8253通常需要设置计数器的工作模式、计数初值以及计数方向。计数器的控制字定义了工作模式和计数初值的高低8位。例如,将计数器0设置为方式3,需要向8253的控制字寄存器写入特定的控制字,然后分别写入低字节和高字节的计数初值。
四、8253的级连使用:
在实验中,8253的CLK0接到1MHz的时钟源,GATE0和GATE1都连接正5V,这意味着两个计数器都在工作。计数器0和1都被设置为方式3,这意味着它们将作为频率分频器工作。计数器0的OUT0连接到计数器1的CLK1,计数器1的OUT1连接到逻辑笔,用于观察输出电平的变化,输出频率应为1Hz。
五、实验步骤:
1. 关闭电源进行接线,避免短路或损坏设备。
2. 根据指导书图15正确连接8253的各引脚,如CS、CLK、GATE和OUT。
3. 编写汇编程序,设定计数器0和1为方式3,分别设置计数初值为1000(16进制的3E8),先送低字节再送高字节。
4. 使用逻辑笔观测OUT1的输出,验证是否按预期产生1Hz的脉冲。
通过这样的实验,学生能够深入理解8253的工作原理,掌握其编程和使用方法,同时熟悉汇编语言对硬件资源的直接操作,这对于理解和开发嵌入式系统至关重要。