电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

单片机幻灯片-第14章--c语言程序设计

142页
  • 卖家[上传人]:F****n
  • 文档编号:88146036
  • 上传时间:2019-04-19
  • 文档格式:PPT
  • 文档大小:735KB
  • / 142 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、1,第14章 目录 14.1 编程语言Keil C51简介 14.1.1 Keil C51简介 14.1.2 Keil C51的开发环境 14.1.3 C51与标准C的主要区别 14.2 C51语言程序设计基础 14.2.1 C51语言中的数据 14.2.2 C51的位变量定义 14.2.3 一个简单的C51程序 14.2.4 C51的运算符 14.2.5 C51的分支与循环程序结构,2,14.2.6 AT89S51不同存储区的C51定义 14.2.7 C51中断服务函数的定义 14.3 C51的程序设计举例 14.3.1 中断程序的编写 14.3.2 定时器程序的编写 14.3.3 串行口方式0应用程序的编写 14.3.4 独立式键盘查询方式 14.3.5 行列式键盘查询方式 14.3.6 DAC0832应用程序的编写,3,14.3.7 ADC0809应用程序的编写 14.4 C51的集成开发环境Keil Vision3介绍 14.4.1 集成开发环境Keil Vision3简介 14.4.2 Keil Vision3软件的安装、启动和运行 14.4.3 C51程序的开发流程 14.

      2、5 C51与汇编语言的混合编程 14.5.1 C51与MCS-51汇编语言的比较 14.5.2 C51与汇编语言混合编程的方法,4,内容概要 本章在假定读者已掌握标准C语言前提下,初步介绍如何使用C51来编写AT89C51单片机的应用程序。 C51是在标准C的基础上,根据单片机存储器硬件结构及内部资源,扩展了相应的数据类型和变量,而C51在语法规定、程序结构与设计方法上,都与标准C相同。 本章重点介绍C51对标准C所扩展的部分,并通过一些例程来介绍C51的程序设计思想。最后还对C51的集成开发环境Keil Vision3以及C51与汇编语言的混合编程作以介绍。,5,14.1 编程语言Keil C51简介 目前51系列单片机编程的C语言都采用Keil C51(简称C51),Keil C51是在标准C语言基础上发展起来的。 14.1.1 Keil C51简介 C语言是美国国家标准协会(ANSI)制定的编程语言标准,1987年ANSI公布87 ANSI C,即标准C语言。 Keil C51语言是在ANSI C的基础上针对51单片机的硬件特点进行的扩展,并向51单片机上移植,经过多年努力,C5

      3、1语言已经成为公认的高效、简洁而又贴近51单片机硬件的实用高级编程语言。,6,目前大多数的51单片机用户都在使用C51语言来进行程序设计。 用C51进行单片机软件开发,有如下优点: (1)可读性好。C51语言程序比汇编语言程序的可读性好,因而编程效率高,程序便于修改。 (2)模块化开发与资源共享。用C51开发出来的程序模块可以不经修改,直接被其他项目所用,这使得开发者能够很好地利用已有的大量的标准C程序资源与丰富的库函数,减少重复劳动。,7,(3)可移植性好。为某种型号单片机开发的C语言程序,只需将与硬件相关之处和编译连接的参数进行适当修改,就可以方便地移植到其他型号的单片机上。例如,为51单片机编写的程序通过改写头文件以及少量的程序行,就可以方便地移植到PIC单片机上。 (4)代码效率高。当前较好的C51语言编译系统编译出来的代码效率只比直接使用汇编语言低20%左右,如果使用优化编译选项,效果会更好。,8,14.1.2 Keil C51的开发环境 Keil C51是德国Keil software公司开发的用于51系列单片机的C51语言开发软件。Keil C51在兼容ANSI C的基础

      4、上,又增加很多与51单片机硬件相关的编译特性,使得开发51系列单片机程序更为方便和快捷,程序代码运行速度快,所需存储器空间小,完全可以和汇编语言相媲美。它支持众多的MCS-51架构的芯片,同时集编辑、编译、仿真等功能于一体,具有强大的软件调试功能,是众多的单片机应用开发软件中最优秀的软件之一。,9,Keil公司目前已推出V7.0以上版本的C51编译器,为51单片机软件开发提供了全新的C语言环境,同时保留了汇编代码高效、快速的特点。 现在,Keil C51已被完全集成到一个功能强大的全新集成开发环境(IDE)Vision3中,该环境下集成了文件编辑处理、编译链接、项目(Project)管理、窗口、工具引用和仿真软件模拟器以及Monitor51硬件目标调试器等多种功能,这些功能均可在Keil Vision3环境中极为简便地进行操作。,10,本章经常用到Keil C51和Keil Vision3两个术语。Keil C51一般简写为C51,指的是51单片机编程所用的C语言;而Keil Vision3,可简写为Vision3,指的是用于51单片机的C51程序编写、调试的集成开发环境。 Visio

      5、n3内部集成了源程序编辑器,并允许用户在编辑源文件时就可设置程序调试断点,便于在程序调试过程中快速检查和修改程序。此外,Vision3还支持软件模拟仿真(Simulator)和用户目标板调试(Monitor51)两种工作方式。在软件模拟仿真方式下不需任何51单片机及其外围硬件即可完成用户程序仿真调试。,11,在用户目标板调试方式下,利用硬件目标板中的监控程序可以直接调试目标硬件系统,使用户节省购买硬件仿真器的费用。 14.1.3 C51与标准C的主要区别 不同的嵌入式处理器的C编译系统与标准C的不同之处,主要是它们所针对的嵌入式处理器的硬件系统不同。Keil C51的基本语法与标准C相同,但对标准C进行了扩展。 深入理解Keil C51对标准C的扩展部分是掌握Keil C51的关键之一。,12,C51与标准C的主要区别如下: (1)头文件的差异。51系列单片机厂家有多个,它们的差异在于内部资源如定时器、中断、I/O等数量以及功能的不同,而对使用者来说,只需要将相应的功能寄存器的头文件加载在程序内,就可实现所具有的功能。因此,Keil C51系列的头文件集中体现了各系列芯片的不同资源及功

      6、能。 (2)数据类型的不同。51系列单片机包含位操作空间和丰富的位操作指令,因此Keil C51与ANSI C相比又扩展了4种类型,以便能够灵活地进行操作。,13,(3)数据存储类型的不同。C语言最初是为通用计算机设计的,在通用计算机中只有一个程序和数据统一寻址的内存空间,而51系列单片机有片内、外程序存储器,还有片内、外数据存储器。标准C并没有提供这部分存储器的地址范围的定义。此外,对于AT89C51单片机中大量的特殊功能寄存器也没有定义。 (4)标准C语言没有处理单片机中断的定义。 (5)Keil C51与标准C的库函数有较大的不同。 由于标准C的中的部分库函数不适于嵌入式处理器系统,因此被排除在Keil C51之外,如字符屏幕和图形函数。,14,有一些库函数可以继续使用,但这些库函数都必须针对51单片机的硬件特点来作出相应的开发,与标准C库函数的构成与用法有很大的不同。例如库函数printf和scanf,在标准C中,这两个函数通常用于屏幕打印和接收字符,而在Keil C51中,它们主要用于串行口数据的收发。 (6)程序结构的差异。由于51单片机的硬件资源有限,它的编译系统不允许太

      7、多的程序嵌套。其次,标准C所具备的递归特性不被Keil C51支持,在C51中,要使用递归特性,必须用reentrant进行声明才能使用。,15,但是从数据运算操作、程序控制语句以及函数的使用上来说,Keil C51与标准C几乎没有什么明显的差别。如果程序设计者具备了有关标准C的编程基础,只要注意Keil C51与标准C的不同之处,并熟悉AT89S51单片机的硬件结构,就能够较快地掌握Keil C51的编程。,16,14.2 C51语言程序设计基础 本节介绍C51语言程序设计的有关基础知识。 14.2.1 C51语言中的数据 1. 数据类型 Keil C51的基本数据类型如表14-1所示。针对AT89S51单片机的硬件特点,C51在标准C的基础上,扩展了4种数据类型(见表中最后4行)。 注意:扩展的4种数据类型,不能使用指针对它们存取。,17,表14-1 Keil C51支持的数据类型,18,2. C51的扩展数据类型 下面对表14-1中扩展的4种数据类型进行说明。 (1)位变量bit bit的值可以是1(true), 也可以是0(false)。 (2)特殊功能寄存器sfr AT89S

      8、51特殊功能寄存器在片内RAM区的80HFFH之间,“sfr” 数据类型占用一个内存单元。利用它可访问AT89S51内部的所有特殊功能寄存器。 例如:sfr P1=0x90这一语句定义P1口在片内的寄存器,在后面语句中可用“P1=0xff”(使P1的所有引脚输出,19,为高电平)之类的语句来操作特殊功能寄存器。 (3)特殊功能寄存器sfr16 “sfr16”数据类型占用两个内存单元。sfr16和sfr一样用于操作特殊功能寄存器。所不同的是它用于操作占两个字节的特殊功能寄存器。 例如: sfr16 DPTR=0x82语句定义了片内16位数据指针寄存器DPTR,其低8位字节地址为82H。在后面的语句中可以对DPTR进行操作。,20,(4)特殊功能位 sbit sbit 是指AT89S51片内特殊功能寄存器的可寻址位。 例如: sfr PSW=0xd0 ;/*定义PSW寄存器地址为0xd0*/ sbit PSW 2 = 0xd2 ;/*定义OV位为PSW.2*/ 符号“”前面是特殊功能寄存器的名字,“”的后面数字定义特殊功能寄存器可寻址位在寄存器中的位置,取值必须是07。 注意,不要把bit

      9、与sbit混淆。bit用来定义普通的位变量,值只能是二进制的0或1。而sbit定义的是特殊功能,21,寄存器的可寻址位, 其值是可进行位寻址的特殊功能寄存器的位绝对地址,例如PSW寄存器OV位的绝对地址0xd2。 3. 数据的存储类型 C51完全支持51单片机硬件系统的所有部分。在51单片机中,程序存储器与数据存储器是完全分开的,且分为片内和片外两个独立的寻址空间,特殊功能寄存器与片内RAM统一编址,数据存储器与I/O端口统一编址。C51编译器通过将变量、常量定义成不同存储类型的方法将它们定义在不同的存储区中。,22,C51存储类型与AT89S51的实际存储空间的对应关系见表14-2。下面对表14-2作以说明。 (1)片内数据存储器 片内RAM可分为3个区域: data:片内直接寻址区,位于片内RAM的低128字节。 bdata:片内位寻址区,位于片内RAM位寻址区20H2FH。 idata:片内间接寻址区,片内RAM所有地址单元 (00HFFH)。,23,24,(2)片外数据存储器 pdata:片外数据存储器页,一页为256字节。 xdata:片外数据存储器RAM的64KB空间。 (3)片外程序存储器 code:外部程序存储器的64KB空间。 对单片机编程,正确地定义数据类型以及存储类型,是所有编程者在编程前都需要首先考虑的问题。在资源有限的条件下,如何节省存储单元并保证运行效率,是对开发者的一个考验。只有对C51中的各种数据类型以及存储类型非常熟练的掌握,才能运用自如。,25,定义变量类型应考虑如下问题:程序运行时该变量可能的取值范围,是否有负值,绝对值有多大,以及相应需要的存储空间大小。在够用的情况下,尽量选择8位即一个字节的char型,特别是unsiged char。对于51系列这样的定点机而言,浮点类型变量将明显增加运算时间和程序长度,如果可以的话,尽量使用灵活巧妙的算法来避免浮点变量的引入。 定义数据的存储类型通常遵循如下原则:只要条件满足,尽量选择内部直接寻址的存储类型data,然后选择idata即内部间接寻址。对于那些经常使用的变量要使用内,26,部寻址。在内部数据存储器数量有限或不能满足要求的情况下才使用外部数据存储器。选择外部数据存储器可先选择pdata类型,最后选用xdata类型。 需指出,扩展片外存储

      《单片机幻灯片-第14章--c语言程序设计》由会员F****n分享,可在线阅读,更多相关《单片机幻灯片-第14章--c语言程序设计》请在金锄头文库上搜索。

      点击阅读更多内容
    最新标签
    发车时刻表 长途客运 入党志愿书填写模板精品 庆祝建党101周年多体裁诗歌朗诵素材汇编10篇唯一微庆祝 智能家居系统本科论文 心得感悟 雁楠中学 20230513224122 2022 公安主题党日 部编版四年级第三单元综合性学习课件 机关事务中心2022年全面依法治区工作总结及来年工作安排 入党积极分子自我推荐 世界水日ppt 关于构建更高水平的全民健身公共服务体系的意见 空气单元分析 哈里德课件 2022年乡村振兴驻村工作计划 空气教材分析 五年级下册科学教材分析 退役军人事务局季度工作总结 集装箱房合同 2021年财务报表 2022年继续教育公需课 2022年公需课 2022年日历每月一张 名词性从句在写作中的应用 局域网技术与局域网组建 施工网格 薪资体系 运维实施方案 硫酸安全技术 柔韧训练 既有居住建筑节能改造技术规程 建筑工地疫情防控 大型工程技术风险 磷酸二氢钾 2022年小学三年级语文下册教学总结例文 少儿美术-小花 2022年环保倡议书模板六篇 2022年监理辞职报告精选 2022年畅想未来记叙文精品 企业信息化建设与管理课程实验指导书范本 草房子读后感-第1篇 小数乘整数教学PPT课件人教版五年级数学上册 2022年教师个人工作计划范本-工作计划 国学小名士经典诵读电视大赛观后感诵读经典传承美德 医疗质量管理制度 2 2022年小学体育教师学期工作总结 2022年家长会心得体会集合15篇
    关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
    手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
    ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.