- 1、本文档共68页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
第3章单片机C51程序设计基础;第3章单片机C51程序设计基础;早期的单片机系统主要采用汇编语言编写程序,但是汇编语言程序的可读性和可移植性都比较差,采用汇编语言编写单片机应用程序的开发周期长,而且调试和查错比较困难。
C语言既具有一般高级语言的特点,又能直接对计算机的硬件进行操作,表达和运算能力也比较强。
KeilC51是一种专为MCS-51系列单片机设计的C语言编译器,支持用符合ANSI标准的C语言进行程序设计,通常称之为C51语言。;;;;;3.2.1编译
C51编译器的作用是将C语言源程序翻译成为MCS-51系列单片机的可执行代码。
编译命令分为源控制、列表控制和目标控制三个大类。
源控制命令用于宏定义以及确定需要进行编译的文件名。
列表控制命令用于规定编译后所产生列表文件的格式以及是否生成某些特殊内容,所生成的列表文件扩展名为“.LST”。
目标控制命令用于控制编译之后生成目标文件的形式和内容,所生成的目标文件扩展名为“.OBJ”。目标控制命令最多,作用最大,使用最频繁。
C51编译器还可以生成扩展名为“.I”和“.SRC”的输出文件。
C51编译器在对源程序进行编译时将自动査错,并在编译完成之后输出0~3级错误提示。;C语言与其他高级程序设计语言的一个主要区别就是对程序的编译预处理功能。
C语言的预处理命令类似于汇编语言中的伪指令。
编译器在对程序进行编译之前,先对程序中的编译控制行进行预处理,然后再将预处理的结果与整个C语言源程序一起进行编译,产生目标代码。;宏定义命令为#define,作用是用一个标识符替换一个字符串。
(1)不带参数的宏定义。不带参数的宏定义又称符号常量定义,一般格式为:
;(2)带参数的宏定义。带参数的宏定义与符号常量定义的不同之处在于,对于源程序中出现的宏符号名不仅进行字符串替换,而且还进行参数替换。带参数宏定义的一般格式为:
;文件包含是将另一个指定的文件内容包含进来。文件包含命令的一般格式为:;3.3.1常量
常量又称为标量,它的值在程序执行过程中不能改变。常量的数据类型有:
1.整型。1234(十进制整数)、0x123(十六进制整数)、0123L(长整数)。
2.浮点型。有十进制数表示形式和指数表示形式两种。
3.字符型。单引号内的字符,如a,b等。对于不可显示的控制字符,可以在该字符前面加一个反斜杠“\”组成转义字符。
4.字符串型。由双引号内的字符组成,如ABCD、$1234等。;变量是一种在程序执行过程中其值能不断变化的量。
在使用一个变量之前,必须要进行定义,用一个标识符作为变量名并指出它的数据类型和存储类型,以便编译系统为它分配相应的存储单元。
在C51中对变量进行定义的格式如下:
;3.3.2变量-标准C数据类型;3.3.2变量-C51扩展数据类型;3.3.2变量-C51扩展数据类型;(3)特殊功能位sbit
sbit用于定义位变量的名字和地址。被定义的位变量是SFR中的可以进行位寻址的确定位,该位变量的绝对地址是确定的且不用编译器分配。
利用sbit定义位变量名字和地址的方法有如下三种。
①第一种方法(将位的绝对地址赋给位变量,位地址必须位于80H~FFH之间)。;3.3.2变量-存储类型;3.3.2变量-存储模式;3.3.2常用运算符与表达式-算数运算符;符号;符号;符号;在实际的控制应用中,人们常常想要改变I/O口中的某一位的值,而不影响其他位。
如果I/O口是外部扩展的,只能进行字节操作,要想在这种场合下实现单独的位控,就要利用位运算符进行处理。
【例3-1】编写程序将扩展的I/O口PORT(只能字节操作)的PORT.5清0,PORT.1置1。
参考程序:
;赋值运算符及其说明如下表所示。;指针和取地址运算符及其说明如下表所示。;C51的程序按结构可分为三类,即顺序、分支和循环结构。
顺序结构是程序的基本结构,程序自上而下,从main()函数开始一直到程序运行结束,程序只有一条路可走,没有其他的路径可以选择。
3.4.1分支语句
实现分支结构的语句有:if语句和switch语句。
1.if语句
判定所给定的条件是否满足,根据判定结果决定执行哪种操作。
if语句的基本结构为:
;;2.switch语句
if语句只有两个分支可供选择,而switch语句是多分支选择语句。switch语句的一般形式如下:
;【例3-2】在单片机程序设计中,常用switch语句作为键盘按键按下的判别,并根据按下键的键号跳向各自的分支处理程序。
参考程序:
;实现循环结构的语句有:while语句、do-while语句和for语句。
1.while语句
while语句的语法形式为:
;2.do-while语句
do-while语句的语法形式如下:;3.fo
您可能关注的文档
- 《电力电子技术》课件项目五 任务二 电力电子技术在变频调速中的应用.pptx
- 《单片机原理及应用》课件第16章 汇编语言程序设计.ppt
- 《电工电子》课件项目一 日光灯照明电路的设计.pptx
- 《电力电子技术》课件项目五 不间断电源(UPS).pptx
- 《LTE网络优化项目式教材》课件6项目六 撰写网络优化报告.pptx
- 《大学生就业指导实用教程》课件第7章.pptx
- 《单片机原理及应用项目化教程》课件项目七 串行通信应用.ppt
- 《单片机原理及应用项目化教程》课件项目六 定时器计数器应用.ppt
- 《电力系统分析》课件第1章.pptx
- 《单片机应用技术基础》课件第3章.ppt
- 四川省德阳市罗江中学2025届高三考前热身化学试卷含解析.doc
- 山东省枣庄现代实验学校2025届高三下学期第五次调研考试化学试题含解析.doc
- 吉林省长春市十一高中等九校教育联盟2025届高三一诊考试生物试卷含解析.doc
- 2025届江苏省盐城市伍佑中学高考仿真模拟化学试卷含解析.doc
- 2025届广西贺州中学高考冲刺押题(最后一卷)生物试卷含解析.doc
- 安徽省池州市贵池区2025届高三第一次模拟考试生物试卷含解析.doc
- 宁夏银川一中2025届高三(最后冲刺)化学试卷含解析.doc
- 广东省广州市增城区四校联考2025届高考压轴卷化学试卷含解析.doc
- 2025届邯郸市第一中学高考生物必刷试卷含解析.doc
- 2025届安徽省安庆市石化第一中学高考仿真卷化学试卷含解析.doc
文档评论(0)