- 1、本文档共30页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
46中断程序编写
Sunplus SPCE061A 微控制器 带中断处理的程序编写的基本过程 讲解目的 了解SPCE061A带中断编程的方法。 对中断编程进行归类,提高学习效率。 巩固中断编程知识,为后面的系统编程打好基础。 SPCE061A包含的中断源 SPCE061A包含的中断源 按类寻找编程共性 从上面两页可以看到,SPCE061A的中断源基本可以分为四大类,这四大类在编程时的程序结构基本类似,我们只要掌握了一个中断源的编程,别的中断程序就可很快掌握。 共性一:主函数程序结构 主函数的编程,基本的程序结构是: 1、初始状态的设置。 2、打开中断。 3、主循环中清看门狗。 主函数汇编程序基本模版 主函数C语言程序基本模版 共性二:主函数中进行清狗与等待中断处理 在主循环里主要进行清看门狗操作,可 以设置标志位,标志位在中断中改变, 循环中如果标志满足条件,执行相应功 能,不符合就等待中断。 共性三:中断服务函数程序结构 中断服务函数的编程,基本的程序结构是: 1、关闭中断。 2、打开中断。 3、主循环中清看门狗。 中断函数汇编程序基本模板 各功能模块C语言程序基本模板 中断编程与单一模块编程共同点总结 中断编程与单一模块编程首先都要设置初始状态,对一些寄存器进行设置。 中断编程主函数在循环等待中断时要进行清看门狗,单一模块编程在循环查询中也要进行清看门狗。 中断编程与单一模块编程差异总结 中断编程要设置中断寄存器,开中断操作。 单一模块编程在主函数中要分析处理操作,中断编程在中断服务函数中处理操作。 关于烟雾探测报警系统 为了更形象的说明各模块编程的过程这边结合烟雾探测报警系统来进行分析。 分析系统中所需模块 1、烟雾的检测-》I/O模块 2、报警-》D/A模块 3、数据传输-》UART模块 确定各模块工作的一般工作状态 数据传输-》UART模块-》初始化 由于要把检测的讯号传到控制中心,就需要设定通讯模块的传输速率之类,主要就Command、BaudScalar控制寄存器设置,关于如何设定可通过资料查到(这个我们没有记的必要)。 确定各模块工作的一般工作状态 报警-》D/A模块-》初始化 由于要检测到烟雾只要进行简单报警,D/A可设为直接锁存自动转换,主要就D/A控制寄存器Ctrl的设置,关于如何设定可通过资料查到(这个我们没有记的必要)。 中断并处理结果 在中断中接受外部中断IO的数据,一旦有产生中断,改变相应标志位,启动相应D/A,D/A转换完毕后产生中断,在中断中进行处理。在中断中实现串口通信。 中断编程与单一模块编程优势与劣势 优势 由于中断编程是cpu对外设的信号作出 反应,所以可以节省cpu大量时间,提 高执行效率 劣势 单一模块只有一个入口一个出口,程序结构 清晰,中断编程程序复杂。 总结 各中断源操作的过程基本差不多,都是先通过控制寄存器开中断,再等待中断,一旦中断发生在中断中处理。 功能模块学习资源与方法 在下面的讲座中将就外部中断进行详细讲解,在学的过程中对照上面讲的内容进行分析和理解,别的中断使用大同小异,可通过自学完成。 凌阳科技大学计划网站: 凌阳科技大学计划邮箱: E_mail: unsp@ 凌阳科技大学计划客服中心: Tel: 0102911 凌阳科技大学计划技术支持中心: Tel: 0102919 从单一模块编程到中断编程 在单片机中,中断技术主要用于实时控制。所谓实时控制,就是要求单片机能及时地响应被控对象提出的分析、计算和控制等请求,使被控对象保持在最佳工作状态,以达到预定的控制效果。由于这些控制参量的请求都是随机发出的,而且要求单片机必须作出快速响应并及时处理,因此,必须应用中断编程。 中断源 触键唤醒 EXT1 EXT2 TimerA TimerB 2Hz时基 4Hz时基 2048Hz时基 4096Hz时基 1024Hz时基 TMB1 TMB2 PWM UART 中断源 时基中断源 外部时钟中断源 定时器中断源 PWM 与UART中断源 初始化 打开中断 进入循环,等待中断 清看门狗 .define xxx xxxx .code .public _main; _main: … 〔xxx〕=Rx [P_INT_Ctrl] = Rx … INT IRQ Loop: [P_Watchdog_Clear] = 0x0001 … Jmp loop #define xxx (volatile unsigned in
文档评论(0)