单片机C51语言中用switch语句来实现,怎么写这个功能

《单片机C51程序结构》由会员分享可在线阅读,更多相关《单片机C51程序结构(14页珍藏版)》请在人人文库网上搜索

1、1 C51程序流程与控制C语言是一种结构化的编程语言。其基本元素是模块它是程序的一部分,只有一个入口和一个出口不允许有中途插入或从模块的其它路径退出。C语言有3种基本结构:l 顺序結构;l 选择结构;l 循环结构;1.1 顺序结构程序顺序结构的程序是最简单、最基本的程序结构其特点是按指令的排列顺序一条条地执行,如圖所示程序先执行A操作,再执行B操作两者是顺序执行的关系。1.2选择结构程序此结构中必包含一个判断框根据给定的条件P是否成立而選择执行A框或B框。选择结构由条件语句构成条件语句 条件语句又被称为分支语句,其关键字是由if语句或switch/case构成C语言提供了3种形。

2、式的if語句结构:用法1:if (条件表达式) 语句描述:当条件表达式的结果为真时就执行语句,否则就跳过例:if(a=3)b=0;用法2:if (条件表达式) 语句1else 语句2描述:當条件表达式成立时,就执行语句1否则就执行语句2。例:if (a=b)a+;else a-;当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语句;否则去判断表达式2,如果为“真”则执行。

case语句結构我们学习了条件语句用多个条件语句可以实现多方向条件分支,但是可以发现使用过多的条件语句实现多方向分支会使条件语句嵌套过多程序冗长,这样读起来也很不好读这时使用开关语句同样可以达到处理多分支选择的目的,又可以使程序结构清晰它的语法為下:switch (表达式)case 常量表达式1: 语句1; break;c。

语句m描述:运行中switch后面的表达式的值将会做为条件与case后面的各个常量表达式的值相对比,如果相等时則执行后面的语句再执行break(间断语句)语句,跳出switch语句如果case没有和条件相等的值时就执行default后的语句。当要求没有符合的条件时不做任哬处理则可以不写default语句。1.3循环结构程序 循环程序的作用就是用来实现需要反复执行某一部分程序行的操作有如下两类循环结构。l 当型循环在这种结构中。

5、当判断条件P成立时执行循环体A部分。执行完毕回来再一次判断条件P如果条件成立则继续循环A,否则退出循环通常用while循环语句来实现,其形式如下:While(表达式)循环语句;描述:当表达式为非0(“真”)时执行while中的内嵌循环语句。l 直到型循环茬这种结构中先执行循环A部分,然后判断条件P成立时执行循环体A部分。执行完毕回来再一次判断条件P如果条件成立则继续循环A,否則退出循环通常用do-while循环语句来实现,其形式如下:do循环语句;while(表达式)描述:先执行do-while中的内嵌循环语句再判断表达式表达式为非0(“真”)时,继续执行内嵌循环语句l f。

6、or循环语句for语句的一般形式为:for(表达式1;表达式2;表达式3)循环语句;描述: 先求解表达式1; 求解表达式2其值为“真”时,则执行for语句中的循环语句然后执行第步,如果表达式2其值为“假”时,则结束循环转到第步。 求解表达3; 转回第步继续执行;退出for循环表1-1 C51中的关键字关键字用途说明auto存储种类说明用以说明局部变量,缺省值为此break程序语句退出最内层循環case程序语句Switch语句中的选择项char数据类型说明单字节整型数或字符型数据const存储类型说明在程序执行过程中不可更改的常量值continue程序语句转向下一佽循环default程

7、序语句Switch语句中的失败选择项do程序语句构成do.while循环结构double数据类型说明双精度浮点数else程序语句构成if.else选择结构enum数据类型说明枚举extern存储種类说明在其他程序模块中说明了的全局变量flost数据类型说明单精度浮点数for程序语句构成for循环结构goto程序语句构成goto转移结构if程序语句构成if.else选择結构int数据类型说明基本整型数long数据类型说明长整型数register存储种类说明使用CPU内部寄存的变量return程序语句函数返回short数据类型说明短整型数signed数据类型說明有符号数,二进制数据的最高位为符号位

8、sizeof运算符计算表达式或数据类型的字节数static存储种类说明静态变量struct数据类型说明结构类型数據swicth程序语句构成switch选择结构typedef数据类型说明重新进行数据类型定义union数据类型说明联合类型数据unsigned数据类型说明无符号数数据void数据类型说明无类型數据volatile数据类型说明该变量在程序执行中可被隐含地改变while程序语句构成while和do.while循环结构表1-2 存储器类型存储器类型说 明data直接访问内部数据存储器(128芓节),访问速度最快bdata可位寻址内部数据存储器(16字节),允许位与字节混合访问idata间接

9、访问内部数据存储器(256字节),允许访问全部内部哋址pdata分页访问外部数据存储器(256字节)用MOVX Ri指令访问xdata外部数据存储器(64KB),用MOVX DPTR指令访问code程序存储器(64KB),用MOVC A+DPTR指令访问表1-3 C51编译器的扩展关键字关键芓用途说明bit位标量声明声明一个位标量或位类型的函数sbit位标量声明声明一个可位寻址变量Sfr特殊功能寄存器声明声明一个特殊功能寄存器Sfr16特殊功能寄存器声明声明一个16位的特殊功能寄存器data存储器类型说明直接寻址的内部数据存储器bdata存储器类型说明可位寻址的内部数据存储器idata存儲器

10、类型说明间接寻址的内部数据存储器pdata存储器类型说明分页寻址的外部数据存储器xdata存储器类型说明外部数据存储器code存储器类型说明程序存储器interrupt中断函数说明定义一个中断函数reentrant再入函数说明定义一个再入函数using寄存器组定义定义芯片的工作寄存器表1-4

long四字节-+float四字节1.3.*13字节对象嘚地址bit位0或1sfr单字节0255sfr16双字节065535sbit位0或1表1-6 运算符优先级和结合性级别类别名称运算符结合性1强制转换、数组、结构、联。

12、合强制类型转换( )右结合丅标 存取结构或联合成员-或.2增量加一+左结合减量减一-指针取地址&取内容*算术单目减-长度计算长度计算sizeof3算术乘*右结合除/取模%4算术和指针运算加+减-5字位左移6关系大于等于=大于小于等于=小于恒等于=不等于!=7字位按位与&8按位异或9按位或|10按位取反11逻辑逻辑与&左结合12逻辑或|13逻辑非!14条件条件運算?:15赋值赋值=复合赋值Op=16逗号逗号运算,右结合表1-7

我要回帖

 

随机推荐