版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1 C51程序流程与控制C语言是一种结构化的编程语言。其基本元素是模块,它是程序的一部分,只有一个 入口和一个出口,不允许有中途插入或从模块的其它路径退出。C语言有3种基本结构:1.1顺序结构; 选择结构; 循环结构; 顺序结构程序1.2选择结构程序顺序结构的程序是最简单、最基本的程序结构,其特点是按指令 的排列顺序一条条地执行,如图所示,程序先执行 A操作,再执行B 操作,两者是顺序执行的关系。此结构中必包含一个判断框,根据给定的条件 P是 否成立而选择执行A框或B框。选择结构由条件语句构 成。条件语句条件语句又被称为分支语句,其关键字是由if语句 或 switch/case 构成。C语言提
2、供了 3种形式的if语句结构:用法1:if (条件表达式)语句描述:当条件表达式的结果为真时,就执行语句,否则就跳过。例:if(a>=3)b=0;用法2:if (条件表达式)语句1else语句2描述:当条件表达式成立时,就执行语句1,否则就执行语句2。例:if (a=b)a+;elsea_;当a等于b时,a加1,否则a-1。用法 3:if (条件表达式 1)语句 1;else if (条件表达式 2)语句 2;else if (条件表达式 3)语句 3;else if (条件表达式 n)语句 n ;else语句 m ;描述:如果表达式 1为“真”,则执行语句 1,退出 if 语句;否则去
3、判断表达式 2, 如果为“真”,则执行语句2,退出if语句;否则去判断表达式3 最后,如果表达式n 也不成立,则执行else后面的语句m。else和语句m也可省略不用。例:if (a>=3)b=10;else if (a>=2)b=20;else if (a>=1)b=30;elseb=0;switch/ case 语句结构我们学习了条件语句,用多个条件语句可以实现多方向条件分支,但是可以发现 使用过多的条件语句实现多方向分支会使条件语句嵌套过多,程序冗长,这样读起来也很 不好读。这时使用开关语句同样可以达到处理多分支选择的目的, 又可以使程序结构清晰。 它的语法为下:swi
4、tch (表达式)语句 1; break ; 语句 2; break ; 语句 3; break ; 语句 n; break ;case 常量表达式 1case 常量表达式 2case 常量表达式 3 case 常量表达式 n default: 语句 m描述:运行中switch后面的表达式的值将会做为条件,与case后面的各个常量表达式的值相对比,如果相等时则执行后面的语句, 再执行break (间断语句)语句,跳出switch 语句。如果case没有和条件相等的值时就执行 default后的语句。当要求没有符合的条件 时不做任何处理,则可以不写 default 语句。1.3循环结构程序循环程
5、序的作用就是用来实现需要反复执行某一部分程序行的操作,有如下两类循环 结构。在这种结构中,当判断条件 P成立时,执行循 环体A部分。执行完毕回来再一次判断条件 P。如 果条件成立则继续循环A,否则退出循环。通常用 while循环语句来实现,其形式如下:While (表达式)循环语句;描述:当表达式为非0“真”)时,执行while 中的内嵌循环语句。在这种结构中,先执行循环A部分,然后判断条件P 成立时,执行循环体 A部分。执行完毕回来再一次判断 条件P。如果条件成立则继续循环 A,否则退出循环。通 常用do-while循环语句来实现,其形式如下:do循环语句;while (表达式)描述:先执行
6、do-while中的内嵌循环语句,再判断表 达式表达式为非0 (“真”)时,继续执行内嵌循环语句。for循环语句for语句的一般形式为:for (表达式1;表达式2;表达式3)循环语句;描述:先求解表达式1 ; 求解表达式2,其值为“真”时,则执行for语句中的循环语句,然后执行 第步,如果表达式2,其值为“假”时,则结束循环,转到第步。 求解表达3; 转回第步继续执行; 退出for循环。关键字用途说明auto存储种类说明用以说明局部变量,缺省值为此break程序语句退出最内层循环case程序语句Switch语句中的选择项char数据类型说明单字节整型数或字符型数据const存储类型说明在程序
7、执行过程中不可更改的常量值con ti nue程序语句转向下一次循环default程序语句Switch语句中的失败选择项do程序语句构成do.while 循环结构double数据类型说明双精度浮点数else程序语句构成if.else选择结构enum数据类型说明枚举exter n存储种类说明在其他程序模块中说明了的全局变量flost数据类型说明单精度浮点数for程序语句构成for循环结构goto程序语句构成goto转移结构if程序语句构成if.else选择结构int数据类型说明基本整型数long数据类型说明长整型数register存储种类说明使用CPU内部寄存的变量return程序语句函数返回s
8、hort数据类型说明短整型数sig ned数据类型说明有符号数,二进制数据的最高位为符号位sizeof运算符计算表达式或数据类型的字节数static存储种类说明静态变量struct数据类型说明结构类型数据swicth程序语句构成switch选择结构typedef数据类型说明重新进仃数据类型疋义union数据类型说明联合类型数据un sig ned数据类型说明无符号数数据void数据类型说明无类型数据volatile数据类型说明该变量在程序执行中可被隐含地改变while程序语句构成while和do.while循环结构表1-2存储器类型存储器类型说明data直接访问内部数据存储器(128字节),访
9、问速度最快bdata可位寻址内部数据存储器(16字节),允许位与字节混合访问idata间接访问内部数据存储器(256字节),允许访问全部内部地址pdata分页访问外部数据存储器(256字节),用MOVX 吱旨令访问xdata外部数据存储器(64KB),用MOVX DPT指令访问code程序存储器(64KB ,用MOVC A+DP指令访问表1-3 C51编译器的扩展关键字关键字用途说明bit位标量声明声明一个位标量或位类型的函数sbit位标量声明声明一个可位寻址变量Sfr特殊功能寄存器声明声明一个特殊功能寄存器Sfr16特殊功能寄存器声明声明一个16位的特殊功能寄存器data存储器类型说明直接寻
10、址的内部数据存储器bdata存储器类型说明可位寻址的内部数据存储器idata存储器类型说明间接寻址的内部数据存储器pdata存储器类型说明分页寻址的外部数据存储器xdata存储器类型说明外部数据存储器code存储器类型说明程序存储器in terrupt中断函数说明定义一个中断函数ree ntrant再入函数说明定义一个再入函数using寄存器组定义定义芯片的工作寄存器表1-4常用转义字符表转义字符含义ASCII 码(16/10 进制)o空字符(NULL)00H/0n换行符(LF)0AH/10r回车符(CR)0DH/13t水平制表符(HT)09H/9b退格符(BS)08H/8f换页符(FF)0C
11、H/12'单引号27H/39"双引号22H/34反斜杠5CH/92表1-5 KEIL uVision2 C51编译器所支持的数据类型数据类型长度值域un sig ned char单字节0255sig ned char单字节-128 +127un sig ned int双字节0 65535sig ned int双字节-32768+32767un sig ned long四字节0 4294967295sig ned long四字节-2147483648+2147483647float四字节± 1.175494E-38 土 3.402823E+38:*13字节:对象的地址
12、bit位0或1sfr单字节0 255sfr16双字节0 65535sbit位0或1表1-6运算符优先级和结合性级别类另S名称运算符结合性1强制转换、数组、结构、联合强制类型转换()右结合下标存取结构或联合成员->或2增量加一+左结合减量减一-指针取地址&取内容*算术单目减-长度计算长度计算sizeof3算术乘*右结合除/取模%4算术和指针运算加+减-5字位左移<<右移>>6关系大于等于>=大于>小于等于<=小于<恒等于=不等于!=7字位按位与&8按位异或A9按位或|10按位取反11逻辑逻辑与&&左结合12逻辑或II13逻辑非!14条件条件运算?:15赋值赋值=复合赋值Op=16逗号逗号运算J右结合(适用于同一架构的芯片)序号符号地址注释1 :*ACCE0H累加器2*BF0H乘法寄存器3*PSWDOH程序状态字4 :SP81H堆栈指针5DPL82H数据存储器指针低8位6DPH83H数据存储器指针咼8位7 :*IEA8H中断允许控制器8 :*IPD8H中断优先控制器9*P080H端口 010*P1
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 护理团队建设中的团队协作障碍
- 护理护理临床实习教学课件及教案制作
- 护理纠纷预防的员工赋能策略
- 护理实践中的护理科研项目管理
- 2006年7月国开电大行政管理本科《城市管理学》期末纸质考试试题及答案
- 护理教师竞赛教学方法
- 护理教师专业发展
- 医护合作护理说课比赛课件
- 基于循环经济的可充电电池生产技术研究
- 客户服务人员的职业发展路径规划
- 物业扭亏为盈工作汇报
- 2025广东中考短文填空公开课
- 《AutoCAD 2025中文版实例教程(微课版)》全套教学课件
- 化工设备的安全评估
- 21杨氏之子 课件
- 4.2依法履行义务 课 件 2024-2025学年统编版道德与法治八年级下册
- 2025年中山中考物理试题及答案
- 2024年贵州省普通高中学业水平选择性考试地理试题(原卷版+解析版)
- 办公室安全知识培训
- 《GNSS定位测量》考试复习题库(含答案)
- 塑料搅拌机安全操作规程
评论
0/150
提交评论