微型计算机接口技术(第二版) 教学课件 ppt 作者 古辉 刘均 雷艳静 第3章 定时-计数技术
浙江工业大学计算机学院,微机接口技术,1,内容回顾,I/O端口编址 编址方式:统一编址、独立编址,各自的优缺点。 独立编址下的I/O指令:直接寻址、间接寻址。 I/O端口地址分配 系统板上的I/O接口芯片端口地址分配。 扩展槽上的I/O接口控制卡端口地址分配。 I/O端口地址译码 固定式译码:门电路,译码器(3-8,2-4,4-16译码器)。 可选式译码:比较器,地址开关,跳线等。,2,3,第三章 定时/计数技术,(1) 定时与计数 定时 计算机系统是通过定时器、按照一定的节奏(时间间隔)来进行工作的。 如:系统的日历时钟、存储器的动态刷新、应用系统的定时中断、定时查询与检测等。 计数 生产线上产品的计数,如药片、饮料等。,3.1 定时/计数基本概念,4,定时和计数实质上都是计数。定时是通过记录高精度晶振的脉冲个数,输出准确的时间间隔。,微机系统中常需定时信号为处理器或外设提供时间基准;或对外部事件进行计数。 例:分时系统的程序切换,向外设周期性发控制信号。 微机中的定时分为以下2类: 内部定时:是计算机本身运行的时间基准或时序关系。计算机的每个操作都严格按照固定的时间节拍来进行。 外部定时:外设与CPU,或外设与外设之间的时间基准和时序关系。,5,重点,(2) 微机系统中的定时与计数,软件定时 通过软件编程,循环执行一段程序来实现。 优点:无需专用硬件,方法简单、灵活。 缺点:CPU开销大,效率低;定时不精确。 适用于定时时间不长、精度要求不高的场合。,6,/ 80c51软件定时程序 void delayms(int xms) for (int i=xms; i0; i-) for (int j=110; j0; j-); delayms(500); / 延时约500ms,(3) 微机中的定时方法,不可编程的硬件定时 采用分频器、单稳电路或简易定时电路控制定时时间。 例:简易定时炸弹、空调遥控器。 优点:不占用处理器时间,电路也不复杂。 缺点:缺少灵活性,电路一旦设计好,其定时时间和范围就不能改变。,7,可编程的硬件定时 用可编程定时器芯片构成一个定时电路,定时时间软件可调。 优点:软、硬件相结合,克服了纯软件和纯硬件定时的缺点。不占用CPU资源、定时准确、定时时间长、使用灵活。 常用的可编程定时芯片: 8253:5MHz。 8254:10MHz。,8,两者在芯片功能、外形和引脚上大同小异,8254 附加功能:读当前计数单元;读状态寄存器内容。,9,内容概要,定时与计数基本概念 微机中的内部与外部定时 3种常用的定时方法,(1) 总体结构,3.2 8253/8254 定时/计数器,10,数据总线缓冲器 三态双向8位寄存器,是系统数据总线与8253/8254的接口,与D7 D0相连,可寄存以下3种数据: CPU向8253/8254写入的工作方式命令字; CPU向计数寄存器写入的计数初值; 从计数器读出的当前计数值。 读/写控制逻辑 用来接收CPU发来的读写信号、片选信号和地址信号,选择相应的寄存器,并确定数据传输的方向(写入、读出)。,11,控制字寄存器 接收CPU发来的控制字。控制字只能写入,其功能为: 选择计数器; 确定计数器的工作方式; 确定写入计数初值的格式(高低8位或16位); 确定计数格式:二进制或BCD格式。 计数器 02 3个结构完全相同、相互独立的计数器。 每个计数器包含一个16位初值寄存器、一个16位减1计数器和一个16位输出锁存器。,12,13,计数开始前需写入初值。初值被同时送入初值寄存器和减1计数器。MAX = 216-1。 计数过程中,初值寄存器中的值保持不变。,条件满足时,每个CLK计数减1。减为0时,OUT 端输出波形。,锁存减1计数器的值,以供读出和查询。 若想获取当前计数值,不能直接从减1计数器读出,而是必须先锁存,再从锁存器读出。,24引脚、DIP双列直插封装,单一+5V供电。 内含3个独立的定时/计数器(T/C),各自具有独立的时钟信号CLK、门控信号GATE和输出信号OUT。 可通过编程,分别设定各定时/计数器的工作方式。,14,(2) 8253/8254 外部引脚定义,数据总线 D7D0 用于将8253/8254与系统总线相连,供CPU向8253/ 8254读写数据、命令和状态信息。 内部端口地址译码信号A1A0 用于片内端口选择。 A1A0 = 00,选择计数器0 A1A0 = 01,选择计数器1 A1A0 = 10,选择计数器2 A1A0 = 11,选择控制端口,15,片选信号CS 输入信号,低有效,由CPU输出的地址线译码产生。 读写信号RD和WR 输入信号,低有效。分别连接系统总线的IOR和IOW。 时钟信号CLK0 CLK3 各自独立。作用:定时或计数时,每个CLK下降沿,计数减1。,16,门控信号 GATE0 GATE3 各自独立。作用:允许或禁止计数过程。 计数输出信号 OUT0 OUT3 各自独立。计数减为0(或设置值)时,OUT端输出一个电平或脉冲信号,指示定时或计数已到。 OUT 的用途: 可作为外部定时、计数控制信号,控制或启动I/O设备的某种操作。 可作为定时、计数已到的状态信号,供CPU监测。 可作为中断请求信号使用。,17,18,(3) 8253/8254 读写操作及端口地址,19,内容概要,8253/8254总体结构 8253/8254外部引脚 8253/8254地址分配,8253/8254 的每个计数器有6种工作方式: 方式0计数期间低电平输出(GATE高电平时计数) 方式1计数期间低电平输出(GATE上升沿重新计数) 方式2周期性输出负脉冲 方式3周期性输出方波 方式4软件触发输出单脉冲 方式5硬件触发输出单脉冲 6种工作方式的区别在于: 输出波形不同。 启动计数器的触发方式不同。 计数过程中门控信号GATE对计数操作的影响不同。,3.3 8253/8254 工作方式,20,写方式字和初值(基本计数过程) 向计数器写入方式字0后,WR的上升沿使OUT信号变低。 写入计数初值后,WR的上升沿将初值写入初值寄存器,在下一个CLK下降沿,才将计数初值写入减1计数器。 之后每个CLK下降沿,计数减1。减为0时,OUT变高。,21,(1) 方式0计数期间输出低电平(GATE高电平计数),门控信号 GATE为高时允许计数;为低时暂停计数,其计数值保持不变。当GATE再次变高时,计数器从暂停处继续计数。 GATE信号的变化不影响OUT信号的状态。,22,重新计数 计数期间,若再次写入计数初值,则计数器立即按新的初值重新计数。,23,写方式字和初值 向计数器写入方式字1后,WR的上升沿使OUT信号变高。 写入初值后,若无GATE ,则OUT持续为高;若有GATE上升沿,则在GATE上升沿后的下一个CLK下降沿,OUT变低。 之后每个CLK下降沿,计数减1。减为0时,OUT变高。,24,(2) 方式1计数期间输出低电平(GATE 重新计数),门控信号 计数期间,若GATE信号又出现上升沿,则计数器重新装入初值,开始新的计数。,25,重新计数 计数期间,若重新写入计数初值,则要等到当前计数值计满到0,且GATE再次出现 时,才按新的初值重新计数。,26,写方式字和初值 写入方式字2后,WR的上升沿使OUT信号变高。 写入初值后,计数器在CLK下降沿的作用下进行减1计数。当减为1时,OUT变低并维持一个CLK周期,然后又变高,并自动装入初值重新进行计数。,27,(3) 方式2周期性输出负脉冲,该方式能连续工作,且输出固定频率的脉冲,因此称之为频率发生器或分频器。,门控信号 GATE为高,允许计数;否则,终止计数。待GATE恢复为高后,计数器将从初值重新进行计数。,28,重新计数 计数期间,若重新写入计数初值,则不会影响正在进行的计数过程,必须等到计数器减到1之后,才装入新的初值,并按照新的初值进行计数。,29,与方式2基本相同,都具有自动装入计数初值、连续计数的功能。不同在于:方式3下OUT端连续输出比例为1:1 或近似1:1的方波,因此称为方波发生器。 相同点回顾 写入方式字后,OUT信号变高。写入初值后,计数器进行减1计数。方式2:当减为1时,OUT输出一个周期负脉冲后变高,重新装入初值继续计数。 GATE同前:高时计数;低时停止计数;恢复后重新计数。 重新计数同前:重装初值后,必须等上轮计数完成后再按新的初值计数。,30,(4) 方式3周期性输出方波,初值为偶数时 写入方式字后,OUT信号变高。 写入初值后开始减1计数;减到 n/2 时,OUT变低,继续减1计数;减到0时,OUT变高,并自动装入初值,重新计数。,31,OUT 端连续输出占空比为1/2的方波。 占空比:脉冲序列中,正脉冲的持续时间与脉冲总周期的比值。,初值为奇数时 写入方式字后,OUT信号变高。 写入初值后开始减1计数;减到 (n-1)/2 时,OUT变低,继续减1计数;减到0时,OUT变高,并自动装入初值,重新计数。,32,写方式字和初值 写入方式字4后,OUT信号变高。 写入初值后,软件触发计数器进行减1计数。减为0时,OUT端输出一个CLK周期的负脉冲,然后恢复为高电平。 不能自动装入初值。要想启动下一次计数,需重新写入初值,由软件触发计数器开始工作。,33,(5) 方式4软件触发输出单脉冲,门控信号 GATE高电平时,允许计数;否则,终止计数。待GATE恢复为高后,计数器将从初值重新进行计数。,34,重新计数 计数期间,若重新写入计数初值,则不会影响正在进行的计数过程,必须等到计数器减到0之后,才装入新的初值,并按照新的初值进行计数。 计数完毕后(没有软件再次触发),计数器将停止工作。,35,基本原理:类似方式4,硬件触发 写入方式字5后,OUT信号变高。 写入计数初值后,并不立即计数,而是在GATE有上升沿后才开始减1计数。减为0时,OUT端输出一个周期的负脉冲,然后变高。 计数过程中或计数结束后,若GATE再次出现上升沿,则计数器装入初值重新进行计数。,36,(6) 方式5硬件触发输出单脉冲,由于计数的开始由 GATE 上升沿触发,而 GATE 信号由硬件产生,因此该方式称为硬件触发。,37,6种工作方式比较,38,方式0(GATE电平控制) 与方式1(GATE 控制) 比较 相似点 输出波形相似:开始计数后OUT为低;计数减为0时变高。 均无自动装载能力。 不同点 方式0写入初值后立即开始计数,且不可重复计数;方式1需等GATE上升沿后才计数,且可重复触发。 方式0中GATE信号电平控制计数过程:高电平计数,低电平暂停,恢复为高后从暂停处继续计数;方式1中,只要有GATE上升沿,即可触发重新计数。 方式0中重新装入初值后立即按新值计数;方式1中重新装入初后需等上轮计数完成且GATE信号有上升沿时,才按新值计数。,39,40,方式0,方式1,方式2(分频器) 与方式3(方波发生器) 比较 相似点 均具有自动装载能力,OUT 端均可输出连续波形。 输出信号的频率相同,均为 fclk / 初值。 不同点 方式2:在计数过程中输出高电平,计数减为1时输出一个CLK周期的负脉冲。 方式3:在计数过程中,OUT端比例为1:1或近似1:1的方波。,41,42,方式2,方式3,方式4(软件触发) 与方式5(硬件触发) 比较 相似点 输出波形相似:计数过程OUT为高,计数减为0时输出一个CLK宽度的负脉冲。 均无自动装载能力。 不同点 方式4需由软件触发(写计数初值)计数。 方式5需由硬件触发(GATE上升沿)计数。,43,44,方式5,方式6,【3-1】计数器1工作在方式1,计数初值为10。假定其为BCD计数,门控信号GATE1和时钟信号CLK1的输入如下图所示,请问输出脉冲T的宽度是多少?,45,解:(1) 方式1 特点回顾 计数期间OUT输出低电平,