《单片机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,如果为“真”,则执行。

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

4、ase 常量表达式2: 语句2; break;case 常量表达式3: 语句3; break;case 常量表达式n: 语句n; break;default: 语句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 常用转义字符表转义字符含义ASCII码(16/10进制)o空字符(NULL)00H/0n换行符(LF)0AH/10r回车符(CR)0DH/13t水平制表符(HT)09H/9b退格符(BS)08H/8f换页符(FF)0CH/12单引号27H/39双引号22H/34反斜杠5CH/92表1-5 KEIL uVi。

11、sion2 C51编译器所支持的数据类型数据类型长度值域unsigned char单字节0255signed char单字节-128+127unsigned int双字节065535signed int双字节-32768+32767unsigned long四字节04294967295signed long四字节-2147483648+2147483647float四字节1.175494E-383.402823E+38*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 AT89C51特殊功能寄存器列表(适用于同一架构的芯片)序号符号地址注释1*ACCE0H累加器2*BF0H乘法寄存器3*PSWD0H程序状态字4SP81H堆栈指针5DPL82H数据存储器指针低8位6DPH83H数据存储器指针高8位7*IEA8H中断允许控制器8*IPD8H中断优先控制器9*P080H端口010*P190H端口111*P2A0H端口212*P3B0H端口313PCON87H电源控制及波特率选择14*SCON98H串行口控制器15SBUF99H串行数据缓冲器16*TCON88H定时器控制17TMOD89H定时器方式选择18TL08AH定时器0低8位19TL18BH定时器1低8位20TH08CH定时器0低8位21TH18DH定时器1高8位带*号的特殊功能寄存器都是可以位寻址的寄存器 13。

简述单片机c51语言程序结构,单片机C51程序结构相关推荐

  1. 51单片机c语言定义寄存器r,c51特殊功能寄存器定义及作用

    单片机C51语言是由C语言继承而来的.和C语言不同的是,C51语言运行于单片机平台,而C语言则运行于普通的桌面平台.C51语言具有C语言结构清晰的优点,便于学习,同时具有汇编语言的硬件操作能力.对于具 ...

  2. 51单片机蜂鸣器演奏《小苹果》C语言程序,51单片机C语言蜂鸣器发声生日快乐播放程序...

    <51单片机C语言蜂鸣器发声生日快乐播放程序>由会员分享,可在线阅读,更多相关<51单片机C语言蜂鸣器发声生日快乐播放程序(4页珍藏版)>请在人人文库网上搜索. 1.按键发音/ ...

  3. led的c语言程序,单片机C语言LED灯点亮程序完全版

    <单片机C语言LED灯点亮程序完全版>由会员分享,可在线阅读,更多相关<单片机C语言LED灯点亮程序完全版(7页珍藏版)>请在人人文库网上搜索. 1.1例子1第二个灯亮#inc ...

  4. 单片机c语言设计数据,单片机C语言设计.doc

    单片机C语言设计 第5章 单片机C语言程序设计 C-51的特点 C语言作为一种非常方便的语言而得到广泛的支持,很多硬件开发都用C语言编程,如:各种单片机.DSP.ARM等. C语言程序本身不依赖于机器 ...

  5. 单片机c语言编程下载,单片机C语言编程.doc

    单片机C语言编程.doc 单片机C语言编程指令格式 功能简述 字节数 周期 一.数据传送类指令 MOV A, Rn 寄存器送累加器 1 1 MOV Rn,A 累加器送寄存器 1 1 MOV A ,Ri ...

  6. 单片机c51语言定义bool类型,C51单片机数据类型的具体定义及应用

    描述 先来简单说说C语言的标识符和关键字.标识符是用来标识源程序中某个对象的名字的,这些对象可以是语句.数据类型.函数.变量.数组等等.C语言是大小字敏感的一种高级语言,如果我们要定义一个定时器1,可 ...

  7. 单片机c语言常用指令,单片机C语言(C51)的常用库函数.doc

    C51的常用库函数详解 C51语言的编译器中包含有丰富的库函数,使用库函数可以大大简化用户程序设计的工作量,提高编程效率.每个库函数都在相应的头文件中给出了函数原型声明,在使用时,必须在源程序的开始处 ...

  8. 51单片机c语言编程函数,单片机C语言教程:C51函数

    其实一直出现在例子中的 main()也算是一个函数,只不过它比较特殊,编译时以它做为程序的开始段.有了函数C 语言就有了模块化的优点,一般功能较多的程序,会在编写程序时把每项单独的功能分成数个子程序模 ...

  9. 51单片机c语言除法符号,单片机c语言教程:C51运算符和表达式

    上两课说了常量和变量,先来补充一个用以重新定义数据类型的的语句吧.这个语句就是 typedef,这是个很好用的语句,但我却不常用它,通常我定义变量的数据类型时都是使 用标准的关键字,这样别人能很方便的 ...

  10. c语言单片机常用函数,C51单片机C语言函数编辑 -单片机-电子工程世界网

    其实一直出现在例子中的 main()也算是一个函数,只不过它比较特殊,编译时以它做为程序的开始段.有了函数C 语言就有了模块化的优点,一般功能较多的程序,会在编写程序时把每项单独的功能分成数个子程序模 ...

最新文章

  1. [Head First设计模式]生活中学设计模式——迭代器模式
  2. Android中的windowSoftInputMode属性详解
  3. ARM版本的IAR下载和安装
  4. java 类方法应用题,java方法使用
  5. 广州种植牙需要多少钱
  6. 微信小程序遍历wx:for,wx:for-item,wx:key
  7. 【2016年第6期】21世纪天文学面临的大数据和研究范式转型
  8. 58 - II. 左旋转字符串
  9. 流量中转的服务器,你的服务器能承受多大流量
  10. Teamcenter 2007之错误信息提示
  11. 职工工作量c语言调试分析,c语言职工工作量统计
  12. 【论文解读】如何在只有词典的情况下提升NER落地效果
  13. 锐捷linux网卡,CentOS 7安装MentoHUSTt锐捷认证程序
  14. MongoDB分片存储集群支撑海量数据
  15. Word文件批量查找替换字符串
  16. 华为台式机擎云W515 PGUV-WBY0安装银河麒麟V10
  17. Android——Hander+Service,实现后台长期周期性定时任务
  18. 计算机主机usb插口松,usb插口(电脑usb接口松动小妙招)
  19. python统计文件中每个单词出现的次数_python统计文本中每个单词出现的次数
  20. 并发模拟的四种方式+工具,超级实用!

热门文章

  1. Win11运行cmd提示“请求的操作需要提升”的解决方法
  2. 随笔:电动车百人会信息的回顾
  3. 远程桌面工具TeamViewer模块介绍——计算机 联系人选项卡
  4. ITIL4 讲解: IT服务连续性管理(灾备)
  5. python输入一个假分数_假分数化成整数或带分数练习
  6. word-多标签工具Office Tab(自用+带下载地址)
  7. 小马哥-----高仿苹果7 主板型号J01DS-v1.1--6735芯片全网通真2G运存刷机拆机主板图与开机界面图
  8. linux所有者和所属组的含义,Linux文件权限(所有者,所属组)及含义详解
  9. pycharm单步调试
  10. latex如何输入正确的 双引号