ImageVerifierCode 换一换
格式:DOCX , 页数:16 ,大小:116.91KB ,
资源ID:9596832      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/9596832.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(微机原理论文设计报告.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

微机原理论文设计报告.docx

1、微机原理论文设计报告微机原理论文设计报告 题目:可编程定时/计数器8253的工作原理、使用方法及应用实例院(系): 专业:姓名:学号:年级:指导教师:职称时间:2010年6月15日一、 可编程定时/计数器8253的工作原理8253可编程的计数器/定时器,其内部有三个独立的16位计数器/定时器通道,分别称为:计数器0通道、计数器1通道、计数器2通道。每个计数器通道均可按6种不同的方式工作,并且都可以按二进制或十进制计数。(一)、8253的主要功能1每个8253芯片有3个独立的16位计数器通道;2每个计数器通道都可以按照二进制或二十进制(BCD码)计数;3每个计数器的计数速率可以高达2MHz;4每

2、个通道有6种工作方式,可以由程序设定和改变;5所有的输入、输出电平都与TTL兼容。(二)、8253的内部结构8253的内部结构如下图所示,它主要包括以下几个主要部分:CLK0CLK2是计数器02的时钟脉冲输入端, GATE0GATE2是门控脉冲输入端, OUT0OUT2是输出端。1数据总线缓冲器实现8253与CPU数据总线连接的8位双向三态缓冲器,用以传送CPU向8253的控制信息、数据信息以及CPU从8253读取的状态信息,包括某时刻的实时计数值。2读/写控制逻辑控制8253的片选及对内部相关寄存器的读/写操作,它接收CPU发来的地址信号以实现片选、内部通道选择以及对读/写操作进行控制。3控

3、制字寄存器在8253的初始化编程时,由CPU写入控制字,以决定通道的工作方式,此寄存器只能写入,不能读出。4计数通道0#、1#、2#:这是三个独立的,结构相同的计数器/定时器通道,每一个通道包含一个16位的计数寄存器,用以存放计数初始值,一个16位的减法计数器和一个16位的锁存器,锁存器在计数器工作的过程中,跟随计数值的变化,在接收到CPU发来的读计数值命令时,用以锁存计数值,供CPU读取,读取完毕之后,输出锁存器又跟随减1计数器变化。(三)、8253的外部引脚8253芯片是具有24个引脚的双列直插式集成电路芯片,其引脚分布如图82所示。8253芯片的24个引脚分为两组,一组面向CPU,另一组

4、面向外部设备,各个引脚及其所传送信号的情况,介绍如下:1D7D0:双向、三态数据线引脚,与系统的数据线连接,传送控制、数据及状态信息。2:来自于CPU的读控制信号输入引脚,低电平有效。3:来自于CPU的写控制信号输入引脚,低电平有效。4:芯片选择信号输入引脚,低电平有效。5A1、A0:地址信号输入引脚,用以选择8253芯片的通道及控制字寄存器。、的状态与8253端口地址的对应关系如下表所示。A1A0000通道011通道102通道11控制端口6VCC及GND:+5V电源及接地引脚7CLKi:i=0,1,2,第i个通道的计数脉冲输入引脚,8253规定,加在CLK引脚的输入时钟信号的频率不得高于2.

5、6MHZ,即时钟周期不能小于380ns。8GATEi:i=0,1,2,第i个通道的门控信号输入引脚,门控信号的作用与通道的工作方式有关。9OUTi:i=0,1,2,第i个通道的定时/计数到信号输出引脚,输出信号的形式由通道的工作方式确定,此输出信号可用于触发其它电路工作,或作为向CPU发出的中断请求信号。二、可编程定时/计数器8253的使用方法(一)、8253初始化编程要使用8253,必须首先进行初始化编程,初始化编程包括设置通道控制字和送通道计数初值两个方面,控制字写入8253的控制字寄存器,而初始值则写入相应通道的计数寄存器中。初始化编程包括如下步骤:(1) 写入通道控制字,规定通道的工作

6、方式(2) 写入计数值,若规定只写低8位,则高8位自动置0,若规定只写高8位,则低8位自动置0。若为16位计数值则分两次写入,先写低8位,后写高8位。D0:用于确定计数数制,0,二进制;1,BCD码编程时,可选择计数器1工作在方式0。在8253的方式0工作方式中,从将计数初值写入计数器到开始减1计数之间,有一个时钟脉冲的延迟。若计数初值为n = 999,那么经过n + 1个即1000个脉冲时计数值减为0,并在OUT1端输出一正跳变,这可以作为中断请求。在中断服务子程序中CPU可以做其他处理,如送下一个包装箱等。设计数初值为1999 (要求一个包装箱内装工件2000) ,按十进制计数,先送低8位

7、,再送高8位,控制字为01110001B。初始化程序为:MOV AL, 01110001BAL, 01110001BMOV DX, 0356HOUT DX,AL ;送方式控制字MOV AL, 99HMOV DX, 0352HOUT DX,AL ;向通道1送计数初值低8位MOV AL, 19HOUT DX,AL ;向通道1送计数初值高8位图-8253控制字格式其中:D0:数制选择控制。为1时,表明采用BCD码进行定时/计数;否则,采用二进制进行定时/计数。D3D1:工作方式选择控制。000,0;001,1;X10,2;X11,3;100,4;101,5;D5、D4:读写格式。00,计数锁存命令;

8、01,读/写高8位命令;10,读/写低8位命令;11,先读/写低8位,再读写高8位命令。D7、D6:通道选择控制。00 , 0通道;01,1通道;10,2通道;11,非法。(二)、8253的工作方式8253共有6种工作方式,各方式下的工作状态是不同的,输出的波形也不同,其中比较灵活的是门控信号的作用。由此组成了8253丰富的工作方式、波形,下面我们逐个介绍:1几条基本原则(1) 控制字写入计数器时,所有的控制逻辑电路立即复位,输出端OUT进入初始状态。初始状态对不同的模式来说不一定相同。(2) 计数初始值写入之后,要经过一个时钟周期上升沿和一个下降沿,计数执行部件才可以开始进行计数操作,因为第

9、一个下降沿将计数寄存器的内容送减1计数器。(3) 通常,在每个时钟脉冲CLK的上升沿,采样门控信号GATE。不同的工作方式下,门控信号的触发方式是有具体规定的,即或者是电平触发,或者是边沿触发,在有的模式中,两种触发方式都是允许的。其中0、2、3、4是电平触发方式,1、2、3、5是上升沿触发。(4) 在时钟脉冲的下降沿,计数器作减1计数,0是计数器所能容纳的最大初始值。二进制相当于216,用BCD码计数时,相当于1042方式0计数结束产生中断方式0的波形如图2-1所示,当控制字写入控制字寄存器后,输出OUT就变低,当计数值写入计数器后开始计数,在整个计数过程中,OUT保持为低,当计数到0后,O

10、UT变高;GATE的高低电平控制计数过程是否进行。图2-1 方式0波形从波形图中不难看出,工作方式0有如下特点:计数器只计一遍,当计数到0时,不重新开始计数保持为高,直到输入一新的计数值,OUT才变低,开始新的计数;计数值是在写计数值命令后经过一个输入脉冲,才装入计数器的,下一个脉冲开始计数,因此,如果设置计数器初值为N,则输出OUT在N1个脉冲后才能变高;在计数过程中,可由GATE信号控制暂停。当GATE0时,暂停计数;当GATE1时,继续计数;在计数过程中可以改变计数值,且这种改变是立即有效的,分成两种情况:若是8位计数,则写入新值后的下一个脉冲按新值计数;若是16位计数,则在写入第一个字

11、节后,停止计数,写入第二个字节后的下一个脉冲按新值计数。3方式1可编程的硬件触发单拍脉冲方式1的波形如图2-2所示,CPU向8253写入控制字后OUT变高,并保持,写入计数值后并不立即计数,只有当外界GATE信号启动后(一个正脉冲)的下一个脉冲才开始计数,OUT变低,计数到0后,OUT才变高,此时再来一个GATE正脉冲,计数器又开始重新计数,输出OUT再次变低,因此输出为一单拍负脉冲。图2-2 方式1波形从波形图不难看出:方式1有下列特点: 输出OUT的宽度为计数初值的单脉冲; 输出受门控信号GATE的控制,分三种情况:计数到0后,再来GATE脉冲,则重新开始计数,OUT变低;在计数过程中来G

12、ATE脉冲,则从下一CLK脉冲开始重新计数,OUT保持为低;改变计数值后,只有当GATE脉冲启动后,才按新值计数,否则原计数过程不受影响,仍继续进行,即新值的改变是从下一个GATE开始的。 计数值是多次有效的,每来一个GATE脉冲,就自动装入计数值开始从头计数,因此在初始化时,计数值写入一次即可。4、方式2速率发生器方式2的波形如图2-3所示,在这种方式下,CPU输出控制字后,输出OUT就变高,写入计数值后的下一个CLK脉冲开始计数,计数到1后,输出OUT变低,经过一个CLK以后,OUT恢复为高,计数器重新开始计数,因此在这种方式下,只需写入一次计数值,就能连续工作,输出连续相同间隔的负脉冲(

13、前提:GATE保持为高),即周期性地输出,方式2下,8253有下列使用特点: 通道可以连续工作; GATE可以控制计数过程,当GATE为低时暂停计数,恢复为高后重新从初值;(注意:该方式与方式0不同,方式0是继续计数) 重新设置新的计数值即在计数过程中改变计数值,则新的计数值是下次有效的,同方式1。图2-3 方式2波形5方式3方波速率发生器方式3的波形如图2-4所示,这种方式下的输出与方式2都是周期性的,不同的是周期不同,CPU写入控制字后,输出OUT变高,写入计数值后开始计数,不同的是减2计数,当计数到一半计数值时,输出变低,重新装入计数值进行减2计数,当计数到0时,输出变高,装入计数值进行

14、减2计数,循环不止。在方式3下,8253有下列使用特点:计数值为偶数计数值为奇数图2-4 方式3时计数器的工作波形 通道可以连续工作; 关于计数值的奇偶,若为偶数,则输出标准方波,高低电平各为N/2个;若为奇数,则在装入计数值后的下一个CLK使其装入,然后减1计数,(N1)/2,OUT改变状态,再减至0,OUT又改变状态,重新装入计数值循环此过程,因此,在这种情况下,输出有(N1)/2个CLK个高电平,(N1)/2个CLK个低电平; GATE信号能使计数过程重新开始,当GATE0时,停止计数,当GATE变高后,计数器重新装入初值开始计数,尤其是当GATE0时,若OUT此时为低,则立即变高,其它

15、动作同上;在计数期间改变计数值不影响现行的计数过程,一般情况下,新的计数值是在现行半周结束后才装入计数器。但若中间遇到有GATE脉冲,则在此脉冲后即装入新值开始计数。6方式4软件触发的选通信号发生器方式4的波形如图2-5所示,在这种方式下,也是当CPU写入控制字后,OUT立即变高,写入计数值开始计数,当计数到0后,OUT变低,经过一个CLK脉冲后,OUT变高,这种计数是一次性的(与方式0有相似之处),只有当写入新的计数值后才开始下一次计数。图2-5 方式4波形方式4下,8253有下列使用特点:当计数值为N时,则间隔N1个CLK脉冲输出一个负脉冲(计数一次有效);GATE0时,禁止计数,GATE

16、1时,恢复继续计数;在计数过程中重新装入新的计数值,则该值是立即有效的(若为16位计数值,则装入第一个字节时停止计数,装入第二个字节后开始按新值计数)。7方式5硬件触发的选通信号发生器方式5的波形如图2-6所示,在这种方式下,当控制字写入后,OUT立刻变高,写入计数值后并不立即开始计数,而是由GATE的上升沿触发启动计数的,当计数到0时,输出变低,经过一个CLK之后,输出恢复为高,计数停止,若再有GATE脉冲来,则重新装入计数值开始计数,上述过程重复。方式5下,8253有下列使用特点: 在这种方式下,若设置的计数值是N,则在GATE脉冲后,经过(N1)个CLK才一个负脉冲; 若在计数过程中又来

17、一个GATE脉冲,则重新装入初值开始计数,输出不变,即计数值多次有效; 若在计数过程中修改计数值,则该计数值在下一个GATE脉冲后装入开始按此值计数。图2-6 方式5波形尽管8253有6种工作模式,但是从输出端来看,仍不外乎为计数和定时两种工作方式。作为计数器时,8253在GATE的控制下,进行减1计数,减到终值时,输出一个信号。作为定时器工作时,8253在门控信号GATE控制下,进行减1计数。减到终值时,又自动装入初始值,重新作减1计数,于是输出端会不断地产生时钟周期整数倍的定时时间间隔。88253的工作方式小结下面,我们对8253的6种工作模式的特点,作一番比较和总结。(1) 方式2、4、

18、5的输出波形是相同的,都是宽度为一个CLK周期的负脉冲,但方式2连续工作,方式4由软件触发启动,方式5由硬件触发启动。(2) 方式5与方式1工作过程相同,但输出波形不同,方式1输出的是宽度为N个CLK脉冲的低电平有效的脉冲(计数过程中输出为低),而方式5输出的为宽度为一个CLK脉冲的负脉冲(计数过程中输出为高)。(3) 输出端OUT的初始状态,方式0在写入方式字后输出为低,其余方式,写入控制字后,输出均变未能高。(4) 任一种方式,均是在写入计数初值之后,才能开始计数,方式0、2、3、4都是在写入计数初值之后,开始计数的,而方式1和方式5需要外部触发启动,才开始计数。(5) 6种工作方式中,只

19、有方式2和方式3是连续计数,其它方式都是一次计数,要继续工作需要重新启动,方式0、4由软件启动,方式1、5由硬件启动。(6) 门控信号的作用;通过门控信号GATE,可以干预8253某一通道的计数过程,在不同的工作方式下,门控信号起作用的方式也不一样,其中0、2、3、4是电平起作用,1、2、3、5是上升沿起作用,方式2、3对电平上升沿都可以起作用。(7) 在计数过程中改变计数值,它们的作用有所不同。(8) 计数到0后计数器的状态,方式0、1、4、5继续倒计数,变为FF、FE。,而方式2、3、,则自动装入计数初值继续计数。(三)、可编程定时/计数器8253的应用实例可编程定时/计数器8253在扬声

20、器中的应用扬声器驱动系统的硬件组成如图1所示。利用8253驱动扬声器发声是由系统插件上8255的外围电路来发出驱动信号的。如图1中的SPK DATA和TIM GATESPK就是接在8255的输出端口上。其中TIM GATESPK控制8253定时器来驱动扬声器,SPK DATA来控制扬声器的门电路。直接由门电路驱动发出的声音比较难听,通过滤波器滤掉杂波之后会更动听一些,所以最好如图1所示加一个滤波器。图1-扬声器驱动系统(1)首先以流程图的方式说明使用扬声器发声的过程,如图2所示:图扬声器发声程序结构流程图(2)可编程定时/计数器8253在扬声器中应用的编程。一般情况下,8255的输出端口地址为

21、61H,分配给8253的控制口地址为46H,3个计数器端口地址分别为40H,42H,44H,让计数器2工作在模式3下,可使8253作为定时器驱动扬声器发声。则编写程序如下:SOUND:PUSH F ;保存标志 CLI ;关中断 OR DH,DH ;DH中为发长音的个数 JZ K3 ;如不发长音,则转K3K1: MOV BL,6 ;如发长音,则置发音计数器 CALL BEEL ;调用发音程序K2: LOOP K2 ;延时,留发音间隙 DEC DH ;长音发完了吗?长音次数为DH JNZ K1 ;没有,则继续K3: MOV BL,1 ;如发完长音,则置短音计数器 CALL BEEL ;调用发音程序

22、K4: LOOP K4 ;发音之间留间隙 DEC DL ;继续发短音吗? JNZ K3 ;是,则继续K5: LOOP K5 ;否,则留一个间隙 POP F ;标志恢复 RET ;返回BEEL:MOV AL,B6H ;B6H为控制字 OUT 46H,AL ;将计数器控制字送控制口 MOV AX,0533H ;将33H送低8位,05H送高8位 OUT 44H,AL MOV AL,AH OUT 44H,AL IN AL,61H MOV AH,AL OR,AH,03H ;接通扬声器03H=0000 0011B OUT 61H,AL ;扬声器驱动 SUB,CX,CX ;一次发音时间定时K6: LOOP K6 DEC BL ;BL中为发音计数器 JNZ K6 ;如未结束,则继续发音 MOV AL,AH ;发音结束,则恢复B端口信息 OUT 61H,AL ;扬声器驱动从程序中可以看到利用可编程定时计数器8253可以发出各种频率的声音,只要在程序中稍微更改一下输入时钟频率或计数初值即可实现。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1