




已阅读5页,还剩50页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第9章,第9章定时计数控制接口,教学重点8253的引脚和6种工作方式8253的编程8253在IBMPC系列机上的应用,定时器和计数器,定时控制在微机系统中极为重要定时器由数字电路中的计数电路构成,通过记录高精度晶振脉冲信号的个数,输出准确的时间间隔计数电路如果记录外设提供的具有一定随机性的脉冲信号时,它主要反映脉冲的个数(进而获知外设的某种状态),常又称为计数器,定时功能的实现方法,软件延时利用微处理器执行一个延时程序段实现不可编程的硬件定时采用分频器、单稳电路或简易定时电路控制定时时间可编程的硬件定时软件硬件相结合、用可编程定时器芯片构成一个方便灵活的定时电路,9.18253/8254定时计数器,3个独立的16位计数器通道每个计数器有6种工作方式按二进制或十进制(BCD码)计数,8254是8253的改进型,9.1.18253/8254的内部结构和引脚,计数器结构示意图,计数初值存于预置寄存器;在计数过程中,减法计数器的值不断递减,而预置寄存器中的预置不变。输出锁存器用于写入锁存命令时,锁定当前计数值,计数器的3个引脚,CLK时钟输入信号在计数过程中,此引脚上每输入一个时钟信号(下降沿),计数器的计数值减1GATE门控输入信号控制计数器工作,可分成电平控制和上升沿控制两种类型OUT计数器输出信号当一次计数过程结束(计数值减为0),OUT引脚上将产生一个输出信号,2.与处理器接口,D0D7数据线A0A1地址线RD*读信号WR*写信号CS*片选信号,00计数器001计数器110计数器211非法,00计数器锁存命令01只读写低字节10只读写高字节11先读写低字节后读写高字节,000方式0001方式1010方式2011方式3100方式4101方式5,0二进制1十进制,示例,9.1.28253/8254的工作方式,8253有6种工作方式,由方式控制字确定熟悉每种工作方式的特点才能根据实际应用问题,选择正确的工作方式每种工作方式的过程类似:设定工作方式设定计数初值硬件启动计数初值进入减1计数器每输入一个时钟计数器减1的计数过程计数过程结束,12,1.方式0:计数结束中断,设定工作方式,设定计数初值,计数值送入计数器,计数过程,计数结束,输出OUT信号随即变为低电平,其输出OUT信号变为高电平,门控信号为高时允许计数,为低暂停计数,重新为高时,接着当前计数值继续计数计数期间给计数器重装新值,在写入新值后重新开始计数,13,2.方式1:可编程单稳脉冲(N时钟周期的单稳负脉冲),设定工作方式,设定计数初值,硬件启动,计数值送入计数器,计数过程,计数结束,计数过程中写入新的计数值,不影响当前计数;若再次由GATE触发启动,则按照新值开始计数。计数过程结束前,GATE再次触发,则计数器重新装入计数值,从头开始计数,输出OUT信号变为高,14,3.方式2:频率发生器(分频器),计数器减为1时,OUT变为低,经过一个CLK,回复为高,且计数器重新开始计数,计数过程中装入新值,将不影响现行计数;但从下个周期开始按新的计数值计数GATE为低电平将停止计数,并使输出为高。GATE为高电平,计数器将重新装入预置计数值,开始计数。这样。GATE能用硬件对计数器进行同步,15,4.方式3:方波发生器,计数值为偶数时,前一半输出为高电平,后一半输出为低电平。如果计数值为奇数,前一半比后一半多一个时钟脉冲的高电平,随后输出为低,16,5.方式4:软件触发选通信号,这种计数是一次性的计数过程中重新装入新值,将不影响当前计数。GATE为低禁止计数,变为高则计数器重新装入计数初值,开始计数,17,6.方式5:硬件触发选通信号,计数过程中重新装入新值,不影响当前计数。GATE又有触发信号,则计数器重新装入计数初值,从头开始计数,各种工作方式的输出波形,讨论:计数开始的时刻,计数开始的时刻,需要注意:处理器写入8253的计数初值只是写入了预置寄存器,之后到来的第一个CLK输入脉冲(需先由低电平变高,再由高变低)才将预置寄存器的初值送到减1计数器。从第二个CLK信号的下降沿,计数器才真正开始减1计数。出处:教材第217页第15行,实验:计数开始的时刻,9.1.38253/8254的编程,8253加电后的工作方式不确定8253必须初始化编程,才能正常工作写入控制字写入计数初值读取计数值8254新增读回命令,1写入方式控制字,00计数器001计数器110计数器211非法,00计数器锁存命令01只读写低字节10只读写高字节11先读写低字节后读写高字节,000方式0001方式1010方式2011方式3100方式4101方式5,0二进制1十进制,控制字写入控制字I/O地址(A1A011),示例,2写入计数值,选择二进制时计数值范围:0000HFFFFH0000H是最大值,代表65536选择十进制(BCD码)计数值范围:000099990000代表最大值10000,计数值写入计数器各自的I/O地址,示例,3读取计数值,对8位数据线,读取16位计数值需分两次计数在不断进行,应该将当前计数值先行锁存,然后读取:向控制字I/O地址:给8253写入锁存命令从计数器I/O地址:读取锁存的计数值,读取计数值,要注意读写格式和计数数制,moval,36h;36H00110110B;计数器0为方式3,采用二进制计数;先低后高写入计数值out43h,al;写入方式控制字moval,0;计数值为0out40h,al;写入低字节计数值out40h,al;写入高字节计数值,计数开始的时刻,需要注意:处理器写入8253的计数初值只是写入了预置寄存器,之后到来的第一个CLK输入脉冲(需先由低电平变高,再由高变低)才将预置寄存器的初值送到减1计数器。从第二个CLK信号的下降沿,计数器才真正开始减1计数。,8253/8254的I/O地址,01000,01001,01010,01011,00100,00101,00110,功能,对计数器0设置计数初值,A1,A0,对计数器1设置计数初值,对计数器2设置计数初值,设置控制字,从计数器0读出计数值,从计数器1读出计数值,从计数器2读出计数值,8253的控制字编程,;某个8253的计数器0、1、2端口和控制端口地址依次是40H43H;设置其中计数器0为方式0,采用二进制计数,先低后高写入计数值moval,30h/方式控制字:30H00110000Bout43h,al/写入控制端口:43H,8253的计数初值编程,;某个8253的计数器0、1、2端口和控制端口地址依次是40H43H;设置计数器0采用二进制计数,写入计数初值:1024(400H)movax,1024;计数初值:1024(400H);写入计数器0地址:40Hout40h,al;写入低字节计数初值moval,ahout40h,al;写入高字节计数初值,29,4.8254的读回命令,8254比8253多了读回命令,可以令3个通道的计数值和状态锁存,向CPU返回一个状态字读回命令写入控制端口,状态字和计数值都通过计数器端口读取,9.28253在IBMPC系列机上的应用,9.2.1定时中断和定时刷新,从阅读初始化程序段看计数器0作为定时中断的作用,将计数器1作为定时刷新看如何编写初始化程序段,定时中断,moval,36h;计数器0为方式3,采用二进制计数,;先低后高写入计数值out43h,al;写入方式控制字moval,0;计数值为0out40h,al;写入低字节计数值out40h,al;写入高字节计数值,8253初始化,计数器0:定时中断,计数器0:方式3,计数值:65536,输出频率为1.19318MHz6553618.206Hz的方波门控为常启状态,这个方波信号不断产生OUT0端接8259A的IRQ0,用作中断请求信号每秒产生18.206次中断请求,或说每隔55ms(54.925493ms)申请一次中断DOS系统利用计数器0的这个特点,通过08号中断服务程序实现了日时钟计时功能,计数器1:定时刷新,需要重复不断提出刷新请求,门控总为高,选择方式2或3,2ms内刷新128次,即15.6s刷新一次,计数初值为18,定时刷新,moval,54h;计数器1为方式2,采用二进制计数,只写低8位计数值out43h,al;写入方式控制字moval,18;计数初值为18out41h,al;写入计数值,8253初始化,9.2.2扬声器控制,计数器2的输出控制扬声器的发声音调计数器2只能工作在方式3,才能输出一定频率的方波,经滤波后得到近似的正弦波,进而推动扬声器发声扬声器还受控于并行接口(8255芯片)必须使PB0和PB1同时为高电平,扬声器才能发出预先设定频率的声音,频率设置,speakerprocpushaxmoval,0b6hout43h,al;写入控制字popaxout42h,al;写入低8位计数值moval,ahout42h,al;写入高8位计数值retspeakerendp,扬声器控制,扬声器开,speakonprocpushaxinal,61horal,03h;D1D0PB1PB011B,其他位不变out61h,alpopaxretspeakonendp,扬声器控制,扬声器关,speakoffprocpushaxinal,61handal,0fch;D1D0PB1PB000B,其他位不变out61h,alpopaxretspeakoffendp,扬声器控制,主程序,;数据段freqdw1193180/600;代码段movax,freqcallspeaker;设置扬声器音调callspeakon;打开扬声器声音movah,1;等待按键int21hcallspeakoff;关闭扬声器声音,扬声器控制,9.2.3可编程硬件延时,利用日时钟每隔55ms中断一次不变的特点,可以编写一段不随系统时钟频率变化的固定延时程序由于日时钟中断的时间单位是55ms,所以无法实现更短时间的延时这时只有利用实时时钟中断,不过它的最短延时约是1ms(976s),日时钟,;延时开始movah,0int1ahadddx,90;加5秒(51890)movbx,dx;期望值送bxrepeat:int1ah;再读日时钟cmpbx,dx;与期望值比较jnerepeat;不等,则循环;相等,延时结束,可编程硬件延时,实时时钟,;延时开始movcx,0movdx,1952;延时1.952ms2976smovah,86hint15h;功能调用返回时,定时时间到,可编程硬件延时,9.3扩充定时计数器的应用,例题9.2利用扩充定时计数器对外部事件的计数例题9.3为A/D转换电路提供可编程的采样信号,例9.2,初始化程序段,movdx,203h;设置方式控制字moval,10houtdx,almovdx,200h;设置计数初值moval,64h;计数初值为100outdx,al,例9.2,输出:明确向哪个端口输出什么数据输入:清楚从哪个端口输入什么数据,例9.3为A/D转换电路提供可编程的采样信号,初始化计数器0,moval,14hmovdx,206houtdx,almoval,cnt0movdx,200houtdx,al,例9.3,初始化计数器1,moval,52hmovdx,206houtdx,almoval,cnt1movdx,202houtdx,al,例9.3,初始化计数器2,moval,96hmovdx,206houtdx,almoval,cnt2movdx,204houtdx,al,例9.3,第9章教学要求,1.掌握8253引脚,尤其是CLK、OUT、GATE引脚的功能2.掌握8253的六种工作方式、编程和在IBMPC系列机上的应用习题9(第227页)9.29.39.49.69.7,实验3计数器/定时器实验,不用实验台,就可以实现发声程序:参考例题9.1如果要实现第项实验要求,应该利用中断实验的中断服务程序,提示,8253的控制字编程,;某个8253的计数器0、1、2端口和控制端口地址依次是40H43H;设置其中计数器0为方式0,采用二进制计数,先低后高写入计数值moval,30h;方式控制字:30H00110000Bout43h,al;写入控制端口:43H,8253的计数初值编程,;某个8253的计数器0、1、2端口和控制端口地址依
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 安全培训教学工作建议课件
- 公司聘用试用员工合同5篇
- 2025年三门峡黄河明珠(集团)有限公司公开招聘高校毕业生考前自测高频考点模拟试题及参考答案详解
- 安全培训效能课件
- 2025福建福州市马尾区琅岐镇殡仪服务站招聘工作人员1人模拟试卷及答案详解(必刷)
- 小学培训独立安全通道课件
- Illudinine-生命科学试剂-MCE
- 安全培训效果评定和改进课件
- 吊车安全责任合同5篇
- HDAC6-IN-62-生命科学试剂-MCE
- 运动学练习题库及参考答案
- DeepSeek从入门到精通
- 沈阳2025年辽宁沈阳辽中区四家事业单位面向区内事业单位遴选18人笔试历年参考题库附带答案详解
- 2025年中国内河码头行业市场深度分析及发展趋势预测报告
- 《国际贸易术语》课件
- 小学生美术素养的综合评价体系构建与实践
- 化学反应中的表示课件九年级化学(2024)上册
- T-CSUS 69-2024 智慧水务技术标准
- 《全国计算机等级考试教程:二级WPS Office高级应用与设计》全套教学课件
- 专题种猪性能测定
- 纺织厂员工劳动合同范本
评论
0/150
提交评论