51单片机C语言程序设计经典案例

上传人:cn****1 文档编号:478747792 上传时间:2024-02-22 格式:DOCX 页数:16 大小:54.07KB
返回 下载 相关 举报
51单片机C语言程序设计经典案例_第1页
第1页 / 共16页
51单片机C语言程序设计经典案例_第2页
第2页 / 共16页
51单片机C语言程序设计经典案例_第3页
第3页 / 共16页
51单片机C语言程序设计经典案例_第4页
第4页 / 共16页
51单片机C语言程序设计经典案例_第5页
第5页 / 共16页
点击查看更多>>
资源描述

《51单片机C语言程序设计经典案例》由会员分享,可在线阅读,更多相关《51单片机C语言程序设计经典案例(16页珍藏版)》请在金锄头文库上搜索。

1、51单片机C语言程序设计经典案例项目三C51程序设计语言基础任务1C51程序的识读1.C51程序结构例3-1P_test/*注释,还可用/注释掉一行Filename:P_test.cChipname:STC89C51RCClockfrequency:1.20MHz*/#includefeg52.h预处理命令)文件包含预处理命令,后缀名都是.h,标准的MCS-51单片机头文件为“reg51.h”,STC89系列单片机头文件为reg52.h#defineunitunsignedint宏定义预处理命令sbitBZ=P37;sbitkey=P10;voiddelay(unitms)uniti;whil

2、e(ms-)for(i=0;i120;i+);voidmain(void)while(1)if(key=0)BZ=0x0;delayms(10);BZ=0x1;delayms(50);P0=0xFF;elseP0=P0;delayms(500);2c51的数据类型位变量型bit字符型无符号字符型unsigned char有符号字符型signed charC51的数据类型无符号整数型unsigned int基本类型整数型signed int整数型有符号长整数型无符号长整数型 unsigned long int有符号长整数型signed long int实数型(浮点型)单精度浮点型float双精度

3、浮点型doubleI数组类型array结构体类型struct构造类型共用体union枚举enum指针类型空类型(void)表3-1C51基本数据类型的长度和值域类型长度/bit长度/byte范围位变量型bit10,1无符号字符型unsignedchar8单字节0-255有符号字符型signedchar8单字节-128-127无符号整数型unsignedint16双字节0-65536有符号整数型16双字节-32768-327signedint67无符号长整数型unsignedlongint32四字节有符号长整数型signedlongint32四字节单精度浮点型float32四字节双精度浮点型do

4、uble32四字节一般指针类型24二字节3.C51的标识符和关键字标识符是由字母、数字和下划线组成的字符串,第一个字符必须是字母或下划线,不超过32个字符。表3-2C51中的关键字关键字用途说明auto存储种类声明用来声明局部变量bdata存储器类型说明可位寻址的内部数据存储器break程序语句退出最内层循环体bit位变量语句位变量的值是1(true)或0(flase)case程序语句switch语句中的选择项char数据类型的声明单字节整数型或字符型数据关键字用途说明code存储器类型声明程序存储器const存储类型说明在程序执行过程中不可修改的变量值continue程序语句退出本次循环,转

5、向下一次循环data存储器类型说明直接寻址的内部数据存储器default程序语句Switch语句中的失败选择项do程序语句构成dowhile循环经构bdouble数据类型说明双精度浮点数else程序语句构成ifelse选择结构enum数据类型说明枚举extern存储类型说明在其他程序模块中声明了的全局变量float数据类型说明单精度浮点型for程序语句构成for循环结构goto程序语句构成goto循环结构idata存储器类型说明间接寻址的内部数据存储器if程序语句构成do.while循环结构int数据类型说明基本整数型interrupt中断声明定义一个中断函数long数据类型说明长整数型pda

6、ta存储器类型说明分页寻址的内部数据存储器register存储类型说明使用CPU内部的寄存器变量reentrant再入函数说明定义一个再入函数return程序语句函数返回sbit位变量声明声明一个可位寻址的变量short数据类型说明短整数型signed数据类型说明有符号数,二进制的最高位位符号位sizeof运算符计算表达式或数据类型的字节数Sfr特殊功能寄存器声明声明一个特殊功能寄存器Sfr16特殊功能寄存器声明声明一个16位的特碉功能寄存器static存储类型说明静态变量struct数据类型说明结构类型数据switch程序语句构成switch选择语句typedef数据类型说明重新进行数据类型

7、定义union数据类型说明联合数据类型unsigned数据类型说明无符号数据using寄存器组定义定义芯片的工作寄存器void数据类型说明无符号数据volatile数据类型说明声明该变量在程序执行中可被隐含改变while程序语句构成while和do.while循环语句xdata存储器类型说明外部数据存储器4.C51的常量和变量1)常量常量就是在程序运行过程中,其值不能改变的数据,包括整型常量、字符常量、字符串常量、实数常量、位标量等。(1)整型常量:可以用二进制、八进制、十进制、十六进制表示。无符号整数常量在一个数字后面加上“u”或“U”表示。长整数型常量在后面加上“1”或“L”,无符号长整数

8、型常量在数字后面加上“ul”或“UL”,实数型常量在后面加“f”或F”。(2)字符常量:单引号内的字符,不可以显示的控制字符在前加“”组成专用转义字符。(3)字符串常量:双引号内的字符,当双引号内没有字符时是空字符串。在C语言中,字符串常量是作为字符类型数组来处理的,在存储字符串时,系统在字符串尾部加上转义字符“o”,作为该字符串的结束符。(4)实数常量:有十进制和指数两种表示形式。指数表示的实数为“R数字.数字e丰数字”,口中的内容为可选项(5)位标量:位标量的值是一个二进制数。2)变量变量就是在程序运行过程中,其值可以被改变的数据。必须先用标识符作为变量名,并指出所用的数据类型和存储模式,

9、这样编译系统才能为变量分配相应的存储空间。定义变量的格式:存储器类型标识符;类型定义和标识符是必要的。存储模式有四种,刍动(auto)、夕卜部(extern)、静态(static)和寄存器(register),默认类型为自动(auto)。表3-3C51存储类型与MCS-51单片机存储空间的对应关系及其大小存储类型与存储空间的对应关系长度/bit长度/byte存储范围data直接寻址片内数据存储区,访问速度快(128B)810-255bdata可位寻址片内数据存储区,允许位与字节混合访问(16B)810-255idata间接寻址片内数据存储区,可访问片内全部RAM地址空间(256B)810-25

10、5pdata分页寻址片外数据存储区,由MOVXRi访问810-255xdat寻址片外数据存储区1620-655code(64KB),由 MOVXDPTR访问寻址代码存储区(64KB),由 MOVCDPTR访问351620-65535如果在变量定义时省略了存储类型标识符,则编译器会自动选择默认的存储类型。默认的存储类型进一步由SMALL、COMPACT、和LARGE存储模式指令限制。存储模式决定了变量的默认存储类型、参数传递区和无明确存储类型说明变量的存储类型。在SMALL模式下,参数传递是在片内数据存储区中完成的。COMPACT和LARGE模式允许参数在外部存储器中传递。表3-4存储模式及说明

11、存储模说明式SMALL参数及局部变量放入可直接寻址的片内存储器(最大为128B,默认存储类型为data),因此访问十分方便。另外,所居对象(包括栈)都必须嵌入片内RAM栈长由函数的嵌套导数决定。-A.1,COMPACT参数及局部变量放入分页片外存储区(最大为256B,默认的存储类型为pdata),通过寄存器R0和R1(R0、R1)间接寻址,栈空间位于MCS-51系统内部数据存储区中。LARGE参数及局部变量直接放入片外数据存储区(最大为64KB,默认存储类型为xdata),使用数据指针DPTR来进行寻址。用此数据指针进行访问效率较低,尤其是对两个或多个字节的变量,这种数据类型的访问机制直接影响代码的长度。另一不方便之处在于这种数据指针不能对称操作。任务2运算符和表达式表3-5C语言常用的运算符

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 营销创新

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号