书签 分享 收藏 举报 版权申诉 / 357

类型《单片机原理及应用》课件第8章.ppt

  • 文档编号:2347830
  • 上传时间:2024-11-29
  • 格式:PPT
  • 页数:357
  • 大小:2.80MB
  • 配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    单片机原理及应用 单片机 原理 应用 课件
    资源描述:

    1、第第8章单片机的章单片机的C语言应用程序设计语言应用程序设计8.1 C语言与语言与51单片机单片机8.2 C51数据类型及其在数据类型及其在51单片机中的存储方式单片机中的存储方式8.3 C51数据的存储类型与数据的存储类型与51单片机存储方式单片机存储方式8.4 51单片机特殊功能寄存器的单片机特殊功能寄存器的C51定义定义8.5 51单片机并行接口的单片机并行接口的C51定义定义8.6 位变量的位变量的C51定义定义8.7 C51的指针的指针8.8 模块化程序开发过程模块化程序开发过程8.9 51单片机内部资源的单片机内部资源的C语言编程语言编程8.10 51单片机片外扩展的单片机片外扩展

    2、的C语言编程语言编程8.11 频率测量的频率测量的C语言编程语言编程8.12 51单片机间通信的单片机间通信的C语言编程语言编程8.13 键盘和数码显示人机交互的键盘和数码显示人机交互的C语言编程语言编程习题八习题八在单片机应用系统开发中,应用程序设计是整个系统设计的主要工作,直接决定着应用系统开发周期的长短。过去,单片机应用程序设计都采用汇编语言,采用汇编语言编写应用程序,可直接操纵系统的硬件资源,从而编写出高质量的程序代码。但是,采用汇编语言编写比较复杂的数值计算程序就感觉非常困难,又因汇编语言源程序的可读性远不如高级语言源程序,若要修改程序的功能,得花费心思重新阅读程序,是很费劲的。若从

    3、系统开发的时间来看,采用汇编语言进行单片机应用程序设计的效率不是很高。随着计算机应用技术的发展,软件开发工具日益丰富,出现了众多支持高级语言编程的单片机开发工具。利用C语言设计单片机应用程序已成为单片机应用系统开发设计的一种趋势。使用C语言编程更符合人的思维方式和思考习惯,编写代码效率高、维护方便。采用C语言易于开发复杂的单片机应用程序,有利于单片机产品的重新选型和应用程序的移植,大大提高了单片机应用程序的开发速度。现在,单片机仿真器普遍支持C语言程序调试,为使用C语言进行单片机程序开发提供了便利。51单片机、PIC单片机等常见单片机产品的软件设计,一般都可以使用C语言实现。世界上许多软件公司

    4、都致力于51系列单片机高级语言编译器的开发研究,使用户得以采用高级语言进行编程。本章从单片机应用特点的角度出发,结合Keil公司的C51编译器,介绍51 单片机C语言应用程序开发设计的技术方法。8.1C语言与语言与51单片机单片机8.1.151单片机单片机C语言编程简介语言编程简介C语言是高级程序设计语言。用高级语言编程时,不必太多考虑计算机的硬件特性和接口结构。事实上,任何高级语言程序最终必须要转换成计算机可识别、并能执行的机器指令代码,定位于存储器。程序中的数据也必须以一定的存储结构定位于存储器中。这种转换、定位是由高级语言编译器来实现的。在高级语言程序中,对不同类型数据的存储及引用是通过

    5、不同类型的变量来实现的。也可以说,高级语言的变量就代表存储单元,变量的类型结构就表示了数据的存储、引用结构。用汇编语言设计51单片机应用程序时,必须考虑存储器结构,尤其要考虑其片内数据存储器与特殊功能寄存器的正确、合理使用以及按实际地址处理端口数据。尽管采用C语言编写51单片机应用程序时,不像用汇编语言那样具体地组织、分配存储器资源和处理端口数据,甚至可以在对单片机内部结构和存储器结构不太熟悉、对处理器的指令集没有深入了解的情况下编写应用程序,但要使编译器产生充分利用单片机资源、执行效率高、适合51单片机目标硬件的程序代码,对数据类型和变量的定义就必须与单片机的存储结构相关联,否则编译器就不能

    6、正确地映射定位。同时,在C语言编程中,必须注意到单片机内部资源的宝贵性和控制实时性的应用特点,考虑产生的可执行代码运行时所占用的系统资源。因此,使用C语言编写单片机应用程序和编写标准的C语言程序的主要不同之处就在于它是根据单片机存储结构及内部资源定义相应的C语言数据和变量,而其他的语法规定、程序结构及程序设计方法都与标准的C语言程序相似。从这个角度来说,没有对单片机硬件资源、体系结构和指令系统的充分了解,就不能设计出非常实用、高质量的单片机应用程序。所以,在以后几节主要介绍使用C语言设计单片机应用程序时如何定义与单片机相对应的数据类型和变量,与标准C语言相同的部分就不再赘述。用C语言编写的应用

    7、程序必须经过单片机C语言编译器(简称C51)转换成51 单片机可执行的代码程序。所以,C语言编译器是C语言应用程序开发设计中必不可少的开发工具,C语言编译器的好坏直接影响到生成代码的效率、大小和可靠性。8.1.2C51开发工具与单片机开发工具与单片机C语言编译器语言编译器针对51 单片机,从1985年开始就有C语言编译器,简称C51。为帮助读者了解常见C51编译器的特点,下面简要介绍各公司的C51开发工具。American Automation:该编译器通过#asm和endasm预处理选择支持汇编语言。此编译器连接速度慢,要求汇编中间环节支持。IAR:瑞典的IAR是支持分组切换(Bank Sw

    8、itch)的编译器,它和ANSI兼容,只是需要一个复杂连接程序控制文件的支持,程序才能运行。Avocet:该软件包包括编译器、汇编器、连接器、库MAKE工具和编辑器,集成环境类似于Borland C和Turbo C。C编译器产生一个汇编语言文件,然后再用汇编器汇编,其编译速度较快。Bo/Tasking:这是一家专业开发和销售嵌入式系统软件工具的公司,一直为Intel、LSI Motorola、Philips、Simens和Texas Instruments编写嵌入式系统的配件软件工具。它生产基于Windows的集成开发环境软件、调试器和交叉模拟器,支持鼠标器,界面友好,软件格式符合Intel

    9、OMF51和Intel Hex标准。它的汇编器和Intel汇编器兼容,其C编译器支持内置函数,允许使用51指令,如测试并清除(JBC)和十进制调整(DAA)。软件工具包括ASM51、PL/M51、C51和CrossView51调试器。Dunfield Shareware:是非专业的软件包,不支持float、long或结构等数据结构,不生成重定位代码。Keil:德国的Keil公司在代码生成方面处于领先地位,可产生最少的代码。它支持浮点和长整数、重入和递归,若使用单片模式,则它是最好的选择。Keil公司的C51编译器V4.0以下版本的产品曾通过美国Franklin公司在市场上销售多年。近年来,Ke

    10、il公司推出了基于Windows的C51集成开发环境。Keil公司的集成开发环境(IDE)主要有两个版本:UV1和UV2。C51 V7版本(Cx51)是目前最高效、灵活的8051开发平台,它支持所有8051的衍生产品,同时支持第三方开发工具。8.1.3Keil 80C51开发工具开发工具Keil 软件公司的C51 单片机软件开发工具已用于众多的8051 及其派生器件实现嵌入式应用,可以编译C源程序、汇编源程序、连接和定位目标文件及库,创建HEX文件以及调试目标程序。开发工具清单如下:Vision2 项目管理器和编辑器:一个集成开发环境,它将项目管理、源代码编辑、连接和程序调试等组合在一个功能强

    11、大的环境中。C51 国际标准优化C交叉编译器:从C源代码产生可重定位的目标模块。A51 宏汇编器:从8051汇编源代码产生目标模块。BL51 连接器/定位器:组合由C51和A51产生的可重定位的目标模块,生成绝对目标模块。LIB51 库管理器:从目标模块生成连接器可以使用的库文件。OH51 Object HEX 转换器:从绝对目标模块生成Intel HEX 文件。RTX51实时操作系统:简化了复杂的实时应用软件项目的设计。这套工具是为专业软件开发者设计的,但任何水平的编程者都可使用。Keil 软件公司将这些工具集成在一个套件内,软件和手册的最新修改和订正都在RELEASE.TXT文件中说明,这

    12、些文件在KEILUV2 和KEILC51HLP文件夹中。Keil公司发布两种类型的套件:测试版套件和产品套件。测试版套件包括8051工具软件的测试版、用户手册。测试版可以生成目标代码在2 KB范围以内的应用。这个套件的主要功能是评估8051工具的有效性,并产生小的目标应用程序。产品套件包括8051工具软件的无限制版、全套手册系列(包括用户手册)。这个产品套件有1年的免费技术支持以及产品升级(软件升级时可登录寻求帮助)。Keil 软件公司提供一流的8051系列开发工具,将软件开发工具绑定到不同的套件或工具包中。下面描述每个套件及其内容。PK51专业开发套件:该套件提供了所有工具,适合为专业开发人

    13、员建立和调试8051系列单片机的复杂嵌入式应用。专业开发套件可针对具体的8051产品进行配置使用。DK51开发套件:该套件是PK51的精简版,不包括RTX51 Tiny实时操作系统。开发套件可针对8051及其所有派生产品进行配置使用。CA51编译器套件:该套件是只需要C编译器而不需要调试系统的开发者的最佳选择,该套件只包含Vision2 IDE集成开发环境,不提供Vision2调试器的功能。这个套件包括了要建立嵌入式应用的所有工具软件,可针对8051及其所有派生产品进行配置使用。A51汇编器套件:该套件包括一个汇编器和所有创建嵌入式应用的工具。它可针对8051及其所有派生产品进行配置使用。RT

    14、X51实时操作系统(RF51):该系统是一个用于8051系列单片机的实时内核程序。RTX 51 Full 实时内核提供RTX51 Tiny的所有功能和一些扩展功能,并且包括CAN 通信协议接口子程序。表8.1显示了每种套件所包含的开发工具。表表8.1 Keil 8051开发套件包含的开发工具比较表开发套件包含的开发工具比较表8.1.4Keil C51对标准对标准C语言的扩展语言的扩展如前所述,C语言是一门应用非常普遍的高级程序设计语言,所以,本章主要说明51系列单片机C语言编程(C51)的特点、C51编程和标准C语言编程的区别,即C51对C语言的扩展。C51的特色主要体现在以下几个方面:(1)

    15、C51虽然继承了标准C语言的绝大部分特征,而且基本用法相同,但它针对51系列单片机特定的硬件结构有所扩展,如关键字idata、sbit等。(2)C51的使用必须注重对51系列单片机系统资源的理解和掌握,因为相对于通用微型计算机,单片机的系统资源非常宝贵,开发人员对单片机的ROM、RAM等要充分、合理利用。(3)要考虑应用程序的代码质量,不要对系统造成过重的负担,如代码优化等问题。Keil C51编译器是符合ANSI 标准的C 编译器。Keil C51 语言扩展支持51 单片机的应用包括:数据类型;存储器类型;存储器模型;指针;重入函数;中断函数;实时操作系统;PL/M 和A51 源文件接口。本

    16、章将介绍其中的主要扩展功能。8.2C51数据类型及其在数据类型及其在51单片机中的存储方式单片机中的存储方式8.2.1Keil C51中的基本数据类型中的基本数据类型Keil C51支持的基本数据类型有位型(bit)、无符号字符型(unsigned char)、有符号字符型(signed char)、无符号整型(unsigned int)、有符号整型(signed int)、无符号长整型(unsigned long)、有符号长整型(signed long)和浮点型(float)等。Keil C51具体支持的基本数据类型及其长度、数域如表8.2所示。除了这些类型外,还可以将基本类型组合成复杂数据结构。表表 8.2 C51 的基本数据类型及其长度的基本数据类型及其长度通过上表可以看出:(1)C51具有标准C语言的标准数据类型。另外,为了充分利用51单片机的硬件结构,还扩充了位变量(bit)、可寻址位(sbit)、特殊功能寄存器(sfr)和16位特殊功能寄存器(sfr16)数据类型。(2)由于51单片机是8位机,因而不存在字节校准问题,这意味着数据结构成员是顺序放置的。扩充的数据类型位变量(

    展开阅读全文
    提示  兔兜文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:《单片机原理及应用》课件第8章.ppt
    链接地址:https://www.tudouwenku.com/doc/2347830.html

    若发现您的权益受到侵害,请立即联系客服,我们会尽快为您处理!

    copyright@2008-2024 兔兜文库 版权所有

    鲁公网安备37072502000182号  ICP备案号:鲁ICP备2021021588号-1  百度保障

    兔兜文库
    收起
    展开