微机原理与接口技术定时计数技术_第1页
微机原理与接口技术定时计数技术_第2页
微机原理与接口技术定时计数技术_第3页
微机原理与接口技术定时计数技术_第4页
微机原理与接口技术定时计数技术_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

微机原理与接口技术定时计数技术第一页,共三十八页,2022年,8月28日学习目的通过对本章的学习,您应该能够达到下列要求:了解定时基本概念熟悉可编程计数器/定时器8253的外部特性熟悉可编程计数器/定时器8253工作模式熟悉可编程计数器/定时器8253初始化第二页,共三十八页,2022年,8月28日重点8253的外部特性8253工作模式8253初始化第三页,共三十八页,2022年,8月28日8.1定时基本概念定时/计数日时钟-实时钟;定时采样生产线上零件统计、车流量统计频率-声音-音乐

微机中的定时方法软件定时——延迟子程序短时延时,不需要外围设备;CPU等待延时增加开销,降低CPU效率,受主机频率的影响,通用性差等第四页,共三十八页,2022年,8月28日硬件定时采用定时/计数器或单稳延时电路产生定时或延时。不占CPU时间,定时准确且时间长,不受主机频率的影响,使用灵活,通用性好。8.1定时基本概念8253:2MHz 8253-5:5MHz8254:8MHz 8254-2:10MHz8254-5:5MHz等第五页,共三十八页,2022年,8月28日例8.1:软件定时的例子编写一个软件定时程序,要求定时20ms。假设:8086的时钟=8MHz,一个时钟周期T=1/8MHz=0.125us延时20ms,执行PUSHF,POPF指令:需要循环次数:N=20000/[(14+12+17)*0.125]=37209参考程序:

MOVCX,37209L1:PUSHF ;时钟数:14T

POPF ;时钟数:12T

LOOPL1

;时钟数:17T第六页,共三十八页,2022年,8月28日误差:(15+12+19)*0.125=5.75us写成子程序:DELAYPROCFAR

PUSHCXMOVCX,37209L:PUSHFPOPFLOOPL

POPCXRETPUSHCX;时钟数:15TPOPCX;时钟数:12TRET;时钟数:19T第七页,共三十八页,2022年,8月28日完成0~9的计数,主要程序片段MOVCX,10LP:CALLDELAYMOVDL,30HMOVAH,02H;DOS调用,显示一个字符

INT21HINCDLLOOPLPMOVAH,4CHINT21HDELAYPROCNEAR

;软件延时子程序

PUSHAXMOVCX,0FFFFHL:PUSHFPOPFLOOPLPOPAXRETDELAYENDP第八页,共三十八页,2022年,8月28日8.2可编程计数器/定时器8253

PIT(ProgrammableIntervalTimer)1.外部特性8086CPUD0~7A2A1A9~A38253端口地址为偶地址第九页,共三十八页,2022年,8月28日8253内部结构框图CLKi:不大于2MHZ第十页,共三十八页,2022年,8月28日1).数据总线缓冲器(8位)

往计数器设置计数初值;从计数器读取计数值;往控制寄存器设置控制字。2).读/写逻辑电路

A1A0:端口选择

00:通道0(0号计数器)

01:通道1(1号计数器)

10:通道2(2号计数器)

11:控制字寄存器第十一页,共三十八页,2022年,8月28日3).控制寄存器(8位)

接收CPU送来的控制字,用来选择计数器和工作方式,只能写不能读。4).计数器:

三个独立通道:计数器0,计数器1,计数器2

每个计数器包含:

计数初值寄存器(16位,65536个数,64KB)

减一寄存器(16位)

当前计数初值锁存器(16位)计数:CLK脉冲间隔可以不相等;定时:CLK脉冲间隔相等,精确的时钟脉冲第十二页,共三十八页,2022年,8月28日提问:8253每个计数通道与外设接口有哪些信号线,每个信号的用途是什么?定时/计数器芯片Intel8253占用几个端口地址?各个端口分别对应什么?

第十三页,共三十八页,2022年,8月28日2.计数初值计数初值n

=时钟频率fc/输出频率fout=定时时间Tout/时钟脉冲周期Tc3.编程命令方式命令字对8253初始化第十四页,共三十八页,2022年,8月28日

8.2.28253控制字格式

SC1SC0RW1RW0M2M1M0BCD1--计数值为BCD码格式0--计数值为二进制格式M2M1M0

模式选择

000模式0001模式1010模式2011模式3100模式4101模式500----对计数器进行锁存01----只读/写低8位字节10----只读/写高8位字节11----先读/写低8位字节,

再读/写高8位字节.00----选计数器001----选计数器110----选计数器211----无意义第十五页,共三十八页,2022年,8月28日8253初始化方法:设置控制字;确定计数初值。例8.2:使2号定时器,工作在方式3,计数初值=533H,二进制计数.试写出8253初始化程序段。已知8253的端口地址:40H,41H,42H,43HMOVAL,10110110B;2号定时器,方式3OUT43H,ALMOVAX,0533HOUT42H,AL;2号数据口MOVAL,AHOUT42H,AL第十六页,共三十八页,2022年,8月28日读当前计数值:先写锁存控制字,再读计数值例8.3:

计数器1已经初始化为8位二进制计数方式,要求读出并检查1号计数器的当前值是否全为”1”。已知8253的端口地址:40H,41H,42H,43HL:MOVAL,01000000B;1号计数器锁存命令

OUT43H,AL INAL,41H;读1号计数器计数值

CMPAL,0FFH JNEL HLT第十七页,共三十八页,2022年,8月28日

8.2.38253的工作模式方式0——计数结束产生中断一次定时或计数,重写初值,启动新一轮的计数方式1——可编程的单脉冲(单稳)触发器

GATE边沿触发,启动新一轮计数方式2——分频器(速度波形发生器)具有计数初值重装能力方式3——方波发生器具有计数初值重装能力方式4——软件触发的选通信号发生器一次定时,重写初值,启动新一轮的计数方式5——硬件触发的选通信号发生器

GATE边沿触发,新一轮计数第十八页,共三十八页,2022年,8月28日1.方式0——计数结束产生中断(一次定时或计数,若重新计数,则需重写初值,启动新一轮的计数)第十九页,共三十八页,2022年,8月28日例8.4:使1号定时器工作在方式0,计数初值0FF5H,二进制计数.试写出8253初始化程序段。已知8253端口地址:40H,41H,42H,43HMOVAL,01110000B;1号定时器,方式0OUT43H,ALMOVAX,0FF5HOUT41H,AL;1号数据口MOVAL,AHOUT41H,AL第二十页,共三十八页,2022年,8月28日高2.方式1——单脉冲触发器(GATE边沿触发,硬件触发,启动新一轮计数)

第二十一页,共三十八页,2022年,8月28日3.方式2----分频器(具有计数初值自动重装能力)3第二十二页,共三十八页,2022年,8月28日4.方式3--方波发生器(具有计数初值自动重装能力)

由OUT指令对CR置初值触发!第二十三页,共三十八页,2022年,8月28日例8.5:使2号定时器,工作在方式3,计数初值N=1000H,二进制计数.试写出8253初始化程序段.8253端口地址:40H,41H,42H,43HMOVAL,10100110B;2号定时器,方式3OUT43H,ALMOVAX,1000HOUT42H,ALMOVAL,AHOUT42H,AL;送2号数据口高8位,低8位自动为0第二十四页,共三十八页,2022年,8月28日4.方式4----软件触发的选通信号发生器第二十五页,共三十八页,2022年,8月28日5.方式5----硬件触发的选通信号发生器第二十六页,共三十八页,2022年,8月28日提问:8253有几种工作方式?主要区别在哪?什么是软件触发?什么是硬件触发?可重装初值的工作方式是哪些?方式2,4,5波形相同,均输出一个CLK负脉冲。方式1,5工作方式同(硬件触发),波形不同。方式0,2,3,4在写入计数值后开始计数;1,5还需外部触发。只有方式2,3是连续计数,其它需重启。第二十七页,共三十八页,2022年,8月28日置控制字和计数初值。已知:CLK的频率fclk与定时的时间Tout计数初值:N=定时时间Tout/时钟脉冲周期Tclk

=时钟频率fclk/输出频率fout=fclk

Tout

8.38253应用举例例:设8253的fclk=1MHZ,最大计数初值为:

N=65536,则:一个定时器最大定时时间:

Tmax=N/fclk=65536/106=0.065536s第二十八页,共三十八页,2022年,8月28日8.3.1脉冲发生器例:设置定时/计数器,使得OUT0输出周期为10ms的脉冲信号。定时常数N=Tout*fclk

=10*10-3*1.19318*106

=11931.8=2E9BH解:MOV AL,00110100BOUT 43H,ALMOV AL,9BHOUT 40H,ALMOV AL,2EHOUT 40H,AL工作方式的选择?方式2!8.38253应用举例第二十九页,共三十八页,2022年,8月28日例8.6:设定时器0、定时器1工作于方式2,外部提供一个时钟,频率f=2MHZ。要求定时器1每5ms产生一个脉冲,定时器0每5s产生一个脉冲。2).将定时器1的CLK1接2MHZ时钟,计数初值:3).将定时器1的OUT1端接到定时器0的CLK0端,定时器0的计数初值:1).一个定时器的最大定时时间:

65536/(2*106)=0.032768s=32.768ms第三十页,共三十八页,2022年,8月28日地址译码CPUD7~D0AB8253两个定时器串连使用第三十一页,共三十八页,2022年,8月28日8253初始化程序:MOVAL,00110100B;0号定时器,方式2OUT43H,ALMOVAX,1000OUT40H,ALMOVAL,AHOUT40H,ALMOVAL,01110100B

;1号定时器,方式2OUT43H,ALMOVAX,10000OUT41H,ALMOVAL,AHOUT41H,AL究竟如何执行得到计数?通过时序,电路控制第三十二页,共三十八页,2022年,8月28日例8.7:有一个频率发生器,其频率为1MHZ,要求用8253产生每秒一次的信号,8253如何连接?写出初始化程序。8253端口地址:40H,41H,42H,43H解:

1MHZ变为每秒1次,需要经过106分频,一个通道的计数值最大为65536,故需两个通道级连,每个通道计数为1000次。可选择通道0和通道1级连,都工作在方式2。第三十三页,共三十八页,2022年,8月28日MOVAL,00110100BOUT43H,ALMOVAX,1000OUT40H,ALMOVAL,AHOUT40H,ALMOVAL,01110100BOUT43H,ALMOVAX,1000OUT41H,ALMOVAL,AHOUT41H,AL8253初始化程序:通道0初始化通道1初始化第三十四页,共三十八页,2022年,8月28日8.3.2发声器8.38253应用举例例:利用8253发600Hz的声音。按任意键,开始发声;按ESC键,停止发声。解:根据题意,有三项工作:一是发声的频率应满足600Hz;二是扬声器的开和关。

计数初值:N=1.19318*106/600=1983扬声器开关控制:设置一个与门来控制。第三十五页,共三十八页,2022年,8月28日CLK2OUT2GATE2PB0PB182538255&滤波功放1.19MHz图1发声器电路原理第三十六页,共三十八页,2022年,8月28日DATASEGMENTM1DB'HELLO!',0DH,0AH,'$'DAT

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论