您好, 访客   登录/注册

C51单片机的开发与应用

来源:用户上传      作者: 高铭泽

  摘 要: 首先介绍C51系列单片机的发展及应用情况,其次着重介绍目前主流的C51开发环境:KEIL C51,继而引出实际开发单片机所需的一般步骤,再者列举目前常见的单片机的应用,最后附上C51的指令集,以便查找。
  关键词: C51单片机;KEIL C51;C51的开发;指令集
  中图分类号:TP368.1 文献标识码:A 文章编号:1671-7597(2011)1210061-02
  1 概要
  单片机是由芯片内只有CPU的专用处理器发展而来。最早的设计理念是通过将大量外围设备和CPU集成在一个芯片中,使计算机系统更小,更容易集成在复杂的且对体积要求严格的控制设备当中。
  早期的单片机都是4位或8位的。其中最成功的是intel的8031,因为简单可靠而性能不错获得了很大的好评。此后在8031基础上发展出了MCS51系列单片机系统,该系列是单片机中最成功的,基于这一系统的单片机系统直到现在还在广泛使用。90年代后随着电子产品的迅速发展,单片机技术得到了巨大的提高。传统的8位单片机的性能得到了飞速提高,同时也出现了高端的32位单片机,其主频已超过300MHz。而且,单片机很便宜,从几元到几十元不等。物美而价廉是单片机应用如此广泛的先决条件。
  2 C51的开发环境
  KEIL C51是美国KEIL Software公司出品的51系列兼容单片机C语言软件开发系统,KEIL提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部分组合在一起。如果使用C语言编程,那么KEIL就是最佳选择,即使不使用C语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会令编程事半功倍。
  KEIL C51的优势主要体现在:其一,其生成的目标代码效率非常高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。其二,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。用过汇编语言后再使用C来开发,体会更加深刻。KEIL C51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面,符合使用习惯。
  在单片机程序开发中,KEIL Software公司推出的Keil uVision系列软件是最为经典的单片机软件集成开发环境。现仅以Keil uVision3为例作简要介绍,具体使用方法可参考本文参考文献[1]。
  Keil uVision3是一个非常优秀的编译器,得到广大单片机设计者的广泛使用。其主要特点如下:
  具有windows风格的可视化操作界面,使用十分方便。
  支持汇编语言、C51语言及混合编程等多种方式的单片机设计。
  集成了非常全面的单片机支持,能够完成51系列单片机及和51系列兼容的绝大部分类型的单片机的程序设计和仿真。
  集成了丰富的额库函数,以及完善的编译链接工具。
  提供了并口、串口、A/D、D/A、定时器/计时器及中断等资源的硬件仿真能力,能够帮助用户模拟实际硬件的执行效果。
  可以与多款外部仿真器联合使用,提供了强大的在线仿真调试能力。
  内嵌RTX-51 Tiny和RTX-51 FULL内核,提供了简单而强大的实时多任务操作系统支持。
  在一个开发界面中支持多个项目的程序设计。
  支持多级代码优化,最大限度地帮助用户精简代码体积。
  由于Keil uVision具有最广泛的用户群,因此相应的代码资源非常丰富,读者可以轻松的找到各类编程资源以加速学习和开发过程。
  最新的ARM开发工具RealVIEW MDK依然采用了Keil uVision3的开发环境和界面,给用户的升级带来极大的方便。
  Keil uVision3相对于其他的开发环境的另一大特色是其对计算机的硬件和软件配置的要求很低,其主要要求为:内存至少16MB;硬盘空间剩余至少50MB;Windows 95或者后续的操作系统。现在的PC的系统配置都远远超过这个基本要求。
  3 C51的一般开发步骤
  C51的开发一般需要的过程可主要分为以下3个步骤:
  第一步:通过软件编译平台编写试验程序。
  最常用的是KEIL软件平台。学习编写源程序有两个重点:其一是学会在KEIL编辑器中编写源程序,一般使用C语言编写,就如使用记事本软件编辑文字一样。其二是学会把写好的源程序通过KEIL软件平台编译成为单片机可以读懂的由二进制编码的机器码。为了简化,通常是生成16进制的.HEX或者.BIN文件。因为高级语言是为了方便程序编写者编辑程序而出现的语言,并不能直接被机器读懂。所以需要把源程序通过编译器编译成最终二进制编码的.HEX或者.BIN文件。在这里,编译平台充当的是一个语言翻译官的角色。
  第二步:使用编程器(亦称为烧写器)将程序导入单片机中。编程器的作用是把我们编译好的机器码文件写入到单片机的程序存储器中,该过程已被称为程序烧写。这个设备的作用就好比我们给一个没有记忆的人灌输记忆。编程器和单片机可以支持的文件是16进制的,文件属性一般为.HEX或者.BIN。编程器只是一种写入设备。而源程序则是我们在KEIL的编辑器中编辑的。
  第三步:制作或者购买一个实验板。
  它的作用是完成最终的硬件驱动效果验证。这就好比把一个已经灌输了我们设计思想的单片机连上躯体和四肢。看看这个完整的、已经具备了“头脑+思想+四肢”的设备是不是能按照设想的方式正常工作。如果能或工作方式不一致,就说明我们给他设计的“思想”可能存在问题,即程序可能存在问题。此时就需要用编程器中的“擦除”操作给单片机“洗脑”,并且返回编辑器修改程序,然后再次写入单片机和验证结果。
  除此之外,有时还需要用到仿真器。其作用是调试我们的程序。例如,我们的程序有100行,假设代表了10个驱动硬件的动作。使用仿真器可以让这10个动作依次执行,同时能够观察到在执行这10个动作的过程中单片机内部的各单元的状态。也就是说,可以细致的分析一下整个程序在硬件中的具体工作过程。这样我们就可以了解程序中是不是有问题存在。
  仿真分为硬件仿真和软件仿真两种。软件仿真是完全虚拟的,比较抽象,初学者理解起来比较困难。硬件仿真方面,如果硬件仿真器连接了目标设备,就可以看到驱动硬件的效果,还是比较实用的。
  4 C51系列单片机的应用
  单片机是世界上数量最多的计算机。单片机具有体积小、功耗低、控制功能强、扩展灵活、微型化和使用方便等优点,因此现代人类生活中所用的几乎每件电子和机械产品中都会集成有单片机。大至导弹的导航装置,飞机上的各种仪表,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,小至广泛使用的各种智能IC卡,民用豪华轿车的安全保障系统,录像机、摄像机、全自动洗衣机的控制以及程控玩具、电子宠物等等,这些都离不开单片机。更不用说自动控制领域的机器人、智能仪表、医疗器械以及各种智能机械了。现对C51系列单片机的各种应用作大致分类:
  4.1 在智能仪器仪表上的应用
  C51系列单片机与不同类型的传感器相结合,可实现诸如电压、功率、频率、湿度、温度、流量、速度、厚度、角度、长度、硬度、元素、压力等各种物理量的测量。采用单片机控制可使得仪器仪表实现数字化、智能化、微型化,而且功能比起采用电子或数字电路还要更加强大。如各种精密的测量设备(功率计,示波器,各种分析仪等)。

  4.2 在计算机网络和通信领域中的应用
  现在,C51系列单片机普遍具备通信接口,比如USB接口,可以很方便地与计算机进行数据通信,为在计算机网络和通信设备间的应用提供了极好的基础,另外,采用MAX232实现MCS-51单片机与PC机的通信,具体内容可参考本文参考文献[4]。都实现了单片机智能控制。从手机、电话机、小型程控交换机、楼宇自动通信呼叫系统、列车无线通信、到日常工作中随处可见的移动电话,集群移动通信,无线电对讲机等,都能见到单片机的身影。
  4.3 在工业控制中的应用
  C51系列单片机可以用在构成形式多样的控制系统、数据采集系统。例如工厂流水线的智能化管理、电梯智能化控制、各种报警系统,与计算机联网构成二级控制系统等。
  4.4 在汽车设备领域中的应用
  各种型号的单片机在汽车电子中的应用非常广泛。例如汽车中的发动机控制器,基于CAN总线的汽车发动机智能电子控制器,GPS导航系统,abs防抱死系统,制动系统等等。
  4.5 在家用电器中的应用
  可以这样说,现在的家用电器基本上都采用了单片机控制,从电饭煲、洗衣机、电冰箱、空调机、彩电、其他音响视频器材、再到电子秤量设备,五花八门,无所不在。
  4.6 在医用设备领域中的应用
  C51系列单片机在医用设备中的用途亦相当广泛,例如医用呼吸机,各种分析仪,监护仪,超声诊断设备及病床呼叫系统等等。特别地,测量心电、脑电、肌电、胃电等微弱信号的医疗仪器也都采用了单片机进行控制。
  另外,某些专用单片机设计用于实现特定功能,从而在各种电路中进行模块化应用,而不要求使用人员了解其内部结构。如音乐集成单片机,看似简单的功能,微缩在纯电子芯片中(有别于磁带机的原理),就需要复杂的类似于计算机的原理。如:音乐信号以数字的形式存于存储器中(类似于ROM),由微控制器读出,转化为模拟音乐电信号(类似于声卡)。
  在大型电路中,这种模块化应用极大地缩小了体积,简化了电路,降低了损坏、错误率,也方便于更换。集成度的不断提高,才能使现在的各种设备越做越小。
  
  参考文献:
  [1]陆彬,21天学通51单片机开发(第2版)[M].电子工业出版社,2011.09.
  [2]万福君主编,MCS-51单片机原理、系统设计与应用[M].清华大学出版社,2008.06.
  [3]马忠梅,单片机的C语言应用程序设计(第三版)[M].北京航空航天大学出版社,2003.11.
  [4]刘艳玲,采用MAX232实现MCS51单片机与PC机的通信[J].天津理工学院学报,1999.
  [5]吴金戌,8051单片机实践与应用[M].清华大学出版社,2002.
  
  作者简介:
  高铭泽(1990-),武汉大学本科在读,研究集成电路设计方向。


转载注明来源:https://www.xzbu.com/8/view-47788.htm