
微机原理及接口技术 教学课件 ppt 作者 吴叶兰 第十章 8253.ppt
34页第十章 可编程计数器/定时器,教学内容,8253的引脚和6种工作方式 8253的编程 8253的应用,定时器和计数器,定时控制在微机系统中极为重要 定时器由数字电路中的计数电路构成,通过记录高精度晶振脉冲信号的个数,输出准确的时间间隔 计数电路如果记录外设提供的具有一定随机性的脉冲信号时,它主要反映脉冲的个数(进而获知外设的某种状态),常又称为计数器,定时功能的实现方法,软件延时——利用微处理器执行一个延时程序段实现 不可编程的硬件定时——采用分频器、单稳电路或简易定时电路控制定时时间 可编程的硬件定时——软件硬件相结合、用可编程定时器芯片构成一个方便灵活的定时电路,10.1 8253定时计数器,3个独立的16位计数器通道 每个计数器有6种工作方式 按二进制或十进制(BCD码)计数,10.1.1 8253的内部结构和引脚,计数器结构示意图,计数初值存于预置寄存器; 在计数过程中, 减法计数器的值不断递减, 而预置寄存器中的预置不变 输出锁存器用于写入锁存命令时, 锁定当前计数值,10.1.2 8253/8254的工作方式,8253有6种工作方式,由方式控制字确定. 每种工作方式的过程类似: ⑴ 设定工作方式 ⑵ 设定计数初值 〔 ⑶ 硬件启动 〕 ⑷ 计数初值进入减1计数器 ⑸ 每输入一个时钟计数器减1的计数过程 ⑹ 计数过程结束,方式0 计数结束中断,① 设 定 工 作 方 式,② 设 定 计 数 初 值,④ 计 数 值 送 入 计 数 器,⑤ 计 数 过 程,⑥ 计 数 结 束,方式1 可编程单稳脉冲,① 设 定 工 作 方 式,② 设 定 计 数 初 值,③ 硬 件 启 动,④ 计 数 值 送 入 计 数 器,⑤ 计 数 过 程,⑥ 计 数 结 束,方式2 频率发生器(分频器),方式3 方波发生器,方式4 软件触发选通信号,方式5 硬件触发选通信号,各种工作方式的输出波形,8253的启动方式小结,“软件”启动方式 条件:GATE=1;初值写入减法计数器。
方式0,方式4 “硬件”启动方式 条件:初值写入减法计数器;GATE有上升沿到来; 方式1,方式5 “软件启动为主,硬件启动为辅”的启动方式 方式2,方式3,8253的工作方式小结,时钟周期与输出周期的区别: 时钟周期:指8253输入时钟clk的周期,是固定的; 输出周期:指8253输出端out输出波形的周期 计数与定时模式: 计数模式:在GETE控制下进行减1计数,减到终值时给出一个输出信号,计数结束 定时模式:在GETE控制下进行减1计数,减到终值时,自动重装初值,重新减1计数,输出端不断产生为时钟周期整数倍的定时间隔10.2 8253的编程,8253加电后的工作方式不确定 8253必须初始化编程,才能正常工作 写入控制字 写入计数初值 读取计数值,1 写入方式控制字,00 计数器0 01 计数器1 10 计数器2 11 非法,,00 计数器锁存命令 01 只读写低字节 10 只读写高字节 11 先读写低字节 后读写高字节,,000 方式0 001 方式1 010 方式2 011 方式3 100 方式4 101 方式5,,0 二进制 1 十进制,,控制字写入控制字I/O地址(A1A0=11),2 写入计数初值,选择二进制时 计数值范围:0000H~FFFFH 0000H是最大值,代表65536 选择十进制(BCD码) 计数值范围:0000~9999 0000代表最大值10000,计数值写入计数器各自的I/O地址,计数初值的计算,8253作计数器: 计数的次数作为计数初值 8253作定时器: 要求产生定时时间间隔的定时常数Tc Tc=要求定时的时间(OUT)/时钟脉冲周期 要求产生频率为f信号的定时常数Tc Tc=时钟脉冲频率/要求的波形频率(OUT),3 读取计数值,对8位数据线,读取16位计数值需分两次 计数在不断进行,应该将当前计数值先行锁存,然后读取: 向控制字I/O地址:给8253写入锁存命令 从计数器I/O地址:读取锁存的计数值,读取计数值,要注意读写格式和计数数制,10.3 8253在IBM PC系列机上的应用,计数器0:定时中断,计数器0:方式3,计数值:65536,输出频率为1.19318MHz÷65536=18.206Hz的方波 门控为常启状态,这个方波信号不断产生 OUT0端接8259A的IRQ0,用作中断请求信号 每秒产生18.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位计数值 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,端口地址为304H~307H编写初始化程序段MOV DX,307H MOV AL,35H OUT DX,AL MOV DX,304H MOV AX,1000 OUT DX,AL MOV AL,AH OUT DX,AL,例题2,某产品的包装流水线中,一个包装箱能装24罐饮料装箱时希望流水线上每通过24罐饮料,流水线要停4秒以等待包装箱封口,然后继续通过下一箱的24罐流水线就是这样周而复始的运作试利用一片8254来完成流水线控制中的定时和计数功能假设8253的端口地址为8CH~8FH,采用的时钟频率是2KHz思路:用8253的计数通道1作为计数器,用于24个罐的计数;计数通道2作为定时器,定时为4S当计数通道1的OUT脚出现0到1的跳变的时候,将启动计数通道2开始定时,而计数通道2定时阶段将控制计数通道1停止计数,只有其定时结束并停止定时阶段才可再次启动计数通道1开始计数计数通道1工作在方式2,计数初值24 计数通道2工作在方式1,计数初值8000,;初始化程序 ;计数通道1初始化 MOV AL, 01010100B OUT 8FH, AL MOV AL, 24 OUT 8DH, AL ;初始化计数通道2 MOV AL, 10110010B OUT 8F, AL MOV AX, 8000 OUT 8EH, AL MOV AL, AH OUT 8EH, AL,第10小结,1. 掌握8253引脚,尤其是CLK、OUT、GATE引脚的功能 2. 掌握8253的六种工作方式、编程和在IBM PC系列机上的应用,。












