- 1、本文档共126页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
if (DIPswitch==1) {//检查P1. 4输出是否为高 inval = P1 0x0F; /* 从P1读位0~3 */ greenLED = 0; /* 置P1. 5输出为低 */ } Else{ /* 若P1. 4输入为低 */ greenLED =1; /* 置P1. 5输出为高 */ } P3 =(P30xF0)| inval;/*值输出到P3.0~P3.3 */ } } * 4.3.7 中断服务函数与寄存器组定义 定义中断服务函数的一般形式为: 函数类型函数名(形式参数表)〔interrupt n〕[using n] 关键字interrupt后面的n是中断号,n的取值范围为0~31,编译器从8n+3处产生中断向量,具体的中断号n和中断向量取决于不同的8051系列单片机芯片。8051单片机的常用中断源和中断向量见表6-1。 * 关键字using,专门用来选择8051单片机中不同的工作寄存器组。using后面的n是一个0~3的常整数,分别选中4个不同的工作寄存器组。在定义一个函数时using是一个选项,如果不用该选项,则由编译器选择一个寄存器组作绝对寄存器组访问。需要注意的是,关键字using和interrupt的后面都不允许跟带运算符的表达式。 * 关键字using对函数目标代码的影响如下: 在函数的入口处将当前工作寄存器组保护到堆栈中;指定的工作寄存器内容不会改变。函数返回之前将被保护的工作寄存器组从堆栈中恢复。 使用关键字using在函数中确定一个工作寄存器组时必须十分小心,要保证任何寄存器组的切换都只在仔细控制的区域内发生,如果不做到这一点将产生不正确的函数结果。另外还要注意,带using属性的函数原则上不能返回bit类型的值。并且关键字using不允许用于外部函数。 * 关键字interrupt也不允许用于外部函数,它对中断函数目标代码的影响如下: 在进入中断函数时,特殊功能寄存器ACC,B,DPH,DPL,PSW将被保存入栈;如果不使用寄存组切换,则将中断函数中所用到的全部工作寄存器都入栈;函数返回之前,所有的寄存器内容出栈;中断函数由8051单片机指令RETI结束。 * 下面给出一个中断函数定义的例子。 ? static void timer0_isr (void); /* 定时器0中断服务程序 */ static void timer0_isr (void) interrupt 1 using 1 { unsigned i; /* 停止定时器0, 然后改变定时器的计数值, 以得到10ms的中断,再次启动定时器 */ TR0 = 0; /* 停止定时器0 */ i = TIMER0_COUNT + TL0 + (TH08); TL0 = i; TH0 = i 8; TR0 = 1; /* 启动定时器0 */ timer0_tick++; } * 4.3.8函数的参数和局部变量的存储器模式 C51编译器允许采用三种存储器模式:SMALL、COMPACT和LARGE。一个函数的存储器模式确定了函数的参数和局部变量在内存中的地址空间。处于SMALL模式下的函数的参数和局部变量位于8051单片机的内部RAM中,处于COMPACT和LARGE模式下的函数的参数和局部变量则使用8051单片机的外部RAM。在定义一个函数时可以明确指定该函数的存储器模式,一般形式为: 函数类型函数名(形式参数表) [存储器模式] 其中,存储器模式是C51编译器扩展的一个选项。不用该选项时即没有明确指定函数的存贮器模式,这时该函数按编译时的默认存储器模式处理。 * 例4.19 函数的存储器模式 #pragma large /* 默认存储器模式为LARGE */ extern int calc(char i,int b) small; /* 指定SMALL模式 */ extern int func(int i, float f) compact; /* 指定Compact模式 */ extern void *tcp(char xdata * xp, int ndx) small; /* 指定SMALL模式 */ int mtest(int i, int y) small /* 指定SMALL模式 */ { return(
您可能关注的文档
- 试制小批量产品的管理制度.doc
- 让欧洲微笑建筑综述.ppt
- 广西哲学社会科学的规划2008年课题指南.doc
- 连颖斌教学的设计.doc
- 车道建筑做法-副本.doc
- 教学改革的方案3.doc
- 走进新课程----华东师大版数学教学建议介绍.doc
- 施工工程招标一站式办公办事指南.doc
- 合美社的设计参考.pptx
- 用于提高太阳能电池效率无机纳米材料的研究进展.doc
- 浙江金华市公共资源交易中心永康市分中心编外人员招考聘用笔试历年典型考题及考点研判与答案详解.docx
- 浙江宁波慈溪市政协办公室招考聘用编外工作人员笔试历年典型考题及考点研判与答案详解.docx
- 浙江金华永康市西溪镇人民政府招考聘用笔试历年典型考题及考点研判与答案详解.docx
- 福建南平市公安局建阳分局招考聘用辅警笔试历年典型考题及考点研判与答案详解.docx
- 浙江嘉兴海盐县武原街道基层残疾人工作专职委员(公益岗位)招考聘用笔试历年典型考题及考点研判与答案详解.docx
- 浙江宁波知识产权保护中心招考聘用工作人员笔试历年典型考题及考点研判与答案详解.docx
- 浙江杭州建德市面向2024届普通高校毕业生招考聘用教师(第二批)16人笔试历年典型考题及考点研判与答案详解.docx
- 浙江省台州中学面向2024届普通高校毕业生招考聘用教师12人笔试历年典型考题及考点研判与答案详解.docx
- 湖北师范大学体育学院专任教师招考聘用笔试历年典型考题及考点研判与答案详解.docx
- 重庆市南岸区教育事业单位面向2024届高校毕业生招考聘用114人笔试历年典型考题及考点研判与答案详解.docx
最近下载
- 2023年广东省初中生物、地理学业考试真题集合试卷及答案汇总.pdf VIP
- 监理大纲(技术标).doc VIP
- 超星尔雅学习通《法律与社会(复旦大学)》章节测试答案.docx VIP
- Evans Partial_微分方程指南.pdf
- 基于SOR理论的网络退货政策宽松度对消费者购买意愿影响机理研究.pdf VIP
- 2024首届全国红旗杯班组长大赛题库及答案 (1一2000题).docx VIP
- 一年级下册数学教案-第五单元整理与复习 苏教版.docx
- 小学“美好生活,民法典相伴”民法典主题宣传月活动总结.docx
- 《工程造价》(同济大学)中国大学MOOC(慕课)章节测验试题(答案).pdf
- 2024高考(北京卷)语文试题及详解.docx VIP
文档评论(0)