c51程序设计语言选择结构有哪几种语句,补充C51程序设计基础

《补充C51程序设计基础》由会员分享,可在线阅读,更多相关《补充C51程序设计基础(29页珍藏版)》请在人人文库网上搜索。

1、1,C51程序设计基础,主要介绍了C51程序设计基础知识,包括C语言的数据类型、运算符、各种语句、数组与函数等知识,使大家具有单片机C语言程序设计的能力。,学习目的及要求:,2,*2.1 C51程序设计基础知识,*2.2 C51的函数与数组,3,*2.1 C51程序设计基础知识,2.1.1 C51特点,2.1.2 C51编程的例子,2.1.3 C51的标识符和保留字,2.1.4 C51的数据类型,2.1.5 C51的常量,2.1.6 变量,2.1.7 C51的常用运算符,2.1.8 C51的输入输出,2.1.9 C51的基本语句,4,2.1.1 C51特点,C51与ASM51相比,主要具有如下。

2、特点:,1)编程调试灵活方便 2)生成的代码编译效率高 3)完全模块化 4)可移植性好 5)便于项目维护管理,5,C51语言与ANSI C的对比,C51与标准C语言对比 相同之处: 语法规则、程序结构、编程方法 差异之处: 数据结构(数据类型、存储模式)、中断处理 本章教学内容: C51的数据结构 C51编程实践与Keil C使用方法,6,7,2.1.2 C51编程的例子,【例2-1】 编程使接在P1.0引脚上的LED闪烁。,8,预处理命令-,函数说明-,全局变量定义-,主函数-,调用函数-,局部变量定义-,程序体,程序体-,9,2.1.2 C51编程的例子,1. 编译预处理部分,程序的第一行。

3、是一个“文件包含”处理。程序中包含reg51.h文件的目的是为了要使用P1这个符号,即通知C51编译器,程序中所写的P1是指80C51单片机的P1端口而不是其他变量。 可根据不同的编程需要选择不同的头文件,一般情况下若只用简单控制,只需要下面3个头文件: #include /*寄存器说明头文件*/ #include /*输入/输出说明头文件*/ #include /*部分特殊指令说明头文件*/,10,2.1.2 C51编程的例子,在C语言里,如果直接写P1.0,C编译器并不能识别,而且P1.0也不是一个合法的C语言变量名,所以需给它另起一个名字,这里使用了Keil C的关键字sbit来定义。,。

4、2. 说明与定义部分,3. 函数,函数是C51程序的基本单位,一个C51程序至少有一个主函数main(),也可以由一个主函数main()和若干个其他函数构成。函数由函数说明部分和函数体两部分构成。,11,2.1.3 C51的标识符和保留字,标识符用于标识语句、数据类型、函数、变量、数组、存储方式等对象,也就是这些对象的名字。在C语言中,标识符严格区分大小写。在C51编译器中,支持标识符的前32位为有效标识,如果超长,则超长部分被舍弃。 注意:变量名只能由字母、数字、下划线组成,且只能由字母和下划线开头。变量不能是C语言的保留字(或称关键字),即不能使用C语言系统已经有固定含义的单词。,12,2。

5、.1.3 C51的标识符和保留字,表2-1 C语言32个保留字,表2-2 C51扩展13个保留字,13,2.1.4 C51的数据类型,数据在计算机内存中的存放情况由数据结构决定。C语言的数据结构是由数据类型决定的,C51的数据类型分为基本数据类型和组合数据类型,组合数据类型是由基本数据类型构造而成的。组合数据类型有数组类型、结构体类型、共同体类型、枚举类型、指针类型和空类型。,14,2.1.4 C51的数据类型,15,float浮点型:,float型数据的长度为4字节,格式符合IEEE754标准的单精度浮点型数据,包含指数和尾数两部分,最高位为符号位,“1”表示负数,“0”表示正数,其次的8位。

6、为阶码,最后的23位为尾数的有效数位,由于尾数的整数部分隐含为“1”,所以尾数的精度为24位。,2.1.4 C51的数据类型,16,2.1.4 C51的数据类型,* 指针型:,指针变量本身也是一个变量,在这个变量中存放的是指向另一个数据的地址。这个指针变量要占用一定的内存单元,对不同的处理器其长度不一样,在C51中它的长度一般为13个字节。,17,C51扩充数据类型:bit、sfr或sfr16、sbit,bit 型,关键词bit用于定义一个位变量,语法规则:,bit bit_name = 0或1;,例如:bit door = 0 ; /定义一个叫door的位变量且初值为0,注意:上述变量的物理。

7、地址是由编译器分配的,18,sfr或sfr16型,关键词sfr或sfr16用于定义SFR字节地址变量,语法规则: sfr 或 sfr16 sfr_name = 字节地址常数;,51MCU中有21个SFR,如何定义与这些单元相关的变量?,19,例如,sfr P0 = 0 x80; /定义P0口地址80H sfr PCON = 0 x87; /定义PCON地址87H sfr16 DPTR=0 x82; /定义DPTR的低端地址82H,注意:SFR字节地址变量的物理地址是由MCU资源决定的,20,sbit型,部分SFR具有位地址,如何定义与这些位地址相关的变量?,两种位地址表达形式:绝对位地址、相对。

8、位地址,21,1)将SFR的绝对位地址定义为位变量名 sbit bit_name = 位地址常数; 例如, sbit CY = 0 xD7;,3)将SFR的相对位位置定义位变量名 sbit bit_name = sfr_name 位位置; 例如, sbit CY = PSW7;,2)将SFR的相对位地址定义为位变量名 sbit bit_name = sfr字节地址 位位置; 例如, sbit CY = 0 xD07;,关键词sbit用于定义SFR位地址变量,三种定义形式:,采用这种方式定义的位地址或字节地址必须在80HFFH之间。,22,C51编译器在头文件“REG51.H”中定义了全部sfr。

9、/sfr16和sbit变量。,用一条预处理命令#include 把这个头文件包含到C51程序中,无需重新定义即可直接使用它们的名称。,23,应用举例:,24,2.1.4 C51的数据类型,以上所述的数据类型中只有bit与unsigned char两种数据类型可以直接转换成机器指令。所以C语言中使用的其他数据类型,虽然语句上很简单,但都要C51编译器用一系列机器指令处理这些数据类型。特别是对浮点数,处理起来更加复杂,将明显增加程序的长度与执行时间。因此应该避免使用复杂的数据类型。在编制C51程序时,应该尽可能使用无符号字符变量和位变量。,25,2.1.5 C51的常量,常量是指在程序执行过程中其。

10、值不能改变的量。在C51中支持整型常量、浮点型常量、字符型常量和字符串型常量。,整型常量也就是整型常数,根据其值范围在计算机中分配不同的字节数来存放。在C51中它可以表示成以下几种形式: (1) 十进制数。如123、-45、0等。 (2) 十六进制数。以0 x开头表示,如0 x12、-0 x3B等。,1整型常量,26,2浮点型常量,浮点型常量也就是实型常数。有十进制表示形式和指数表示形式。 十进制表示形式又称定点表示形式,由数字和小数点组成,如3.14159、0.36。 指数表示又称科学记数法,常用于表示较大、较小的实型常量,指数形式为: 数字 .数字 e 整数 如:6.021023,可表示成。

11、6.02e+23或6.02e23。 -1.610-19,可表示成:-1.6e-19。,27,字符型常量是用单引号括起的字符,如2、A、n等。可以是可显示的ASCII字符,也可以是不可显示的控制字符。,3字符型常量,28,4字符串型常量,字符串型常量由一对双引号括起来的零个或多个字符组成,双引号仅起定界作用,本身并不是字符串中的内容。如“0123”、“Hello!”、“I am a student. ”、“”等。 注意:字符串常量与字符常量是不一样的,一个字符常量在计算机内只用一个字节存放,而一个字符串常量在内存中存放时不仅双引号内的每个字符占一个字节,而且系统会自动的在后面加一个转义字符“0”作为字符串结束符。“0”代表空操作字符,它不引起任何操作,也不会显示到屏幕上。 如字符串student在内存中的存储形式如下:,29,5. 符号常量,#define False 0 x0; /用预定义语句可以定义常量 #define True 0 x1; /这里定义False为0,True为1 /在程序中用到False编译时自动用0替换,同理True替换为1 #define PI 3.1415926;,C51允许将程序中的常量定义为一个标示符,称为符号常量。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值