版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第五章 数字量输入输出(3)*概念:总线、接口电路、接口芯片、端口地址 *中断及其处理 中断控制器8259 *定时器/计数器*并行/串行 DMA电路与应用1计数器和定时器电路( Timers & Counters)背景为CPU和外部设备提供实时时钟: 定时或延时控制(定时中断、定时检测、定 时扫描)Timer 对外部事件计数Counter。定时/延时控制实现方法 (1) 软件定时; (2) 硬件定时(不可编程型;可编程型)。2 软件定时:处理器执行若干条指令(循环)时间之和。但要占用大量CPU时间,降低CPU的利用率。 不可编程定时/计数电路简单,但无法软件控制和改变=计算机应用: 可编程的定
2、时器电路(定时值和定时范围可方便地由软件来确定和改变 )计数器和定时器电路( Timers & Counters)3可编程的定时器电路Programmable Interval Timer以均匀分布的时间间隔中断分时操作系统,以便切换程序(输出脉冲事件);向IO设备输出精确的定时信号,信号的周期可由程序控制; 用来作为可编程速率(波特率)发生器(可变速率); 检测外部事件发生的频率或周期;统计外部实验过程中某一事件发生的次数,并可将计数结果输入计算机(计数);在定时或计数达到编程规定的值以后,向外部输出(向CPU申请中断)。典型芯片 i82(C)53/8254 用 途 4典型T/C框图 定时:
3、标准频率CLK/计数 累加或递减 例 减法CNTER:先计数值预置计数值寄存器减法计数器,计数脉冲经CLK输入端时使计数器进行减法计数。计数器的当前内容-计数器输出寄存器CPU不会干扰计数过程(缓冲)。计数值=零的状态OUT引脚和状态寄存器的某一位(查询式I/O或中断式IO来检测零值状态)。有到零停计/不停两种。 可硬件( GATE输入端)或软件控制定时计数器的动作。定时计数器基本工作原理对输入CLK信号(脉冲)加法或减法计数定时/计数脉冲门控信号输出信号5可编程定时器计数器i8253 (P265) (PITProgrammable Interval Timer)i8253TopView计数频
4、率2.6MHz6可编程定时器计数器i825324P DIP +5V。三个完全独立的计数器02(16Bit),每个计数器可单独作为定时计数器用。- 2.6MHz,内部结构框图/引脚P265D0D7-数据总线缓冲器:三态(/CS选中)、双向的8位缓冲器(连接系统数据总线),CPU IO时缓冲器发送或接收数据(与/WR/ /RD配合:读/写逻辑)。A0、A1译码(/CS选中后)-00、01、10计数器0、1、2 -11控制字寄存器(三个计数器共用、只读):控制每个计数器的工作方式,二进制或二十进制计数方式及向每个计数器装入数据。 GATE(02):=电平0-禁止/1-允许计数(边沿正跳变启动:方式1
5、)OUT(02):计数器输出,其输出波形取决于工作方式(可作中断源信号)。7三独立通道16位可预置数减法计数器信号 时钟输入CLK和门控输入GATE,输出OUT)。计数器 二进制BIN(00FFFFH+1)或二十进制计数BCD(09999+1),方式选择字控制。典型用途功能:频率发生器、分频器、实时时钟、单脉冲发生器 计数:装入计数初值后,当GATE端变高电平时,可用外部事件作为CLK脉冲对计数值进行减1计数(可读计数值)。计数值减至零时OUT端输出信号。 定时:装入计数初值后,当GATE端变为高电平时,由标准CLK脉冲触发开始自动减计数,计数到零时发出OUT结束信号。8 8253/8254接
6、口电路8253/8254MPU三个计数器内部各有一个初值寄存器和输出锁存器9i8253芯片初始化/编程(P267)-控制字00010000B=10H?三个通道(计数器):控制字CW或命令字: 初始化/控制。初始化控制字 CW(Control Word)格式01110111B=77H?CH1,16位,方式3,BCDCH0,低8位,方式0,BIN辅助寻址六种工作模式标明对计数器操作的类型10i8253芯片初始化/编程控制字MOV AL,10HOUT 43H,AL; CH0,低8位MOV AL,60HOUT 40H,AL ;0060H初值MOV AL,00HOUT 43H,AL;D5D4=01: 只
7、读/写低字节; =10:只读/写高字节 (仍按16位计数! 自动补零)D5D4=11: 分两次读写写初值:先低后高8位才算写完,计数过程才能启动;读计数:先低后高8位,由于计数器未停止,则可能在两次读之间恰好计数器变化.为避免错误,可在读数前对计数器写一个D5D4=00的控制字,将计数值锁存到输出锁存器中,读两次后输出锁存器又自动随计数器变化16位计数, 计数初值(双字节,如为单字节则自动补零).MOV AL,77HOUT 43H,AL; CH1,16位读写MOV AL,60HOUT 41H,AL ;MOV AL,30HOUT 41H,AL; 3060H初值118253编程:六种工作模式Mod
8、e0 软件触发,到0输出高电平,不自动重复Mode4 软件触发, 输出选通信号(负脉冲)Mode1 硬(GATE)触发,单稳输出,不自动重复启动Mode5 硬件触发, 输出选通信号(负脉冲)Mode2、3 软硬触发,自动重装,频率发生器/方波OUT输出Gate控制CLK输入控制字 CW计数初值Counter12 8253工作模式0(计数结束发中断请求)继续计数!控制字CW(1)计数回零时OUT高电平并保持,直至写入新的控制字或初值。但计数器在到零后仍继续计数;GATE=1计数/=0暂停)。(2)计数过程中改变计数值:8位计数写入新的计数值后,计数器按新值开始计数;16位计数写入第一个字节后,计
9、数器停止计数,写入第二个字节后,按新的初值计数。计数器0 低8位方式计数结束时输出信号(可申请中断)138253工作模式0控制减计数未完写入新的初值:续新初值Gate控制:暂停14可编程单脉冲(可重复触发的单稳态触发器)-硬件上升边沿启动,不自动重复。-负脉冲输出(宽度N*Tclk)8253工作模式1(可编程单脉冲)下一脉冲下降沿延时了3个脉冲时间(N=3)158253工作模式1控制重复触发脉冲,未计数满重置初值(Gate有效)16频率发生器(n分频器)-可软件设置, 软硬触发,负脉冲输出(宽度1个脉冲宽度,1*Tclk),N-1:1。自动重装 每N个CLK信号中输出一个宽度为CLK信号周期的
10、负脉冲8253工作模式2(P269)负脉冲输出3T3T178253工作模式2举例Gate:重触发结束重置初值18方波发生器 (软硬触发)n/2:类似于方式2,唯一不同的是,当计数到初值的一半时,输出变为低,至计数到零,输出又变高,并重新开始计数。方波周期为N*Tclk自动重装8253工作模式3(方波发生器)每个脉冲计数-2,到0自动重装198253工作模式3举例初值=奇数(n+1) /2高电平(n-1)/2低电平Gate=0暂停输出立即变高,恢复后从头计数20软件触发的选通信号发生器当写入控制字后,输出为高。写入计数值后立即开始计数(相当于软件启动),当计数到零后,输出变低,经过一个时钟脉冲后
11、,又变为高电平(负脉冲),计数器停止计数。(只计数一次)。GATE=1时,允许计数;计数过程中改变计数初值,则按新计数值重新开始计数8253工作模式4218253工作模式4举例重置初值Gate控制22硬件触发的选通信号发生器 写入控制字后,输出为高。写入计数初值后并不立即开始计数,而是由GATE信号的脉冲上升沿触发启动。当计数到零后时,输出一个CLK脉冲宽度的负脉冲,输出变高,停止计数。直至下次GATE脉冲的触发才能计数。8253工作模式5238253工作模式5举例Gate控制,重新计数重置初值,Gate启动触发 24各种工作方式的输出波形方式 0方式 1方式 2方式 3方式 4方式 50N0
12、N0N0/N110NN/2 N/2 0/N0N0 1N0 1N0 125计数开始的时刻需要注意:处理器写入8253的计数初值只是写入了预置寄存器,之后到来的第一个CLK输入脉冲(需先由低电平变高,再由高变低)才将预置寄存器的初值送到减1计数器。从第二个CLK信号的下降沿,计数器才真正开始减1计数。268253应用举例PC/XT主板上有一片8253作计数/定时电路 (P272)CNT0 40H,方式3 日时钟定时(18.158HZ, IRQ0, CLK=1.19MHZ N0=0000初值)CNT1 41H,方式2,DRAM刷新(15s, N0=0018)CNT2 42H, 方式3, 扬声器发声,
13、频率1KHZ(OUT2 与8255 PB1相与后输出, N0=1190)方波(频率)控制字寄存器43HVcc脉冲CLKi8253/8254光电耦合器脉冲计数:速度传感器278253应用编程(P273)初始化编程。对8253初始化编程包括二个步骤,即写入控制字和写入计数值。不需要外部触发的方式=工作。例:PC机BIOS初始化编程T=0.840336us(/1.19M)MOV AL,36H; 00110110B-CH0 方式3方波,BIN, L/H先写低字节再写高字节,日时钟定时OUT 43H,AL; WRT写入控制字寄存器MOV AL,0;计数器初值OUT 40H,AL;-L-CNT写入初值低位
14、OUT 40H,AL;-H-CNT写入初值高位MOV AL,54H; 01010100BCH1,方式2,BIN,Only Low8bit DROUT 43H,ALMOV AL,18;XT:18-15.1usOUT 41H,AL288253应用编程(续)Mov AL,0B6H;10110110BCH2,方式3,BIN,L/HOUT 43H,ALMOV AX,1190 ;扬声器发声,频率1KHz, Out 42h,alMov al,ahOut 42h,al.扩大计数/定时范围:(1)8253通道级联(2)软件计数(定时中断,软件累加或递减)298253应用-中断/通道级联前级输出OUT联至下一级C
15、LK最大计数=65536*65536SclkCLK0OUT0CLK1OUT1Gate0Gate1Vcc周期性定时中断:可利用方式2或3INTIRQn308253 PIT小结软件定时器的实现(中断处理程序)用8253实现日时钟 8253工作在方式3下,其输出是一个周期准确的方波,可以作为定时单位.如CLK0=1. 1931816MHz,初值为最大值65536,则计数器0输出的方波频率为f0= 1. 1931816MHz/65536=18.2Hz,周期为T0=54.945ms1天=2460 60 1000ms/54. 945ms=1573040(计时单位)=001800B0H;即计满1573040个计时单位,就是1天.同理计满65543是1个小时,计满1092就是1分钟,计满18.2就是1秒钟.具体做法: 8253的OUT0输出连到8259的IR0上.8253输出的方波每隔54.945ms申请一次中断,在中断服务程序中做双字变量的加1操作.当低字计到65536时,向高字进位,直至高字计到0018H,低字计到00B0H, 就计到24小时. 然后
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年公务员模拟测试题
- 春游踏青活动策划方案(3篇)
- 灭火应急疏散设施管理制度(3篇)
- 疫情期间用水管理制度(3篇)
- 视频监控设备使用管理制度(3篇)
- 酒店室内餐厅管理制度范本(3篇)
- 门店气球策划活动方案(3篇)
- 项目组人员安全管理制度(3篇)
- 《GA 475-2004抗人血清试剂》专题研究报告
- 兼职安全员培训
- 性激素六项结果解读课件
- 2025年UOM无人机理论培训合格证题库及答案
- PCB高端生产线技术改造项目节能评估报告
- 病案管理汇报工作
- 质量管理部门介绍
- 江苏省南京市南京师范大学附属中学2025年高二上生物期末联考试题含解析
- DBJ50-T-516-2025 危险性较大的分部分项工程安全管理标准
- 维修飞机基础知识培训课件
- 炸街车检测设备采购服务方案投标文件(技术方案)
- 销售部安全工作总结
- 外墙漆脱落维修施工方案
评论
0/150
提交评论