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

下载本文档

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

文档简介

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写控制字写控制字计数器计数器读写格式读写格式工作方式工作方式数制数制D7D6D5D4D3D2D1D000 计数器001 计数器110 计数器211 非法00 计数器锁存命令 01 只读写低字节10 只读写高字节11 先读写低字节 后读写高字节000 方式0001 方式1010 方

6、式2011 方式3100 方式4101 方式50 二进制1 十进制示例9.1.2 8253/8254的工作方式n8253有有6种工作方式,由方式控制字确定种工作方式,由方式控制字确定n熟悉每种工作方式的特点才能根据实际应用问题,熟悉每种工作方式的特点才能根据实际应用问题,选择正确的工作方式选择正确的工作方式n每种工作方式的过程类似:每种工作方式的过程类似: 设定工作方式设定工作方式 设定计数初值设定计数初值 硬件启动硬件启动 计数初值进入减计数初值进入减1计数器计数器 每输入一个时钟计数器减每输入一个时钟计数器减1的计数过程的计数过程 计数过程结束计数过程结束121.方式0:计数结束中断GAT

7、EOUTCLK 031244方式0WR设定工作方式设定计数初值计数值送入计数器计数过程计数结束输出OUT信号随即变为低电平 其输出OUT信号变为高电平 门控信号为高时允许计数,为低暂停计数,重新为高时,接着当前计数值继续计数计数期间给计数器重装新值,在写入新值后重新开始计数132.方式1:可编程单稳脉冲(N时钟周期的单稳负脉冲)设定工作方式设定计数初值硬件启动计数值送入计数器计数过程计数结束GATEOUTCLK 031244方式1WR计数过程中写入新的计数值,不影响当前计数;若再次由GATE触发启动,则按照新值开始计数。计数过程结束前,GATE再次触发,则计数器重新装入计数值,从头开始计数 输

8、出OUT信号变为高 143.方式2:频率发生器(分频器)03124GATEOUTCLK 4方式2031240312403124WR计数器减为1时,OUT变为低,经过一个CLK,回复为高,且计数器重新开始计数计数过程中装入新值,将不影响现行计数;但从下个周期开始按新的计数值计数GATE为低电平将停止计数,并使输出为高。GATE为高电平,计数器将重新装入预置计数值,开始计数。这样。GATE能用硬件对计数器进行同步 154.方式3:方波发生器03124GATEOUTCLK 4方式3031240312403124WR计数值为偶数时,前一半输出为高电平,后一半输出为低电平。如果计数值为奇数,前一半比后一

9、半多一个时钟脉冲的高电平,随后输出为低 165.方式4:软件触发选通信号GATEOUTCLK031244方式4223331 0WR这种计数是一次性的 计数过程中重新装入新值,将不影响当前计数。GATE为低禁止计数,变为高则计数器重新装入计数初值,开始计数 176.方式5:硬件触发选通信号GATEOUTCLK031244方式52233311 0WR计数过程中重新装入新值,不影响当前计数。GATE又有触发信号,则计数器重新装入计数初值,从头开始计数 各种工作方式的输出波形方式方式 0方式方式 1方式方式 2方式方式 3方式方式 4方式方式 50N0N0N0/N110NN/2 N/2 0/N0N0

10、1N0 1N0 1讨论:讨论:计数开始的时刻计数开始的时刻计数开始的时刻n需要注意:需要注意:n处理器写入处理器写入8253的计数初值只是写入了预置的计数初值只是写入了预置寄存器,之后到来的第一个寄存器,之后到来的第一个CLK输入脉冲输入脉冲(需(需先由低电平变高,再由高变低先由低电平变高,再由高变低)才将预)才将预置寄存器的初值送到减置寄存器的初值送到减1计数器。计数器。n从第二个从第二个CLK信号的下降沿,计数器才真正信号的下降沿,计数器才真正开始减开始减1计数。计数。出处:教材第出处:教材第217页第页第15行行实验:实验:计数开始的时刻计数开始的时刻9.1.3 8253/8254的编程

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

12、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位计数值需分两次位计数值需

13、分两次n计数在不断进行,应该将当前计数值先行计数在不断进行,应该将当前计数值先行锁存,然后读取:锁存,然后读取:n向控制字向控制字I/O地址:给地址:给8253写入锁存命令写入锁存命令n从计数器从计数器I/O地址:读取锁存的计数值地址:读取锁存的计数值读取计数值,要注意读写格式和计数数制读取计数值,要注意读写格式和计数数制mov al,36h;36H00 11 011 0B;计数器;计数器0为方式为方式3,采用二进制计数,采用二进制计数;先低后高写入计数值;先低后高写入计数值out 43h,al;写入方式控制字;写入方式控制字mov al,0;计数值为;计数值为0out 40h,al;写入低字

14、节计数值;写入低字节计数值out 40h,al;写入高字节计数值;写入高字节计数值计数开始的时刻n需要注意:需要注意:n处理器写入处理器写入8253的计数初值只是写入了预置的计数初值只是写入了预置寄存器,之后到来的第一个寄存器,之后到来的第一个CLK输入脉冲输入脉冲(需(需先由低电平变高,再由高变低先由低电平变高,再由高变低)才将预)才将预置寄存器的初值送到减置寄存器的初值送到减1计数器。计数器。n从第二个从第二个CLK信号的下降沿,计数器才真正信号的下降沿,计数器才真正开始减开始减1计数。计数。8253/8254的I/O地址0 1 0 0 00 1 0 0 10 1 0 1 00 1 0 1

15、 10 0 1 0 00 0 1 0 10 0 1 1 0功 能对计数器0设置计数初值CSRDA1A0WR对计数器1设置计数初值对计数器2设置计数初值设置控制字从计数器0读出计数值从计数器1读出计数值从计数器2读出计数值8253的控制字编程;某个8253的计数器0、1、2端口和控制端口地址依次是40H43H;设置其中计数器0为方式0,采用二进制计数,先低后高写入计数值 mov al,30h /方式控制字:30H00 11 000 0B out 43h,al /写入控制端口:43H8253的计数初值编程;某个8253的计数器0、1、2端口和控制端口地址依次是40H43H;设置计数器0采用二进制计

16、数,写入计数初值:1024(400H)mov ax,1024;计数初值:1024(400H);写入计数器0地址:40Hout 40h,al;写入低字节计数初值mov al,ahout 40h,al;写入高字节计数初值294.8254的读回命令n8254比比8253多了读回命令,可以令多了读回命令,可以令3个通道的计数个通道的计数值和状态锁存,向值和状态锁存,向CPU返回一个状态字返回一个状态字n读回命令写入控制端口,状态字和计数值都通过计数读回命令写入控制端口,状态字和计数值都通过计数器端口读取器端口读取 9.2 8253在IBM PC系列机上的应用A0A1 A0 A1D0D7D0D7OUT1

17、OUT2OUT0GATE0GATE1GATE2CLK0CLK1CLK2D QCLK+5V接至接至DMA控制器控制器接至扬声器驱动器接至扬声器驱动器PB0PB1IRQ0DRQ0 8253+5V1.19318MHzDACK0 BRDIORIOWRDWRCST/CCS9.2.1 定时中断和定时刷新n从阅读初始化程序段从阅读初始化程序段n看看计数器计数器0作为定时中断作为定时中断的作用的作用n将将计数器计数器1作为定时刷新作为定时刷新n看如何编写初始化程序段看如何编写初始化程序段定时中断mov al,36h;计数器计数器0为方式为方式3,采用二进制计数,采用二进制计数,;先低后高写入计数值先低后高写入

18、计数值out 43h,al;写入方式控制字写入方式控制字mov al,0;计数值为计数值为0out 40h,al;写入低字节计数值写入低字节计数值out 40h,al;写入高字节计数值写入高字节计数值8253初始化计数器0:定时中断n计数器计数器0:方式方式3,计数值:计数值:65536,输出频率,输出频率为为1.19318MHz6553618.206Hz的方波的方波n门控为常启状态,这个方波信号不断产生门控为常启状态,这个方波信号不断产生nOUT0端接端接8259A的的IRQ0,用作中断请求信号,用作中断请求信号n每秒产生每秒产生18.206次中断请求,或说每隔次中断请求,或说每隔55ms(

19、54.925493ms)申请一次中断)申请一次中断nDOS系统利用计数器系统利用计数器0的这个特点,通过的这个特点,通过08号号中断服务程序实现了日时钟计时功能中断服务程序实现了日时钟计时功能计数器1:定时刷新n需要重复不断提出刷新请求需要重复不断提出刷新请求门控总为高,选择方式门控总为高,选择方式2或或3n2ms内刷新内刷新128次,即次,即15.6 s刷新一次刷新一次计数初值为计数初值为18定时刷新mov al,54h;计数器计数器1为方式为方式2,采用二进制计数,只写,采用二进制计数,只写低低8位计数值位计数值out 43h,al;写入方式控制字写入方式控制字mov al,18;计数初值

20、为计数初值为18out 41h,al;写入计数值写入计数值8253初始化9.2.2 扬声器控制n计数器计数器2的输出控制扬声器的发声音调的输出控制扬声器的发声音调n计数器计数器2只能工作在方式只能工作在方式3,才能,才能输出一输出一定频率的方波,经滤波后得到近似的正定频率的方波,经滤波后得到近似的正弦波,进而推动扬声器发声弦波,进而推动扬声器发声n扬声器还受控于并行接口(扬声器还受控于并行接口(8255芯片)芯片)n必须使必须使PB0和和PB1同时为高电平,扬声器同时为高电平,扬声器才能发出预先设定频率的声音才能发出预先设定频率的声音频率设置speakerprocpush axmov al,0

21、b6hout 43h,al;写入控制字写入控制字pop axout 42h,al;写入低写入低8位计数值位计数值mov al,ahout 42h,al;写入高写入高8位计数值位计数值retspeakerendp扬声器控制扬声器开speakonprocpush axin al,61hor al,03h;D1D0PB1PB011B,其他位不变,其他位不变out 61h,alpop axretspeakonendp扬声器控制扬声器关speakoffprocpush axin al,61hand al,0fch;D1D0PB1PB000B,其他位不变,其他位不变out 61h,alpop axrets

22、peakoffendp扬声器控制主程序;数据段数据段freqdw 1193180/600;代码段代码段mov ax,freqcall speaker;设置扬声器音调设置扬声器音调call speakon;打开扬声器声音打开扬声器声音mov ah,1;等待按键等待按键int 21hcall speakoff;关闭扬声器声音关闭扬声器声音扬声器控制9.2.3 可编程硬件延时n利用日时钟每隔利用日时钟每隔55ms中断一次不变的中断一次不变的特点,可以编写一段不随系统时钟频率特点,可以编写一段不随系统时钟频率变化的固定延时程序变化的固定延时程序n由于日时钟中断的时间单位是由于日时钟中断的时间单位是55

23、ms,所以无法实现更短时间的延时所以无法实现更短时间的延时n这时只有利用实时时钟中断,不过它的这时只有利用实时时钟中断,不过它的最短延时约是最短延时约是1ms(976 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 smo

24、v ah,86hint 15h;功能调用返回时,定时时间到功能调用返回时,定时时间到可编程硬件延时9.3 扩充定时计数器的应用n例题例题9.29.2利用扩充定时计数器对外部事件的计数利用扩充定时计数器对外部事件的计数n例题例题9.39.3为为A/D转换电路提供可编程的采样信号转换电路提供可编程的采样信号例9.2A0A1 A0 A1外部事件产生源外部事件产生源8253OUT0GATE0CLK0200207HIRQD0D7D0D7译码译码电路电路AENA3A9+5VCSIORIOWRDWR初始化程序段mov dx,203h;设置方式控制字设置方式控制字mov al,10hout dx,al mov

25、 dx,200h;设置计数初值设置计数初值mov al,64h;计数初值为计数初值为100out dx,al例9.2输出:输出:明确向哪个明确向哪个端口端口输出什么输出什么数据数据输入:输入:清楚从哪个清楚从哪个端口端口输入什么输入什么数据数据例9.3为A/D转换电路提供可编程的采样信号8253OUT0GATE0CLK0OUT1GATE1CLK1OUT2GATE2CLK2启动转换启动转换时钟源时钟源频率频率 F+5V计数值计数值MNLA0A1A1A2200H207HCS初始化计数器0mov al,14hmov dx,206hout dx,almov al,cnt0mov dx,200hout

26、dx,al例9.3初始化计数器1mov al,52hmov dx,206hout dx,almov al,cnt1mov dx,202hout dx,al例9.3初始化计数器2mov al,96hmov 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 计

温馨提示

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

评论

0/150

提交评论