- 1、本文档共159页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
单片机第三讲研讨
第3讲 单片机C语言开发基础 尽管汇编语言具有执行效率高的优点,但由于编程效率 低、可移植性差、可读性差等缺点,应有受到了很大的限制。 而简洁、结构优化的C语言以开发速度快、执行效率高、可 移植性强等优点,受到了越来越多的单片机开发人员的喜爱。 (1)可以大幅度加快开发速度。特别是一些复杂的系 统。程序量越大,C语言就越有优势。 (2)无须精通单片机指令集和过多地了解硬件结构, 也能迅速开发出功能强大的单片机应用系统。 第3讲 单片机C语言开发基础 尽管C语言代码比汇编语言占用的空间大5%~20%,但是 由于半导体技术的飞速发展,芯片容量和速度已有大幅度的 提高,占用的空间大小不再是开发者关心的主要因素。而随 着市场竞争的日趋激烈,软件开发速度和质量才是决定能否 在竞争中取胜的关键。所以,使用C语言已成为单片机应用 系统开发的趋势。 第3讲 单片机C语言开发基础 3.1 C语言源程序的结构特点 C语言是一种结构化语言,它层次清晰,可以按模块 化方式阻组织程序,易于调试何维护。它不仅有丰富的运算 符和数据类型,便于实现各种运算,还可以直接对硬件进行 操作。因此,C语言既具有高级语言的功能,也具有低级语 言的优势。 下面通过一个简单实例介绍C语言的结构特点和书写格 式。 第3讲 单片机C语言开发基础 第3讲 单片机C语言开发基础 这种定义已经由开发软件(如Keil C51)完成了。在编程时 必须将这种定义“包含”进去,才能使单片机认识“P0”等 各种寄存器的名字。 打开Keil的安装目录,在C51文件夹下找到“INC”子 文件夹,打开里面的“reg51.h”文件,可以看到以下定义: 第3讲 单片机C语言开发基础 第3讲 单片机C语言开发基础 如果将“sfr P0= 0x80;”语句中的“P0”改为其他名 字,如“Q0”。那么,在编程时,使用第一行的“文件包含” 处理命令后,单片机就不再认识“P0”,而只认识“Q0”了。 (2)main()函数 main()函数称为主函数,每个C语言程序必须有且只 有一个主函数,函数后面一定要有一对“{}”,程序就写在 大括号里面。 (3)语句结束标志 语句必须以分号“;”结尾。 第3讲 单片机C语言开发基础 (4)注释 C语言程序中的注释是为了提高程序的可读性。在编译 时,注释的内容不会被执行。 3.2 标识符与关键字 C语言规定:标志符只能是字母(A-Z,a-z)、数字 (0-9)和下划线组成的字符串,并且第一个字符必须是字 母或下划线。 在C语言编程中,为了定义变量、表达语句功能和对一 些文件预处理,还必须用到一些特殊意义的字符串,即关键 字。关键字已被软件本身使用,不能再作为标志符使用。 第3讲 单片机C语言开发基础 C语言的关键字分为三类: (1)类型说明符:用来定义变量、函数或其他数据类 型,如unsigned char、int、long等。 (2)语句定义符:用来标志一个语句的功能,如条件 判断语句“if”、“while”等。函数printf,scanf, sin,isalum等等。 (3)预处理命令:表示预处理的关键字,如程序开头 的“include”.所谓预处理是指在进行编译的第一遍扫描 (词法扫描和语法分析)之前所作的工作。 ANSI C标准规定 可以在C源程序中加入一些“预处理命令”,以改进程序的 第3讲 单片机C语言开发基础 设计环境,提高编程效率。预处理命令不是C语言本身的组 成部分,不能直接对它们进行那个编译。必须在进行编译之 前根据预处理命令对程序作相应的处理。 由ANSI标准定义的32个关键字: 第3讲 单片机C语言开发基础 第3讲 单片机C语言开发基础 第3讲 单片机C语言开发基础 另外,为了能够直接访问单片机的一些内部寄存器, Keil C51编译器扩充了关键字sfr。调用格式如下: sfr特殊功能寄存器名=地址常数 示例: sfr P0=0x80; /*定义地址为“0x80”的特殊功能寄存器名字为“P0”,对P0的操作也就是对地址为“0x80”的寄存器操作*/。 在8051系列单片机应用系统中,经常需要访问特殊功能 寄存器的某些位,Keil C51编译器为此提供了另一种扩充关 键字sbit,利用它可以定义位寻址对象。定义方法如下: 第3讲 单片机C语言开发基础 sbit位变量名=特殊功能寄存器名^位位置 示例如下: sfr LED=P1^3; //位定义LED为P1.3(寄存器P1
您可能关注的文档
最近下载
- TCCIAT0003-2019建筑施工承插型轮扣式模板支架安全技术规程.pdf
- T∕CTCA 6-2019 劳动防护手套.pdf
- 注册单元划分膝关节假体vlc g02.pdf VIP
- JTG5220—2020公路养护工程质量检验评定标准第一册土建工程全面解读.pptx
- 教育部留服务中心国(境)外学历学位认证评估程序和标准(试行)之附则.doc
- 土方工程课件.ppt
- 《医学细胞生物学》课件 第七章 细胞骨架与细胞运动.pptx
- 《排球正面双手垫球》教案排球正面双手垫球公开课教案1水.docx VIP
- 教育法学课件.ppt VIP
- 2023年人教版七年级语文下册期中试卷附参考答案 .pdf VIP
文档评论(0)