- 1、本文档共78页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第4章 4.1 C语言高级编程 4.1.1 C语言的特点 C语言功能丰富,表达能力强,使用灵活方便,应用面广,目标程序效率高,可移植性好,能直接对计算机硬件进行操作。既有高级语言的特点,也具有汇编语言的特点。 语言简洁、紧凑,使用方便、灵活?。 运算符丰富。 数据结构丰富,拥有现代语言的各种数据结构。 可进行结构化程序设计。 可以直接对计算机硬件进行操作。 生成的目标代码质量高,程序执行效率高。 可移植性好。 4.1.2 C语言与MCS-51单片机 汇编语言优点:执行效率高、速度快、与硬件结合紧密;I/O端口操作时,使用汇编语言快捷、直观。 缺点:编程难度大,可读性差,不便于移植,开发周期长。 C语言优点:程序设计相对比较容易,支持多种数据类型,可移植性强,也能够对硬件直接访问,能够按地址方式访问存储器或I/O端口。 故目前有较多的开发者用C语言开发单机应用系统软件。。 4.1.3 C51编译器 C51编译器的作用是将C语言源程序翻译成51系列单片机可执行的代码,并且为程序调试提供必要的符号信息。 目前使用最广泛的是德国Keil公司的Keil μVision C51编译器 Keil C51 编译器在代码生成方面领先,可产生最少的代码。它支持浮点数和长整型、重入和递归。 4.1.5 C51程序结构 C51程序结构与标准的C语言程序结构相同,采用函数结构,一个程序由一个或多个函数组成。 有一个且只有一个为main(?)函数。 在main( )函数中可调用库函数和用户定义的函数。 程序的开始部分一般是预处理命令、函数说明和变量定义等。 预处理命令 #includereg51.h 函数说明 long fun1( ) ; float fun2( ); 变量定义 int x ,y; float z; 主函数 main( ) { … fun1( ); /*调用功能函数 1*/ … fun2( ); /*调用功能函数 2*/ …} 4.2 C51对标准C语言的扩展 4.2.1 存储区域 4.2.1 存储区域 2.内部数据存储区 在C51中可以用以下关键字对变量进行内部存储区的定位。 Data:直接寻址区,内部RAM的低128B,即00H~7FH Idata:间接寻址区,整个RAM区,即00H~0FFH Bdata:可位寻址区,从20H开始的16个可以位寻址的字节,即20H~2FH 4.2.1 存储区域 3.外部数据存储区 C51中,可以用以下关键字对变量进行内部存储区的访问。 xdata:可指定多达64KB的外部直接寻址区,地址范围0000H~0FFFFH pdata:能访问1页(256B)的外部RAM,主要用在紧凑模式(Compact Modle) 4.2.2 C51的数据类型 1.字符型char char有signed char和unsigned char之分,默认为signed char。 2.整型int int有signed int和unsigned int之分,默认为signed int。 3.长整型long long有signed long和unsigned long之分,默认为signed long。 4.浮点型float float型数据的长度为4个字节,包含指数和尾数两部分,最高位为符号位,“1”表示负数,“0”表示正数,其余8位为阶码,最后23位为尾数的有效数位,由于尾数的整数部分隐含为“1”,所以尾数的精度为24位。格式似Pentium CPU 浮点数格式 符号位+8位阶码+1(隐含).23位尾数 4.2.2 C51的数据类型 5.指针型(*) 指针型本身就是一个变量,在这个变量中存放着指向另一个数据的地址。这个指针变量要占用一定的内存单元。对于不同的处理器其长度不一样,在C51中它的长度一般为1~3个字节。 6.特殊功能寄存器型 这是C51扩充的数据类型,用于访问MCS-51单片机中的特殊功能寄存器数据。它分为sfr和sfr16两种类型,其中sfr占一个字节单
文档评论(0)