您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 第5章C51程序设计基础(1)
第章C51程序设计基础本章内容SingleChipMicrocomputerC语言程序结构及特点C51数据与运算C语言流程控制语句C语言函数2例第一个程序Hello!/*example1ThefirstCProgram*/#includestdio.hmain(){printf(“Hello!”);}注释编译预处理主函数语句输出:Hello!3C51程序主函数函数1函数n预编译命令函数定义函数体5.1C51语言的基本结构及特点5.1.1C51程序的结构45.1C51语言的基本结构5.1.2C51程序的结构特点函数与主函数程序由一个或多个函数组成必须有且只能有一个主函数main()程序执行从main开始,在main中结束,其它函数通过嵌套调用得以执行。程序语句C程序由语句组成用“;”作为语句终止符注释/**/为注释,不能嵌套不产生编译代码例:/*Thisisthemain/*ofexample1.1*/*/非法5从用户角度标准函数(库函数):由C51编译器提供,用户可直接调用。用户自定义函数从函数形式无参函数有参函数使用库函数应注意:1、函数功能;2、函数参数的数目和次序;3、需要使用的包含文件。5.2.1函数分类5.2函数6一般格式合法标识符函数返回值类型缺省int型无返回值void函数体函数类型函数名(形式参数表){局部变量定义;函数体语句;}现代风格:例有参函数intmax(intx,inty){intz;z=xy?x:y;return(z);}5.2.2函数的定义7对被调用函数要求:必须是已存在的函数库函数:#include*.h用户自定义函数:先定义后使用5.2.3函数的调用8/*ex4.1控制8个发光二极管闪烁程序*/#includereg51.hvoiddelay(unsignedchari);voidmain(){while(1){P1=0x00;//将P1口的8位引脚置“0”输出,点亮8个LEDdelay(100);//延时P1=0xff;//将P1口的8位引脚置“1”输出,熄灭8个LEDdelay(100);//延时}}voiddelay(unsignedchari)//延时函数{unsignedcharj,k;for(k=0;ki;k++)for(j=0;j255;j++);}举例注释主函数函数体语句编译预处理函数声明函数定义函数调用95.3C51数据与运算内存以字节为单元组成每个字节有一个地址一个字节由8个二进制位组成每个二进位的值是0或101234567字节和位00H01H02H03H04H05H06H07H08H09H0AH0BH105.3C51数据与运算5.3.1数据类型基本数据类型总表C数据类型基本类型构造类型指针类型空类型void字符类型char枚举类型enum整型实型单精度型float双精度型double数组结构体struct共用体union短整型short长整型long整型int数据类型决定:1.数据占内存字节数2.数据取值范围11基本数据类型5.3.1数据类型名称数据类型所占位数数的表示范围有符号字符型(signed)char8-128~127无符号字符型unsignedchar80~255有符号整型(signed)int16-32768~32767无符号整型unsignedint160~65535有符号长整型(signed)long32-2147483648~+2147483647无符号长整型unsignedlong320~4294967295浮点型float323.4e-38~3.4e+38125.3.1数据类型扩展数据类型名称数据类型所占位数值域位类型bit10或1特殊功能寄存器sfr80~25516位特殊功能寄存器sfr16160~65535可寻址位sbit10或1bitflag1=0;sfrP1=0x90;sfr16T2=0xcc;sbitP1_0=P1^0;13标识符组成:只能由字母、数字、下划线组成,且第一个字母必须是字母或下划线大小写敏感不能使用关键字长度:最长32个字符命名原则:见名知意不宜混淆如l与I,o与0例:判断下列标识符号合法性sumSumM.D.JohndayDate3daysstudent_name#33lotus_1_2_3charab_above$123M.D.John3days#33char$123ab5.3.2常量与变量14一般用大写字母是宏定义预处理命令,不是C语句常量:整型常量请点击:字符常量请点击:字符串常量请点击:如#definePRICE30定义:程序运行时其值不能改变的量(即常数)分类:符号常量:用标识符代表常量定义格式:#define符号常量常量例符号常量举例(ch2_1.c)#definePRICE30main(){intnum,total;num=10;total=num*PRICE;printf(total=%d,total);}运行结果:total=300常量15三种形式:十进制整数:由数字0~9和正负号表示.如123,-456,0八进制整数:由数字0开头,后跟数字0~7表示.如0123,011十六进制整数:由0x开头,后跟0~9,a~f,A~F表示.如0x123,0xff整型常量(整常数)定义:用单引号括起来的单个普通字符.字符常量的值:该字符的ASCII码值如‘A’——65,‘a’——97,如‘a’‘A’‘?’字符常量16字符常量与字符串常量不同定义:用双引号(“”)括起来的字符序列存储:每个字符串尾自动加一个‘\0’作为字符串结束标志hello\0例字符串“hello”在内存中aa\0例‘a’“a”例空串“”\0例:charch;ch=“A”;例:charch;ch=‘A’;字符串常量17编译程序根据变量定义为其分配指定字节的内存单元…...地址inta=1,b=-3,c;abc2字节2字节2字节地址地址…...内存1-3随机数概念:其值可以改变的量变量定义的一般格式:数据类型变量1[,变量2,…,变量n];变量初始化:定义时赋初值例:inta,b,c;floatdata;决定分配字节数和数的表示范围合法标识符例:inta=2,b,c=4;floatdata=3.67;charch=‘A’;intx=1,y=1,z=1;intx=y=z=1;变量的使用:先定义,后使用例1intstudent;stadent=19;//Undefinedsymbol‘stadent’infunctionmain变量定义位置:一般放在函数开头main(){inta,b=2;floatdata;a=1;data=(a+b)*1.2;printf(“data=%f\n”,data);}变量定义可执行语句变量18C运算符算术运算符:(+-*/%++--)关系运算符:(====!=)逻辑运算符:(!&&||)位运算符:(~|^&)赋值运算符:(=及其扩展)条件运算符:(?:)逗号运算符:(,)指针运算符:(*&)下标运算符:([])函数调用运算符:()5.3.3运算符和表达式19作用:使变量值加1或减1种类:前置++i,--i(先执行i+1或i-1,再使用i值)后置i++,i--(先使用i值,再执行i+1或i-1)例j=3;k=++j;j=3;k=j++;a=3;b=5;c=(++a)*b;a=3;b=5;c=(a++)*b;//k=4,j=4//k=3,j=4//c=20,a=4//c=15,a=4自增、自减运算符++--1.算术运算符和表达式20简单赋值运算符符号:=格式:变量=表达式;作用:将一个数据(常量或表达式)赋给一个变量复合赋值运算符种类:+=-=*=/=%=a+=3a=a+3x*=y+8x=x*(y+8)2.赋值运算符和表达式21关系运算符种类:====!=关系表达式的值:是逻辑值“真”或“假”,用1和0表示例inta=3,b=2,c=1;ab(ab)==c//表达式值1//表达式值13.关系运算符和表达式例注意区分“=”与“==”inta=0,b=1;if(a==b)printf(“aequaltob”);elseprintf(“anotequaltob”);22ab!a!ba&&ba||b真假真假假假真真逻辑运算符种类:&&||!逻辑运算真值表C语言中,运算量:0表示“假”,非0表示“真”,运算结果:0表示“假”,1表示“真”,真假假假假假真真假假真真真假真真4.逻辑运算符和表达式235.位运算符与表达式表:位运算符运算符功能&按位与|按位或^按位异或~按位取反右移左移左移:低位补0,高位丢弃。unsignedchara=00000011B;a=a2;a=a4;//a=00001100B//a=11000000B无符号右移:高位补0,低位丢弃。unsignedchara=00110000B;a=a2;//a=00001100B有符号右移:符号位随同移动。chara=10110000B;a=a2;//a=11101100B24C51的基本语句顺序结构选择结构表达式语句循环语句复合语句for语句While语句Do-while语句Break/continue语句基本If语句if~else语句if~else~If语句Switch语句5.4C51流程控制语句
本文标题:第5章C51程序设计基础(1)
链接地址:https://www.777doc.com/doc-3830920 .html