单片机的C语言编程简介简介.ppt

  1. 1、本文档共28页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
单片机的C语言编程简介简介

中国计量学院 单片机的C语言编程简介 C语言编程简介 C语言是一种源于UNIX操作系统的结构化高级程序语言。它不仅具有高级语言的特点,而且具备汇编语言的功能。与汇编相比,也有其优点和不足。 一、 C语言编程的优点 (1)不需要了解微处理器的具体指令系统,仅仅要求对处理器的存储器有初步了解 (2)使用C语言编程,不必考虑较多的诸如寄存器分配、存储器寻址方式等细节问题; (3)C语言具有较强的可读性; (4)C语言的编程和调试时间大大小于汇编语言,从而可以提高系统的开发时间; (5)C语言具有强大的移植性。几乎所有的单片机,都支持C语言编程。 二、 C语言编程的缺点 (1)C语言程序生成的目标代码占用空间大; (2)不能够准确计算程序的运行时间; (3)对一些特殊功能的操作不易实现。 三、C语言的应用环境 C语言编程适用于开发周期较短、系统软件复杂和庞大的情况。同时对于不断改进、更新的系统以及团队共同开发的系统,更适合C语言编程。 四、汇编语言是采用了容易识别和记忆的英文缩写标识符直接对硬件操作。其同样需要编程者将每一步具体的操作用命令的形式写出来。汇编程序通常由三部分组成:指令、伪指令和宏指令。汇编程序的每一句指令只能对应实际操作过程中的一个动作(例如移动、自增、IO口置位等)。 五、汇编语言的优点 (1)汇编语言所能完成的操作不是一般高级语言所能实现的(比如操作系统的引导程序); (2)能够直接访问与硬件相关的存储器或 I/O 端口; (3)能够不受编译器的限制,对生成的二进制代码进行完全的控制; (4)能够对关键代码进行更准确的控制; (5)能够根据特定的应用对代码做最佳的优化,提高运行速度; (6)能够最大限度地发挥硬件的功能。 六、汇编语言的应用环境 汇编语言适用于实时系统、系统的引导程序、中断处理程序(ARM、DSP等处理器)、通讯程序和对时序要求严格的系统中。 小结 通过以上的介绍,读者可以选择适合的语言来编程。当然,系统的编程语言也可以同时选择C语言和汇编语言,此情况需要混合编程的相关知识,在此不在介绍。 C51数据的定义与操作 一.变量存储类型的定义 存储类型 与存储空间的对应关系 data 直接寻址的8051片内数据存储区 bdata 可位寻址的8051片内数据存储区 idata 间接寻址的8051片内数据存储区,可 访问片内全部RAM地址空间 pdata 分页寻址的片外数据存储区,寻址空 间256B xdata 片外数据存储区,寻址空间64kB code 程序代码存储区,寻址空间64kB 以下为各种存储类型的变量定义举例: char data sum 表示字符变量sum被定义在8051片内的数据存储区中。 bit bdata bflag 表示位变量bflag被定义在8051片内的数据存储区的位寻址区中。 char idata count 表示字符变量count被定义在8051片内数据存储区中,而且只能以间接寻址方式访问。 int pdata val表示整数变量val被定义在片外数据存储区中,它的高字节地址保存在P2口中。寻址空间256字节。 int xdata range表示整数range被定义在片外数据存储区中,其寻址空间为64K字节。 int code str[10]表示整型数组存储在程序存储区。 二.特殊功能寄存器的定义 8051单片机片内由21个特殊功能寄存器(SFR),它们分布在片内RAM区的高128字节中(80H~0FFH),因此对其操作,只能用直接寻址方式。 定义语法为: sfr 寄存器名 = 寄存器地址 例如: sfr TMOD = 0x89 表示定义TMOD为定时器模式寄存器,其在单片机片内数据存储区89H地址。 对于位的定义,采用三种方法定义: 1.方法一 sfrname ^ constant 其中sfrname是已定义的SFR的名字。constant为基地址上的特殊位的位置,其取值为是0~7。 例如对中断使能寄存器IE的EA,ES位定义: sfr IE = 0xA8; // 定义IE寄存器 sbit EA =IE^7; sbit ES =IE^4; 2.方法二 iconstant ^ constant iconstant作为基地址,该值必须在0x80~0xFF之间(能被8整除),constant为基地址上的特殊位的位置,其取值为是0~7。 例如对中断使能寄存器IE的EA,ES位定义: sbit EA =0xA8^7; sbit ES =0xA8^4; 3.方法三 constant 这种方法直接将位的

文档评论(0)

宝贝计划 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档