微机原理及应用结业论文.doc
上传人:sy****28 上传时间:2024-09-11 格式:DOC 页数:6 大小:1.5MB 金币:16 举报 版权申诉
预览加载中,请您耐心等待几秒...

微机原理及应用结业论文.doc

微机原理及应用结业论文.doc

预览

在线预览结束,喜欢就下载吧,查找使用更方便

16 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

微机原理及应用结业论文班级:电信0901学号:姓名:日期:2011年12月计数器和定时器8253引言:在控制系统中常常要求一些实时时钟以实现定时或延时控制,如定时中断、定时检测、定时扫描等等,也往往要求有计数器能对外部事件计数。要实现定时或延时控制,有三种主要方法:软件定时、不可编程的硬件定时、可编程的硬件定时器。其中可编程的硬件定时器的电路的定时值及其范围,可以很容易由软件来确定和改变。所以功能较强,使用灵活,得到广泛应用。Intel系列的计数器定时器电路为可编程序间隔定时器PIT,型号为8253。关键词:主要功能控制字工作方式初始化编程18253的主要功能1.1Intel8253-PIT的主要功能:可编程计数器/定时器8253就是用软、硬技术相结合的方法实现定时和计数控制。其主要有以下特点:(1)每个芯片上有3个独立的16位计数器通道,且每个计数器均以减法计数。(2)每个计数器都可按二进制计数或十进制(BCD码)计数。(3)每个计数器都可由程序设置6种工作方式。(4)每个计数器计数速度可达2MHz。(5)所有I/O都可与TTL兼容。1.28253的内部结构8253芯片的引脚功能如图所示:8253的读写逻辑它接受来自CPU的读写控制信号,以决定3个计数器和控制寄存器中哪一个进行工作,并控制内部总线上数据传送的方向。可接收的控制信号如下:RD——读输入信号,低电平有效。CPU通过此信号读取8253某计数器的计数值。WR——写输入信号,低电平有效。CPU通过此信号向8253送控制字或计数值。A1,A0——地址输入线,用来选择3个计数器和控制寄存器中的一个。CS——片选信号,低电平有效。通常由端口地址的高位地址(如A7-A2)译码产生,用来选通8253。当CS为高电平时,读写逻辑不起作用,但不影响计数器现行的计数工作。CS,RD,WR,A1,A0组合控制功能如下表所示。1.4控制字寄存器它用来寄存来自CPU的控制字。当A1A0=11时,选中控制字寄存器。每个计数器都有一个独立的控制字寄存器,存放本计数器的控制信息,以控制计数器的工作方式。因此,不同计数器的控制字必须分别设置。控制字寄存器只能写入,不能读出;8253的内部结构图8253的控制字的原则如图例:若8253的地址为04H—07H,选择计数器1,工作在方式0,计数初值为128,采用8位二进制计数,试写出8253的初始化程序。由上图可知控制字为01010000,转化为16进制为50H。故有程序的书写原则可写出如下程序:MOVAL,50H;设控制字OUT07H,AL;输出至控制字寄存器MOVAL,80H;设置计数值OUT05H,AL;输出至计数通道18253的工作方式简介3.1方式0控制字写进控制字寄存器之后,计数器的输出OUT立即变低,在GATE为高电平的情况下,,在WR信号上升沿之后的下一个CLK脉冲,才将计数值从计数值寄存器送到计数器,计数器才开始计数,直到计数到0,OUT才变为高电平。此高电平一直保持到CPU又写入一个方式0控制字,OUT又立即变低,再写入计数值,计数器按照新的计数值开始计数;或者CPU重新写一个计数值,OUT也立即变低,计数器按新的计数值计数,并计数到0,OUT又变为高电平为止。3.2方式1控制字写进控制字寄存器后,输出OUT立即变高(与GATE的状态无关)。在CPU写完计数值后,计数器并不开始计数,直到GATE由低电平向高电平跳变形成一个上升沿后的下一个CLK才开始计数。OUT输出由高电平向低电平跳变,形成输出单脉冲的前沿。在计数过程中,输出保持为低,直到计数到0,OUT输出由低电平向高电平跳变,形成输出单脉冲的后沿。3.3方式2在控制字写进控制字寄存器后,输出OUT立即变高,在写完计数值后(GATE=1),计数器自动开始对输入时钟CLK计数,计数期间输出始终保持为高电平。当计数器减到1时,输出将变低一个时钟图后,重新开始级数。8253的初始化编程要使用8253-PIT必须首先进行初始化编程。初始化编程的内容是:必须先写入每一个计数通道的控制字,然后写入计数通道的计数值。如前面所述,有的写入计数值后计数通道就开始工作,有的则需要外加门控信号的触发启动。初始化编程的步骤去为:写入通道控制字,规定通道的工作方式。写入计数值。若规定只写低8位,则写入的为计数值的低8位。高8位自动置零。规定只写高8位,则写入为计数值的高8位。低8位自动置零。若是16位计数值,则分两次写入,先写入低8位,在写入高8位。例:若要用通道0,工作方式1,按BCD码计数值为5080H。则初始化编程的步骤为:确定控制字。由题意可写出控