当前位置:首页 > 单片机 > 单片机
[导读]8051系列MCU的基本结构包括:32个I/O口(4组8 bit端口);两个16位定时计数器;全双工串行通信;6个中断源(2个外部中断、2个定时/计数器中断、1个串口输入/输出中断),两级中断优先级;128字节内置RAM;独立的64K字

8051系列MCU的基本结构包括:32个I/O口(4组8 bit端口);两个16位定时计数器;全双工串行通信;6个中断源(2个外部中断、2个定时/计数器中断、1个串口输入/输出中断),两级中断优先级;128字节内置RAM;独立的64K字节可寻址数据和代码区。中断发生后,MCU转到5个中断入口处之一,然后执行相应的中断服务
处理程序。中断程序的入口地址被编译器放在中断向量中,中断向量位于程序代码段的最低地址处,注意这里的串口输入/输出中断共用一个中断向量。8051的中断向量表如下:
中断源 中断向量
---------------------------
上电复位0000H
外部中断0 0003H
定时器0溢出000BH
外部中断1 0013H
定时器1溢出001BH
串行口中断0023H
定时器2溢出002BH

interrupt和using都是C51的关键字。C51中断过程通过使用interrupt关键字和中断号(0到31)来实现。中断号指明编译器中断程序的入口地址中断序号对应着8051中断使能寄存器IE中的使能位,对应关系如下:
IE寄存器C51中的8051的
的使能位 中断号 中断源
--------------------------------
IE.0 0外部中断0
IE.1 1定时器0溢出
IE.2 2外部中断1
IE.3 3定时器1溢出
IE.4 4串口中断
IE.5 5定时器2溢出

有了这一声明,编译器不需理会寄存器组参数的使用和对累加器A、状态寄存器、寄存器B、数据指针和默认的寄存器的保护。只要在中断程序中用到,编译器会把它们压栈,在中断程序结束时将他们出栈。C51支持所有5个8051标准中断从0到4和在8051系列(增强型)中多达27个中断源。
using关键字用来指定中断服务程序使用的寄存器组。用法是:using后跟一个0到3的数,对应着4组工作寄存器。一旦指定工作寄存器组,默认的工作寄存器组就不会被压栈,这将节省32个处理周期,因为入栈和出栈都需要2个处理周期。这一做法的缺点是所有调用中断的过程都必须使用指定的同一个寄存器组,否则参数传递会发生错误。因此对于using,在使用中需灵活取舍。

举个例子来说:
定义一个延时函数
void delay(unsigned int n)//n=10000,延时90.05毫秒,默认寄存器组0

{

while(n--);

}
有如下一个中断函数
void int_0(void) interrupt 0 using 1 {//默认寄存器组1
...
Delay(2000);
...

}
在默认状态下,delay()使用寄存器组0(BANK0),那么当int_0调用delay()时时会造成参数传递错误.这里必需把delay()的寄存器组也设为1.

如果在中断服务函数ISR (中断服务程序)中使用寄存器,那么必须处理好using的使用问题:
1、中断服务函数使用using指定与主函数不同的寄存器组(主函数一般使用Register bank 0)。
2、中断优先级相同的ISR可用using指定相同的寄存器组,但优先级不同的ISR必须使用不同的寄存器组,在ISR中被调用的函数也要使用using指定与中断函数相同的寄存器组。
3、如果不用using指定,在ISR的入口,C51默认选择寄存器组0,这相当于中断服务程序的入口首先执行指令:
MOV PSW #0
这点保证了,在没使用using指定的高优先级中断。可以中断使用不同的寄存器组的低优先级中断。
4、使用using关键字给中断指定寄存器组,这样直接切换寄存器组而不必进行大量的PUSH和POP操作,可以节省RAM空间,加速MCU执行时间。寄存器组的切换,总的来说比较容易出错,要对内存的使用情况有比较清晰的认识,其正确性要由你自己来保证。特别在程序中有直接地址访问的时候,一定要小心谨慎!至于“什么时候要用到寄存器组切换”,一种情况是:当你试图让两个(或以上)作业同时运行,而且它们的现场需要一些隔离的时候,就会用上了。在ISR或使用实时操作系统RTOS中,寄存器非常有用。


本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭