版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、单片微型计算机教育(习语言教程)第4课的数据类型首先,让我简单谈谈习语言的标识符和牛鼻子词。 标识符用于标识源计程仪列中对象的名称,包括语句、数据类型、函数、变量、数组等。 习语言是对大小敏感的高级语言,在定义定时器1时可以写为“Timer1”,在计程仪节目中有“Timer1”时,这两个是完全不同的定义的标识符。 标识符由字符串、数字、下划线等构成。 请注意,第一个字母必须是字母或下划线。 例如,如果“1Timer”错误,则在编译时会显示错误消息。 有些特定于编译系统的标识符以下划线开头,因此一般不要命名以下划线开头的标识符。 标识符命名时要简单,意思要明确。 这个有助于理解计划计程仪。 在C
2、51编译程序中,只通讯端口标识符的上级32位色是有效的标识符,一般来说,天书:不是写p就是一盏茶。牛鼻子词是软件编程语言保存的特殊标识符,具有固定的名称和意义,在计划编制中不允许标识符和重要资产相同。 KEIL uVision2的牛鼻子字除了根据ANSI C标准的32个牛鼻子字之外,还根据51个单片微型计算机的特征扩展了牛鼻子字。 实际上,在KEIL uVision2的文本编辑器中创建c plum时,保留关键字以不同的颜色显示,而默认奥尔特的颜色是天蓝色。 (标准和扩展牛鼻子见附录1的附表1-1和附表1-2 )首先,让我们看看表4-1。 表中说明了KEIL uVision2 C51编译程序所通
3、讯端口的数据类型。 在标准习语言中,基本数据类型是char、int、short、long、float和double,而在C51编译程序中,int和short是相同的,而float和double是相同的。 在此省略说明。 让我们看一下具体的定义数据类型长度值字段无标记卡片单字节0到255签名卡片单字节- 128至127无标记int双字节065535签名入口双字节- 32768至32767无符号长龙4字节0有声长号4字节-浮点4字节一. e-38至三. e 38*一到三个字节对象地址比特位0或1美国足球超级联赛单字节0到255sfr16足球俱乐部双字节065535sbit公司位0或1表4-1 KE
4、IL uVision2 C51编译程序所通讯端口的数据类型1. char字符类型char类型的长度是字节,通常用于定义处理字符数据的变量或常量。 有无符号字符类型unsigned char和有符号字符类型signed char,差动奥尔特为signed char类型。 unsigned char类型在字节中的所有二进制位中表示数值,可表示的数值范围为0255。 signed char类型用字节的最高字节表示数据符号,“0”用正数表示,“1”用负数表示,负数用补数表示。 可显示的数值范围为-128 127。 unsigned char常用于处理ASCII字符和小于或等于255的整数。*正数的补充
5、数与原来的数相同,负的二进制的补充数等于将其绝对值用二进制位反过来加1。2. int整数int整数的长度为2字节,存储2字节的数据。 带符号的整数符号和无符号整数无符号的符号,差动奥尔特值为符号符号型。 signed int表示的数值范围是-32768 32767,字节中的最高有效位表示数据的符号,“0”表示正数,“1”表示负数。 unsigned int表示的数值范围为065535。那么,先停止吧。 看一下“unsigned char”和“unsigned int”的延迟效果,写一个说明长度不同的小计程仪程序吧。 尽管没有实际的应用意义,在这里学习使用方法吧。 用我们上课的最小化系统进行实验
6、,请像图4-1那样追加电阻和LED。 实验中D1的亮灯表示unsigned int的值延迟,D2的亮灯表示unsigned char的值延迟。图4-1第4课实验用电路这个项目工程叫做TwoLED。 其试验方案如下:包含/预处理命令void主(void )/主函数名称举止无标识号; /定义变量a为unsigned int型无标记卡片b; /定义变量b为unsigned char类型PS构成该循环。for (a=0; a65535; a )P1_0=0; /65535次将P1.0通讯端口设为低电平,点亮LEDP1_0=1; 将P1.0通讯端口设定为高电平,关闭LEDfor (a=0; a30000
7、; a ); /空循环for (b=0; b255; 乙)P1_1=0; /255次将P1.1通讯端口设为低电平,点亮LEDP1_1=1; 将P1.1通讯端口设定为高电平,熄灭LEDfor (a=0; a30000; a ); /空循环以下while(1)以下同样地编译烧,接通电源显示结果。 很明显,D1点亮的时间比D2点亮的时间长。 今后还将研究,计程仪柱中的循环延迟时间不太确定,并在要求准确的延迟的情况下不太适合。 重要的是,如果变量被定义为特定的数据类型,则可以在堆计程仪程序中使用该变量,以确保该值不超过数据类型的值范围。 例如,该示例中的变量b可以是for (b=0; b255; fo
8、r (b=0; b256; b ),编译可以通过,但在执行时发生问题,即b的值总是小于256,因此无法从循环中脱离下一个语句P1_1=1,发生死摇滾乐。 同样,a的值不能超过065535。 看看实验的结果吧。 同样的软模拟也能看到结果。3 .长整数长整数的长度为4字节,存储4字节的数据。 有符号的长整数signedblong和无符号整型unsigned long,差动奥尔特值为signedblong型。 signed int表示的数值范围是-,字节中的最高有效位表示数据的符号,“0”表示正数,“1”表示负数。 unsigned long表示的数值范围为0。四.浮动浮点型浮点浮点型在十进制数上具
9、有7位有效数字,是遵循IEEE-754标准的单精度浮点型数据,占用4字节。 浮点数的结构很复杂,将在后面的章节中详细讨论。 5.*指针类型指针类型本身是一个变量,指向存储在该变量中的其他数据的地址。 该指针变量需要占用一定的存储单元,随处理器长度的不同而不同,在C51中其长度通常为13字节。 在指针变量也有类型,今后的课程有特别的课程,所以在这里不怎么说。6 .位二进制位标量bit二进制位标量是C51编译程序的扩展数据类型,可以定义二进制位标量,但不能定义二进制位指针或二进制位数组。 值是二进制位,不是0,而是1,类似于某些高级语言的布尔型True和False。7. sfr特殊功能暂存器sfr
10、也是扩展数据类型,点是存储单元,值域为0255。 利用这个,可以访问51单片机内部的所有特殊功能寄存器。 如果在sfr P1=0x90语句中指定了片内有P1通讯端口的暂存器,则在下一语句中,将在P1=255 (将P1通讯端口的所有大头针设置为高电平)语句中操作特殊功能暂存器。*AT89C51的特殊功能暂存器表请参阅附录28.sfr16二进制位特殊功能暂存器sfr16占用2个存储单元,值域为065535。 sfr16与sfr一样,可以用于操作特殊功能暂存器,但它用于操作占用2字节的暂存器。 定时器T0和T1。9. sbit可记录地址sbit奇偶校验位是C51的扩展数据类型,能够与芯片内部的RAM
11、的可寻址二进制位或特殊功能暂存器的可寻址二进制位网站数据库。 如在先所定义sfr P1=0x90; /p1通讯端口的暂存器可以是二进制位地址,可以定义sbit P1_1=P11; /P1_1是P1的P1.1大头针/同样,如sbit P1_1=0x91,可以用P1.1的地址写入因此,在今后的普通计程仪语句中,可以用P1_1读写P1.1大头针。 通常,这些个可以直接使用系统提供的预处理文件,其中已经定义了各种特殊功能暂存器的简单名称,直接引用可以节省一些时间,我自己一直使用。 当然,也可以用自各儿写自各儿的定义文件,使用觉得容易记住的名字。关于数据强制类型转换等的操作将在后面的课程或项目群的例子中
12、提及。 大家可以用讲义的数据类型改写这个级的内斯坦共和国计程仪程序,加深各种类型的认识。第五课常数上一节中,学习了KEIL C51编译程序通讯端口的数据类型。 这些个的数据类型是怎样用于定义常量与变量的呢? 有什么应该注意的事情吗?下次看看吧。 我不知道什么是头晕目眩常数,什么是变量。 常数是在计程仪程序执行中不能变更值的量,变量是在程序执行中能不断变化的量。 变量的定义可以使用所有C51编译程序通讯端口的数据类型,但常数的数据类型只有整数、浮点型、字符类型、字符串类型和二进制位标量。 在本节中学习常数的定义和用法,在下一节中学习变量。常数的数据类型说明是这样的1 .整数常数可以用十进制数表示
13、,例如123,0,-89。 十六进制以0x开头,例如0x34、-0x3B等。 长整数在数字后面加上l。 例如,104L、034L、0xF340等。2 .浮点型常数分为十进制数和指数表示。 十进制数由数字和小数点构成,例如0.888、3345.345、0.0等,整数或小数部分为0,可以省略但需要小数点。 指数表示形式为数字 .数字e数字,的内容是可选的,内容可以根据情况进行变更,但其馀部分必须为125 e 3、7 e 9、-3.0e-3。3 .字符类型常量是用单引号括起来的字符,如a、d,是无法显示的控制字符,可以在该字符前面加上巴克斯斜线“”来构成专用转义字符。 一般转义字符表见表5-1。4
14、.字符串类型常量由用双引号括起来的字符组成。 例如,“测试”、“确定”等。 如果引号中没有字符,则为空字符串。 在使用特殊字符时,也使用类似双引号的转义字符。 在c中,字符串常量被视为字符类型的数组,在存储字符串时,会在字符串的末尾添加转义字符o。 字符串常量 a 和字符常数a不同,前者在存储时大多占用1字节的字间。5 .二进制位标量。 值是二进制。转义字符意思ASCII查询密码(16/10进制)o请注意空字符(空)00H/0n换行符号第十届冬奥会r滑架回位(CR )第十三届冬奥会t水平制表符(HT )第九届冬奥会b日本巴克斯宾八号f分页符第十二届冬奥会_单引号第27届冬奥会 双引号第22届冬
15、奥会 _高峰巴克斯5CH/92飞弹表5-1一般转义字符表常量可用于固定的数据表、词典等,不需要更改值时。 常数的定义方法有几种,如下说明。#精细假0 x 0; /可以用预定义的语句定义常数一个#difine True0x1; /此处将False定义为0,将True定义为1在/pull计程仪列中使用False编译时,将自动替换为0,同样地,将替换为True,即为1无符号代码a=100; /这个句子用code将a定义为程序存储器并代入统一输入c=100; 在const中将c定义为无符号int常数并代入由于这些个中的两个语句的值存储在plump内存中,并且plump内存在执行过程中不可更改,因此如果
16、在这两个语句之后使用a=110、a这样的赋值语句,则在编译时会出错。既然说了一句话,就写个普通话试试比较好吧。 写什么样的普计程仪拉姆跑马灯! 是的。 写这个容易理解吧。 这也说明了典型的常数的使用方法。 我们先看一下电路图。 这是我们在上节课的实验电路的基础上追加了6个LED,用P1通讯端口的全部大头针分别驱动1个LED,电路如图5-1所示。创建新的运行led项目工程。 主计程仪拉姆如下所示在#include /预处理文件中将特殊暂存器(如P1通讯端口)的名称定义为P1电话主机(电话主机)举止/定义花纹数据constunsignedchardesign 32 =0x ff,0xff,0xFD
17、,0xff,0 xf 7,0 ef,0xff,0xff,0x7F,0x7F、0xFF、0xFF、0xFF、0 xf 7、0 f BF、0xFD、0xFE、0xFF0xFF,0xFE,0xFC,0 x ff 8,0 xf 0,0 x e 0,0 xc 0,0 x 80,0 x 00 xe 7,0 x db,0xBD,0x7E,0xFF;无标识号; /为循环定义变量无标记卡片b; /c51预计程仪编程的内存有限,因此使用变量类型时请尽量注意/使用尽可能少的字节类型,在大的普拉姆计程仪中非常方便do 122222222222222222222222226for (b=0; b32; 乙)举止for(a=0; a30000; a ); /延迟有会儿时间p1=设计; /读取定义的图案数据,将图案数据写入P1口以下威廉(1)以下在此,我们的LED在AT89C51的P1大头针成为低电平后点亮,向P1通讯端口的各大头针写入数据o而连接的LED点亮,P1通讯端口的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 餐饮业油烟机维护保养合同2026
- 环境监测数据质量管理规定
- 作业许可审批管理制度
- 吸烟危害评估干预健康方案
- 术后营养康复膳食方案
- 工作人员交接班管理制度细则
- 常见农药残留快速降解处理方案
- 沼渣沼液田间施用操作规范
- 古法刮痧排毒方案
- 减肥瘦身代餐制作服务流程
- 检验科消毒隔离制度规范
- 光伏安全生产会议制度
- 煤矿机电运输知识课件
- 2025年铁路局视觉传达设计笔试及答案
- 2025年幼儿园教师3-6岁儿童学习与发展指南及专业知识竞赛试题(含答案)
- 宠物营养补充剂的应用效果研究
- 船舶建造合同解除协议
- FSSC22000 V6食品安全管理体系管理手册及程序文件
- 雨课堂在线学堂《商务形象设计》课后单元测试答案
- 区域森林生物量遥感估测的技术解析与多元应用探究
- MSA测量系统表格GR-R
评论
0/150
提交评论