单片机C语言编程常用语句

上传人:kfc****89 文档编号:243801610 上传时间:2024-09-30 格式:PPT 页数:22 大小:115.50KB
收藏 版权申诉 举报 下载
单片机C语言编程常用语句_第1页
第1页 / 共22页
单片机C语言编程常用语句_第2页
第2页 / 共22页
单片机C语言编程常用语句_第3页
第3页 / 共22页
资源描述:

《单片机C语言编程常用语句》由会员分享,可在线阅读,更多相关《单片机C语言编程常用语句(22页珍藏版)》请在装配图网上搜索。

1、单击此处编辑母版标题样式,,,*,单击此处编辑母版文本样式,,第二级,,第三级,,第四级,,第五级,,,,单击此处编辑母版标题样式,,单击此处编辑母版文本样式,,第二级,,第三级,,第四级,,第五级,,*,,*,,单片机C语言编程常用语句,,标准SFR在reg51.h、reg52.h 等头文件中已经被定义,只要用文件包含做出声明即可使用。,,例如:,,#include ,,sbit P10=P1^0;,,sbit P12=P1^2;,,main(),,{,,P10=1;,,P12=0;,,PSW=0x08;,,……,,},,二、C51定义位变量,,,,使用关键字bit,,例如:,,bit lo

2、ck;/*将lock定义为位变量*/,,bit direction;/*将direction定义为位变量*/,,,,,注意:不能定义位变量指针;也不能定义位变量数组。,C51编程常用语句总结,,C51流程控制语句,,一、选择语句,,,以下三种形式:,,if(表达式){语句;},,if(表达式){语句1;} else {语句2;},,if(表达式1){语句1;},,else if(表达式2){语句2;},,else if(表达式3){语句3;},,……,,else if(表达式n){语句n;},,else {语句n+1;},,C51流程控制语句,例1: if (p1!=0),,{c=20;},

3、,例2: if (p1!=0),,{c=20;},,else,,{c=0;},,例3: if (a<=1) {c=10;},,else if (a<=2) {c=20;},,else if (a<=3) {c=30;},,else if (a<=4) {c=40;},,else {c=0;},,C51流程控制语句,⒉ switch/case语句,,switch/case,语句的一般形式如下:,,switch(表达式),,{,,case 常量表达式1:语句1; break;,,case 常量表达式2:语句2; break;,,……,,case 常量表达式n:语句n; break;,,defa

4、ult :语句n+1;,,},,C51流程控制语句,例:单片机P1口的P1.0和P1.1各接一个开关K1、K2,P1.4、P1.5、P1.6和P1.7各接一只发光二极管。有K1和K2的不同状态来确定哪个发光二极管被点亮。,K2,K1,亮的二极管,0,0,L1,0,1,L2,1,0,L3,1,1,L4,,C51流程控制语句,方法一:用if语句实现,,#include ,,void main(),,{,,char a;,,a=P1;,,a=a /*屏蔽高6位*/,,if (a==3) P1=0x83;,,else if (a==2) P1=0x43;,,else if (a==1) P1

5、=0x23;,,else P1=0x13;,,},,C51流程控制语句,方法二:用switch/case语句实现,,#include ,,void main(),,{,,char a;,,a=P1;,,a=a /*屏蔽高6位*/,,switch (a),,{,,case 3:P1=0x83;break;,,case 2:P1=0x43;break;,,case 1:P1=0x23;break;,,case 0:P1=0x13;,,},,},,C51流程控制语句,二、循环语句,,⒈ if语句和goto语句,,goto语句只能构成简单循环,与if语句一起可以实现当型和直到型循环。,,⑴ 构成当

6、型循环,,loop:if(表达式),,{语句,,goto loop;,,},,,⑵ 构成直到型循环,,loop:{语句,,if(表达式)goto loop;,,},,C51流程控制语句,⒉ while语句,,while语句的一般格式:,,while(表达式)语句,,,⒊ do-while语句,,do-while语句一般格式:,,do 语句 while (表达式);,,,⒋ for语句,,for语句的一般形式:,,for (表达式1;表达式2;表达式3)语句,先计算表达式的值,若其值为非0,则执行内嵌语句(循环),若其值为0,则退出while循环,。,先执行内嵌的语句, 若表达式的值为非0时,则

7、循环;当表达式的值为0时,则结束循环,执行do-while语句下面的语句。,,,举例:例按键的程序只能执行一遍,使用循环程序使其无穷循环下去。,,用goto语句实现,,,#include ,,void main(),,{,,char a;,,,loop:,,a=P1;,,a=a /*屏蔽高6位*/,,switch (a),,{,,case 3:P1=0x83;break;,,case 2:P1=0x43;break;,,case 1:P1=0x23;break;,,case 0:P1=0x13;,,},,,goto loop;,,},,用,while,语句实现,,,#include ,,voi

8、d main(),,{,,char a;,,,while (1),,{,,a=P1;,,a=a /*,屏蔽高,6,位*,/,,switch (a),,{,,,case 3,:,P1=0x83,;,break,;,,,case 2,:,P1=0x43,;,break,;,,,case 1,:,P1=0x23,;,break,;,,,case 0,:,P1=0x13,;,,,},,} },While中的条件恒为1,表示死循环。,,用,do-while,语句实现,,,#include ,,void main(),,{,,char a;,,,do,{,,a=P1;,,a=a /*,屏蔽高,6,位

9、*,/,,switch (a),,{,,,case 3,:,P1=0x83,;,break,;,,,case 2,:,P1=0x43,;,break,;,,,case 1,:,P1=0x23,;,break,;,,,case 0,:,P1=0x13,;,,,},,},while (1);,,},While中的条件恒为1,表示死循环。,,用,for,语句实现,,,#include ,,void main(),,{,,,,char a;,,,,for (,; ;,),,,,{,,,,a=P1;,,,,a=a /*,屏蔽高,6,位*,/,,,,switch (a),,,,{,,,,case 3,:

10、,P1=0x83,;,break,;,,,,case 2,:,P1=0x43,;,break,;,,,,case 1,:,P1=0x23,;,break,;,,,,case 0,:,P1=0x13,;,,,,},,,,} },for中的条件恒为真,表示死循环。,,C51构造数据类型,一、数组,,⒈ 一维数组,,⑴ 一维数组的定义,,,类型说明符 数组名[元素个数];,,如:int a[50];,,⑵ 一维数组的初始化,,int a[5]={1,2,3,4,5};/*给全部元素赋值*/,,int b[6]={1,2,6};/*给部分元素赋值*/,,int d[10];d[0]=4;d[1]=

11、-6;…… /*定义完后再赋值*/,,⒉ 二维数组,,⑴ 二维数组的定义,,类型说明符 数组名[行数] [列数];,,如:float a[3][4];,,⑵ 二维数组的初始化,,int a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};,,/*全部初始化*/,,int a[3][4]={{1,2,3,4},{5,6,7,8},{}};,,/*部分初始化,a[2][0]= a[2][1]= a[2][2]= a[2][3]= 0*/,,,C51还可以定义多维数组,也可以定义字符型数组。,,数组是十分有用的数据类型,用它可以形成容易查找的数据表格。,,C51函

12、数,一、,函数的定义与分类,,⒈ 函数的分类,,⑴ 标准库函数,,⑵ 用户自定义函数,,用户自定义函数是用户根据自己的需要而编写的函数。,,从函数定义的形式上划分:无参数函数、有参数函数和空函数。,,⒉ 函数的定义,,,返回值类型 函数名(形式参数列表),,{,,函数体,,},,例如:int max(int x,int y,int z),,返回值的数据类型为整型,函数名为max,x、y、z为3个整型入口参数。,,C51函数,二、C51的库函数,,C51编译器提供了丰富的库函数,使用这些库函数大大提高了编程效率,用户可以根据需要随时调用。每个库函数都在相应的头文件中给出了函数的原型,,使用时只

13、需在源程序的开头用编译预处理命令#include将相关的头文件包含进来即可。,,例如,要使用数学公式,只需要在程序开头使用#include 文件包含就可以了。要访问SFR和SFR的位,则只需要在程序开头使用#include 或#include 文件包含。,,C51应用编程实例,例: 外部中断0引脚(P3.2)接一个开关,P1.0接一个发光二极管。开关闭合一次,发光二极管改变一次状态。,,本例解决外部中断如何应用。,,要求:编程实现此功能。,,#include ,,sbit P10=P1^0;,,int i;,,void main(),,{EA=1;,,EX0=1;,,while(1);,,}

14、,,void int_srv( )interrupt 0 using 1,,{while(INT0==0),,{for(i=0,i<220;i++);,,while(INT0==0),,{P10=!P10;,,while(INT0==0);,,},,},,},,小 结,本章要求:,,掌握C51的数据类型、C51的数据存储类型、C51的存储模式、C51对SFR的定义、C51对位变量的定义,在这些方面与标准C语言有很大不同,至于其他规则与标准C语言是基本一致的;,,了解C51的库函数;,,学习时应特别强调C51如何操作基本I/O口,如何进行位操作和对特殊功能寄存器的操作,掌握C51下定时器/计数器的应用及中断的使用方法。,,

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

相关资源

更多
正为您匹配相似的精品文档
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!