内部资源的C编程.ppt
《内部资源的C编程.ppt》由会员分享,可在线阅读,更多相关《内部资源的C编程.ppt(21页珍藏版)》请在三一办公上搜索。
1、教学基本要求:(1)、掌握中断应用的C编程方法;(2)、掌握定时器/计数器应用的C编程方法;(3)、熟悉串行口应用的C编程方法;教学重点:(1)、中断应用的C编程;(2)、定时器/计数器应用的C编程;教学难点:(1)、在Keil中如何调试各中断程序;,第二部分 8051内部资源的C编程,一、中断应用的C语言编程,C51编译器支持在C源程序中直接开发中断程序。中断服务程序是通过按规定语法格式定义的一个函数。中断服务程序的函数定义的语法格式如下:返回值 函数名(参数)模式重入 interrupt m using n nterrupt m 其中m是中断号(0到31),中断号告诉编译器中断程序的入口地
2、址,中断号对应着IE寄存器中的使能位。,下表给出了对应关系,在进入中断服务程序前的程序中使用一组工作寄存器,进入中断服务程序后,由“using n”切换到另一组寄存器,中断返回后又恢复到原寄存器组。这样互相切换的两组寄存器中的内容彼此都没有被破坏。为中断程序指定工作寄存器组的缺点是:所有被中断调用的过程都必须使用同一个寄存器组,否则参数传递会发生错误。中断不允许用于外部函数,它对函数目标代码影响如下:当调用函数时,SFR中的ACC,B,DPH,DPL和PSW入栈。如果不使用寄存器组切换,则甚至中断函数所需要的所有工作寄存器都入栈。函数退出前,所有的寄存器内容出栈;函数由8051的指令RETI终
3、止。,例:如图所示是利用优先权解码芯片,在单片机8031的一个外部中断INT1上扩展多个中断源的原理电路图。图中是以开关闭合来模拟中断请求信号。当有任一中断源产生中断请求,能给8031的INT1引脚送一个有效中断信号,由P1的低3位可得对应中断源的中断号。多个中断源的处理。在中断服务程序中仅设置标志,并保存I/O口输入状态。C51编译器提供定义特定80C51系列成员的寄存器头文件。80C51头文件为reg51.h。C51程序如下:,#include unsigned char status;bit flag;void service_int1()interrupt 2 using 2/*INT
4、1中断服务程序,用第2组工作寄存器*/flag=1;/*设置标志*/status=p1;/*存输入口状态*/,void main(void)IP=0 x04;/*置INT1为高优先级中断*/IE=0 x84;/*INT1开中断,CPU开中断*/for(;)if(flag)/*有中断*/switch(status)/*根据中断源分支*/case 0:break;/*处理IN0*/case 1:break;/*处理IN1*/case 2:break;/*处理IN2*/case 3:break;/*处理IN3*/default:;flag=0;/*处理完成清标志*/,例1:在XTAL频率是12MHZ
5、的标准8051器件上,用TIME1(定时器/计数器1)产生10KHz定时器滴答中断。分析:采用TIME1的工作模式2,则:TMOD=20H,机器周期=12/fosc=,T=1/10KHZ=100 s(256-次数)*1 s=100 s TH1=TL1=256-100 采用中断方式:EA=1,ET1=1,二、定时器/计数器应用的C语言编程,#include static unsigned long overflowcount=0;void time1(void)interrupt 3 overflowcount+;/溢出计数器加1 void main(void)TMOD=(TMOD,例2:设单片
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 内部 资源 编程

链接地址:https://www.31ppt.com/p-5240290.html