单片机C语言编程.ppt

单片机C语言编程.ppt

ID:50199045

大小:688.00 KB

页数:31页

时间:2020-03-06

单片机C语言编程.ppt_第1页
单片机C语言编程.ppt_第2页
单片机C语言编程.ppt_第3页
单片机C语言编程.ppt_第4页
单片机C语言编程.ppt_第5页
资源描述:

《单片机C语言编程.ppt》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、单片机C51编程一、C51与标准C的差异1、库函数不同2、头文件不同3、数据类型有一定区别4、增加了存储模式5、增加了中断函数6、输入、输出不同,C51通过串口进行。二、C语言与汇编语言单片机C语言编程与汇编语言编程的差异:1、用汇编语言编写单片机程序必须要考虑其存储器结构,资源分配是汇编语言编程中的一大负担。而且不同的存储器操作对象寻址方式不同,访问的指令也不同。3、汇编语言编程,子程序调用要考虑现场的保护与恢复,要考虑工作寄存器的分组使用,避免资源冲突。C语言编译系统自动完成这些工作。如MOV,MOVC,MOVX访问的空间不同。2、汇编语言中的指令繁多,功能单

2、一。如单片机中大量的转移类指令在C语言中均由分支程序实现。4、汇编语言编写中的循环程序是通过转移指令重复执行来现实的,C语言则通过循环语句来实现。6、用C语言编写的单片机应用程序:(1)所有操作对象都可以看成变量或常量,没有寻址方式(数据传送由赋值语句实现,所有运算都通过表达式实现)。(2)不用像汇编语言那样须具体组织、分配存储器资源和处理端口数据.(3)子程序调用时,C语言程序的编译系统自动进行现场的保护。(5)C语言语法简单,语句紧凑,容易理解和掌握。(4)在C语言编程中,对数据类型与变量的定义,必须要与单片机的存储结构相关联,否则编译器不能正确地映射定位。5

3、、汇编语言编程中使用大量的算术逻辑运算指令在单片机C语言编程中全部由相应的运算表达式实现。三、C51的数据类型数据类型长度大小unsignedchar1字节0~255char1字节-128~+127unsignedint2字节0~65535int2字节-32768~+32767unsignedlong4字节0~4294967295long4字节-2147483648~+2147483647float4字节±1.75494E-38~±3.402823E+38*1~3字节对象的地址bit位0或1sfr1字节0~255sfr162字节0~65535sbit位0或11、特

4、殊功能寄存器类型:在C51中对特殊功能寄存器的访问必须先用sfr或sfr16进行声明。sfrP0=0x80;/*P0口的寄存器地址为0x80*/两种使用特殊功能寄存器的方法:1)、先定义再使用:2)、包含51单片机的头文件:#includevoidmain(void){ucharvar1;var1=P1......while(1);}2、位类型这也是C51中扩充的数据类型,用于访问MCS-51单片机中的可寻址的位单元。在C51中,支持两种位类型:bit型和sbit型。它们在内存中都只占一个二进制位,其值可以是“1”或“0”。bitflags;/*

5、在bdata区定义一个位变量*/sfrP0=0x80;/*因P0口的寄存器是可位寻址的*/sbitP0_0=P0^0;/*所以P0_0为P0中的P0.0引脚*/除了以上定义方式外,还可以用P0.0的地址去写,如:sbitP0_0=0x80;区别:用bit定义的位变量在C51编译器编译时,在不同的时候位地址是可以变化的,而用sbit定义的位变量必须与51单片机的一个可以寻址位单元或可位寻址的字节单元中的某一位联系在一起,在C51编译器编译时,其对应的位地址是不可变化的。四、新增存贮类型变量是在程序运行过程中其值可以改变的量。一个变量由两部分组成:变量名和变量值。在C

6、51中,变量在使用前必须对变量进行定义,指出变量的数据类型和存储模式。以便编译系统为它分配相应的存储单元。定义的格式如下:数据类型说明符[存储器类型]变量名1[=初值],变量名2[=初值]…;存储器类型描述data直接寻址的片内RAM低128B,访问速度快bdata片内RAM的可位寻址区(20H~2FH),允许字节和位混合访问idata间接寻址访问的片内RAM,允许访问全部片内RAMpdata用Ri间接访问的片外RAM的低256Bxdata用DPTR间接访问的片外RAM,允许访问全部64k片外RAMcode程序存储器ROM64k空间2、六种存储器类型:【例】变量定

7、义存储种类和存储器类型相关情况。chardatavarl;/*在片内RAM低128B定义用直接寻址方式访问的字符型变量var1*/intidatavar2;/*在片内RAM256B定义用间接寻址方式访问的整型变量var2*/unsignedlongdatavar3;/*在片内RAM128B定义用直接寻址方式访问的自动无符号长整型变量var3*/floatxdatavar4;/*在片外RAM64KB空间定义用间接寻址方式访问的外部实型变量var4*/intcodevar5;/*在ROM空间定义整型变量var5*/unsigncharbdatavar6;/*在片内RA

8、M位寻址区

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。