本节主要介绍下载软件STC-ISP在Windows 7系统中的应用,网络下载STC-ISP安装软件,在软件包中找到可执行文件,鼠标右击在弹出选项中找到属性选项如图2-39所示。图2-39 STC-ISP属性菜单操作图2-40 STC-ISP属性对话框设置完成后运行,STC-ISP可以正常进行程序烧写工作,如图2-41所示。......
2025-09-30
CPU对中断处理过程包括中断初始化、中断响应、保护现场、中断服务程序处理、中断撤销和中断返回。
1.中断初始化
中断初始化设置,对中断的允许位和中断优先级设置,包括TCON、SCON、IE、IP与中断有关的功能位置进行设置,如3.3.3节所述。
2.中断响应
单片机一旦响应中断,首先设置响应的优先级,通过执行硬件程序调用把断点地址压入堆栈,并与各中断源对应的中断服务程序首地址送到程序计数器PC,同时清除中断请求标志(TI和RI除外),从而控制程序转移到中断服务程序,中断响应过程由中断系统自动完成。
3.保护现场
CPU在执行任务过程中由于中断响应执行中断事件,为了在执行完中断服务程序后,回头执行原先程序时,知道程序原来在何处打断,各有关寄存器的内容如何,必须在转入执行中断服务程序前,将当前状态内容进行备份以便保护好现场。一旦缺乏现场保护和恢复现场,程序运行混乱,单片机无法正常工作。所以在进入中断服务子程序后,一般都要保护现场,再执行中断服务程序,返回主程序前再恢复现场,用户在编制中断处理程序时必须要考虑上述问题。
4.中断服务程序处理
中断服务程序一般以子程序的形式出现,所有的中断都要转去执行中断服务程序,进行中断服务。C51编辑器支持在C语言程序中直接编写51单片机的中断服务程序,C51编译器对函数的定义进行了扩展,无需考虑堆栈出栈保护问题,增加了一个扩展关键字inter-rupt。关键字interrupt是函数定义时的一个选项,加上此选项可以对函数定义为中断服务函数。定义中断服务函数的格式如下:
函数类型 函数名(形式参数)[interrupt n][using n]
关键字interrupt中的n是中断号,n的取值为0~31单片机芯片型号不同n不同。
在C语言中定义中断服务函数:(https://www.chuimin.cn)
void intersvr0(void)interrupt 0 using 1//定义外部中断0,使用第一组寄存器。
5.中断请求撤销
CPU响应中断请求后,执行中断服务子程序,一旦中断任务执行完毕,必须清除中断请求标志,否则中断响应返回后将再次进入该中断,从而进入死循环。
中断撤销方式有4种方式:
1)对定时/计数器T0、T1中断,CPU响应中断时就用硬件自动清除相应的中断请求标志TF0或TF1。
2)对外部中断INT0、INT1,若采用边沿触发方式,CPU响应中断后,内部硬件自动复位中断标志IE0或IE1。
3)对串行中断,CPU响应中断后并不自动清除相应的中断标志位TI或RI,用户应在串行中断服务程序中用软件清除TI或RI。
4)若CPU对中断引脚的信号缺乏控制能力,可以利用单稳态触发器对中断信号进行整形,使其符合要求。
6.中断返回
中断任务处理完成后,CPU需要返回到中断的地方继续执行。同时需把保存现场内容从堆栈中弹出,恢复寄存器和存储单元的原有内容。正常中断响应时间至少为3~8个机器周期,如果有同级或高级中断服务,将延长中断响应时间。
以上为中断内容的详细描述,关于中断的实际应用在中断章节第8章单片机外部中断控制项目中重点介绍。
相关文章
本节主要介绍下载软件STC-ISP在Windows 7系统中的应用,网络下载STC-ISP安装软件,在软件包中找到可执行文件,鼠标右击在弹出选项中找到属性选项如图2-39所示。图2-39 STC-ISP属性菜单操作图2-40 STC-ISP属性对话框设置完成后运行,STC-ISP可以正常进行程序烧写工作,如图2-41所示。......
2025-09-30
在输入程序时,Keil C51会自动识别关键字,并以不同的颜色提示用户注意,减少用户编写程序出现的错误,有利于提高编程效率。图2-28 对编辑的程序执行编译在对设计的程序进行调试时,单击debug菜单选中start/stop debug session,则进入到Keil C51程序调试界面如图2-30所示。图2-35 设置和删除断点操作图2-36 断点设置成功界面图2-37 断点设置成功后调试结果图以上为Keil C51完整的工程应用过......
2025-09-30
硬件设计一个嵌入式系统的硬件电路设计包括三部分内容:单片机芯片的选择、单片机系统扩展、系统配置。2)系统的扩展与外设配置的水平应充分满足应用系统当前的功能要求,并留有适当余地,便于以后进行功能的扩充。4)整个系统中相关的元器件要尽可能做到性能匹配。2)各功能程序实现模块化、系统化。4)运行状态实现标志化管理。软件抗干扰是计算机应用系统提高可靠性的有力措施。......
2025-09-30
AT89S51是单片机的一种型号,这种型号下有DIP、PLCC、TQFP等封装。DIP封装的芯片从芯片插座上插拔时应特别小心,以免损坏引脚。51单片机的DIP封装如图2-8所示。图2-8 51单片机的DIP封装a)器件外观 b)器件外观及尺寸图2-8 51单片机的DIP封装(续)c)电路符号 d)焊接剖面51单片机的PLCC封装如图2-9所示。4)芯片面积与封装面积之间的比值较小。......
2025-09-30
2)控制端低电平时,接地端MOS管截止,使非接地端MOS管漏极开路,输出“1”时须外接上拉电阻,最小系统作准双向I/O口用。P2口特点1)控制端高电平时,作为高8位地址输出口。表7-1 P3口第2功能3)对应特殊功能寄存器地址B0H。......
2025-09-30
汇编程序如下:第2条指令执行后,如图4-5所示,内部RAM中15H单元的内容已送入R6中;继续执行第3条指令,结果显示与图4-4相同。图4-13 任务2存储器窗口显示5上述程序需要说明的是:1)由于PUSH指令不能寄存器寻址,即R2不能压栈弹栈,因此压栈弹栈操作需对直接地址02H操作。图4-14 任务3存储器窗口显示12)解法2。分析:64H的无符号数和有符号数表示见表4-4。表4-5 64H+64H的CY和OV结果按照PSW定义,由图4-16可知运算后PSW为00000101B。......
2025-09-30
单片机初学者手上最好有一块单片机开发板,这样才能将学到的单片机知识理论与实践相结合,才能真正学好单片机。一般单片机的开发板价格不是很贵,以200~300元的单片机开发板最为适宜,只要单片机开发板功能强大,可以帮助初学者学习单片机的外围电路,熟悉单片机各种硬件电路和锻炼单片机软件编程。......
2025-09-30
Capric卡一共需要处理三种中断请求,分别为DMA写完成、DMA读完成和错误中断请求。源代码12-9 Capric卡的中断服务例程在capric_probe函数中,capric_interrupt中断服务例程被request_irq函数注册到Linux系统的irq_desc中断描述符表中,并与Linux系统的外部中断处理函数do_IRQ挂接,当Capric卡通过MSI中断方式提交外部中断请求后,do_IRQ函数将最终调用capric_interrupt函数完成相应的中断处理。......
2025-09-30
相关推荐