第一章 51单片机系统概述ppt课件.ppt
1,第1章 单片机系统概述,2,1、单片机简单介绍 1.1 什么是单片机 1.2 单片机的发展概况 1.3 单片机的特点 1.4 8位单片机的主要生产厂家和机型 1.5 单片机的应用,3,1.1 什么是单片机,单片微型计算机简称单片机。单片微型计算机就是将CPU、RAM、ROM、定时/计数器和多种接口电路都集成到一块集成电路芯片上的微型计算机。一块芯片就构成了一台计算机。,4,也称为: 微控制器 MCU(MicroController Unit) 嵌入式控制器 EMCU (Embedded MicroController Unit),在我国,习惯使用“单片机”这一名称。,5,单片机的组成结构:,6,1.2 单片机的发展概况,五个阶段:,第一阶段(1974年1976年):单片机初级阶段。各种4位单片机 , 用于洗衣机、微波炉、高档玩具等。第二阶段(1976年1978年):低性能单片机阶段。以 Intel 公司制造的MCS-48单片机为代表。8048、8039等.采用了单片结构,即在一块芯片内含有8位CPU、定时/计数器、并行I/O口、RAM和ROM等。不带串行I/O接口,主要用于工业领域。,7,第三阶段(1978年现在):高性能单片机阶段。 Intel公司的MCS-51系列、Mortorola公司的6801系列等。第四阶段(1982年现在):8位单片机巩固发展及16 位单片机、32位单片机推出阶段。第五阶段(1990至今):微控制器的全面发展阶段。 ARM公司的ARM系列嵌入式处理器 32位单片机,8,Intel公司单片机系列典型产品: MCS-48 (8035、8048、8748) MCS-51(8031、8051、8751) (8032、8052、8752) MCS-96(8098、8398、8798)注意: 这些产品在实际应用中已经淘汰,但其原理尚存,并继续发扬光大。,9,1.3 单片机的特点: 1小巧灵活、成本低、易于产品化 2面向控制,完成各种控制任务 3抗干扰能力强,适应温度范围宽 4可以很方便地实现多机和分布式控制,10,1.4 8位单片机的主要生产厂家和机型,(1)美国Intel公司 MCS-51系列及其增强型、扩展型系列。 (2)中国STC宏晶科技的STC89C系列 和STC12xxxx 系列 (3)台湾Winbond的W78C52和W78C54系列 (4)美国Atmel公司AT89和AT90系列 以及PIC系列、AVR系列、 MSP430系列、C8051F系列等等。,11,51系列单片机在我国广泛应用;AT89S51 、 AT89S52 8051单片机品种多、兼容性好、性价比高; 51系列的软、硬件设计资料丰富齐全; 51系列单片机及其衍生兼容机型仍将是主流产品,是现代工业检测、控制应用的重要机型。,12,1.5 单片机的应用,单片机卓越的性能,得到了广泛的应用,已深入到各个领域。,使用温度:,民品: 0C +70C,工业品: -40C +85C,军品: -65C +125C。,13,在下述的各个领域广泛的应用:,1、测控系统2、智能仪器仪表3消费类电子产品4机电一体化产品5武器装备6终端及外部设备智能接口7通信技术 8多机分布式系统,14,15,16,17,单片机开发试验仪,单片机开发试验仪,是具有“实验、编程、ISP (in-system programmable 系统在线可编程的)下载线”多功能合一的新一代单片机开发系统。,18,19,2. Proteus与Keil Vision4软件的安装和使用简介,2.1 Proteus与Keil Vision4软件的安装方法2.2 Keil C51高级语言集成开发环境简介2.3 基于Proteus的单片机系统仿真简介2.4 Proteus VSM与Vision4的联调,20,2.1 Proteus与Keil Vision4 软件的安装方法分别安装如下软件:(1)Proteus 7 Professional(2)Keil Vision4 IDE(3)vdmagdi.exe 对于proteus 6.9或更高的版本,在安装盘里有vdmagdi插件或到LABCENTER公司下载该插件,安装该插件后即可实现Proteus与Keil Vision4 IDE的联调。,21,2.2 Keil C51高级语言集成开发环境Vision4 IDE,单片机系统的编程语言有汇编语言和高级语言两种。汇编语言优点是可直接操作硬件,可执行文件比较小,而且执行速度很快。汇编语言的缺点是软件的维护性和可移植性差。,22,单片机的高级语言包括:Basic语言、PL/M语言和C/C+语言。Basic语言主要应用在MCS-51系列单片机上,效果不是很理想,现在已经不再使用。PL/M语言对硬件的控制能力和代码效率都很好,但局限于Intel公司的单片机系列,移植性差。 C/C+语言是目前单片机的主流编程语言。,23,Keil C51是51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。用过汇编语言后再使用C来开发,体会更加深刻。 Keil C51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。,24,Keil C51软件是目前最流行开发80C51系列单片机的软件工具,这从近年来各单片机仿真机厂商纷纷宣布全面支持Keil C51即可看出。Keil C51提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(Vision4 IDE)将这些部份组合在一起。掌握这一软件的使用对于使用80C51系列单片机的爱好者来说是十分必要的,即使不使用C语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会令开发者事半功倍。,25,2.2.1 Keil Vision4 IDE 简介,Keil Vision4集成开发环境(IDE),用来在微控制器和智能卡设备上创建、仿真和调试嵌入式应用。Vision4 IDE是为增强开发人员的工作效率设计的,有了它可以更快速、更高效地开发和检验程序。,Keil Vision4 IDE内嵌多种符合当前工业标准的开发工具,可以完成从工程建立、管理、编译连接、目标代码的生成、软件仿真、硬件仿真等完整的开发流程。,26,2.2.2 Vision4 IDE集成开发环境,图1-1 Vision4 IDE集成开发环境,27,启动Vision4 IDE,新建一个项目文件并从器件库中选择一个CPU器件。新建一个源文件并把它加入到项目中。增加并设置选择的器件的启动代码。针对目标硬件设置工具选项。 编译项目并生成可以编程ROM的HEX文件。,Vision4 IDE包括一个项目管理器,它可以使 8x51 应用系统的设计变得简单。要创建一个应用,需要按下列步骤进行操作:,2.2.3 Vision4 IDE的使用,28,示例程序中,整个程序只包含一个源文件McuTimer.c,这个小型的应用程序帮助读者确定Keil Vision4可以编译、链接和调试一个应用程序。 设项目名MyProject,采用标准的AT89C52芯片。,下面通过创建项目实例介绍一个简单的软件开发流程,29,(1)选择【Project】/【New Project】选项,如图1-2 所示。(2)在弹出的“Create New Project”对话框中选择要保存项目文件的路径,比如保存到McuPort目录里,在“文件名”文本框中输入项目名为MyProject,如图1-2所示,然后单击“保存”按钮。,30,图1-2(a) Project 菜单 (b) Create New Project 对话框,图1-2 Create New Project 对话框,31,这时会弹出一个对话框,要求选择单片机的型号。以常用的 AT89C52为例来说明,先选择ATMEL公司,再选择AT89C52 之后,,图1-3 选择单片机的型号,32,然后单击“确定”按钮,弹出将8051初始化代码拷贝到项目中的询问窗口,如图所示。单击“Y”按钮。,33,新建项目后Vision4 界面图,图1-4 新建项目后Vision4 界面图,34,新建一个源程序文件。建立一个汇编或 C 文件,如果已经有源程序文件,可以忽略这一步。选择【File】/【New】选项,在弹出的程序文本框中输入一个简单的程序。,图1-5 新建一个源程序文件,35,(6)选择【File】/【Save As】选项,或者单击工具栏按钮,保存文件。,36,(7)然后要将McuTimer.c文件加入到项目中,鼠标右键点左边项目窗口中“Source Group 1”在弹出的菜单中选择“Add Files to GroupSource Group 1”,选择刚才建立的文件 McuTimer.c。,图1-6 a) 将源程序文件加入到项目中,37,图1-6 b) 将源程序文件加入到项目中,38,(8)这时在Source Group 1里就有 McuTimer.c 文件和事先建立项目时已经加入的文件STARTUP.A51,图1-7 Vision4 界面图,39,(9)至(10)是编译环境设置,40,(11)编译连接程序,选择【Project】/【Rebuild all target files】选项,如图所示。,图1-8 编译连接程序,41,如果没有错误,则编译连接成功,开发环境左下角信息框会显示编译连接成功的信息,如图所示。,图1-9 编译连接成功,42,(12)编译完毕之后,选择【Debug】/【Start/Stop Debug Session】选项,即就进入Debug调试环境,如图所示。,图1-10 选择【Debug】/【Start/Stop Debug Session】选项,43,(13)装载代码之后,开发环境Output Window(在左下角)显示如图所示的装载成功信息。,图1-11 成功装载代码,44,2.3 基于Proteus的单片机系统仿真简介,开发单片机系统硬件投入比较大。在具体的工程实践中,如果因为方案有误而要重新进行相应的开发设计,就会浪费较多的时间和经费。,45,英国Labcenter Electronics公司推出的的Proteus套件,可以对基于微控制器的设计连同所有的周围电子器件一起仿真。用户甚至可以实时采用诸如LED/LCD、键盘、RS232 终端等动态外设模型来对设计进行交互仿真。目前在单片机的教学过程中,已越来越受到重视。Proteus支持的微处理芯片(Microprocessors Ics)包括8051系列、AVR系列、PIC系列、HC11系列、ARM7/LPC2000系列以及Z80等。,46,利用Proteus与 Keil相结合软件相结合进行实验仿真,可以实现全部的软件实验和极大多数的硬件实验,这样的仿真实验投入硬件少,经济优势明显,不仅可以弥补实验仪器和元器件缺乏带来的不足,还可以克服原材料消耗和仪器损坏等不足,可以帮助学生更快、更好地掌握课堂讲述的内容,加深对概念、原理的理解,弥补课堂理论教学的不足。学生通过仿真实验,可以熟悉单片机系统的开发方法,提高学习兴趣,进一步培养学生的综合分析能力、排除故障能力和开发创新能力.,47,2.3.1 实例原理图 在P1.0 端口上接一个发光二极管 L1,使 L1 不停地一亮一灭.,图1-12 实例原理图,48,2.3.2.原理图绘制,安装完Proteus后,运行ISIS 7Professional,会出现以下窗口界面:,图1-13 Proteus窗口界面,49,进入Proteus ISIS 编辑环境后,选择“File”“New Design”命令,弹出如图所示的新设计模板选择对话框。,50,图1-14 新设计模板选择,51,选择“File”“Save Design”命令,选择合适的文件夹和文件名(例如LED),保存新设计。保存后,新设计文件名将显示在Proteus窗口的标题栏,如图所示。也可以先画原理图,然后再保存新设计文件。,52,图1-15 创建设计文件LED,53,1)、将所需元器件加入到对象选择器窗口,本例要用到的元件有:AT89C51、 电阻(RES)、电容(CAP)、电解电容(HITEMP)、发光二极管(LED)、晶振(CRYSTAL)单击对象选择器按钮 ,如图所示,54,1)、将所需元器件加入到对象选择器窗口,弹出“Pick Devices”页面,在“Keywords”输入AT89C51,系统在对象库中进行搜索查找,并将搜索结果显示在“Results”中,如图所示。,图1-16 “Pick Devices”页面,55,1)、将所需元器件加入到对象选择器窗口,在“Results”栏中的列表项中,双击“AT89C51”,则可将“AT89C51”添加至对象选择器窗口。然后用同样的步骤添加其他器件,完成后单击“OK”按钮,结束对象选择。最终结果:,56,1)、将所需元器件加入到对象选择器窗口,经过以上操作,在对象选择器窗口中,就有了需要的元器件对象,单击,在预览窗口中,可见到的实物图,如图所示;此时,在绘图工具栏中的元器件按钮处于选中状态。,57,2)、放置元器件至图形编辑窗口,在对象选择器窗口中,选中AT89C51,将鼠标置于图形编辑窗口该对象的欲放位置、单击鼠标左键,该对象被完成放置。同理,将其他器件放置到图形编辑窗口中。如图所示。,58,2)、放置元器件至图形编辑窗口,若对象位置需要移动,将鼠标移到该对象上,单击鼠标右键,此时我们已经注意到,该对象的颜色已变至红色,表明该对象已被选中,按下鼠标左键,拖动鼠标,将对象移至新位置后,松开鼠标,完成移动操作。,59,3)、放置电源和地,添加“地” :左键选择模型选择工具栏中的 图标,出现:左键选择GROUND,并在原理图编辑窗口中左击,这样“地”就被放置到原理图编辑窗口中了。同理可以在需要电源的地方添加电源。,60,3)、放置电源和地,图1-17 放置元器件至图形编辑窗口,61,4)、元器件之间的连线,Proteus的智能化可以在你想要画线的时候进行自动检测。下面,我们来操作将电阻R1的一端连接到LED显示器的A端。当鼠标的指针靠近R1一端的连接点时,跟着鼠标的指针就会出现一个“”号,表明找到了R1的连接点,单击鼠标左键,移动鼠标(不用拖动鼠标),将鼠标的指针靠近LED显示器的A端的连接点时,跟着鼠标的指针就会出现一个“”号,表明找到了LED显示器的连接点,同时屏幕上出现了粉红色的连接,单击鼠标左键,粉红色的连接线变成了深绿色,同时,线形由直线自动变成了90的折线,这是因为我们选中了线路自动路径功能。,62,4)、元器件之间的连线,Proteus具有线路自动路径功能(简称WAR),当选中两个连接点后,WAR将选择一个合适的路径连线。WAR可通过使用标准工具栏里的“WAR”命令按钮 来关闭或打开,也可以在菜单栏的“Tools”下找到这个图标。同理,我们可以完成其它连线。在此过程的任何时刻,都可以按ESC键或者单击鼠标的右键来放弃画线。,63,4)、元器件之间的连线,图1-18 元器件之间的连线,64,5)、添加仿真文件,双击AT89C51,出现如图所示窗口:单击 出现文件浏览对话框,找到LED.hex文件,单击确定完成。,图1-19 添加仿真文件,65,6)、仿真,单击 开始仿真。,图1-20 启动仿真,66,2.4 Proteus VSM与Vision4的联调,Proteus VSM支持第三方集成开发环境IDE,目前支持的第三方80C51IDE有:IAR Embedded Workbench、Keil Vision4 IDE。本文以Keil Vision4 IDE为例介绍Proteus VSM与Vision4 IDE的联调。,67,对于proteus 6.9或更高的版本,在安装盘里有vdmagdi插件或到LABCENTER公司下载该插件,安装该插件后即可实现与Keil Vision4 IDE的联调。下面的叙述是假定我们已经分别安装了如下软件:(1)Proteus 7 Professional(2)Keil Vision4 IDE(3)vdmagdi.exe,68,2.4.1. Proteus VSM的设置,选中“use romote debuger monitor”,,69,2.4.2. Vision4 IDE设置,(1) 设置option for target /Debug选项,70,(2) 设置option for ta rget /Output选项,71,2.4.3. Proteus VSM与Vision4的联调,在Vision4环境下,首先按“F7”产生该项目的HEX文件,然后进入Vision4 调试模式,为了在Proteus VSM环境下能观察到程序连续运行情况,取消目前项目中所有断点。按“F5”按钮进入全速运行。可以看到完全一致的运行画面。此时Proteus VSM的运行完全依赖于外部调试器Vision4。,72,LED间隔闪烁程序,#include#define uchar unsigned char#define uint unsigned intsbit LED=P10;/延时void DelayMS(uint x)uchar i;while(x-)for(i=0;i120;i+);,73,/主程序void main()while(1)LED=LED;DelayMS(150);,74,LED间隔闪烁运行结果,