欢迎来到天天文库
浏览记录
ID:59449174
大小:340.50 KB
页数:59页
时间:2020-09-18
《单片机C语言开发(二)ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第2章C51语言2.1单片机编程语言目标代码占用空间执行速度可读性移植汇编语言短小快不强高级语言长大慢强单片机编程语言:汇编语言、高级语言性能比较应用场合①系统的存储空间比较小,实时性的要求很高,选用汇编语言;②系统的存储空间比较大,实时性的要求不高,选用C51语言;③系统中部分模块对实时性的要求很高,其它模块对实时性要求不高,两种语言结合。(主体—C51编程,高实时性要求模块—汇编语言编程,汇编语言程序模块嵌入到C51语言程序当中。)开发环境无论是高级语言还是汇编语言写的源程序都必须转换成目标程序,单片机才能执行。目前很多公司都
2、将编辑器、汇编器、编译器、连接/定位器、符号转换程序做成了软件包,称为集成开发环境,如KeiluVision、SiliconLaboratoriesIDE等。使用C语言有以下的优点:C语言具有结构化和模块化特点,便于阅读和维护。C语言可移植性好,很多微控制器都支持C编译器。功能化的代码能够很方便的从一个工程移植到另一个工程,从而减少了开发时间。C语言编写的程序比汇编语言编写的程序更符合人们的思考习惯,开发者可以更专心的考虑算法,而不是考虑一些细节问题。这样可以减少编程出错的机率,从而提高开发效率,减少调试的时间。C语言和微控制器是
3、相对独立的,开发者不必知道处理器的具体内部结构和处理过程。当基于新型的微控制器开发程序时,可以很快上手,减少学习时间和程序开发时间。2.2C51数据类型数据类型C51专用长度取值范围signedchar单字节-128to+127unsignedchar单字节0to255signedshort2字节-32768to+32767unsignedshort2字节0to65535signedint2字节-32768to+32767unsignedint2字节0to65535signedlong4字节-2147483648to+214746
4、483647unsignedlong4字节0to4294967295float4字节±1.175494E-38to±3.402823E+38double8字节*通用指针/具体指针1~3字节对象的地址enum1或2字节-128to+127或-32768to+32767数据类型C51专用长度取值范围bit专用1位0或1sbit专用1位0或1sfr专用1字节0~255sfr16专用2字节0~655352.2C51数据类型●常量:在程序运行中,其值不能改变的量成为常量。0,1,‘a’,符号常量等。例:#defineCONST60#defi
5、neuncharunsignedchar●变量:在程序运行中,其值可以改变的量成为常量。2.3常量及变量2.3常量及变量在C51中变量定义的格式如下:1存储种类(StorageClasses)有四种:自动(auto)外部(extern)静态(static)寄存器(register)[存储种类]数据类型[存储器类型]变量名表;auto类型:在定义它的函数体内部有效;进入定义它的函数体时动态分配内存,退出函数体时所占用的内存区域被释放(局部变量);变量的默认存储种类。2.3.1存储种类register类型:作用域与寿命和auto型相同
6、;编译器尽可能将该类变量放在CPU的寄存器中,以提高存储速度。通常选择访问频率较高的变量定义为该类型,以提高效率。2.3.1存储种类extern类型:在一个应用的多个程序文件中均有效;存放在内存的静态存储区。直到该程序结束,分配的内存才被释放(全局变量)。可在函数间传递信息,在函数内被修改时,修改值会传递给其它函数。2.3.1存储种类static类型:局部变量作用域与auto类相同;寿命与extern类相同。数据值在两次调用之间一直保持,占用的内存空间在程序结束才释放。全局变量仅在定义它的程序文件内有效;寿命与extern类相同。
7、作用范围受限的全局变量,仅在定义它的文件中有效。2.3.1存储种类例1:#includeintsum1(inti){staticinty=0;y=y+i;return(y);}intsum2(inti){inty=0;y=y+i;return(y);}main(){inti;for(i=0;i<10;i++){P1=sum1(i);P2=sum2(i);}}#ifndef__REG51_H__#define__REG51_H__/*BYTERegister*/sfrP0=0x80;sfrP1=0x90;sfrP2
8、=0xA0;sfrP3=0xB0;sfrPSW=0xD0;sfrACC=0xE0;…….sfrTL1=0x8B;sfrTH0=0x8C;sfrTH1=0x8D;sfrIE=0xA8;sfrIP=0xB8;sfrSCON=0x98;sfrSBUF=0
此文档下载收益归作者所有