定时计数控制接口_第1页
定时计数控制接口_第2页
定时计数控制接口_第3页
定时计数控制接口_第4页
定时计数控制接口_第5页
已阅读5页,还剩46页未读 继续免费阅读

下载本文档

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

文档简介

1、第第9 9章章 定时计数控制接口定时计数控制接口教学重点n 8253的引脚和的引脚和6种工作方式种工作方式n 8253的编程的编程n 8253在在IBM PC系列机上的应用系列机上的应用定时器和计数器定时控制在微机系统中极为重要定时控制在微机系统中极为重要n定时器由数字电路中的计数电路构成,定时器由数字电路中的计数电路构成,通过记录高精度晶振脉冲信号的个数,通过记录高精度晶振脉冲信号的个数,输出准确的时间间隔输出准确的时间间隔n计数电路如果记录外设提供的具有一定计数电路如果记录外设提供的具有一定随机性的脉冲信号时,它主要反映脉冲随机性的脉冲信号时,它主要反映脉冲的个数(进而获知外设的某种状态)

2、,的个数(进而获知外设的某种状态),常又称为计数器常又称为计数器定时功能的实现方法n软件延时软件延时利用微处理器执行一个延利用微处理器执行一个延时程序段实现时程序段实现n不可编程的硬件定时不可编程的硬件定时采用分频器、采用分频器、单稳电路或简易定时电路控制定时时间单稳电路或简易定时电路控制定时时间n可编程的硬件定时可编程的硬件定时软件硬件相结合、软件硬件相结合、用可编程定时器芯片构成一个方便灵活用可编程定时器芯片构成一个方便灵活的定时电路的定时电路9.1 8253/8254定时计数器n3个独立的个独立的16位计数器通道位计数器通道n每个计数器有每个计数器有6种工作方式种工作方式n按二进制或十进

3、制(按二进制或十进制(BCD码)计数码)计数8254是是8253的改进型的改进型9.1.1 8253/8254的内部结构和引脚D7D0计数器0控制字寄存器计数器1计数器2内部数据总线数据总线缓冲器读写控制逻辑RDWRA0A1CSCLK0GATE0OUT0CLK1GATE1OUT1CLK2GATE2OUT2计数器结构示意图预置寄存器预置寄存器GATECLKOUT减减1计数器计数器输出锁存器输出锁存器计数初值存于计数初值存于预置寄存器预置寄存器;在计数过程中,在计数过程中,减法计数器减法计数器的值不断递减,的值不断递减,而预置寄存器中的预置不变。而预置寄存器中的预置不变。输出锁存器输出锁存器用于写

4、入锁存命令时,用于写入锁存命令时,锁定当前计数值锁定当前计数值计数器的3个引脚nCLK时钟输入信号时钟输入信号在计数过程中,在计数过程中,此引脚上每输入一个时钟信号(下降此引脚上每输入一个时钟信号(下降沿),计数器的计数值减沿),计数器的计数值减1nGATE门控输入信号门控输入信号控制计数器工控制计数器工作,可分成电平控制和上升沿控制两种作,可分成电平控制和上升沿控制两种类型类型nOUT计数器输出信号计数器输出信号当一次计数过当一次计数过程结束(计数值减为程结束(计数值减为0),),OUT引脚上引脚上将产生一个输出信号将产生一个输出信号2. 与处理器接口nD0 D7数据线数据线A0 A1地址线

5、地址线nRD*读信号读信号WR*写信号写信号nCS*片选信号片选信号CS* A1 A0I/O地址地址读操作读操作RD*写操作写操作WR*0 0 00 0 10 1 00 1 140H41H42H43H读计数器读计数器0读计数器读计数器1读计数器读计数器2无操作无操作写计数器写计数器0写计数器写计数器1写计数器写计数器2写控制字写控制字9.1.2 8253/8254的工作方式n8253有有6种工作方式,由方式控制字确定种工作方式,由方式控制字确定n熟悉每种工作方式的特点才能根据实际应用问题,熟悉每种工作方式的特点才能根据实际应用问题,选择正确的工作方式选择正确的工作方式n每种工作方式的过程类似:

6、每种工作方式的过程类似: 设定工作方式设定工作方式 设定计数初值设定计数初值 硬件启动硬件启动 计数初值进入减计数初值进入减1计数器计数器 每输入一个时钟计数器减每输入一个时钟计数器减1的计数过程的计数过程 计数过程结束计数过程结束方式0 计数结束中断GATEOUTCLK 031244方式方式0WR设设定定工工作作方方式式设设定定计计数数初初值值计计数数值值送送入入计计数数器器计计数数过过程程计计数数结结束束方式1 可编程单稳脉冲设设定定工工作作方方式式设设定定计计数数初初值值硬硬件件启启动动计计数数值值送送入入计计数数器器计计数数过过程程计计数数结结束束GATEOUTCLK 031244方式

7、方式1WR方式2 频率发生器(分频器)03124GATEOUTCLK 4方式方式2031240312403124WR方式3 方波发生器03124GATEOUTCLK 4方式方式3031240312403124WR方式4 软件触发选通信号GATEOUTCLK031244方式方式4223331 0WR方式5 硬件触发选通信号GATEOUTCLK031244方式方式52233311 0WR各种工作方式的输出波形方式方式 0方式方式 1方式方式 2方式方式 3方式方式 4方式方式 50N0N0N0/N110NN/2 N/2 0/N0N0 1N0 1N0 1讨论:讨论:计数开始的时刻计数开始的时刻计数开

8、始的时刻n需要注意:需要注意:n处理器写入处理器写入8253的计数初值只是写入了预置的计数初值只是写入了预置寄存器,之后到来的第一个寄存器,之后到来的第一个CLK输入脉冲输入脉冲(需(需先由低电平变高,再由高变低先由低电平变高,再由高变低)才将预)才将预置寄存器的初值送到减置寄存器的初值送到减1计数器。计数器。n从第二个从第二个CLK信号的下降沿,计数器才真正信号的下降沿,计数器才真正开始减开始减1计数。计数。出处:教材第出处:教材第217页第页第15行行实验:实验:计数开始的时刻计数开始的时刻实验1计数开始计数开始感谢山西省太原理工大学常晓明教授提供实验结果感谢山西省太原理工大学常晓明教授提

9、供实验结果实验1计数开始计数开始计数开始计数开始感谢山西省太原理工大学常晓明教授提供实验结果感谢山西省太原理工大学常晓明教授提供实验结果实验2计数开始计数开始问题讨论n通过本例,请大家通过本例,请大家n思考理论(原理)与实践(工程)的关系思考理论(原理)与实践(工程)的关系n体会教学实践环节(上机、实验)的重要体会教学实践环节(上机、实验)的重要性性n同时,还请大家注意同时,还请大家注意n大学的常规教学侧重理论(原理)的掌握大学的常规教学侧重理论(原理)的掌握n大家需要加强实践(实验)、积累实际经大家需要加强实践(实验)、积累实际经验验你还能提供这样的实例吗?你还能提供这样的实例吗?9.1.3

10、 8253/8254的编程n8253加电后的工作方式不确定加电后的工作方式不确定n8253必须初始化编程,才能正常工作必须初始化编程,才能正常工作n写入控制字写入控制字n写入计数初值写入计数初值n读取计数值读取计数值n8254新增读回命令新增读回命令D7D6D5D4D3D2D1D01 写入方式控制字计数器计数器读写格式读写格式工作方式工作方式数制数制D7D6D5D4D3D2D1D000 计数器计数器001 计数器计数器110 计数器计数器211 非法非法00 计数器锁存命计数器锁存命令令 01 只读写低字节只读写低字节10 只读写高字节只读写高字节11 先读写低字节先读写低字节 后读写高字节后

11、读写高字节000 方式方式0001 方式方式1010 方式方式2011 方式方式3100 方式方式4101 方式方式50 二进制二进制1 十进制十进制控制字写入控制字控制字写入控制字I/O地址(地址(A1A011)示例示例2 写入计数值n选择二进制时选择二进制时n计数值范围:计数值范围:0000HFFFFHn0000H是最大值,代表是最大值,代表65536n选择十进制(选择十进制(BCD码)码)n计数值范围:计数值范围:00009999n0000代表最大值代表最大值10000计数值写入计数器各自的计数值写入计数器各自的I/O地址地址示例示例3 读取计数值n对对8位数据线,读取位数据线,读取16

12、位计数值需分两次位计数值需分两次n计数在不断进行,应该将当前计数值先行计数在不断进行,应该将当前计数值先行锁存,然后读取:锁存,然后读取:n向控制字向控制字I/O地址:给地址:给8253写入锁存命令写入锁存命令n从计数器从计数器I/O地址:读取锁存的计数值地址:读取锁存的计数值读取计数值,要注意读写格式和计数数制读取计数值,要注意读写格式和计数数制9.2 8253在IBM PC系列机上的应用A0A1 A0 A1D0D7D0D7OUT1OUT2OUT0GATE0GATE1GATE2CLK0CLK1CLK2D QCLK+5V接至接至DMA控制器控制器接至扬声器驱动器接至扬声器驱动器PB0PB1IR

13、Q0DRQ0 8253+5V1.19318MHzDACK0 BRDIORIOWRDWRCST/CCS9.2.1 定时中断和定时刷新n从阅读初始化程序段从阅读初始化程序段n看看计数器计数器0作为定时中断作为定时中断的作用的作用n将将计数器计数器1作为定时刷新作为定时刷新n看如何编写初始化程序段看如何编写初始化程序段定时中断mov al,36h;计数器计数器0为方式为方式3,采用二进制计数,采用二进制计数,;先低后高写入计数值先低后高写入计数值out 43h,al;写入方式控制字写入方式控制字mov al,0;计数值为计数值为0out 40h,al;写入低字节计数值写入低字节计数值out 40h,

14、al;写入高字节计数值写入高字节计数值8253初始化计数器0:定时中断n计数器计数器0:方式方式3,计数值:计数值:65536,输出频率,输出频率为为1.19318MHz6553618.206Hz的方波的方波n门控为常启状态,这个方波信号不断产生门控为常启状态,这个方波信号不断产生nOUT0端接端接8259A的的IRQ0,用作中断请求信号,用作中断请求信号n每秒产生每秒产生18.206次中断请求,或说每隔次中断请求,或说每隔55ms(54.925493ms)申请一次中断)申请一次中断nDOS系统利用计数器系统利用计数器0的这个特点,通过的这个特点,通过08号号中断服务程序实现了日时钟计时功能中

15、断服务程序实现了日时钟计时功能计数器1:定时刷新n需要重复不断提出刷新请求需要重复不断提出刷新请求门控总为高,选择方式门控总为高,选择方式2或或3n2ms内刷新内刷新128次,即次,即15.6 s刷新一次刷新一次计数初值为计数初值为18定时刷新mov al,54h;计数器计数器1为方式为方式2,采用二进制计数,只写,采用二进制计数,只写低低8位计数值位计数值out 43h,al;写入方式控制字写入方式控制字mov al,18;计数初值为计数初值为18out 41h,al;写入计数值写入计数值8253初始化9.2.2 扬声器控制n计数器计数器2的输出控制扬声器的发声音调的输出控制扬声器的发声音调

16、n计数器计数器2只能工作在方式只能工作在方式3,才能,才能输出一输出一定频率的方波,经滤波后得到近似的正定频率的方波,经滤波后得到近似的正弦波,进而推动扬声器发声弦波,进而推动扬声器发声n扬声器还受控于并行接口(扬声器还受控于并行接口(8255芯片)芯片)n必须使必须使PB0和和PB1同时为高电平,扬声器同时为高电平,扬声器才能发出预先设定频率的声音才能发出预先设定频率的声音频率设置speakerprocpush axmov al,0b6hout 43h,al;写入控制字写入控制字pop axout 42h,al;写入低写入低8位计数值位计数值mov al,ahout 42h,al;写入高写入

17、高8位计数值位计数值retspeakerendp扬声器控制扬声器开speakonprocpush axin al,61hor al,03h;D1D0PB1PB011B,其他位不变,其他位不变out 61h,alpop axretspeakonendp扬声器控制扬声器关speakoffprocpush axin al,61hand al,0fch;D1D0PB1PB000B,其他位不变,其他位不变out 61h,alpop axretspeakoffendp扬声器控制主程序;数据段数据段freqdw 1193180/600;代码段代码段mov ax,freqcall speaker;设置扬声器音

18、调设置扬声器音调call speakon;打开扬声器声音打开扬声器声音mov ah,1;等待按键等待按键int 21hcall speakoff;关闭扬声器声音关闭扬声器声音扬声器控制9.2.3 可编程硬件延时n利用日时钟每隔利用日时钟每隔55ms中断一次不变的中断一次不变的特点,可以编写一段不随系统时钟频率特点,可以编写一段不随系统时钟频率变化的固定延时程序变化的固定延时程序n由于日时钟中断的时间单位是由于日时钟中断的时间单位是55ms,所以无法实现更短时间的延时所以无法实现更短时间的延时n这时只有利用实时时钟中断,不过它的这时只有利用实时时钟中断,不过它的最短延时约是最短延时约是1ms(9

19、76 s)日时钟;延时开始延时开始mov ah,0int 1ahadd dx,90;加加5秒(秒(51890)mov bx,dx;期望值送期望值送bxrepeat:int 1ah;再读日时钟再读日时钟cmp bx,dx;与期望值比较与期望值比较jne repeat;不等,则循环不等,则循环;相等,延时结束相等,延时结束可编程硬件延时实时时钟;延时开始延时开始mov cx,0mov dx,1952;延时延时1.952ms2976 smov ah,86hint 15h;功能调用返回时,定时时间到功能调用返回时,定时时间到可编程硬件延时9.3 扩充定时计数器的应用n例题例题9.29.2利用扩充定时计

20、数器对外部事件的计数利用扩充定时计数器对外部事件的计数n例题例题9.39.3为为A/D转换电路提供可编程的采样信号转换电路提供可编程的采样信号例9.2A0A1 A0 A1外部事件产生源外部事件产生源8253OUT0GATE0CLK0200207HIRQD0D7D0D7译码译码电路电路AENA3A9+5VCSIORIOWRDWR初始化程序段mov dx,203h;设置方式控制字设置方式控制字mov al,10hout dx,al mov dx,200h;设置计数初值设置计数初值mov al,64h;计数初值为计数初值为100out dx,al例9.2输出:输出:明确向哪个明确向哪个端口端口输出什

21、么输出什么数据数据输入:输入:清楚从哪个清楚从哪个端口端口输入什么输入什么数据数据例9.38253OUT0GATE0CLK0OUT1GATE1CLK1OUT2GATE2CLK2启动转换启动转换时钟源时钟源频率频率 F+5V计数值计数值MNLA0A1A1A2200H207HCS初始化计数器0mov al,14hmov dx,206hout dx,almov al,cnt0mov dx,200hout dx,al例9.3初始化计数器1mov al,52hmov dx,206hout dx,almov al,cnt1mov dx,202hout dx,al例9.3初始化计数器2mov al,96hm

22、ov dx,206hout dx,almov al,cnt2mov dx,204hout dx,al例9.3第第9 9章教学要求章教学要求1. 掌握掌握8253引脚,尤其是引脚,尤其是CLK、OUT、GATE引脚的功能引脚的功能2. 掌握掌握8253的六种工作方式、编程和的六种工作方式、编程和在在IBM PC系列机上的应用系列机上的应用习题习题9(第(第 227 页)页) 9.2 9.3 9.4 9.6 9.7实验实验3 3 计数器计数器/ /定时器实验定时器实验n 不用实验台,就可以实现发声不用实验台,就可以实现发声程序:参考例题程序:参考例题9.1n 如果要实现第如果要实现第项实验要求,项实验要求,应该利用中断实验的中断服务程应该利用中断实验的中断服务程序序 提示提示8253的控

温馨提示

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

评论

0/150

提交评论