微机原理课件第18讲(电子ok)_第1页
微机原理课件第18讲(电子ok)_第2页
微机原理课件第18讲(电子ok)_第3页
微机原理课件第18讲(电子ok)_第4页
微机原理课件第18讲(电子ok)_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

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

文档简介

上节内容回顾8253的结构8253的地址分配8253的初始化控制字和读取计数值控制字举例对8253初始化编程实现如下功能:计数器0工作在方式3,CLK0为2MHz,要求OUT0输出频率为5KHz的方波。已知8253的端口地址为60H、62H、64H、66H。关于实验三实验仪不支持使用DOS功能调用置中断向量的方法,仅允许使用程序直接设置段地址和偏移地址的方式。xorax,axmoves,axmovax,offsetint8255moves:wordptr[8*4],axmovax,csmoves:wordptr[8*4+2],axMOVAX,CSMOVDS,AXMOVDX,OFFSETINT8255MOVAL,08H;中断类型号nMOVAH,25H;设置中断向量INT21H第八章接口技术及应用

8253有六种不同的工作方式。在不同的工作方式下,计数过程的启动方式不同,OUT端的输出波形不同,自动重复功能、GATE的控制作用以及更新计数初值对计数过程的影响也不完全相同。同一芯片中的三个计数器,可以分别编程选择不同的工作方式。8253工作方式GATE的控制功能工作方式下降沿或低电平上升沿高电平方式0禁止计数——允许计数方式1——从初值开始计数,下一个时钟后输出变低电平——方式2禁止计数,out=1从初值开始计数允许计数方式3禁止计数,out=1从初值开始计数允许计数方式4禁止计数——允许计数方式5——从初值开始计数——方式0

——计数结束中断方式方式1——可编程单稳态输出方式方式2——比率发生器方式3

——方波发生器方式4

——软件触发选通方式5

——硬件触发选通8253工作方式方式0-计数结束中断方式(InterruptonTerminalCount)

软件启动,不能自动重复的计数方式设计数初值为4,方式0的计数过程。①方式0CLKWRnOUTn=4n=443210

计数过程中,若GATE不为高电平,则暂停计数,上例中,若GATE有如下变化,则计数过程:①方式0CLKWRnOUTn=4n=44321GATE0方式1-可编程单稳态输出方式(ProgrammableOne-short)

工作过程:①CPU设定某计数器工作于方式1时,OUT变成高电平。②装入计数值n后,无论GATE为高或为低,计数器均不计数,必须在GATE有上升沿后,才能在下一个CLK下降沿装入n,开始减1计数;OUT产生负脉冲。③计数过程中,若GATE又有正脉冲,重新装入n计数。④计数值减为零后,OUT输出正脉冲。⑤计数过程中,GATE变低不影响计数。②方式1

总结:方式1是硬件启动、不能自动重复但通过GATE的正跳变可使计数过程重新开始的计数方式。设计数初值为5,方式1的计数过程。②方式1CLKWRnOUTn=55GATE4325432n=510方式2-比率发生器(RateGenerator)

工作过程:①CPU设定某计数器工作于方式2时,OUT变成高电平。②若GATE为高电平,则在写入计数值后的下一个时钟脉冲时,将计数值装入执行部件。③计数器随着时钟脉冲的输入而递减计数。当计数值减为1时,OUT产生负脉冲。计数器的值减为0时,OUT产生正脉冲。与此同时,将计数初值重新装入计数器,开始一个新的计数过程,并由此循环计数。③方式2

CPU可随时写入新的计数值,不影响当前计数过程的进行。当计数值减为0时,一个计数周期结束,8253将按新的n进行计数。下为例子:

GATE上升沿时,装入初值重新计数。③方式2CLKWRnOUTn=33GATEn=232102102102方式3-方波发生器(SquareWaveGenerator)

与方式2有类似之处,其工作过程:①CPU设定某计数器工作于方式3时,OUT变成高电平。②若GATE为高电平,则在写入计数值后的下一个时钟脉冲时,将计数值装入执行部件,开始计数。③如果初值为偶数,则每输入一个脉冲,使计数器减2;如果初值为奇数,则在第一个脉冲后,计数器减1,以后每个脉冲后计数器减2,直至为0重新计数,当OUT为低时,第一个脉冲后,计数值减3,以后每个脉冲后减2。④方式3④当计数值为零时,OUT翻转且装入计数值继续循环计数。⑤在计数过程中,若GATE变成低电平时,就迫使OUT变为高电平,并禁止计数,当GATE回到高电平时,重新从初值n开始进行计数⑥CPU可在任何时侯重新装入新的计数初值,在下一个计数周期就可按新的计数值计数,从而改变方波的速率。⑦从OUT端输出的方波频率都等于时钟脉冲的频率除以计数初值。④方式3

当写入的计数初值为偶数时,输出完全对称的方波,下为例子(设GATE为高):④方式3CLKOUTn=4420(4)20(4)20(4)20(4)20(4)

当写入的计数初值为奇数时,输出波形中波形的高电平宽度比低电平多一个时钟周期,下为例子(设GATE为高):④方式3CLKOUTn=5420(5)20(5)40(5)20(5)452方式4-软件触发选通(SoftwareTriggeredStrobe)

软件启动,不能自动重复计数,其工作过程:①CPU设定某计数器工作于方式4后,OUT变成高电平。②若GATE为高电平,则在写入计数值后的下一个时钟脉冲时,将计数值装入执行部件,开始计数。③当计数值成为0时,OUT端输出变低,经过一个时钟周期后,又回到高电平,形成一个负脉冲。④用这种方法装入的计数初值n仅一次有效,若要继续进行计数,必须重新装入计数初值。⑤方式4⑤若在计数过程中写入一个新的计数值,则在现行计数周期内不受影响,但当计数值回0后,将按新的计数初值进行计数,同样也只计一次。⑥如果在计数的过程中GATE变为低电平,则停止计数,当GATE变为高电平后,又重新将初值装入计数器,从初值开始计数,直至计数器的值减为0时,从OUT端输出一个负脉冲。⑤方式4

方式4举例⑤方式4WRnOUTn=43GATEn=2434210210方式5-硬件触发选通(HardwareTriggeredStrobe)

硬件启动,不能自动重复计数,其工作过程:①CPU设定某计数器工作于方式5后,OUT变成高电平。②若GATE有一个由低到高的正跳变后,装入初值,在下一个脉冲时减1计数。③当计数值成为0时,OUT端输出变低,经过一个时钟周期后,又回到高电平,形成一个负脉冲。④计数过程中,只要GATE有正脉冲进入,则重新按初值计数。⑥方式5⑤计数回零后若GATE有正脉冲,按初值重新开始计数。⑥计数过程中若改变计数值,若GATE无正跳变,计数不改变;反之则按新的计数值重新计数。⑥方式5WRnOUTn=43GATEn=24342102CLK218253工作方式比较①方式0:在写入控制字后,输出端即变低,计数结束后,输出端由低变高,常用该输出信号作为中断源。也可实现定时或对外部事件进行计数。其余5种方式写入控制字后,输出均变高。②方式1:产生单脉冲。③方式2:产生序列负脉冲,每个负脉冲的宽度与CLK脉冲的周期相同。④方式3:产生连续的方波。方式2和方式3都实现对时钟脉冲进行n分频。⑤方式4、方式5:波形相同,都在计数器回0后,从OUT端输出一个负脉冲,其宽度等于一个时钟周期。但方式4由软件(设置计数值)触发计数,而方式5由硬件(门控信号GATE)触发计数。⑥这6种工作方式中,方式0、1和4,计数初值装进计数器后,仅一次有效。如果要通道再次按此方式工作,必须重新装入计数值。对于方式2、3和5,在减1计数到0值后,8253会自动将计数值重装进计数器。8253工作方式比较8253举例

一个工厂需要自动统计在流水线上所生产的某种产品的数量,可采用8086微处理器和8253芯片设计实现这种自动计数的系统。+5VR62Ω+5VR1KΩ光电晶体管CLK1GATE1+5VD7~D0OUT1去8259的IR0A1A0A2A1CS高位译码74LS148253举例

设8253的4个端口地址分别是0F0H,

0F2H,

0F4H,

0F6H。当件数到200时,向8259发出中断申请,由中断服务程序使工件总数加上200,写出8253的初始化程序

。MOVAL,71H;计数器1,方式0,高低位,BCD计数OUT0F6,AL;送控制字MOVAL,99H;送低位数据OUT0F2H,ALMOVAL,01H;送高位数据OUT0F2H,AL8253应用举例1

某个以8086为CPU的系统中使用了一块8253芯片,通道的基地址为310H,所用的时钟脉冲频率为1MHz。要求3个计数通道,分别完成以下功能:⑴通道0工作于方式3,输出频率为2kHz的方波;⑵通道1产生宽度为480us的单脉冲;⑶通道2用硬件方式触发,输出单脉冲,时间常数为26。A9A8A7A6A5M/IO#A4A3A0A2A1RD#WR#D7~D08086CPUG1G2AG2BCBACLK0CLK1CLK2GATE0OUT0GATE1OUT1GATE2OUT2

D7~D0CSA1A0RDWR1M方波5V2KHZ方波480μs宽脉冲单脉冲825574138

某个以8086为CPU的系统中使用了一块8253芯片,通道的基地址为310H,所用的时钟脉冲频率为1MHz。

通道0工作在方式3,输出频率为2KHZ的方波;通道1产生宽度为480μs的单脉冲;通道2用硬件方式触发,输出单脉冲,时间常数为26。A9A8A7A6A5A4A3A2A1A0

1100010000480us/1us=480,方式1计数值480>255,分两次送,BCD计数方式5,n=26<255,1次送,BCD计数/Y41MHZ/2KHZ=500(此M非MB中的M)计数值500>255,分两次送,BCD计数

控制字寄存器用来保存来自CPU的控制字。控制字寄存器D7D6D5D4D3D2D1D0SC1SC2RL1RL2M2M1M0BCD1BCD码计数0

二进制计数000方式0001

方式1×10

方式2×11

方式3100

方式4101

方式500计数器锁存,CPU读01

只读/写计数器低字节10

只读/写计数器高字节11

先读/写计数器地字节,后高字节00选择通道001选择通道110选择通道211

无效通道0⑴通道0工作于方式3,输出频率为2KHz的方波MOVAL,00110111B;数据分两次送,BCD计数MOVDX,316HOUTDX,AL;送控制字MOVAL,00H;送0500的低位MOVDX,310HOUTDX,AL;送数据MOVAL,05H;送0500的高位OUTDX,AL;送数据通道1⑵通道1产生宽度为480us的单脉冲MOVAL,01110011B;数据分两次送,BCD计数,方式1MOVDX,316HOUTDX,AL;送控制字MOVAL,80H;送0480的低位MOVDX,312HOUTDX,AL;送数据MOVAL,04H;送0480的高位OUTDX,AL;送数据通道2⑶通道2用硬件方式触发,输出单脉冲,时间常数为26MOVAL,10011011B;方式5,BCD计数MOVDX,316HOUTDX,AL;送控制字MOVAL,26H;送计数值26MOVDX,314HOUTDX,AL;送数据8253应用举例2

设某8086系统中,8253的各端口地址为81H,83H,85H,87H,要求8253控制LED,使得LED交替点亮和熄灭10秒钟,8253的输入频率为2MHZ,编程实现。

分析:交替点亮和熄灭10秒钟,即要求加载在LED上的时钟周期为20秒钟,采用方式2可以实现分频功能。假设使用某个通道工作在方式0,需要送入的初值N=20s/0.5us=40,000000,很显然,寄存器无法装载如此巨大的数据。

怎么办??8253应用举例2解决办法:让多个通道都工作在方式2,用其中某个通道的OUT当作另一个通道的CLK,从

温馨提示

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

评论

0/150

提交评论