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

上传人:xin****828 文档编号:6725004 上传时间:2020-03-02 格式:DOC 页数:5 大小:69.50KB
返回 下载 相关 举报
51单片机C语言程序设计经典案例.doc_第1页
第1页 / 共5页
51单片机C语言程序设计经典案例.doc_第2页
第2页 / 共5页
51单片机C语言程序设计经典案例.doc_第3页
第3页 / 共5页
点击查看更多>>
资源描述
项目三 C51程序设计语言基础任务1 C51程序的识读1. C51程序结构例3-1 P_test/* /注释,还可用/注释掉一行File name:P_test.cChip name:STC89C51RCClock frequency:1.20MHz*/ #include “reg52.h” /预处理命令,文件包含预处理命令,后缀名都是.h,标准的MCS-51单片机头文件为”reg51.h”,STC89系列单片机头文件为”reg52.h” #define unit unsigned int /宏定义预处理命令 sbit BZ=P37 ; sbit key=P10;void delay(unit ms) unit i; while( ms -) for(i=0;i120;i+);void main(void) while(1) if(key=0) BZ=0x0; delayms(10); BZ=0x1; delayms(50); P0=0xFF; else P0=P0; delayms(500); 2. C51的数据类型 位变量型 bit字符型 无符号字符型 unsigned char 有符号字符型 signed charC51的数据类型 整数型 无符号整数型 unsigned int基本类型 有符号整数型 signed int 长整数型 无符号长整数型 unsigned long int有符号长整数型signed long int 实数型(浮点型) 单精度浮点型float 双精度浮点型double 数组类型array 结构体类型struct构造类型 共用体union 枚举enum 指针类型 空类型(void)表3-1 C51基本数据类型的长度和值域类型长度/bit长度/byte范围位变量型bit10 ,1无符号字符型 unsigned char8单字节0-255有符号字符型 signed char8单字节-128-127无符号整数型 unsigned int16双字节0-65536有符号整数型 signed int16双字节-32768-32767无符号长整数型 unsigned long int32四字节有符号长整数型 signed long int32四字节单精度浮点型 float32四字节双精度浮点型 double 32四字节一般指针类型 24三字节3. C51的标识符和关键字标识符是由字母、数字和下划线组成的字符串,第一个字符必须是字母或下划线,不超过32个字符。表3-2 C51中的关键字关键字用途说明auto存储种类声明用来声明局部变量bdata存储器类型说明可位寻址的内部数据存储器break程序语句退出最内层循环体bit位变量语句位变量的值是1(true)或0(flase)case程序语句switch语句中的选择项char数据类型的声明单字节整数型或字符型数据关键字用途说明code存储器类型声明程序存储器const存储类型说明在程序执行过程中不可修改的变量值continue程序语句退出本次循环,转向下一次循环data存储器类型说明直接寻址的内部数据存储器default程序语句Switch语句中的失败选择项do程序语句构成do.while循环结构double数据类型说明双精度浮点数else程序语句构成if.else选择结构enum数据类型说明枚举extern存储类型说明在其他程序模块中声明了的全局变量float数据类型说明单精度浮点型for程序语句构成for循环结构goto程序语句构成goto循环结构idata存储器类型说明间接寻址的内部数据存储器if程序语句构成do.while循环结构int数据类型说明基本整数型interrupt中断声明定义一个中断函数long数据类型说明长整数型pdata存储器类型说明分页寻址的内部数据存储器register存储类型说明使用CPU内部的寄存器变量reentrant再入函数说明定义一个再入函数return程序语句函数返回sbit位变量声明声明一个可位寻址的变量short数据类型说明短整数型signed数据类型说明有符号数,二进制的最高位位符号位sizeof运算符计算表达式或数据类型的字节数Sfr特殊功能寄存器声明声明一个特殊功能寄存器Sfr16特殊功能寄存器声明声明一个16位的特殊功能寄存器static存储类型说明静态变量struct数据类型说明结构类型数据switch程序语句构成switch选择语句typedef数据类型说明重新进行数据类型定义union数据类型说明联合数据类型unsigned数据类型说明无符号数据using寄存器组定义定义芯片的工作寄存器void数据类型说明无符号数据volatile数据类型说明声明该变量在程序执行中可被隐含改变while程序语句构成while和do.while循环语句xdata存储器类型说明外部数据存储器4. C51的常量和变量1) 常量常量就是在程序运行过程中,其值不能改变的数据,包括整型常量、字符常量、字符串常量、实数常量、位标量等。(1) 整型常量:可以用二进制、八进制、十进制、十六进制表示。 无符号整数常量在一个数字后面加上“u”或“U”表示。长整数型常量在后面加上“l”或“L”,无符号长整数型常量在数字后面加上“ul”或“UL”,实数型常量在后面加“f”或“F”。(2) 字符常量:单引号内的字符,不可以显示的控制字符在前加“”组成专用转义字符。(3) 字符串常量:双引号内的字符,当双引号内没有字符时是空字符串。在C语言中,字符串常量是作为字符类型数组来处理的,在存储字符串时,系统在字符串尾部加上转义字符“o”,作为该字符串的结束符。(4) 实数常量:有十进制和指数两种表示形式。指数表示的实数为“数字.数字e数字”, 中的内容为可选项(5) 位标量:位标量的值是一个二进制数。2) 变量变量就是在程序运行过程中,其值可以被改变的数据。必须先用标识符作为变量名,并指出所用的数据类型和存储模式,这样编译系统才能为变量分配相应的存储空间。定义变量的格式: 存储器类型 ;类型定义和标识符是必要的。存储模式有四种,自动(auto)、外部(extern)、静态(static)和寄存器(register),默认类型为自动(auto)。表3-3 C51存储类型与MCS-51单片机存储空间的对应关系及其大小存储类型与存储空间的对应关系长度/bit长度/byte存储范围data直接寻址片内数据存储区,访问速度快(128B)810-255bdata可位寻址片内数据存储区,允许位与字节混合访问(16B)810-255idata间接寻址片内数据存储区,可访问片内全部RAM地址空间(256B)810-255pdata分页寻址片外数据存储区,由MOVX Ri访问810-255xdata寻址片外数据存储区(64KB),由 MOVX DPTR访问1620-65535code寻址代码存储区(64KB),由 MOVC DPTR访问1620-65535如果在变量定义时省略了存储类型标识符,则编译器会自动选择默认的存储类型。默认的存储类型进一步由SMALL、COMPACT、和LARGE存储模式指令限制。存储模式决定了变量的默认存储类型、参数传递区和无明确存储类型说明变量的存储类型。在SMALL模式下,参数传递是在片内数据存储区中完成的。COMPACT和LARGE模式允许参数在外部存储器中传递。表3-4 存储模式及说明存储模式说明SMALL参数及局部变量放入可直接寻址的片内存储器(最大为128B,默认存储类型为data),因此访问十分方便。另外,所有对象(包括栈)都必须嵌入片内RAM,栈长由函数的嵌套导数决定。COMPACT参数及局部变量放入分页片外存储区(最大为256B,默认的存储类型为pdata),通过寄存器R0和R1(R0、R1)间接寻址,栈空间位于MCS-51系统内部数据存储区中。LARGE参数及局部变量直接放入片外数据存储区(最大为64KB,默认存储类型为xdata),使用数据指针DPTR来进行寻址。用此数据指针进行访问效率较低,尤其是对两个或多个字节的变量,这种数据类型的访问机制直接影响代码的长度。另一不方便之处在于这种数据指针不能对称操作。任务2 运算符和表达式表3-5 C语言常用的运算符
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 中学资料


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!