- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
软中断在51单片机中实现和其应用
软中断在51单片机中的实现及其应用
彭树林
摘要 本文讨论软中断在51单片机(兼容)中的实现方法以及软中断在51单片机(兼容)系统中的应用。详细说明了在51单片机实现软中断的方法,并就软中断的应用作了简明扼要的阐述。
关键词 软中断 单片机 51单片机 实时操作系统
1、序言
现代的单片机应用中,某些单片机为了方便操作系统编程,会保留一些特权指令给RTOS操作系统,以便实时控制整个机器;软件中的一些原子操作不允许中断破坏,也需要一些特权指令。软中断指令表面上类似于函数调用,主要是使单片机进入特权运行状态,并在这个状态下,操作一些用户状态下不能使用的功能。
51兼容单片机没有特权功能,也不存在软中断指令。但是我们的一些应用确实需要软中断特权指令来完成一些特殊的操作。
本文所讨论软中断在51兼容单片机中的实现方法以及软中断在51兼容单片机系统中的应用。
2、软中断与硬中断
软中断,最早出现在Intel8086处理器中,该处理器的指令系统中,可使用INT指令来申请中断服务。在DOS操作系统下,利用INT 21这条指令,应用软件可以申请多达84个DOS系统服务。在Linux、Windows、SOLAIRS?等操作系统中,都有软中断在为系统提供服务。
软中断和硬中断区别不大,软中断是程序中用软件代码人为地产生中断,让CPU去执行相应的中断服务程序。硬中断由硬件产生并触发中断,让CPU去执行相应的中断服务程序以响应该事件。
可以这样理解,软中断以软件中断指令所携带的参数作为工作的依据,而硬中断是以计算机系统中硬件所发生的事件为工作依据。可见软件中断的灵活性非常强,可根据程序的运行状态、硬件状态以及任务之间的消息作为触发条件,申请相应的软中断功能服务。
软中断最大的用途在于RTOS提供系统级服务,提高系统的实时性。在没有RTOS的情况下,我们也可利用软中断服务对敏感代码和敏感数据进行保护。比如互斥访问共享硬件以及互斥访问共享数据等。
3、51单片机(兼容)中断系统的秘密
51单片机(兼容)的中断系统中,各个中断标志的置位条件和如何清除,都在公开的技术资料中进行了详细的描述。然而,公开的技术细节实际上并没有将中断系统的工作原理讲述清楚。大家使用的51兼容单片机,其中断系统的工作细节以及工作的结果与公开的技术资料有些小小的差异。比如关于外部中断标志IE0的置位,附1是五个公司对IE0的描述。各个公司开发的51单片机(兼容),其中断系统也兼容,仅仅是中断源的多少,中断优先级的级数以及中断向量的多少的不同,附2列举了六家公司51单片机(兼容)的中断系统资料。
中断系统的秘密在于:中断标志完全可以通过一定的方式实现软件置位和软件清除。可否通过软件置位和清除中断标志,是在51单片机中实现软中断的关键,如果不能用软件申请中断,软中断的实现就无从谈起。
硬件置位中断申请标志只是方法之一而不是唯一的方法,CPU完全可以设置这些标志位为“0”或者“1”。这是理解本文的基础,对于有丰富经验的51单片机开发者,只要知道这个道理就好,基本没有必要再阅读后面的部分。本文接下来的部分具体描述如何在51单片机中实现软中断,主要针对51单片机开发经验还不是十分丰富的读者。
IE0和IE1的秘密在于,如果将中断检测的方式(IT0、IT1)设置为边沿检测,就可以用软件来设置或清除IE0和IE1(清除也可以让中断系统在响应中断时自动完成)。TF0、TF1、TF2、TI以及RI是已知的可以软件操控的中断申请标志。
对于各个公司的51单片机(兼容)增强部分的中断,可以根据实际应用,在关闭模块功能的情况下一般都可以自由使用其中断资源。具体应用时,应编写一个测试软件,测试具体型号的51单片机各个中断资源是否能够被利用,避免走弯路。读者应当注意到,有些单片机的某些中断申请标志,其清除方法是通过对该标志位写“1”来完成的,这种中断源就不适合用于软中断,比如STC12C5AxxS2单片机的SPI中断。
如果要使用STC12C5AxxS2单片机的SPI中断作为软中断,就必须放弃该模块占用的IO引脚,以实现软中断。例如在40脚DIP封装的STC12C5AxxS2单片机中,将SPI影射到P4口不会占用外部的引脚,将SPI设置为MASTER模式,就可以通过对SPDAT写入0xFF数据来是SPI工作,SPI工作完成后会自动设置中断申请标志,从而完成软中断的申请。而在44或48脚封装的STC12C5AxxS2单片机,用SPI中断源实现软中断就必须考虑放弃SPI占用的引脚(P1口或P4口)。
大部分51单片机(兼容)增强部分,在系统的应用中不能全部同时使用,因为它们可能共享了IO端口上的引脚。因此,总是能在一个51单片机中找到空闲资源实现软中断。
4、软中断实现的方法
只要是代码兼容的51单片机
文档评论(0)