与标准c语言比较,c51特有的数据类型有哪些?,第五章单片机C语言程序设计概述.ppt...

第五章单片机C语言程序设计概述

§5.1 C语言与Keil C51§5.2 Keil C51数据类型§5.3 Keil C51的运算量§5.4 Keil C51指针§5.5 Keil C51函数§5.6 8051单片机C51框架;5.1 C语言与Keil C51;5.1 C语言与Keil C51;在main()函数中调用其它函数, 其它函数也可以相互调用。在编制C程序时,程序的开始部分 一般是预处理命令、函数说明和变 量定义等。 ;C语言程序结构一般如下:;;函数由“函数定义”和“函数体”两个部分组成。 C语言程序在书写时格式十分自由。 C语言程序对大小写字母比较敏感,在程序中, 同一个字母的大小写系统是作不同的处理。 C语言本身没有输入输出语句。通过输入输出函数scanf()和printf()来实现的。;二、C语言与MCS-51单片机;C51与C语言的区别:

C51语言编程时,需根据单片机存储结构及内部资源定义相应的数据类型和变量,而标准的C语言程序不需要考虑这些问题。;C51包含的数据类型、变量存储模式、输入输出处理、函数等方面与标准的C语言有一定的区别。其它的语法规则、程序结构及程序设计方法等与标准的C语言程序设计相同。;支持51系列单片机的C语言编译器:;C51定义的库函数和标准C语言定义的库函数不同。C51中的数据类型与标准C的数据类型也有的区别,在C51中还增加了几种针对51单片机特有的数据类型;C51变量的存储模式与标准C中变量的存储模式不一样,C51中变量的存储模式是与MCS-51单片机的存储器紧密相关;;;5.2 Keil C51的数据类型;signed char 最高位为符号位,“0”表示正数,“1”表示负数。补码表示,所能表示的数值范围是-128~+127。unsigned char 它用于定义无符号字节数据或字符,可以存放一个字节的无符号数,其取值范围为0~255。默认为signed char。二者长度占用一个字节,用于存放一个单字节的数据。;singed int:用于存放两字节带符号数,补码表示,数的范畴为-32768~+32767unsigned int:用于存放两字节无符号数,数的范围为0~65535。默认为signed int。它们的长度均为两个字节,用于存放一个双字节数据。。;singed long:用于存放四字节带带符号数, 补 码表示,数的范围为: 147483648~+2147483647。unsigned long:用于存放四字节无符号数, 数的范围为 0~4294967295。它们的长度均为四个字节,用于存放一个四字节数据。;四、float浮点型;五、* 指针型;六、特殊功能寄存器型;;这也是C51中扩充的数据类型,用于访问MCS-51单片机中的可寻址的位单元。在C51中,支持两种位类型:bit型和sbit型。其中用bit定义的位变量在C51编译器编译时,在不同的时候位地址是可以变化的。而用sbit定义的位变量必须与MCS-51单片机的一个可以寻址位单元或可位寻址的字节单元中的某一位联系在一起,在C51编译器编译时,其对应的位地址是不可变化的。;七、位类型;;基本数据类型;数据类型间的转换:;;5.3 Keil C51的运算量;一、常量;1、整型常量;;2、浮点型常量;;3、字符型常量;转义字符;4、字符串型常量;二、 变量;1、数据类型说明符;;【例】 typedef的使用。;2、变量名;3、存储种类;auto :;extern:;static:;register:;4、存储器类型;;【例】变量定义存储种类和存储器类型相关情况;;5、特殊功能寄存器变量;;【例】特殊功能寄存器的定义。;6、位变量;;【例】 bit型变量的定义。;;;【例】sbit型变量的定义。;继续上例:;说明:;三、变量的存储模式;;;【例】变量的存储模式。;;四、 绝对地址的访问;;;;【例4-7】绝对地址对存储单元的访问;继续上例:;;二.通过指针访问;【例】 通过指针实现绝对地址的访问。;;继续上例:;三.使用C51扩展关键字_at_;;【例】通过_at_实现绝对地址的访问。;5.4 Keil C51指针 ;;;5.5 Keil C51函数;一、reentrant修饰符;关于重入函数,注意以下几点:;二、中断函数的声明(interrupt m); 在该修饰符中,m的取值为0~31,对应的中断情况如下:;编写MCS-51中断函数注意如下:;;;;【例】编写一个用于统计外中断0的中断次数的中断服务程序。;三、指定工作

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值