欢迎来到天天文库
浏览记录
ID:50337894
大小:182.00 KB
页数:33页
时间:2020-03-08
《单片机应用技术 教学课件 作者 徐江海 第5章 C语言程序设计.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第5章C语言程序设计本章主要内容4、LCD(1602)显示程序设计1、单片机C51语言基础2、单片机C语言程序设计基础3、数码管显示程序5、应用实例——温控4一、C51语言的基本知识1、标识符标识符是C语言中用来标识常量、变量、函数等对象名称的字符串。合法的标识符由字母、数字和下划线组成,并且第一个字符必须为字母或下划线。Addr、xyz、k1234、PI、_abc、_ABC注意:标识符大、小写严格区分。标识符一般取前8个字符。标识符分为:关键字、预定义标识符和自定义标识符关键字是C51语言规定的标识符,包括ANSI标准C语
2、言中的关键字和C51语言拓展的关键字,见表5-1和表5-2。预定义字符是指C51语言提供的系统函数的名字以及预编译处理命令等自定义标识符一般是用户给变量、函数、数组等的命名,命名时不能与关键字相同。2、常量常量类型有:整型常量、实型常量和字符常量。整型常量也称为整数,常用十进制和十六进制形式来表示,十进制数书写的形式与汇编语言一致,十六进制需要在数码前加0x或0X如0xff、0Xc0。实型常量又称为实数,都采用十进制数,有小数形式和指数形式,默认输出时最多只保留6位小数。字符常量是用单引号括起来的一个ASCII码字符集中的字
3、符,如‘A’、‘0’、‘%’、‘$’等,在C51中字符常量是作为整型常量来处理,它的值就是对应字符的ASCII代码值。如‘A’的值是65或0x41,‘0’的值是48或0x30。3、基本数据类型数据类型占用的空间取值范围unsignedchar单字节0~255signedchar单字节-128~+127unsignedint双字节0~65535signedint双字节-32768~+32767unsignedlong四字节0~4294967295signedlong四字节-2147483648~+2147483647float
4、四字节±1.175494E-38~±3.402823E+38*1~3字节对象的地址bit位0或1sbit位0或1sfr单字节0~255sfr16双字节0~65535其中:bit、sbit、sfr、sfr16为C51新增加的数据类型(1)bitbit变量的值只能是1或0,用来表示两种不同的状态。位变量定义后程序编译时自动在单片机内部为其分配一个位地址空间,bit变量位地址空间就是第三章中讲述的位寻址区。bitbflog;//定义一个位变量bflogbitbflog=0;//定义一个位变量bflog,并赋初值0(2)sbitsb
5、it变量的值只能也是1或0,sbit变量的位地址空间是单片机内部可位寻址SFR的位地址。有三种形式,下面以P1.0口为例:sbitp1_0=0x90;//定义p1_0的位地址为0x90,表示P1.0口sbitp1_0=0x90^0;//0x90是P1口字节地址,p1_0表示P1.0口sbitp1_0=P1^0;//定义p1_0对应P1口的最低位,表示P1.0口//需要先用sfr类型定义P1口,sfrP1=0x90(3)sfrsfr型变量用于访问单片机内部的所有特殊功能寄存器sfr型变量定义的方法如下:sfr变量名=某个SFR
6、的地址如:sfrP1=0x90;//0x90是P1口地址(4)sfr16sfr16定义51单片机内部的16位特殊功能寄存器,如DPTR在实际应用中,一般将单片机内部的SFR以及它们可以位寻址的位地址统一定义在头文件REG51.H中,在程序的开头引用该头文件,在程序编写时可以直接引用其中定义的变量。注意:REG51.H文件中一般不包含4个端口的位变量定义二、运算符与表达式C51语言的运算符与表达式与ANSIC的基本一致表达式是由运算符和运算对象(变量、常量、函数等)构成的,运算符是表达式的核心,书写表达式不宜过长,复杂的运算关
7、系表达式中可以使用圆括号,使运算关系清晰。C51的运算符优先级与结合性见表5-5为三、指针与绝对地址访问1.指针与地址计算机程序的指令、常量和变量等都以字节为单位存放在内部存储单元中,每个单元都具有一个唯一的编号,这个编号就是存储单元的地址。按照内存单元的地址来访问该单元中的内容,即按地址来读或写该单元中的数据。这种访问是“直接访问”方式。另外一种访问是“间接访问”,先将欲访问单元的地址存放在另一个单元中,访问时,先找到存放地址的单元,从中取出地址,然后才能找到需访问的单,再读或写该单元的数据。在这种访问方式需要使用指针变量
8、。2.指针变量的定义数据类型*[存储器类型]指针变量名;“存储器类型”是可选项,它是C5l编译器的一种扩展,如果带有此选项,指针被定义为基于存储器的指针,无此选项时,被定义为一般指针。一般指针在内存中占用3个字节,而基于存储器的指针,则指针的长度可为1个字节(存储器类型选项为idata、d
此文档下载收益归作者所有