




已阅读5页,还剩44页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
定时计数技术 8 1概述8 2可编程定时 计数器82538 2 1内部结构8 2 2引脚信号8 2 38253计数器的计数启动方式和计数结束方式 第8章 8 3定时 计数器应用实例8 3 18253的编程逻辑8 3 28253的实际应用 8 1概述 定时 计数器的用途可以实现定时与计数两个功能 可用于系统时钟DRAM刷新定时定时采样实时控制脉冲的计数 定时 计数 如何实现定时和计数 1 完全硬件定时用数字电路中的分频器将系统时钟进行适当的分频产生需要的定时信号 2 完全软件定时利用CPU执行指令都需要几个固定的指令周期的原理 运用软件编程的方式进行定时 3 可编程的器定时 计数器可编程定时 计数器是一个具有计数和定时功能的专用芯片 返回本节 8 2可编程定时计数器8253 3个结构完全相同的16位减计数器 分别是0 1 和2 每个计数器可独立工作 二进制计数器和十进制计数器 每个计数器有六种工作方式 按二进制或十进制 BCD码 计数 可编程 写控制字设定其工作方式 8253的内部结构示意图 8 2 1内部结构 计数器结构示意图 计数初值存于预置寄存器 在计数过程中 减法计数器的值不断递减 而预置寄存器中的预置不变 输出锁存器用于写入锁存命令时 锁定当前计数值 8 2 2引脚信号 1 与处理器接口D0 D7数据线A0 A1地址线RD 读信号WR 写信号CS 片选信号 2 与外部设备的接口信号 CLK时钟输入信号 在计数过程中 此引脚上每输入一个时钟信号 下降沿 计数器的计数值减1GATE门控输入信号 控制计数器工作 可分成电平控制和上升沿控制两种类型OUT计数器输出信号 当一次计数过程结束 计数值减为0 OUT引脚上将产生一个输出信号 8 2 3计数启动方式和计数结束方式 软件启动计数方式 GATE 1 写入计数初值后 开始减计数硬件启动计数方式 由计数控制端GATE加一个从低电平到高电平变化的上跳沿控制开始减计数 一次性计数方式 减计数单元减至0后不能自动将原计数初值寄存器中的初值装入减计数单元 不能重新开始新的一轮计数 自动重装方式 如减计数单元减至0后 能自动将原初值寄存器中的初值自动装入减计数单元 并重新开始新一轮计数 返回本节 8 2 48253的工作方式 8253有6种工作方式 由方式控制字确定熟悉每种工作方式的特点才能根据实际应用问题 选择正确的工作方式每种工作方式的过程类似 设定工作方式 设定计数初值 硬件启动 计数初值进入减1计数器 每输入一个时钟计数器减1的计数过程 计数过程结束 方式0计数结束中断方式 设定工作方式 设定计数初值 计数值送入计数器 计数过程 计数结束 方式1可编程单稳态触发器 设定工作方式 设定计数初值 硬件启动 计数值送入计数器 计数过程 计数结束 方式2频率发生器 分频器 方式3方波发生器 方式4软件触发选通信号 方式5硬件触发选通信号 各种工作方式的输出波形 讨论 计数开始的时刻 计数开始的时刻 需要注意 处理器写入8253的计数初值只是写入了预置寄存器 之后到来的第一个CLK输入脉冲 需先由低电平变高 再由高变低 才将预置寄存器的初值送到减1计数器 从第二个CLK信号的下降沿 计数器才真正开始减1计数 实验 计数开始的时刻 实验1 实验1 实验2 问题讨论 通过本例 请大家思考理论 原理 与实践 工程 的关系体会教学实践环节 上机 实验 的重要性同时 还请大家注意大学的常规教学侧重理论 原理 的掌握大家需要加强实践 实验 积累实际经验你还能提供这样的实例吗 8 2 58253的方式控制字 8253加电后的工作方式不确定8253必须初始化编程 才能正常工作写入控制字写入计数初值读取计数值8254新增读回命令 1写入方式控制字 00计数器001计数器110计数器211非法 00计数器锁存命令01只读写低字节10只读写高字节11先读写低字节后读写高字节 000方式0001方式1010方式2011方式3100方式4101方式5 0二进制1十进制 控制字写入控制字I O地址 A1A0 11 示例 2写入计数值 选择二进制时计数值范围 0000H FFFFH0000H是最大值 代表65536选择十进制 BCD码 计数值范围 0000 99990000代表最大值10000 计数值写入计数器各自的I O地址 示例 3读取计数值 对8位数据线 读取16位计数值需分两次计数在不断进行 应该将当前计数值先行锁存 然后读取 向控制字I O地址 给8253写入锁存命令从计数器I O地址 读取锁存的计数值 读取计数值 要注意读写格式和计数数制 8 3 28253的实际应用 教材251页 例1 设频率为10kHz 采用定时中断方式每隔10ms完成一次扫描键盘的工作 解 采用8253定时器的通道0来实现8253的端口地址为10H 13H 1 选择工作方式 选用方式2来实现 2 确定计数初值己知fCLK0 10kHz 则TCLK0 0 1msN TOUT0 TCLK0 10ms 0 1ms 100 64H 3 初始化编程 返回本节 8253用于定时中断 初始化程序段如下 方式控制字为00010100B 即14H MOVAL 14H 通道0 写入初值低8位 高8位置0 方式2 二进制计数OUT13H AL 写入方式到控制字寄存器MOVAL 64H OUT10H AL 写入计数初值低8位到通道0 2 8253计数功能的应用 教材252页 例2 1 8253通道0记录外部事件的发生次数 每输入一个高脉冲表示事件发生1次 2 当事件发生100次后就向CPU提出中断请求 边沿触发 3 假设8253片选信号的I O地址范围为200H 203H 如图8 12 教材252页 例2 初始化程序段 movdx 203h 设置方式控制字moval 10houtdx almovdx 200h 设置计数初值moval 64h 计数初值为100outdx al 教材252页例2 输出 明确向哪个端口输出什么数据输入 清楚从哪个端口输入什么数据 3 8253计数通道的级联使用 教材252页 例3 已知8253的CLK1 1MHz CS 320H 323H 要求用8253连续产生10秒的定时信号 1 8253的一个通道的最大计数范围为65536 2 N 10 10 6 107 超过8253最大计数 3 使用2个8253通道级连 如图8 13所示 4 级连后2个通道的初值为N1和N2 则N N1 N2 设计数器初值N1 500 N2 20000 使用方式2 二进制计数 则通道1 2的初始化程序 8253用于通道的级联 初始化程序段 MOVDX 323HMOVAL 74H 01110100B 通道1 写入16位初值 方式2 二进制计数OUTDX AL 写入通道1方式字MOVDX 321H MOVAX 500 OUTDX AL 写入初值低8位到通道1MOVAL AH OUTDX AL 写入初值高8位到通道1 教材252页例3 输出 明确向哪个端口输出什么数据输入 清楚从哪个端口输入什么数据 初始化程序段 MOVDX 323HMOVAL 0B4H 10110100B 通道2 写入16位初值 方式2 二进制计数OUTDX AL 写入通道2方式字MOVDX 322HMOVAX 20000OUTDX AL 写入通道2初值低8位MOVAL AH OUTDX AL 写入通道2初值高8位 教材252页例3 输出 明确向哪个端口输出什么数据输入 清楚从哪个端口输入什么数据 4 8253在PC机中的应用 1 IBMPC XT机中使用了1个8253 系统中8253的端口地址为40H 43H 2 3个通道的时钟输入频率为1 19318MHz 系统时钟PCLK的二分频 3 3个计数通道分别用于日时钟计时 DRAM刷新定时和扬声器的音调控制 8253在PC XT中的应用 定时中断和刷新定时 从阅读初始化程序段看计数器0作为定时中断的作用 将计数器1作为定时刷新看如何编写初始化程序段 定时中断 moval 36h 计数器0为方式3 采用二进制计数 先低后高写入计数值out43h al 写入方式控制字moval 0 计数值为0out40h al 写入低字节计数值out40h al 写入高字节计数值 8253初始化 计数器0 日时钟计时 定时中断 计数器0 方式3 计数值 65536 输出频率为1 19318MHz 65536 18 206Hz的方波门控为常启状态 这个方波信号不断产生OUT0端接8259A的IRQ0 用作中断请求信号每秒产生18 206次中断请求 或说每隔55ms 54 925493ms 申请一次中断DOS系统利用计数器0的这个特点 通过08号中断服务程序实现了日时钟计时功能 计数器1 动态RAM刷新定时 需要重复不断提出刷新请求 门控总为高 选择方式2或3 2ms内刷新128次 即15 6 s刷新一次 计数初值为18 定时刷新 moval 54h 计数器1为方式2 采用二进制计数 只写低8位计数值out43h al 写入方式控制字moval 18 计数初值为18out41h al 写入计数值 8253初始化 计数器2 扬声器控制 计数器2的输出控制扬声器的发声音调计数器2只能工作在方式3 才能输出一定频率的方波 经滤波后得到近似的正弦波 进而推动扬声器发声扬声器还受控于并行接口 8255芯片 必须使PB0和PB1同时为高电平 扬声器才能发出预先设定频率的声音 频率设置 BEEPPROCMOVAL 10ll0ll0B 设定计数器2为方式3 采用二进制计数OUT43H AL 按先低后高顺序写入16位计数值MOVAX 0533H 初值为0533H 1331 1 19318MHz 1331 896HzOUT42H AL 写入低8位MOVAL AHOUT42H AL 写入高8位INAL 61H 读8255的端口B原输出值MOVAH AL 存于AH寄存器OUT61H AL 输出以使扬声器能够发声 61H为8255端口B地址 扬声器控制 扬声器开 SUBCX CX CX 0 最大循环计数65536GT LOOPGT 延时DECBL BL为发声长短的入口条件JNZGT BL 6为长声 B1 1为短声MOVAL AHOUT61H AL 恢复8255的端口B值 停止发声RETBEEPEND 返回 扬声器控制 8253的控制字编程 某个8253的计数器0 1 2端口和控制端口地址依次是40H 43H 设置其中计数器0为方式0 采用二进制计数 先低后高写入计数值moval 30h 方式控制字 30H 00110000Bout43h al 写入控制端口 43H 8253的计数初值编程 某个8253的计数器0 1 2端口和控制端口地址依次是40H 43H 设置计数器0采用二进制计数 写入计数初值 1024 400H movax 1024 计数初值 1024 400H 写入计数器0地址 40Hout
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年二手房交易电子合同范本:房屋交易电子档案管理
- 2025年度对外贸易合同二:国际贸易电子商务平台运营合作合同
- 2025版化工设备采购与安全验收总承包合同范本
- 2025版房产交易资金监管合同范本
- 2025版汽车行业区块链技术应用与解决方案合同
- 2025版商业综合体食堂厨具设备采购、安装及运营管理合同
- 2025年北京城市绿地系统建设工程施工合同
- 2025版豪华汽车年租合同样本
- 2025年拆除施工合同含施工进度款支付及结算条款
- 2025年农业产业链上下游销售采购合作协议范本
- 财务岗位安全培训课件
- 2025年贵州省中考语文试卷真题(含答案)
- 2025至2030中国电容膜片真空计行业发展趋势分析与未来投资战略咨询研究报告
- 社工儿童沟通技巧课件
- 2025年甘肃省高考物理试卷(含答案)
- 2025二年级语文下册期末统考测试卷汇-总
- 血管活性药物静脉输注护理
- 造林绿化落地上图技术规范(试行)
- 2025年浙江省杭州市西湖区九年级中考一模科学试卷
- 苯乙酮项目可行性研究报告
- T/CIE 166-2023企业级固态硬盘测试规范第2部分:性能测试
评论
0/150
提交评论