《微机原理与接口技术》第五章 |
您所在的位置:网站首页 › 定时器计数器工作方式是 › 《微机原理与接口技术》第五章 |
虽然写这个博客主要目的是为了给我自己做一个思路记忆录,但是如果你恰好点了进来,那么先对你说一声欢迎。我并不是什么大触,只是一个菜菜的学生,如果您发现了什么错误或者您对于某些地方有更好的意见,非常欢迎您的斧正! 第1节——定时器和计数器的概念计数/Counter:统计某对象的数量(典型的计数对象是脉冲) 定时/Timer:定时的本质是计数。当计数对象出现的“时间间隔”固定且已知,则 定时时间=计数数量×时间间隔 第2节——8253A的结构和工作原理8253A的结构和基本特点 ①有3个16位相互独立的计数器:T0, T1, T2 ②每个计数器都可以按照二进制或二—十进制计数 ③每个计数器可设置6种不同的工作方式 ④每个计数器可以预置计数初值(时间常数) ⑤计数器的当前计数值可被CPU读出 8053A的外部引脚【24脚,+5V】 功能引脚(面向CPU的信号线) 功能引脚(面向I/0的信号线) ①数据总线D0~D7 三态输出/输入线:数据、命令和状态 ⑥时钟信号CLK 计数的对象:每输入1个脉冲便计数1次。 CLK 0、CLK 1、CLK 2 ②片选线(CS) 低电平有效。由地址译码的结果控制 ⑦门控信号GATE 控制计数的启动、暂停、禁止 具体功能和工作方式有关 GATE0、GATE1、GATE2 ③ 读信号(RD) 低电平有效。对8253A寄存器进行读操作 ⑧计数器输出OUT 输出特定波形标识定时或计数完毕或计数过程 OUT0、OUT1、OUT2 ④写信号(WR) 低电平有效。对8253A寄存器进行写操作
⑤地址线A1A0 接到系统地址总线的A1A0 A1A0用于选择8253A内部寄存器。
●8253A内部有6个模块 ①3个独立的计数器 结构完全相同,完成计数过程 ②数据总线缓冲器 与CPU数据总线D0~D7相连 写入命令字 写入计数初值 读出计数初值或当前值 ③控制命令寄存器 接收控制命令,选择计数器及设定工作方式 ④读写逻辑 根据CPU读/写信号和地址信号选择数据传输方向和端口 计数器工作原理 通过控制命令结合GATE,以某种特定方式对CLK脉冲进行计数并在OUT端输出相应波形。 ●计数初值C的确定 计数初值C决定了计数的次数或定时的长度 ①单纯的计数:直接设定 ②作为定时用,把时间L转成相应的计数C 假设时钟周期为TCLK (或频率fCLK) C = L / TCLK = L * fCLK 例: 定时 5ms , 时钟1.19318MHz, 则 C = L * fCLK = 5*10-3 * 1.19318 * 106 = 5965 ●8253A的端口选择和操作 端口选择:4个端口:T0,T1,T2,控制端口 CS 片选 RD 读操作 WD 写操作 A1 地址线 A0 地址线 选中的对象 操作 0 1 0 0 0 T0 写入“计数初值” 0 1 0 0 1 T1 写入“计数初值” 0 1 0 1 0 T2 写入“计数初值” 0 1 0 1 1 控制寄存器 写“工作方式控制字” 0 0 1 0 0 T0 读“当前计数值” 0 0 1 0 1 T1 读“当前计数值” 0 0 1 1 0 T2 读“当前计数值” 0 0 1 1 1 三态
1 × × × × 三态
0 1 1 × × 三态 第3节——8253A的初始化和基本操作 ●控制端口:工作方式控制字(选择计数器并设定工作方式) ①选择计数器:T0,T1或T2 ②确定读写数据方式(8位或16位,字节位置和顺序) ③确定计数器的工作方式(方式0~5) ④确定计数的机制(二进制码或BCD码) ●T0或T1或T2端口:设定计数初值 写入计数初值:向选定的计数器写入计数初值 工作方式控制字(CW) ①选择计数器:T0,T1或T2 ②确定读写数据方式(8位或16位,字节位置和顺序) ③确定计数器的工作方式(方式0~5) ④确定计数的机制(二进制码或BCD码) D7 D6 D5 D4 D3 D2 D1 D0 SC1 SC0 RW1 RW0 M2 M1 M0 BCD 计数器选择 读写数据方式 工作方式 码制 0 0 :T0 0 1 :T1 1 0 :T2 1 1 :不用 00:不用(锁存) 0 1 :低8位 1 0 :高8位 1 1 :先低后高 0 0 0 :方式0 0 0 1 :方式1 X 1 0 :方式2 X 1 1 :方式3 1 0 0 :方式4 1 0 1 :方式5 0 :二进制 1 :BCD ●课堂作业1 工作方式控制字 芯片地址304(即304~307且控制端口307) 例: T1 ,方式0,二进制,计数初值BYTEH:BYTEL。 MOV DX, 307H ; 命令口,把16位数据307H送到DX寄存器 MOV AL, 01110000B ;工作方式控制字,把控制字0111000B送到AL寄存器 OUT DX, AL ;把AL中的控制字写入命令寄存器 MOV DX, 305H ; T1数据口,把305H送到DX寄存器 MOV AL, BYTEL ;计数初值低字节 OUT DX, AL MOV AL, BYTEH ;计数初值高字节 OUT DX, AL ●8253A的基本操作: ①获取当前计数值:直接读取或锁存命令 ②获得工作状态:获得状态字 ③通过向控制端口写特定的字完成 ●锁存命令: ●课堂作业2 锁存命令 芯片地址304(即304~307且控制端口307) 例:读出T2当前计数值(16位),并装入AX寄存器。 MOV DX, 307H ;命令口 MOV AL, 10000000B ;T2的锁存命令 OUT DX, AL ;写入命令寄存器 MOV DX, 306H ;T2数据口 IN AL, DX ;读T2的当前计数值的低8位 MOV BL , AL IN AL, DX ;读T2的当前计数值的高8位 MOV AH, AL MOV AL , BL ●工作方式:方式0~方式5 ●工作方式的主要差异: ①OUT信号或波形 ②计数的启动方式(软件启动、硬件启动(GATE)) ③初值(/重新)装入的生效方式 ●方式0:计数结束中断方式 基本特点:典型的事件计数用法 ①写入工作方式控制字(CW, Control Word) OUT开始变成高电平 ②写计数初值C到初值寄存器 下一个CLK周期把C装入减1计数器。 GATE高电平时立即开始计数。 ③计数期间OUT维持低电平。 ④当减1计数器减到0时OUT变为高电平。 ⑤当重新写入C后,立即开始新一轮计数 OUT再次变成低电平 计数期间,如果重写计数写计数值,立即重新开始计数。 ⑥GATE:高电平:允许/继续计数 ;低电平:禁止计数 ⑦OUT可作中断请求信号【特点:被响应后才变低】 例子:计数初值C=4 同方式0很类似 ①写入控制字CW后,OUT变高电平。 ②写入计数初值C ③GATE上跳时,C装入减1计数器,开始计数,OUT变低。 ④整个计数过程中OUT维持低电平,直到计数结束才变高。 OUT负脉冲宽度 = 计数初值 * CLK周期。 ⑤如果计数过程中GATE出现上跳,则重新计数。 ⑥计数过程中如果重写初值,则要等当前计数结束且GATE再次出现上升沿后,才能开始新的计数 ●方式1的应用场合: 改变计数初值C可产生不同宽度的低电平,获取可变宽脉冲信号 实现脉宽调制 ●方式2:周期性负脉冲输出,分频器 若计数初值为N,则OUT输出的频率为CLK的1/N。又称N分频器。 ①写入控制字CW,OUT变成高电平。 ②写入计数初值C。 ③若GATE为高电平时,下一个CLK周期把C写入减1计数器,并开始计数。 ④计数过程中OUT保持高电平,直到倒数第2个CLK。 ⑤减一计数到1时,OUT输出1个负脉冲( 宽度为1个CLK周期) ⑥自动装入C, OUT再次变成高电平,开始新一轮计数。 注意: 方式2中启动动计数器的方法有两种 软件启动过程:装入计数初值 硬件启动过程:GATE上升沿 ●方式2的应用场合: OUT正脉冲宽度 =(计数初值 - 1)x CLK周期 OUT负脉冲宽度 = 1个CLK周期。 ①与方式2基本相同:自动装入计数初值C,循环计数 ②不同之处:OUT输出占空比为1:1或近似1:1的方波 C为偶数时,OUT的高、低电平前后各一半。 C为奇数时: 前(N+1) / 2个CLK:OUT高电平 后(N -1) / 2个CLK:OUT低电平。 ●特点: ①减1计数器每次计数减2。 ②OUT输出方波信号 ③计数器有软件启动和有硬件启动两种方式。 计数过程和特点 由软件启动计数:写入计数初值C触发计数器开始工作: ①设定方式后,OUT为高电平; ②写入C后,在下一个CLK开始计数 ③计数期间OUT保持高电平 ④计数结束输出1个CLK的负脉冲,然后OUT恢复高电平。 ⑤GATE作用 高电平:允许计数; 低电平:停止(不是暂停)计数 恢复高电平:重新开始新一轮的计数。 ⑥重写新的计数初值 不影响当前计数过程,直到下一轮计数时才生效 同方式4类似,单次负脉冲输出,硬件触发 GATE上升沿触发计数开始 ①写入C后,不立即计数,而要由GATE上升沿启动计数。 ②计数过程中OUT维持高电平 ③计数到0后,OUT输出1个CLK的负脉冲后恢复高电平。 ④在计数过程中,如GATE出现上升沿,立即开始新一轮计数 ●6种工作方式的总结 ●差异 ①计数过程和计数结束时OUT电平的高低和持续时间(波形) ②单次计数或自动循环计数 ③计数的启动方式:软件(写计数初值)或硬件(GATE) ●方式0和方式 1 ①输出波形类似 ②无自动重装C的能力 ③启动计数的触发信号不一样 方式0:软件(写初值) 方式1:硬件(GATE上沿) ●方式2 (N分频器)和方式3 (方波发生器) ①计数初值自动重装,循环计数 ②OUT频率:CLK的N分之一; ③方式2:计数时高电平,结束时1个CLK负脉冲 ④方式3:前一半为高,后一半为低 ●方式4 (单次负脉冲)和5方式(单次负脉冲) ①输出波形相同:单次负脉冲 ②无自动重装能力 ③启动计数方式不同:方式4:软件,方式5:硬件 ●方式2 (N分频)和方式4与5 ①方式2:周期性负脉冲 ②方式4与5:单次负脉冲 所有有疑问的人,可以推荐一个老师给你们: 搜索“慕课”,然后去主页搜索“苏曙光”,这个老师真的真的优秀!讲课从不拖泥带水,精简干练,而且条理清晰,层次分明,超级严谨的!(我不是夸张,你可以当做我是个脑残粉)他目前还没有开设“微机原理”这门课,但是他开了一门《操作原理系统》。你点进去就可以加入学习了,然后去讨论区里去问他!!!
|
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |