《2019年第十章ppt课件》由会员分享,可在线阅读,更多相关《2019年第十章ppt课件(34页珍藏版)》请在金锄头文库上搜索。
1、第十章 可编程计数器/定时器,教学内容,8253的引脚和6种工作方式 8253的编程 8253的应用,定时器和计数器,定时控制在微机系统中极为重要 定时器由数字电路中的计数电路构成,通过记录高精度晶振脉冲信号的个数,输出准确的时间间隔 计数电路如果记录外设提供的具有一定随机性的脉冲信号时,它主要反映脉冲的个数(进而获知外设的某种状态),常又称为计数器,定时功能的实现方法,软件延时利用微处理器执行一个延时程序段实现 不可编程的硬件定时采用分频器、单稳电路或简易定时电路控制定时时间 可编程的硬件定时软件硬件相结合、用可编程定时器芯片构成一个方便灵活的定时电路,10.1 8253定时计数器,3个独立
2、的16位计数器通道 每个计数器有6种工作方式 按二进制或十进制(BCD码)计数,10.1.1 8253的内部结构和引脚,计数器结构示意图,计数初值存于预置寄存器; 在计数过程中, 减法计数器的值不断递减, 而预置寄存器中的预置不变。 输出锁存器用于写入锁存命令时, 锁定当前计数值,10.1.2 8253/8254的工作方式,8253有6种工作方式,由方式控制字确定. 每种工作方式的过程类似: 设定工作方式 设定计数初值 硬件启动 计数初值进入减1计数器 每输入一个时钟计数器减1的计数过程 计数过程结束,方式0 计数结束中断, 设 定 工 作 方 式, 设 定 计 数 初 值, 计 数 值 送
3、入 计 数 器, 计 数 过 程, 计 数 结 束,方式1 可编程单稳脉冲, 设 定 工 作 方 式, 设 定 计 数 初 值, 硬 件 启 动, 计 数 值 送 入 计 数 器, 计 数 过 程, 计 数 结 束,方式2 频率发生器(分频器),方式3 方波发生器,方式4 软件触发选通信号,方式5 硬件触发选通信号,各种工作方式的输出波形,8253的启动方式小结,“软件”启动方式 条件:GATE=1;初值写入减法计数器。 方式0,方式4 “硬件”启动方式 条件:初值写入减法计数器;GATE有上升沿到来; 方式1,方式5 “软件启动为主,硬件启动为辅”的启动方式 方式2,方式3,8253的工作方
4、式小结,时钟周期与输出周期的区别: 时钟周期:指8253输入时钟clk的周期,是固定的; 输出周期:指8253输出端out输出波形的周期。 计数与定时模式: 计数模式:在GETE控制下进行减1计数,减到终值时给出一个输出信号,计数结束。 定时模式:在GETE控制下进行减1计数,减到终值时,自动重装初值,重新减1计数,输出端不断产生为时钟周期整数倍的定时间隔。,10.2 8253的编程,8253加电后的工作方式不确定 8253必须初始化编程,才能正常工作 写入控制字 写入计数初值 读取计数值,1 写入方式控制字,00 计数器0 01 计数器1 10 计数器2 11 非法,00 计数器锁存命令 0
5、1 只读写低字节 10 只读写高字节 11 先读写低字节 后读写高字节,000 方式0 001 方式1 010 方式2 011 方式3 100 方式4 101 方式5,0 二进制 1 十进制,控制字写入控制字I/O地址(A1A011),2 写入计数初值,选择二进制时 计数值范围:0000HFFFFH 0000H是最大值,代表65536 选择十进制(BCD码) 计数值范围:00009999 0000代表最大值10000,计数值写入计数器各自的I/O地址,计数初值的计算,8253作计数器: 计数的次数作为计数初值 8253作定时器: 要求产生定时时间间隔的定时常数Tc Tc=要求定时的时间(OUT
6、)/时钟脉冲周期 要求产生频率为f信号的定时常数Tc Tc=时钟脉冲频率/要求的波形频率(OUT),3 读取计数值,对8位数据线,读取16位计数值需分两次 计数在不断进行,应该将当前计数值先行锁存,然后读取: 向控制字I/O地址:给8253写入锁存命令 从计数器I/O地址:读取锁存的计数值,读取计数值,要注意读写格式和计数数制,10.3 8253在IBM PC系列机上的应用,计数器0:定时中断,计数器0:方式3,计数值:65536,输出频率为1.19318MHz6553618.206Hz的方波 门控为常启状态,这个方波信号不断产生 OUT0端接8259A的IRQ0,用作中断请求信号 每秒产生1
7、8.206次中断请求,或说每隔55ms(54.925493ms)申请一次中断 DOS系统利用计数器0的这个特点,通过08号中断服务程序实现了日时钟计时功能,定时中断,mov al,36h ;计数器0为方式3,采用二进制计数, ;先低后高写入计数值 out 43h,al;写入方式控制字 mov al,0;计数值为0 out 40h,al;写入低字节计数值 out 40h,al;写入高字节计数值,8253初始化,计数器1:定时刷新,需要重复不断提出刷新请求,门控总为高,选择方式2或3,2ms内刷新128次,即15.6s刷新一次,计数初值为18,定时刷新,mov al,54h ;计数器1为方式2,采
8、用二进制计数,只写低8位计数值 out 43h,al;写入方式控制字 mov al,18;计数初值为18 out 41h,al;写入计数值,8253初始化,2 扬声器控制,计数器2的输出控制扬声器的发声音调 计数器2只能工作在方式3,才能输出一定频率的方波,经滤波后得到近似的正弦波,进而推动扬声器发声 扬声器还受控于并行接口(8255芯片) 必须使PB0和PB1同时为高电平,扬声器才能发出预先设定频率的声音,例题1,采用计数通道0,设计一个循环扫描器。要求扫描器每隔10ms输出一个宽度为1个时钟的负脉冲。定时器的CLK0=100khz,GATE0=1,端口地址为304H307H。编写初始化程序
9、段。,MOVDX,307H MOVAL,35H OUTDX,AL MOVDX,304H MOVAX,1000 OUTDX,AL MOVAL,AH OUTDX,AL,例题2,某产品的包装流水线中,一个包装箱能装24罐饮料。装箱时希望流水线上每通过24罐饮料,流水线要停4秒以等待包装箱封口,然后继续通过下一箱的24罐。流水线就是这样周而复始的运作。试利用一片8254来完成流水线控制中的定时和计数功能。假设8253的端口地址为8CH8FH,采用的时钟频率是2KHz。,思路:用8253的计数通道1作为计数器,用于24个罐的计数;计数通道2作为定时器,定时为4S。当计数通道1的OUT脚出现0到1的跳变的
10、时候,将启动计数通道2开始定时,而计数通道2定时阶段将控制计数通道1停止计数,只有其定时结束并停止定时阶段才可再次启动计数通道1开始计数。,计数通道1工作在方式2,计数初值24 计数通道2工作在方式1,计数初值8000,;初始化程序 ;计数通道1初始化 MOVAL,01010100B OUT8FH,AL MOVAL,24 OUT8DH,AL ;初始化计数通道2 MOVAL,10110010B OUT8F,AL MOVAX,8000 OUT8EH,AL MOVAL,AH OUT8EH,AL,第10小结,1. 掌握8253引脚,尤其是CLK、OUT、GATE引脚的功能 2. 掌握8253的六种工作方式、编程和在IBM PC系列机上的应用,