单片机C51 C语言课件.ppt

  1. 1、本文档共31页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
用C语言进行单片机程序设计是单片机开发与应用的必然趋势。 单片机教学中的程序设计应以C语言为主,汇编语言为辅。对汇编语言掌握到只要可以读懂程序,在时间要求比较严格的模块中进行程序的优化即可。 采用C语言不必对单片机和硬件接口结构有很深入的了解,编译器可以自动完成变量的存贮单元的分配,编程者可以专注于应用软件部分的设计,大大加快软件的开发速度。 产品中的单片机重新选型后,C语言可以很容易地进行程序移植工作。 * * * 补充:C51程序设计 本讲重点: C51的数据类型和存储类型; 指针和中断的使用; 通过实例消化理解C51的编程方法; 尝试将实验课中的ASM51程序转为C51程序. 从1985年开始就有了8051单片机的C语言编译器,简称C51。 ㈠ C51简介 目前比较流行的C51编译器是Keil C51 其集成开发软件为Keil uVision 2,它集编辑、编译、仿真于一体,界面友好,易学易用。 C51与ASM51相比,有如下优点: 1.??对单片机的指令系统不要求了解,仅要求对8051 的存贮器结构有初步了解; 2.??寄存器分配、不同存贮器的寻址及数据类型等细节可由编译器管理; 3.??程序有规范的结构,可分成不同的函数,这种方式可使程序结构化; 4.???提供的库包含许多标准子程序,具有较强的数据处理能力; 6.??由于具有方便的模块化编程技术,使已编好程序可容量地植入新程序; C51扩展关键字 bit与sbit的使用 对于可位寻址的SFR空间和RAM空间的字节型变量,可以定义特殊位变量标识该变量的某一位,这种位数据类型的标识符为sbit. 在程序设计时,对于可位寻址对象,既可以按字节寻址也可以按位寻址的变量,其存储类型只能是bdata. int bdata a; char bdata b[4]; 然后可以使用sbit关键字定义其中可独立寻址访问的位变量: sbit a0=a^0; sbit a12=a^12; sbit b03=b[0]^3; sbit b36=b[3]^6; ㈢ C51的数据类型 基本数据类型: ㈡ C51的程序结构 与一般C语言的结构相同,以main()函数为程序人口,程序体中包含若干语句还可以包含若干函数。 位型 字符型 整型 长整型 浮点型 bit char int long int float 1位 1字节 2字节 4字节 4字节 构造类型:数组、结构体、共用体、枚举 指针类型(精华) (1)字符型:char、 unsigned char; (2)整型: int、 unsigned int、 long、unsigned long; (3)浮点与双精度型: float、 double; (4)C51中扩展的类型:bit、 sfr、 sfr16、 sbit (5)结构体、指针等 bit:位类型  如:bit run_flag; sfr:特殊功能寄存器类型, 如 sfr P0=0x80;(0x80为地址) sfr16:16位特殊功能寄存器类型,如 sfr16 DPTR=0x82;(即DPTR) sbit:特殊功能寄存器位类型    如 sbit EINT=0xAF; (0xAF为位地址。即EA) ㈢ C51的数据类型 ㈣ C51数据的存储类型 程序存储器(64K),用MOVC @A+DPTR指令; code 外部数据存储器(64K),用MOVX @DPTR指令; xdata 分页访问外部数据存储器(256字节),用MOVX @Ri指令访问; pdata 间接访问内部数据存储器(256字节),允许访问全部内部数据区; idata 可位寻址内部数据存储器(16字节),允许位与字节混合访问; bdata 直接访问内部数据存储器(128字节)访问速度最快 data 说明 存储类型 定义格式:[存储种类] [存储类型] 数据类型 变量名; 也可写为:[存储种类] 数据类型 [存储类型] 变量名; 存储种类有:静态变量(static)和动态变量 (auto 缺省) 存储类型有:data、idata、bdata;xdata、pdata和 code。 (五)变量的定义方法 #define uchar unsigned char uchar data a1;/*字符变量a1定位在8051的片内数据存储区中*/ bit bdata flag;/*位变量flag定位在8051的片内数据存储区中的可 位寻址区*/ float idata x;/*浮点

文档评论(0)

cxiongxchunj + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档