单片机C51 C语言课件.ppt

单片机C51 C语言课件.ppt

ID:56466517

大小:168.00 KB

页数:31页

时间:2020-06-19

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

《单片机C51 C语言课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、补充:C51程序设计本讲重点:C51的数据类型和存储类型;指针和中断的使用;通过实例消化理解C51的编程方法;尝试将实验课中的ASM51程序转为C51程序.用C语言进行单片机程序设计是单片机开发与应用的必然趋势。单片机教学中的程序设计应以C语言为主,汇编语言为辅。对汇编语言掌握到只要可以读懂程序,在时间要求比较严格的模块中进行程序的优化即可。采用C语言不必对单片机和硬件接口结构有很深入的了解,编译器可以自动完成变量的存贮单元的分配,编程者可以专注于应用软件部分的设计,大大加快软件的开发速度。产品中的单

2、片机重新选型后,C语言可以很容易地进行程序移植工作。从1985年开始就有了8051单片机的C语言编译器,简称C51。㈠C51简介目前比较流行的C51编译器是KeilC51其集成开发软件为KeiluVision2,它集编辑、编译、仿真于一体,界面友好,易学易用。C51与ASM51相比,有如下优点:1.对单片机的指令系统不要求了解,仅要求对8051的存贮器结构有初步了解;2.寄存器分配、不同存贮器的寻址及数据类型等细节可由编译器管理;3.程序有规范的结构,可分成不同的函数,这种方式可使程序结构化;4.提供

3、的库包含许多标准子程序,具有较强的数据处理能力;6.由于具有方便的模块化编程技术,使已编好程序可容量地植入新程序;C51扩展关键字bit与sbit的使用对于可位寻址的SFR空间和RAM空间的字节型变量,可以定义特殊位变量标识该变量的某一位,这种位数据类型的标识符为sbit.在程序设计时,对于可位寻址对象,既可以按字节寻址也可以按位寻址的变量,其存储类型只能是bdata.intbdataa;charbdatab[4];然后可以使用sbit关键字定义其中可独立寻址访问的位变量:sbita0=a^0;sbi

4、ta12=a^12;sbitb03=b[0]^3;sbitb36=b[3]^6;㈢C51的数据类型基本数据类型:㈡C51的程序结构与一般C语言的结构相同,以main()函数为程序人口,程序体中包含若干语句还可以包含若干函数。位型字符型整型长整型浮点型bitcharintlongintfloat1位1字节2字节4字节4字节构造类型:数组、结构体、共用体、枚举指针类型(精华)(1)字符型:char、unsignedchar;(2)整型:int、unsignedint、long、unsignedlong;(

5、3)浮点与双精度型:float、double;(4)C51中扩展的类型:bit、sfr、sfr16、sbit(5)结构体、指针等bit:位类型 如:bitrun_flag;sfr:特殊功能寄存器类型,如sfrP0=0x80;(0x80为地址)sfr16:16位特殊功能寄存器类型,如sfr16DPTR=0x82;(即DPTR)sbit:特殊功能寄存器位类型如sbitEINT=0xAF;(0xAF为位地址。即EA)㈢C51的数据类型㈣C51数据的存储类型存储类型说明data直接访问内部数据存储器(128字

6、节)访问速度最快bdata可位寻址内部数据存储器(16字节),允许位与字节混合访问;idata间接访问内部数据存储器(256字节),允许访问全部内部数据区;pdata分页访问外部数据存储器(256字节),用MOVX @Ri指令访问;xdata外部数据存储器(64K),用MOVX @DPTR指令;code程序存储器(64K),用MOVC @A+DPTR指令;定义格式:[存储种类][存储类型]数据类型变量名;也可写为:[存储种类]数据类型[存储类型]变量名;存储种类有:静态变量(static)和动态变量(

7、auto缺省)存储类型有:data、idata、bdata;xdata、pdata和code。(五)变量的定义方法#defineucharunsignedcharuchardataa1;/*字符变量a1定位在8051的片内数据存储区中*/bitbdataflag;/*位变量flag定位在8051的片内数据存储区中的可位寻址区*/floatidatax;/*浮点变量x定位在8051的片内数据存储区中并只能通过间接寻址来访问*/ucharxdatas[]={3,4,7,2,12,8};/*无符号字符数组s

8、定位在片外数据存储区中*/ucharcodetable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};/*无符号字符数组table定位在ROM区中*/变量的绝对定位用关键字:_at_格式:[存储类型][存储种类]数据类型变量名_at_constant;Constant为定位的地址如:datacharmusich_at_0x29,musicl_at_0x2a;charbuf[8]_at_0x30

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

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

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