- 1、本文档共20页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第六章高速输出(1讲)
第六章 高速输出单元HSO §6.1 HSO的作用 用于在程序设定的时刻触发一个或多个事件(即:预定或预置一个事件) 能够触发的事件包括: 1.改变HSO.0~HSO.5引脚电平(输出控制信号) 2.触发(启动)四个软件定时器 3.定时启动片内A/D转换器 4.复位T2 §6.2 HSO的硬件结构及工作原理 核心:CAM:内容可寻址的存储器 结构:8级×23位(其中低16位的时间数据来自HSO_TIME,高7位的命令数据来自HSO_COMMAND) 保持寄存器: HSO_COMMAND与HSO_TIME的组合,所有写入CAM的数据都要通过保持寄存器。 HSO_COMMAND:需要HSO作什么事情(触发事件)(WHAT_TO_DO) HSO_TIME:希望HSO在什么时间作这件事情。(WHEN_TO_DO_IT) CAM连同保持寄存器共可以写入9个触发事件及时间。但只有在CAM中的事件能被触发,CAM每触发一个事件,其时间与命令便被释放,保持寄存器中的数据可以进入CAM. 当CAM中存储了数据后,每个状态周期Ts都有一个存储单元中的时间数据送到比较器,与来自定时器的计数值进行比较,若两者相等,说明要求HSO完成的某个触发事件的时间已到,此时,HSO就按照设定的命令去响应相关操作。 (注意:CAM的命令执行不是以数据进入的先后次序来决定的,而是以预定的时间所到达来决定的。) HSO的时间分辨率为一个Ts,对CAM扫描一遍需要8Ts(即一个T1min),由于写入HSO_TIME的最小时间为T1min,所以只要写入的触发事件的时间间隔≥T1min,便不用担心写入的事件会被漏掉。 §6.3 HSO的控制及状态查询 一、HSO控制(编程设定) 1、引脚选择 HSO.4/HSI.2 : IOC1.4 1/0 (接通/断开) HSO.5/HSI.3 : IOC1.6 1/0 (接通/断开) 2、HSO命令寄存器 HSO_COMMAND(06H) 通道号 (设置产生HSO事件的编码数据) 通道号:对HSO_COMMAND的低4位设定0~FH值,决定HSO子系统所触发的 事件 中断位:当需要HSO中断和软件定时器中断时,该位置“1” 1/0位:对应于HSO引脚的电平输出值(1:输出高电平、0:输出低电平) T2/T1位:选择与HSO_TIME(CAM低16位)比较的定时器,置“1”选择T2,置“0”选择T1 3、预置时间数据 HSO为延时触发事件,因此,在输入了命令参数后,需要再设定事件触发(预置)的时间。 预置时间参数计算(比较定时器为:T1) 预置时间=N*T1min (预置时间:当N=0~65535:预置时间T1min~T1max) N=预置时间/T1min (N:1~65535 0001H~FFFFH) 例如:设系统外部晶体振荡器频率为12MHz,需要预置的事件产生时间为100ms,请计算N值。 N=预置时间/T1min =100ms/2us=50000 ADD HSO_TIME,T1,#50000 使用加法指令完成时间参数的传送,基于以此条指令的T1值作为时间基准。如果不使用加法指令传送HSO_TIME时间参数到CAM,则送入CAM的预置时间没有了T1当前时间基准,将会造成计时误差。 二、HSO的状态查询 1、保持寄存器空或CAM单元空否? IOS0.6=0:表明保持寄存器空以及至少一个以上CAM单元空 IOS0.7=0:表明保持寄存器空 2、软件定时器到时否?(IOS1.0~IOS1.3) 提供给程序查询或进入中断后查询引起中断的定时器(一个中断类别对应多个中断源,由该标志决定产生中断的中断源)。 操作注意:由于IOS1中的各个标志均与时间有关,必须先将IOS1复制后再对标志进行测试操作。 3、HSO现行引脚状态查询 通过IOS0.0~IOS0.5可以查询HSO引脚状态。 §6.4 软件定时器 T1/T2利用硬件系统产生时间参数,但由于T1或T2只产生溢出中断,并且溢出中断所对应的中断时间不是一个整数,利用溢出时间来定时或编制时钟程序会比较麻烦。 软件定时器实际上也是利用了硬件定时器,但我们可以通过设定时间参数,产生整数时间值并且当设置时间达到后可以进入软件定时器
您可能关注的文档
最近下载
- 体例格式8:工学一体化课程《小型网络安装与调试》任务2学习任务考核方案.docx VIP
- 国家开放大学《中文学科论文写作》形考任务1-4参考答案.docx VIP
- 《癌症TNM分期的》课件.ppt VIP
- MATLAB教程2012a习题解答1-7章完整版-张志涌-北航.doc
- 2023年云南省中考物理真题试卷(含答案).docx VIP
- 体例格式8:工学一体化课程《小型网络安装与调试》任务1学习任务考核方案.docx VIP
- 三菱门机板详解图.pdf
- 《伯杰氏细菌系统分类学手册》第2版-目录.pdf
- 千阳县污水处理厂提标改造项目-D4620 污水处理及其再生利用-建设项目环境影响报告表.doc VIP
- 五法八象(年明亮).pdf
文档评论(0)