- 1、本文档共54页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
张东亮 山大控制学院 第10章 8051单片机C语言程序设计 10.1 概述 10.2 C51的数据类型与存储类型 10.3 SFR、可寻址位和I/O口的定义 10.4 C语言运算符与基本语句 10.5 C51程序结构与函数 10.6 C51编程实例 10.1 概述 10.2 C51的数据类型与存储类型 10.3 SFR、可寻址位和I/O口的定义 10.4 C语言运算符与基本语句 10.5 C51程序结构与函数 10.6 C51编程实例 for语句 一般形式为: for([初值表达式];[条件表达式];[更新表达式])语句 该语句执行时,先计算初值表达式,作为循环控制变量的初值,再检查条件表达式的结果,当满足条件时就执行循环体语句并计算更新表达式,然后再根据更新表达式的计算结果来判断循环条件是否满足,一直进行到循环条件表达式的结果为假(0值)时退出循环体。 预处理命令 全局变量说明; 函数1说明; …… …… 函数n说明; main() { 局部变量说明; 执行语句; 函数调用(实际参数表); } 函数1(形式参数说明) { 局部变量说明; 执行语句; 函数调用(实际参数表); } …… …… 函数n(形式参数说明) { 局部变量说明; 执行语句; 函数调用(实际参数表); } 1. C51程序结构 C程序 由函数构成 必须有,且只能有一个main(主函数) 总是从main函数开始执行 函数 由函数首部和函数体组成 函数首部指定函数名、函数参数、类型 函数体从 { 开始,到 } 结束 函数内有语句 语句 包括说明性语句、可执行语句 以 ;表示语句结束 注释 可以出现在程序的任何位置 用 /* 和 */ 括起来,必须成对出现 书写格式 C语言没有行的概念,书写格式自由。 习惯小写字母,缩进格式。 C51程序是有若干模块化的函数构成。函数是C51程序的基本模块,常说的子程序就是由函数来实现的。 用户可以根据需要定义自己的功能函数,也可以调用C51编译器提供的标准函数(库函数)来完成某种特定的功能。 2. C51的函数 C51函数的定义 函数的一般定义形式为: 返回值类型 函数名(形式参数列表)[编译模式] [reentrant] [interrupt n] [using n] { 函数体 } 当函数没有返回值时,应用关键字void明确说明。 形式参数的类型要明确说明,对于无形参的函数,括号也要保留。 编译模式为SMALL、COPACT或LARGE,用来指定函数中局部变量和参数的存储器空间。 reentrant用于定义可重入函数。 interrupt n 用于定义中断函数,n为中断号,可以为0~31,通过中断号可以决定中断服务程序的入口地址。 using n 用于确定中断服务函数所使用的工作寄存器组,n为工作寄存器组号,取值为0~3。 C51的库函数 C51编译器提供了丰富的库函数,使用这些库函数可以大大提高编程的效率。 每个库函数都在相应的头文件中给出了函数的原形,使用时只需在源程序的开始用编译命令 #include 将头文件包含进来即可。 中断函数 C51编译器支持在C51源程序中应用中断函数,进而控制单片机中断系统的相关资源。 中断函数的定义形式为: void 函数名(void)interrupt n [using m] { 函数体 } 这里interrupt表示该函数是中断服务函数,n 表示对应的中断源的编号,范围是0~31 常用的中断源对应的中断号 关键字using 用于指定使用的工作寄存器组,m的范围是0~3。指定工作寄存器组后,所有被中断调用的过程都必须使用同一个寄存器组,否则参数传递就会发生错误。不设定工作寄存器组时,编译系统会将当前工作寄存器组的8个寄存器都压入堆栈。 应注意的是,在应用程序中任何函数都不能调用中断服务函数,因为它是由系统调用的。 4 3 2 1 0 中断号 串行口 定时器1 外中断1 定时器0 外中断0 中断源 * 应用C51编程具有以下优点: C51管理内部寄存器和存储器的分配,编程时无需考虑存储器寻址等细节问题。 程序由若干函数组成,具有良好的模块化结构。 有丰富的库函数可直接调用,从而大大减少用户编程的工作量。 C语言和汇编语言可以交叉使用。汇编语言程序代码短、运行速度快,但复杂运算编程耗时。可以用汇编语言编写与硬件有关的程序,用C语言编写与硬件无关的运算程序。 C语言可读性、可移植性、可维护性较好。 适合运行嵌入式实时操作系统
您可能关注的文档
- 单片机原理与实践指导 教学课件 作者 邓兴成 SVM1602液晶显示器.ppt
- 单片机原理与实践指导 教学课件 作者 邓兴成 SVM1602液晶显示器说明书.pdf
- 单片机原理与实践指导 教学课件 作者 邓兴成 第1章 内部结构与时序.ppt
- 单片机原理与实践指导 教学课件 作者 邓兴成 第2章 单片机的指令系统.ppt
- 单片机原理与实践指导 教学课件 作者 邓兴成 第4章 MCS 51单片机的中断系统.ppt
- 单片机原理与实践指导 教学课件 作者 邓兴成 第5章 并行IO口.ppt
- 单片机原理与实践指导 教学课件 作者 邓兴成 第6章 MCS 51单片机定时.ppt
- 单片机原理与实践指导 教学课件 作者 邓兴成 第7章 MCS 51单片机的串行通信口.ppt
- 单片机原理与实践指导 教学课件 作者 邓兴成 第9章 AD及DA转换.ppt
- 单片机原理与实践指导 教学课件 作者 邓兴成 数字温度传感器DS18B20.ppt
- 2025年乡村全科执业医师考试综合分析试题及答案.docx
- 高档别墅装修项目实施方案计划.docx
- DB37_T 4642-2023 导轨式胶轮系统设计要求.pdf
- T_JSSAE 002-2021_汽车混合动力系统分类.pdf
- T_KJDL 015-2021_物联位置网应用倾斜摄影数据技术规范.pdf
- T_KCH -009-2021_智慧水务管理信息系统基本术语.pdf
- T_JSJTQX 18—2021_江苏省内河船闸维护潜水作业规程.pdf
- T_LCAA 004—2020_养殖企业温室气体排放监测技术规范.pdf
- DB37_T 4643-2023 波纹钢管涵洞设计与施工技术规范.pdf
- T_JXTX 0003—2021_铜精矿化学分析方法金含量的测定泡塑吸附-火焰原子吸收光谱法.pdf
文档评论(0)