微机原理及其接口技术.ppt

  1. 1、本文档共403页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
微机原理及其接口技术

关于软件定时器 软件定时器是HSO触发的内部事件。 软件定时器中断属优先级为5的中断。其中断向量的地址号为200AH。 软件定时器的设置方法相似,只是需将HSO_COMMAND.4位置1,且将中断系统初始化。 HSO所触发的内部事件启动A/D转换和T2复位中断也可视为软件定时器。 HSO中事件的清除 外部事件可以清除,其方法是再设置一个事件,与要清除的事件发生时刻相同,但属性相反。当预定时刻到时,这两个性质相反的事件相互抵消,等价于原事件被清除。使用时注意两个时间值的计算,即要保存拟清除事件的绝对触发时刻,然后再简单处理后赋给属性相反的事件。内部事件是不能用上述方法清除的。 例:要清除事件: LDB HSO_COMMAND,#20H ;HSO.0高电平触发 ADD HSO_TIME,TIMER1,#2345H;原事件触发时间值 ADD REG1,TIMER1,#2345H;保存原事件触发时间值 写入: LDB HSO_COMMAND,#00H ;HSO.0低电平触发 SUB REG2,REG1,TIMER1;得到属性相反的事件时间值 ADD HSO_TIME,TIMER1,REG2 或者 DEC   REG1     LDB HSO_COMMAND,#00H ;HSO.0低电平触发     LD HSO_TIME,TIMER1,REG1 HSO的中断 高速输出中断:由HSO触发的外部事件所引起的中断,也称HSO外部中断。中断源是HSO引脚中的任何一条,中断向量地址为2006H。 软件定时中断:由HSO所触发的内部事件所引起的中断,也称为HSO内部中断,中断向量地址为200AH。中断源: 4个软件定时器:用对HSO编程的方法,在预定的时刻产生中断,中断服务程序中查询IOS1以判定是哪一软件定时器产生的中断。 T2复位和启动A/D转换:也是在预定时间产生中断,所以也属于一种软件定时器,只是没有相应的标志位。 HSO的编程步骤 由于HSO.4和HSO.5与HSI.2和HSI.3共用引脚,所以需触发这两个引脚时需设置IOC1,其它事件则不用。 在输入事件之前,应确认CAM和保持寄存器有空间。 对需触发事件进行设置,向HSO_COMM-AND送入命令字节和向HSO_TIME送入相对时间值。 HSO编程中应注意的问题 立即触发的事件至少需16T才能被触发(信息从保持寄存器进入CAM需8T,ADD指令需6T,其它硬件动作需2T),因此对于以T1为基准的立即触发事件的输入时间应大于0002H,通常需取0003H。对于以T2为基准的,要视T2的周期与T的关系而定相对时间值。一般要求T2时钟跳变沿间隔的时间不应小于8T。 对T2进行复位前,应保证以T2为基准的事件都已触发,否则这些事件将不会触发,也不能清除。如果希望其它以T2为基准事件与T2复位事件同时发生,则需将该事件的相对时间定为0001H(不设0000H的原因是避免错过) 若需连续设置两个事件,则两事件的相对时间间隔应大于8T。 当CAM中预定的事件触发后,该事件的信息立即被自动清除。若需反复触发某个事件,则应不断重写该事件的触发命令及时间值。 外部事件可以清除,其方法是再设置一个事件,与要清除的事件发生时刻相同,但属性相反。当预定时刻到时,这两个性质相反的事件相互抵消,等价于原事件被清除。使用时注意两个时间值的计算,即要保存拟清除事件的绝对触发时刻,然后再简单处理后赋给属性相反的事件。内部事件是不能用上述方法清除的。 HSO的应用 例1:利用HSO产生脉冲信号。 例2:用HSO产生锯齿波。 锯齿波可以由脉冲信号产生,即将脉宽线性增加的脉冲波经积分电路输出。 例3:利用软件定时器作电子时钟。 例4:用HSO复位定时器T2。 从HSO.0输出周期为10ms,脉宽为3ms的脉冲 需触发三个事件(如图)。用T1作基准则相对值计算为:3ms/8T=1500;10ms/8T=5000 ORG 2080H LDB HSO_COMMAND,#20H ;HSO.0触发正跳变事件 ADD HSO_TIME,TIMER1,#0003H;立即触发 NOP ;间隔8T NOP LOOP: LDB HSO_COMMAND,#00H ;HSO.0触发负跳变事件(2) LD CX,TIMER1 ADD HSO_TIME,CX,#05DCH ;3ms后负跳变 NOP

文档评论(0)

文档精品 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:6203200221000001

1亿VIP精品文档

相关文档