版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
本教案内容第9章
定时/计数器8253应用设计
8253的引脚功能及特点8253的原理结构及工作原理8253的控制字及工作方式8253与系统总线的接口方法8253的应用设计在采用8253进行定时/计数器设计时,首先应该将它与CPU正确连接,在已经设计好8086系统总线情况下,可以直接利用系统总线中的信号与8253连接。这里给出三种系统总线情况下8253的连接方法:8086的最小方式8086的最大方式IBMPC系统机。8253与系统总线的接口方法
8253与系统总线的接口方法
图
8086最小方式系统总线与8253的连接框图
在8086最小方式总线下,系统总线与8253连接框图如右图所示。图中译码电路根据给定的8253端口地址确定,这里和A0均为低电平有效,而且约定采用A2、A1作为8253的内部地址线。图中给出使用偶地址的情况,当采用奇地址时,只需要将图中的地址信号A0换成,并且将8086总线的D7~D0换成D15~D8。图8086最大方式系统总线与8253的连接框图
在8086最大方式总线下,系统总线与8253连接框图如图9.15所示。与图9.14类似,只是将读写信号变成为和。图中给出使用偶地址的情况,当采用奇地址时,只需要将图中的地址信号A0换成
,并且将8086总线的D7~D0换成D15~D8。
8253与系统总线的接口方法
在IBMPC机系统中,采用8088的最大方式,而且由于系统中包含DMA机构,因此,设计端口和存储器的译码电路时,必须是非DMA操作模式,即AEN=0,这样,IBMPC机系统总线与8253连接框图如右图所示。应该注意,系统的数据总线只有8位,故没有信号。
图IBMPC机系统总线与8253的连接框图
8253与系统总线的接口方法
8253的应用设计例9.1在以8086构成的最大方式系统中,有一片8254的端口地址分别为301H、303H、305H和307H,给定的外部时钟为512kHz。要求:(1)利用计数器0产生周期为1ms的周期信号,请编写初始化程序;利用这一计数器能产生的最低信号频率为
,这时的时常数CR0=
。(2)利用计数器1和2产生如下图所示的周期信号,并编写初始化程序。(3)画出8253的端口译码电路(地址线只使用A0~A9)及其连接图。图8253所要产生的周期信号解:设给定的外部时钟为CLK,其周期T=1/512kHz=1.953125μs。(1)为了得到1ms的周期信号,因此计数器0应该采用方式2或方式3,其时常数CR0=1ms/1.953125μs=512。利用这个计数器分频时,其最大的分频次数为62256,这时得到最低的频率为512kHz/62256,即约为8.22Hz。(2)为了产生如图9.17所示的周期信号,应该采用方式2,但在方式2下,其低电平时间仅为一个时钟周期,因此,利用一个计数通道无法实现这个任务。现在采用计数器1和计数器2联合,先利用计数器1产生周期为1.5ms的周期信号,然后将输出OUT1信号作为计数器2的时钟输入CLK2,这样可以实现题目的要求。对于计数器1,工作方式可以选用方式2或方式3,一般采用方式3,这样可以使产生的信号(近似)对称,其时常数CR1=1.5ms/1.953125μs=768,需要采用16位的时常数表示。对于计数器2,工作方式只能选用方式2,其时常数CR2=(3s+1.5ms)/1.5ms=3001,也需要采用16位的时常数表示。8253的应用设计8253的应用设计8253的初始化程序段如下:MOV DX,307H ;写计数器1方式控制字MOVAL,01110110BOUTDX,ALMOVDX,303H ;写计数器1时常数MOVAX,768OUTDX,ALXCHGAL,AHOUTDX,ALMOVDX,307H ;写计数器2方式控制字MOVAL,10110100BOUTDX,ALMOVDX,305H ;写计数器2时常数MOVAX,3001OUTDX,ALXCHGAL,AHOUTDX,AL(3)根据上面分析和题目给定的条件,可以画出8253的地址译码电路和连接图,如下图所示。8253的应用设计图9.188253的地址译码电路及其连接图8253的应用设计例9.2设8253的端口地址为260H~263H,外部时钟信号为1MHz,要求产生如下图所示的周期波形,画出8253的连接图,并编写初始化程序段。图8253所要产生的周期信号解:本题仅采用8253的三个计数通道来实现。分两步实现:(1)由于要产生周期信号,因此必定包含方式2或方式3,我们采用方式3产生周期为1s+12ms=1012ms的方波信号,题目给定的外部时钟为1MHz,这时需要的分频系数(即时常数)为:1012ms/1μs=1012000,显然,通过一个计数通道无法实现,所以,采用计数器0和计数器1联合产生,CR0=1000,CR1=1012,这样OUT1的周期为1ms。(2)利用计数器2的方式1实现单脉冲形成,以此作为要求产生信号的低电平,其时常数CR2=1s/1ms-1=999,计数器0的OUT0信号作为计数器2的时钟输入信号,OUT1作为计数器2的硬件触发信号,确保周期为1012ms。8253的连接图如图9.20所示,各个OUT端产生的信号如下图所示。
图OUT端产生的信号8253的应用设计图8253的连接图例9.3有一个未知频率的对称周期信号s(t)(频率范围在100Hz~2kHz之间),现在8086最小系统中已经设计了一片8253,其端口地址为380H、382H、384H和386H,外部可以使用的标准信号源为1MHz,设计测量输入s(t)信号的频率,并将结果保存在SFR字单元中。8253的应用设计解:测量信号频率的方法有两种:计数法和测周期法,所谓计数法是指在一个确定的时间t内测出s(t)的脉冲个数N,这样s(t)的周期约为t/N,要求t足够长,使N≥100。所谓测周期法是指在s(t)的一个周期内测出已知标准周期信号(设周期为T0)周期数N,则s(t)的周期约为N×T0,这种方法也要求N≥100,即基准频率信号的周期足够短。根据题目给定的信号,这里应该采用测周期法,基准频率信号为1MHz,T0=1μs。由于题目给定被测信号s(t)为对称的周期信号,因此只需要测量半个周期Th,根据给定的频率范围可以计算出250μs≤Th≤5000μs,这样可以保证测出的周期数250≤N≤5000,确保测量的精度要求。利用计数器0实现输入信号s(t)频率的测量,将基准信号1MHz加到CLK0端,s(t)加到GATE0端,并同时将s(t)连接到8259的中断请求TR0端,8253的连接图如图9.22所示。信号频率测量关系如图9.23所示。计数器采用方式2,时常数取最大值,这样当GATE0端有上升沿查询时,可以启动计数器进行“减1”计数,当GATE0出现低电平时,暂停计数,并一直保留到CPU产生中断,在中断服务子程序中可以读取计数值,与初值相减后再加1就可以得到s(t)半周期内所包含的基准周期数。图信号频率测量关系8253的应用设计图信号频率测量连接图8253的初始化程序段如下:MOV DX,386H ;写计数器0方式控制字MOVAL,00110100BOUTDX,ALMOVDX,380H ;写计数器0时常数MOVAL,0OUTDX,ALOUTDX,ALSTI ;开中断中断服务子程序的主要内容为:PUSHAXPUSHBXPUSHDXMOVDX,386H ;发计数器0的锁存命令MOVAL,00000000BOUTDX,ALMOVDX,380H ;读计数值INAL,DXXCHGAL,AHINAL,DXXCHGAL,AHNEGAXINCAXMOVBX,AX;计算信号频率MOVDX,000FHMOVAX,4240HDIVBXMOVSFR,AX;保存信号频率POPDXPOPBXPOPAXIRET例9.4利用8253产生可变频率的时钟信号y(t),外部基准时钟为1MHz,要求根据键盘输入的2位十进制数,产生100种时钟信号,其分频系数分别是基准信号的2分频~101分频。解:这里只需要一个计数器,设采用计数器0,其CLK0接外部基准时钟1MHz,GATE0接+5V,OUT0即为产生的时钟信号y(t)。工作方式设置成方式3,其时常数为输入十进制数加2。设在数据段已经定义好键盘缓冲区KB_BUFF:KB_BUFF DB10 DB? DB10DUP(?)设8253的控制字寄存器地址为COUNTD,计数器0的端口地址为COUNTA,则8253的应用程序段如下:MOV DX,COUNTD ;写计数器0方式控制字MOVAL,00010110BOUTDX,AL8253的应用设计INPUT:MOVAH,0AH ;输入2位十进制数LEADX,KB_BUFFINT21HMOVCL,KB_BUFF+1 ;取出输入个数CMPCL,2JAINPUT ;输入个数超出2个时,无效MOVAL,KB_BUFF+2 ;取出十位SUBAL,30HJCINPUT ;非数字时,无效CMPAL,9JAINPUT ;非数字时,无效 MOVCL,KB_BUFF+3;取出个位SUBCL,30HJCINPUT;非数字时,无效CMPCL,9JAINPUT;非数字时,无效MOVBL,10;十进制数变换成二进制数MULBLADDAL,CLADDAL,2 ;修正MOVDX,COUNTA ;写计数器0时常数OUTDX,ALJMPINPUT例9.5在一个由8086构成的最小方式系统中,周期执行某一段程序(设用子程序MAIN_PROC表示),设MAIN_PROC子程序的执行时间为15ms,要求设计一片8253(端口地址为20H~27H中的偶地址),外部基准时钟为100kHz,完成当程序执行异常时,自动进行复位操作。解:当程序正常执行时,每次执行MAIN_PROC子程序的时间为15ms,如果一旦程序执行异常,则执行MAIN_PROC子程序的时间必定会超过15ms,根据这一点可以判定程序执行是否正常。8086CPU的RESET(复位)端为高电平时,可以使CPU得到复位,为此可以采用8253计数器的方式0实现程序执行异常的检测。8253的应用设计图8253的连接图图程序执行异常的检测时序示意图如图所示。我们在每次调用子程序MAIN_PROC之前都写入计数器的时常数,这样,两次写时常数的时间间隔为15ms。然后计数器0工作在方式0,其时常数确定的定时时间为18ms,即时常数为18ms/0.1ms-1=179。这样,在程序执行正常情况下,写入时常数后执行MAIN_PROC子程序,还没有达到定时的时间,又会写入时常数,从而确保OUT0端一直为低电平;当程序执行异常情况下,写入时常数后执行MAIN_P
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 卒中专科护士培训
- 内蒙古包头市昆都仑区友谊大街二十小2024-2025学年六年级上学期月考数学试卷
- 2025蛇年新年工作总结金蛇送福模板
- 期中试题2022-2023学年冀教版(三起)英语五年级上册(无答案)
- 广东省揭阳市惠来县第一中学2024-2025学年高一上学期第一次阶段考试物理试题(含答案)
- T-TSSP 043-2023 花椒麻素快速检测方法
- 【课件】Unit4+Grammar+Focus-3a-3d课件人教版英语七年级上册
- 语法专项之非谓语动词,分词
- 八情感性精神障碍分解
- Windows Server网络管理项目教程(Windows Server 2022)(微课版)2.6 任务2 客户端加入活动目录
- 江苏盐城市实验小学2022-2023五年级上册语文期中试卷及答案
- 心理咨询和治疗:29 EMDR
- 精神科出走防范预案及应急处理流程
- 镍包覆石墨复合粉体的制备及热喷涂涂层的性能研究
- 职业健康检查操作规程
- 高中英语外研版新教材unit3说课like-father-like-son
- 天翼云认证开发工程师必备考试复习题库(高分版)-上(单选题)
- Unit+3+教案 牛津上海版八年级英语上册
- 等级医院现场评审迎检注意事项课件
- 含碘对比剂静脉外渗护理管理实践指南
- 发电厂 防火分区、总平面布置、安全疏散、构造、消火栓
评论
0/150
提交评论