- 1、本文档共14页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
单片机C语言学习总结.doc
C程序结构
#include “reg51.h”
声明语句
main( ) 只有一个,执行从main开始
{
程序内容 (语句是以 ; 结束)
}
2、数据定义
int a,b=0; float x=2.6; char A ;
定义是要考虑变量的大小及类型,一般单片机定义基本型就可以,也没必要注意是否溢出,一般都不会超过其范围了。
单片机有自己的数据类型,所以它有特有的定义类型
bit flag=0;……………………内部RAM位寻址区
sfr16 DPTR=0x82;…………特殊功能寄存器(只有一个)
code int x=10;………………存储于程序存储器(只能读,不能写)
unsigned int data i[10];………………前128字节内部存储器 (idata是全部256字节)
unsigned char pdata cl;………………外部存储器 (xdata是64KB RAM)
注意:在定义时一定注意变量存放地址,及软件工程设置,可通过调试看存放情况
3、运算符与表达式
注意:作用和级别高低关系(排列从高到低)
!(非)
算术运算符(+ - * / %)
关系运算符
||
=
4、选择结构语句
if语句:
main( )
{int a,b,c,max,min;
printf(input three numbers: );
scanf(%d%d%d,a,b,c);
if(ab)
{max=a;min=b;}
else
{max=b;min=a;}
if(maxc)
max=c;
else
if(minc)
min=c;
printf(max=%d\nmin=%d,max,min);
}
Switch语句:
main()
{float a,b;char c;
printf(input expression:a+(-,*,/)b \n);
scanf(%f%c%f,a,c,b);
switch(c)
{ case +: printf(%f\n,a+b);break;
case-: printf(%f\n,a-b);break;
case*: printf(%f\n,a*b);break;
case/: printf(%f\n,a/b);break;
default: printf(input error\n);
}
}
5、循环语句
Goto语句
main()
{int i,sum=0;
i=1;
loop:if(i=100)
{sum=sum+i;
i++;
goto loop;}
printf(%d\n,sum);
}
While语句
main()
{int i,sum=0;
i=1;
while(i=100)
{sum=sum+i;
i++;}
printf(%d\n,sum);
}
Do-while语句
main()
{int i,sum=0;
i=1;
do
{sum=sum+i;
i++;}
while(i=100)
printf(%d\n,sum);}
Break语句
main()
{int i=0;
char c;
while(1) /*设置循环*/
{c=\0; /*变量赋初值*/
while(c!=13c!=27) /*键盘接收字符直到按回车或Esc键*/
{c=getch();
printf(%c\n, c);}
if(c==27)
break; /*判断若按Esc键则退出循环*/
i++;
printf(The No. is %d\n, i);
}
printf(The end);
}
Continue语句
main()
{char c;
while(c!=13) /*不是回车符则循环*/
{ c=getchar( );
if(c==0X1B)
continue; /*若按Esc键不输出便进行下次循环*/
printf(%c\n, c);
}
}
结合单片机实例分析程序:
C语言源程序#include AT89X51.Hunsigned char i;unsigned char temp;unsigned char a,b;void delay(void){unsigned char m,n,s;for
文档评论(0)