- 1、本文档共68页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
【学习目标】
???熟记C51的关键字和数据类型,熟练应用C51的运算符和表达式;
???掌握C语言的程序结构,中断服务程序编写方法,绝对地址访问方法;
???理解变量的存储种类和存储类型,理解中断服务程序与调用子程序的区别;
???熟悉C51程序设计及应用技巧,了解C语言与汇编语言混合编程的方法。;
1.C51程序结构
汇编语言虽然有执行效率高的优点,但其可读性和可移植性差,编程效率低。这些都使它的编程和维护极不方便,从而导致了整个系统的可靠性也较差。而使用C语言进行??片机应用系统的开发,有着汇编语言编程不可比拟的优势。 ; C语言程序采用函数结构,每个C语言程序由一个或多个函数组成,在这些函数中至少应包含一个主函数main(),也可以包含一个main()函数和若干个其它的功能函数。不管main()函数放于何处,程序总是从main()函数开始执行,执行到main()函数结束则结束。在main()函数中调用其它函数,其它函数也可以相互调用,但main()函数只能调用其它的功能函数,而不能被其它的函数所调用。
功能函数可以是C语言编译器提供的库函数,也可以是由用户定义的自定义函数。在编制C程序时,程序的开始部分一般是预处理命令、函数说明和变量定义等。; C51的语法规定、程序结构及程序设计方法都与标准的C语言程序设计相同,但C51程序与标准的C程序在以下几个方面不一样:
(1)C51中定义的库函数和标准C语言定义的库函数不同。标准的C语言定义的库函数是按通用微型计算机来定义的,而C51中的库函数是按MCS-51单片机相应情况来定义的;
(2)C51中的数据类型与标准C的数据类型也有一定的区别,在C51中还增加了几种针对MCS-51单片机特有的数据类型;;(3)C51变量的存储模式与标准C中变量的存储模式不一样,C51中变量的存储模式是与MCS-51单片机的存储器紧密相关;
(4)C51与标准C的输入输出处理不一样,C51中的输入输出是通过MCS-51串行口来完成的,输入输出指令执行前必须要对串行口进行初始化;
(5)C51与标准C在函数使用方面也有一定的区别,C51中有专门的中断函数。; 用C语言编写MCS-51单片机程序与用汇编语言编写MCS–51单片机程序不一样。
用汇编语言编写MCS–51单片机程序必须要考虑其存储器结构,尤其必须考虑其片内数据存储器与特殊功能寄存器的使用以及按实际地址处理端口数据。
用C语言编写的MCS–51单片机应用程序,则不用像汇编语言那样须具体组织、分配存储器资源和处理端口数据,但在C语言编程中,对数据类型与变量的定义,必须要与单片机的存储结构相关联,否则编译器不能正确地映射定位。 ; 现在支持MCS-51单片机的C语言编译器有很多种,如American Automation、Avocet、BSO/TASKING、DUNFIELD SHAREWARE、KEIL/Franklin等。各种编译器的基本情况相同,但具体处理时有一定的区别,其中KEIL/Franklin以它的代码紧凑和使用方便等特点优于其他编译器,使用特别广泛。;4.2 C51语言的基本语法 ;标识符用来标识源程序中某个对象的名字,这些对象可以是语句、数据类型、函数、变量、数组等。
C语言是区分大小写的一种高级语言,如果要定义一个变量,可以写作“a”,如果程序中有“A”,那么这两个是完全不同定义的标识符。
标识符是由字母、数字和下划线等组成的字符串,应该注意的是第一个字符必须是字母或下划线。
关键字则是编程语言保留的特殊标识符,它们具有固定名称和含义,在程序编写中不允许将关键字另作他用。C51中的关键字除了有ANSI C标准的32个关键字外,还根据C51单片机的特点扩展了相关的关键字。 ;表4.1 C51编译器的扩展关键字; C51 的数据类型分为基本数据类型和组合数据类型,情况与标准C中的数据类型基本相同,但其中char型与short型相同,float型与double型相同,另外,C51中还有专门针对于MCS-51单片机的特殊功能寄存器型和位类型。 ;数 据 类 型;1.字符型char
有signed char和unsigned char之分,默认为signed char。它们的长度均为一个字节,用于存放一个单字节的数据。
对于signed char,它用于定义带符号字节数据,其字节的最高位为符号位,“0”表示正数,“1”表示负数,补码表示,所能表示的数值范围是-128~+127;
对于unsigned char,它用于定义无符号字节数据或字符,可以存放一个字节的无符号数,其取值范围为0~255。unsigned char可以用来存放无符号
文档评论(0)