- 1、本文档共13页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
51单片机C语言基础C语言是一种编译型程序设计语言,它兼顾了多种高级语言的特点,并具备汇编语言的功能。目前,使用C语言进行程序设计已经成为软件开发的一个主流。用C语言开发系统可以大大缩短开发周期,明显增强程序的可读性,便于改进、扩充和移植。一个简单的单片机C程序要有什么#include<reg51.h>voidmain(){ while(1) { }}包涵头文件程序主函数(其实课堂上学习C语言的很大一部分内容在初期单片机编程中都用不到,因此没必要因为觉的自己的C语言基础不是很好而对单片机望而止步!)C语言中常用的语句if-else语句if(表达式)??
??{????语句1;??}
??????else??
???{???语句2;}??其语义是:如果表达式的值为真(非0),则执行语句1,否则执行语句2。例如:if(a>b){ c=0;} else { c=1; }while语句while语句的一般形式为:
??while(表达式){语句}
其中表达式是循环条件,语句为循环体。
??while语句的语义是:计算表达式的值,当值为真(非0)时,执行循环体语句。
例如:while(i<10){ i=i+1;}do-while语句do
{????????语句} ??????while(表达式);
这个循环与while循环的不同在于:它先执行循环中的语句,然后再判断表达式是否为真,如果为真则继续循环;如果为假,则终止循环。因此,do-while循环至少要执行一次循环语句。
例如:do{ a=a+1;}while(a<10);for语句for(表达式1;表达式2;表达式3){语句}
它的执行过程如下:
1)????先求解表达式1。
2)????求解表达式2,若其值为真(非0),则执行for语句中指定的内嵌语句,然后执行下面第3)步;若其值为假(0),则结束循环,转到第5)步。
3)????求解表达式3。
4)????转回上面第2)步继续执行。
5)????循环结束,执行for语句下面的一个语句。
例如:for(a=0;a<10;a++)//a++相当于a=a+1;{ b=0;}switch(表达式){??
??????case常量表达式1:??语句1;
??????case常量表达式2:??语句2;
??????…??
??????case常量表达式n:??语句n;
??????default??????:??语句n+1;
??????}其语义是:计算表达式的值。并逐个与其后的常量表达式值相比较,当表达式的值与某个常量表达式的值相等时,即执行其后的语句,然后不再进行判断,继续执行后面所有case后的语句。如表达式的值与所有case后的常量表达式均不相同时,则执行default后的语句。
例如:switch(a){case(0):b=0;break;case(1):b=1;break;default:b=3;}//被break语句的含义是跳出这个switch语句,如果没有这条语句那么则会从//满足条件的地方(即与switch(表达式)括号中表达式匹配的case)开始执//行,直到switch结构结束。当break语句用于do-while、for、while循环语句中//时,可使程序终止循环。函数的定义返回变量类型函数名(输入变量类型){ 函数体;}如:unsignedcharread(unsignedcharaddr){ unsignedchardat;//定义一个变量存放返回值 (doanythingyouwant);//函数中的程序。 returndat;//返回函数的返回值}函数的调用在函数调用之前要在主函数前面加入上该函数的声明。(或者你可以放在头文件里面,包含该头文件时,就可以声明了。)C-51的数据类型扩充定义sfr:特殊功能寄存器声明sfr变量名=地址值;*特殊功能寄存器在reg51.H这个头文件里面都帮我们定义好了,所以平时我们就不要自己去定义寄存器的名字。sbit:特殊功能位声明sbit变量名=地址值;*在给某个引脚取名的时候经常会用到。bit:位变量声明*用来定义位数据变量例:sfrSCON=0X98;sbitLED=P0^2;C51中常用到的一些预处理命令#define#defineAP0(注意后面不用加分号)
您可能关注的文档
- 多元回归分析(multiple regression).docx
- 多元回归分析应用举例.docx
- 机器学习介绍.docx
- 机器学习之概念学习.docx
- 机器学习之决策树算法.docx
- 机器学习之决策树应用python安装环境.docx
- 机器学习之支持向量机SVM算法1.docx
- 机器学习之支持向量机SVM算法2.docx
- 机器学习之最邻近规则分类KNN算法.docx
- 简单线性回归算法1.docx
- 幼儿教师资格证(考试资料)《幼儿保健知识与能力》新版初级练习卷有答案与.docx
- (附答案)川农12月《中药化学》作业考核-.docx
- (附答案)川农12月《园林植物保护学(本科)》作业考核-.docx
- (附答案)川农12月《有机化学(专科)》作业考核-.docx
- (附答案)川农12月《植物保护学(本科)》作业考核-.docx
- (附答案)东师《教育心理学》在线作业2-1(1).docx
- (附答案)川农12月《药剂学》作业考核-.docx
- (附答案)川农12月《配方饲料制造工艺与技术(专科)》作业考核-.docx
- 幼儿教师资格证(考试资料)《幼儿保健知识与能力》新版基础知识题库带解析.docx
- 幼儿教师资格证(考试资料)《幼儿保健知识与能力》基础知识模拟押题卷.docx
文档评论(0)