《单片机原理及应用》课件 重大版 第1-5章 单片机概述 -MCS-51单片机基本IO接口及应用_第1页
《单片机原理及应用》课件 重大版 第1-5章 单片机概述 -MCS-51单片机基本IO接口及应用_第2页
《单片机原理及应用》课件 重大版 第1-5章 单片机概述 -MCS-51单片机基本IO接口及应用_第3页
《单片机原理及应用》课件 重大版 第1-5章 单片机概述 -MCS-51单片机基本IO接口及应用_第4页
《单片机原理及应用》课件 重大版 第1-5章 单片机概述 -MCS-51单片机基本IO接口及应用_第5页
已阅读5页,还剩362页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1第1章

单片机应用基础及

概述

2内容概要介绍单片机基础知识、发展历史、应用领域以及发展趋势。8位单片机的主流机型,MCS-51系列单片机及其兼容的单片机(统称为8051单片机)对目前流行的8051单片机的代表性机型:美国ATMEL公司的AT89C5x/AT89S5x系列单片机及代表性产品AT89S51详细介绍。结构清晰,易掌握,初学者入门机型。简要介绍其它类型的单片机。初步了解嵌入式处理器:单片机,数字信号处理器(DSP)、嵌入式微处理器31.1计算机及单片机介绍1.1.1计算机硬件系统第一台计算机采用冯·诺依曼结构原理,既存储程序贺程序控制原理。计算机硬件体系结构由运算器、控制器、存储器、输入设备和输出设备5大部件组成。如图1-1所示。(1)中央处理器中央处理器(CPU)是计算机最核心的部件,负责统一指挥、协调计算机所有的工作,中央处理器由运算器和控制器组成。(2)内存储器内存储器(也称内存条)是计算机的记忆中心,主要用于存放当前电脑运行所需的临时程序和数据。内存储器分为只读存储器(ROM)和随机存储器(RAM)。只读存储器只能读取而不能写入信息,断电或关机后存储的信息不会丢失;随机存储器既可读取又可写入信息,但断电或关机后存储的信息会丢失。存储器的大小称为存储容量,其基本单位为字节(Byte,简写为B,1B=8bit),由于存储器的容量一般都较大,因此常用KB、MB、GB、TB等表示。输入设备输入设备如鼠标、键盘、扫描仪等。输出设备输出设备如显示器、打印机等。1.1.2计算机软件系统计算机软件是计算机程序及其相关文档的总和,可以分为系统软件和应用软件两大类。(1)系统软件操作系统程序设计语言及其处理程序数据库管理系统服务程序(2)应用软件应用软件是指为解决某一领域的具体问题而编制的软件产品,如办公软件、图像处理软件、各类信息管理系统等。620世纪70年代问世,广泛应用:工业自动化、自动检测与控制、智能仪器仪表、机电一体化设备、汽车电子、家用电器等各个方面。什么是单片机?1.1.3单片机简介与分类一片半导体硅片集成:中央处理单元(CPU)、存储器(RAM、ROM)、并行I/O、串行I/O、定时器/计数器、中断系统、系统时钟电路及系统总线的微型计算机。具有微型计算机属性,因而被称为单片微型计算机,简称单片机。7主要应用测控领域。单片机处于测控系统的核心地位并嵌入其中,所以国际上通常把单片机称为嵌入式控制器(EMCU,EmbeddedMicroControllerUnit),或微控制器(MCU,MicroControllerUnit)。我国习惯于使用“单片机”这一名称。单片机是计算机技术发展史上重要里程碑,标志着计算机正式形成了通用计算机系统和嵌入式计算机系统两大分支。单片机体积小、成本低,嵌入到工业控制单元、机器人、智能仪器仪表、汽车电子系统、武器系统、家用电器、办公自动化设备、金融电子系统、玩具、个人信息终端及通讯产品中。8按用途可分为通用型和专用型两大类。(1)通用型

内部可开发资源(如存储器、I/O等各种外围功能部件等)可全部提供给用户。

根据需要,设计一个以通用单片机芯片为核心,再配以外围接口电路及外围设备,并编写相应软件来满足各种不同需要的测控系统。通常所说和本书介绍的是指通用型单片机。(2)专用型

专门针对某些产品的特定用途而制作的。例如,各种家用电器中的控制器等。由于特定用途,单片机芯片制造商常与产品厂家合作,设计和生产“专用”的单片机。在设计中,已对“专用”单片机的系统结构最简化、可靠性和成本的最佳化等做了全面综合考虑,所以“专用”单片机具有十分明显的综合优势。无论“专用”单片机在用途上有多么“专”,其基本结构和工作原理都是以通用单片机为基础。91.1.4单片机的发展历史按处理二进制位数主要分为:4位单片机、8位单片机、16位单片机和32位单片机。发展大致分为4个阶段。第一阶段(1974年~1976年):单片机初级阶段。因工艺限制,双片形式且功能较简单。1974年12月,仙童公司推出了8位的F8单片机,实际只包括了8位CPU、64BRAM和2个并行口。第二阶段(1976年~1978年):低性能单片机阶段。1976年Intel的MCS-48单片机(8位)极大地促进了单片机变革和发展,101977年GI公司推出PIC1650,但这个阶段仍处于低性能阶段。第三阶段(1978年~1983年):高性能单片机阶段。1978年,Zilog公司推出Z8单片机,1980年,Intel公司在MCS-48系列基础上推出MCS-51系列,Mortorola推出6801单片机。使单片机性能及应用跃上新台阶。此后,各公司8位单片机迅速发展。推出的单片机普遍带有串行I/O口、多级中断系统、16位定时器/计数器,片内ROM、RAM容量加大,且寻址范围可达64KB,有的片内还带有A/D转换器。由于这类单片机性/价比高,得到广泛应用,是目前应用数量最多的单片机。11第四阶段(1983年~现在):8位单片机巩固发展及16位单片机、32位单片机推出阶段。20世纪90年代单片机大发展时期,Mortorola、Intel、ATMEL、德州仪器(TI)、三菱、日立、飞利浦、LG等公司开发一大批性能优越的单片机,极大推动单片机应用。近年,不少新型高集成度的单片机涌现。目前,除8位单片机得到广泛应用外,16位单片机、32位单片机也得到广大用户青睐。121.1.5单片机的特点单片机是集成电路技术与微型计算机技术高速发展的产物。体积小、价格低、应用方便、稳定可靠,因此,给工业自动化等领域带来了一场重大革命和技术进步。由于体积小,很容易地嵌入到系统之中,以实现各种方式的检测、计算或控制,这一点,一般微机根本做不到。由于单片机本身就是一个微型计算机,因此只要在单片机的外部适当增加一些必要的外围扩展电路,就可灵活构成各种应用系统,如工业自动检测监视系统、数据采集系统、自动控制系统、智能仪器仪表等。13为什么应用广泛?由于具有以下优点:(1)简单方便,易普及。单片机技术是易掌握技术。应用系统设计、组装、调试已经是一件容易的事情,工程技术人员通过学习可很快掌握其应用设计技术。(2)功能齐全,应用可靠,抗干扰能力强。(3)发展迅速,前景广阔。短短几十年,单片机经过4位机、8位机、16位机、32位机等几大发展阶段。集成度高、功能日臻完善的单片机不断问世,使单片机在工业控制及工业自动化领域获得长足发展和大量应用。目前,单片机内部结构愈加完美,片内外围功能部件越来越完善,向更高层次和更大规模的发展奠定坚实基础。14(4)嵌入容易,用途广泛,体积小、性/价比高,应用灵活性强等特点在嵌入式微控制系统中具有十分重要地位。单片机问世前,制作一套测控系统,大量模拟电路、数字电路、分立元件完成,以实现计算、判断和控制功能。系统体积庞大,线路复杂,连接点多,易出故障。单片机出现后,绝大部分测控功能由单片机软件程序实现,其它电子线路则由片内外围功能部件替代。151.1.6单片机的发展趋势

单片机发展趋势将是向大容量、高性能化,外围电路内装化等方面发展。为满足不同用户要求,各公司竞相推出能满足不同需要的产品。1.CPU的改进

(1)增加CPU数据总线宽度。例如,各种16位单片机和32位单片机,数据处理能力要优于8位单片机。另外,8位单片机内部采用16位数据总线,其数据处理能力明显优于一般8位单片机。

(2)采用双CPU结构,以提高数据处理能力。162.存储器的发展(1)片内程序存储器普遍采用闪存。可不用外扩展程序存储器,简化系统结构。(2)加大存储容量。目前有的单片机片内程序存储器容量可达128KB甚至更多。3.片内I/O的改进(1)增加并行口驱动能力,以减少外部驱动芯片。有的单片机可直接输出大电流和高电压,以便能直接驱动LED和VFD(荧光显示器)。(2)有些单片机设置了一些特殊的串行I/O功能,为构成分布式、网络化系统提供方便条件。174.低功耗CMOS化,功耗小,配置有等待状态、睡眠状态、关闭状态等工作方式。消耗电流仅在µA或nA量级,适于电池供电的便携式、手持式的仪器仪表及其它消费类电子产品。5.外围电路内装化

众多外围电路全部装入片内,即系统的单片化是目前发展趋势之一。例如,美国Cygnal公司的C8051F0208位单片机,内部采用流水线结构,大部分指令的完成时间为1或2个时钟周期,峰值处理能力为25MIPS。片上集成有8通道A/D、两路D/A、两路电压比较器,内置温度传感器、定时器、可编程数字交叉开关和64个通用I/O口、电源监测。186.编程及仿真的简单化目前大多数单片机都支持程序的在线编程,也称在系统编程ISP(InSystemProgram),只需一条ISP并口下载线,就可把仿真调试通过的程序从PC机写入单片机的Flash存储器内,省去编程器。某些机型还支持在线应用编程(IAP),可在线升级或销毁单片机应用程序,省去了仿真器。

综上所述,单片机正在向多功能、高性能、高速度(时钟达40MHz)、低电压(2.7V即可工作)、低功耗、低价格(几元钱)、外围电路内装化以及片内程序存储器和数据存储器容量不断增大的方向发展。1.2数制与编码1.2.1数制及其转换

39=100111B208=D0H

1.2.2编码1.位—字节—字位(bit):二进制数中的一位,其值不是“1”,就是“0”。字节(byte):一个8位的二进制数为一个字节,可用大写B表示,例如256字节→256B。千字节用“KB”表示,1KB=1024B。

例如:64KB=1024B×64=65536B。字(word):51单片机的字由2个字节组成,16位字长。半字节:4位二进制

例如:1000111011001011B=8ECDH2.BCD码BinaryCodedDecimal——用二进制代码表示的十进制数,称为“二进码十进数”或“二/十进制代码”。其表示方法为:用4位二进制数表示1位十进制数。BCD码的用途:可使计算机直接进行十进制数运算。

例如:23+15=00100011B+00010101B

=00111000B=38(BCD)=561.3单片机与嵌入式系统1.3.1嵌入式系统

1.嵌入式系统定义IEEE(国际电气和电子工程师协会)对嵌入式系统的定义:“用于控制、监视或者辅助操作机器和设备的装置”。原文为:DevicesUsedtoControl,MonitororAssisttheOperationofEquipment,MachineryorPlants)。

所谓嵌入式系统,是指以嵌入式应用为目的的计算机系统。嵌入式系统是作为其他系统的组成部分使用的,单片机应用系统是典型的嵌入式系统。2.嵌入式系统组成一个嵌入式系统装置一般都由嵌入式计算机系统和执行装置组成,如图1-2所示。执行装置由传感器、驱动器和被控对象组成,它可以接受嵌入式计算机系统发出的控制命令,执行所规定的操作或任务。执行装置可以很简单,如手机上的一个微小型的电机,当手机处于震动接收状态时打开;也可以很复杂,如SONY智能机器狗。嵌入式计算机系统才是整个嵌入式系统的核心,由硬件层、中间层、系统软件层和应用功能层组成。嵌入式系统是将先进的计算机技术、半导体技术和电子技术和各个行业的具体应用相结合后的产物,这一点就决定了它必然是一个技术密集、资金密集、高度分散、不断创新的知识集成系统。所以,介入嵌入式系统行业,必须有一个正确的定位。例如Palm之所以在PDA领域占有70%以上的市场,就是因为其立足于个人电子消费品,着重发展图形界面和多任务管理;而风河的VxWorks之所以在火星车上得以应用,则是因为其高实时性和高可靠性。实际上,嵌入式系统本身是一个外延极广的名词,凡是与产品结合在一起的具有嵌入式特点的控制系统都可以叫嵌入式系统,而且有时很难以给它下一个准确的定义。现在人们讲嵌入式系统时,某种程度上指近些年比较热的具有操作系统的嵌入式系统。3.嵌入式微控制器(单片机)

将用于测控目的的计算机小系统集成到一块芯片中。一般以某一种微处理器内核为核心,片内集成ROM/EPROM、RAM、总线及总线控制逻辑、定时/计数器、WatchDog、I/O、串行口、脉宽调制输出、A/D、D/A、Flash存储器等各种必要的功能部件和外设。

单片机最大特点是单片化,价廉,功耗和成本下降、可靠性提高。是目前嵌入式系统工业的主流。4.嵌入式DSP处理器(DSP)DSP(数字信号处理器)是擅长高速实现各种数字信号处理运算(如数字滤波、FFT、频谱分析等)的嵌入式处理器。DSP的硬件结构和指令经过了特殊设计,使其能够高速完成各种数字信号处理运算。1981年,美国TI公司研制了著名的TMS320系列的第一个低成本、高性能DSP芯片—TMS320C10,使DSP技术向前跨出了意义重大的一步。20世纪90年代,由于无线通信、网络通信、多媒体技术的普及和应用,以及高清晰度数字电视的研究,极大地刺激了DSP的推广与应用。由此,DSP大量进入嵌入式领域。推动DSP快速发展的是嵌入式系统的智能化,例如,各种带有智能逻辑的消费类产品、生物信息识别终端、

29实时语音压解系统、数字图像处理等。这类智能化算法运算量一般较大,特别是向量运算、指针线性寻址等较多,而这些正是DSP的长处所在。但在一些实时性要求很高的场合,单片DSP的处理能力还是不能满足要求。因此,各大公司又研制出多总线、多流水线和并行处理的包含多个DSP的芯片,大大提高了系统的性能。DSP所具有的实现高速运算的硬件结构与指令系统及多总线结构,尤其是DSP处理的数字信号处理运算的复杂度和大的数据处理流量,这些都是单片机不能企及的。DSP厂商主要有TI、ADI、Motorola、Zilog等公司。其中,TI公司的产品位居榜首,占全球DSP产品市场约60%的份额。TI公司的DSP代表性产品是TMS320系列,其中包括用于控制的2000系列,用于移动通信的5000系列,用于网络、多媒体及图像处理的6000系列等。今天,随着全球信息化和Internet的普及,多媒体技术的广泛应用,尖端技术向民用领域的迅速转移,DSP已大范围进入消费类电子产品。DSP产品不断更新换代,性能指标不断提高,价格不断下降,已成为新兴科技领域—通信、多媒体系统、消费电子、医用电子等飞速发展的主要推动力。市场调查研究公司ForwardConcepts发布的一份统计和预测报告显示,目前世界DSP产品市场每年正以30%的幅度增长,是目前最有发展和应用前景的嵌入式处理器之一。5.嵌入式微处理器嵌入式微处理器(EmbeddedMicroProcessorUnit,EMPU)的基础是通用计算机中的CPU。虽在功能和标准微处理器基本一样,但由于只保留和嵌入式应用有关的功能,这样可大幅度减小系统体积和功耗,同时在工作温度、抗电磁干扰、可靠性等方面一般都做了各种增强处理。31嵌入式微处理器代表性产品为ARM系列,主要5个产品系列:ARM7、ARM9、ARM9E、ARM10和SecurCore。以ARM7为例,地址线32条,能扩展的存储器空间要比单片机存储器空间大得多,可配置实时多任务操作系统(RTOS),而RTOS则是嵌入式应用软件的基础和开发平台。常用的RTOS为Linux(数百KB)和VxWorks(数MB)以及µC-OSⅡ。由于嵌入式实时多任务操作系统具有高度灵活性,可很容易对它进行定制或开发,即“裁剪”、“移植”和“编写”,从而设计出用户所需的应用程序。32

由于能运行实时多任务操作系统,所以能处理复杂的系统管理任务和处理工作。因此,在移动计算平台、媒体手机、工业控制和商业领域(例如,智能工控设备、ATM机等)、电子商务平台、信息家电(机顶盒、数字电视)等方面,甚至军事上的应用,具有巨大的吸引力。以嵌入式微处理器为核心的嵌入式系统的应用,已经成为继单片机、DSP之后的电子信息技术应用的又一大热点。33

这里要对“嵌入式系统”这个名称作进一步说明。从更广泛意义讲,凡是系统中嵌入了“嵌入式处理器”,如单片机、DSP、嵌入式微处理器,都称其为“嵌入式系统”。但目前较为流行的说法是,仅把“嵌入”嵌入式微处理器的系统,称为“嵌入式系统”。目前“嵌入式系统”还没有一个严格和权威定义,但通常所说的“嵌入式系统”,多指后种。34

第1章开发与仿真工具

35【内容概要】

本章介绍软件开发工具KeilC51与虚拟仿真工具Proteus的基本特性与使用方法。通过本章学习,读者应初步了解如何运用Keil软件进行软件调试,掌握使用Proteus来进行硬件线路搭建和单片机系统虚拟仿真以及软硬件联调的基本方法。KeilC51是用于8051单片机的C51语言编程的集成开发环境,它是目前8051单片机应用开发中的最优秀的软件开发工具之一。1.1KeilC51的使用1.1.1KeilC51简介KeilC51(以KeiluVision5为例)由德国Keilsoftware公司开发,它集编辑、编译、仿真等功能于一体,具有强大的软件调试功能,生成的程序代码运行速度快,所需的存储器空间小,完全可与汇编语言相媲美,是目前8051单片机应用开发中的最受欢迎的软件开发工具之一。KeilC51集成了文件编辑处理、编译链接、项目(Project)管理窗口、工具引用、仿真软件模拟器以及Monitor51硬件目标调试器等多种功能,可在KeilC51开发环境中极为简便地进行操作。1.1.2基本操作1.软件安装与启动KeilC51的安装,同大多数软件的安装一样,根据提示进行。安装完毕后,在桌面上会出现KeilC51软件的快捷图标。单击该快捷图标,则启动该软件,出现如图4-1所示的KeilC51界面,图1-1中标出了KeilC51界面各窗口的名称。图1-1Keil软件开发环境界面2.创建项目

编写一个新的应用程序前,首先要建立项目。KeilC51用项目管理的方法把一个程序设计中所需要用到的、互相关联的程序链接到同一项目中。这样,打开一个项目时,所需要的关联程序也都跟着进入了调试窗口,从而方便用户对项目中各个程序的编写、调试和存储。项目管理便于区分不同项目中用到的程序文件和库文件,非常容易管理。因此,编写程序前,需要首先创建一个新的项目,操作如下(1)在图1-1所示的编辑界面下,单击菜单栏中的【Project】,出现下拉菜单,再单击选中的“NewuVisionProject…”,如图1-2所示。图1-2新建项目菜单(2)单击“NewuVisionProject…”选项后,就会弹出“CreateNewProject”对话框,如图1-3所示。在“文件名(N)”中输入一个项目的名称,保存后的文件扩展名为“.uvproj”,即项目文件的扩展名,以后直接单击此文件就可打开先前建立的项目。图1-3“CreateNewProject”窗口在“文件名(N)”窗口中输入新建项目文件的名字后,单击“保存”按钮即可。(3)选择单片机,单击“保存”按钮后,会弹出图1-4所示“SelectDeviceforTarget‘Target1’”(选择单片机)窗口,按照提示选择相应的单片机。这里选择的是“AT89C51”(对于AT89S51,也是选择AT89C51)。(4)单击“确定”按钮后,会出现如图1-5所示的对话框。如果需要复制启动代码到新建的项目,选择单击“是”按钮,会出现图1-6所示的界面,如选择单击“否”按钮,图1-6中的启动代码项“SARTUP.A51”不会出现,这时新的项目已经创建完毕。图1-4“SelectDeviceforTarget1”窗口图1-5

是否复制启动代码到工程对话框图1-6

完成项目创建的界面1.1.3添加用户源程序文件新的项目文件创建完成后,就需要将用户源程序文件添加到这个项目中。添加用户源程序文件通常有两种方式:一种是新建文件,另一种是添加到已创建的文件中。1.新建文件(1)单击图1-1中快捷按钮,这时会出现新建文件的窗口,如图1-7所示。在这个窗口中会出现一个空白的文件编辑画面,用户可在这里输入编写的程序源代码。图1-7创建新文件界面(2)单击图1-1中快捷按钮

,保存用户程序文件,这时会弹出“SaveAs”对话框,如图1-8所示。(3)在图1-8所示的“SaveAs”对话框中,在“保存”下拉框中选择新文件的保存目录,这样就将这个新文件与刚才建立的项目保存在同一个文件夹下,然后在“文件名(N)”窗口中输入新建文件的名字“流水灯”,则文件名的扩展名应为“.c”。完成上述步骤后单击“保存(S)”按钮,此时新文件就创建完成了。这个新文件还需添加到刚才创建的项目中,操作步骤与下面的“添加已创建文件”步骤相同。图1-8“SaveAs”对话框2.添加已创建文件(1)在项目窗口(图1-1)中,右键单击“SourceGroup1”,在弹出的列表中选择“AddnewitemtoGroup‘SourceGroup1’”选项。(2)完成上述操作后,在该窗口中选择要添加的文件,这里只有刚刚建立的文件“流水灯.c”,选中这个文件后,单击“Add”按钮,再单击“Close”按钮,文件就添加完成了,这时用户程序文件“流水灯.c”已经出现在“SourceGroup1”目录下了,如图1-9所示。图1-9

添加文件界面1.1.4程序的编译与调试上文中在文件编辑窗口中建立了文件“流水灯.c,并且将该文件添加到了项目中,此时还需对程序进行编译和调试,最终生成可执行的.hex文件,具体步骤如下。1.程序编译单击快捷按钮中的

,对“流水灯.c”文件编译,在图1-10中的输出窗口会出现提示信息。从输出窗口中的提示信息可以看到,程序中有错误,认真检查程序错误并改正(将程序中的tep改为temp),改正后再次单击

按钮进行编译,直至提示信息显示没有错误为止,如图1-11所示。图1-10

文件编译提示信息图1-11提示信息显示没有错误2.程序调试程序编译没有错误后,就可进行调试与仿真。单击“开始/停止”调试的快捷按钮(或在主界面单击【Debug】菜单中的“Start/StopDebugSession”选项),进入程序调试状态,如图1-12所示。图1-12左面的寄存器窗口给出了常用的寄存器r0~r7和A、B、SP、DPTR、PC、PSW等特殊功能寄存器的值,这些值会随着程序的执行发生相应的变化。在图1-12存储器窗口(右下角)的地址栏处输入“0000”后回车,则可以查看单片机片内程序存储器的内容,单元地址前有“C:”,它表示程序存储器。如要查看单片机片内数据存储器的内容,就在存储器窗口的地址栏处输入“d:00”后回车,这样就可以看到数据存储器的内容了。图1-12

程序调试界面在图1-12中出现了一行新增加的用于调试的快捷命令图标,见图1-13。还有几个原来就有的用于调试的快捷图标,见图1-14。

图1-13

调试状态下的新增加的快捷命令按钮图标

图1-14

用于调试的其他几个快捷命令按钮图标在程序调试状态下,可运用快捷按钮进行单步、跟踪、断点、全速运行等方式进行调试,也可观察单片机资源的状态,例如程序存储器、数据存储器、特殊功能寄存器、变量寄存器及I/O端口的状态。这些图标大多数是与菜单栏命令【Debug】下拉菜单中的各项子命令是一一对应的,只是快捷按钮图标要比下拉菜单使用起来更加方便快捷。在程序调试状态下,可运用快捷按钮进行单步、跟踪、断点、全速运行等方式进行调试,也可观察单片机资源的状态,例如程序存储器、数据存储器、特殊功能寄存器、变量寄存器及I/O端口的状态。这些图标大多数是与菜单栏命令【Debug】下拉菜单中的各项子命令是一一对应的,只是快捷按钮图标要比下拉菜单使用起来更加方便快捷。图1-13和图1-14常用的快捷按钮图标的功能简介如下:1.1.5项目的设置项目创建后,还需对项目进一步设置。右键单击项目窗口的“Target1”,选择“OptionsforTarget‘Target1”,见图1-15,即出现项目设置对话框,见图1-16。该对话框下有多个页面,通常需要设置的有两个,一个是Target页面,另一个是Output页面,其余设置取默认值就可。图1-15

项目调试的选择图1-16“OptionsforTarget‘Target1’”窗口Target页面(1)Xtal(MHz):设置晶体振荡器频率,默认值是所选目标CPU的最高可用频率值,可根据需要重新设置。该设置与最终产生的目标代码无关,仅用于软件模拟调试时显示程序执行时间。

正确设置该数值,可使得显示时间与实际所用时间一致,一般将其值设置成与目标样机所用的频率相同的值。如果没必要了解程序执行的时间,也可不设置。(2)MemoryModel下拉列表:设置RAM的存储器模式,有3个选项。①Small—所有变量都在单片机的内部RAM中。②Compact—可以使用1页外部RAM。③Large—可以使用全部外部的扩展RAM。(3)CodeRomSize下拉列表:设置ROM空间的使用,有3个选项。①Small—只使用低于2K的程序空间。②Compact—单个函数的代码量不超过2K,整个程序可以使用64K程序空间。③Large—可以使用全部64K程序空间。(4)Useon-chipROM—是否仅使用片内ROM选项。注意,选中该项并不会影响最终生成的目标代码量。(5)Operation—操作系统选项。Keil提供了两种操作系统:Rtxtiny和Rtxfull。通常不选操作系统,所以选用默认项None。(6)off-chipCodMemory—用以确定系统扩展的程序存储器地址范围。(7)off-chipXdataMemory—用以确定系统扩展的数据存储器的地址范围。上述3个选项必须根据所用硬件来决定,如果是最小应用系统,不进行任何扩展,则按默认值设置。2.Output页面点击“OptionsforTarget‘Target1’”窗口的“Output”选项,会出现Output页面,如图1-17所示。(1)CreateHEXFile—生成可执行文件代码文件。选择此项后即可生成单片机可以运行的二进制文件(.hex格式文件),文件的扩展名为.hex。(2)SelectFolderforobjects—选择最终的目标文件所在的文件夹,默认与项目文件在同一文件夹中,通常选默认。(3)NameofExecutable—用于指定最终生成的目标文件的名字,默认与项目文件相同,通常选默认。图1-17Output页面(4)Debuginformation—将会产生调试信息,这些信息用于调试,如果需要对程序进行调试,应选中该项。其他选项选默认即可。完成上述设置后,就可在程序编译时,单击快捷按钮,此时会产生如图1-18的提示信息。该信息中说明程序占用片内RAM共71字节,片外RAM共0字节,图1-18hex文件生成的提示信息占用程序存储器共71字节。最后生成的.hex文件名为“流水灯.hex”,至此,整个程序编译过程就结束了,生成的.hex文件就可在后面介绍的Proteus环境下进行虚拟仿真时,装入单片机运行。下面对用于编译、连接时的3个快捷按钮、与作简要说明:(1)按钮,用于编译正在操作的文件。(2)用于编译修改过的文件,并生成相应的目标程序(.hex文件),供单片机直接下载。(3)按钮:用于重新编译当前项目中的所有文件,并生成相应的目标程序(.hex文件),供单片机直接下载。主要用在当项目文件有改动时,来重建整个项目。因为一个项目不止一个文件,当有多个文件时,可用本按钮进行编译。

上述介绍的对C51语言源程序操作方法与过程,也同样适用于汇编语言源程序。

注意,如果使用Proteus虚拟仿真,无论使用C51语言编写,还是汇编语言编写的源程序都不能直接来用,一定要对该源程序进行编译,最终生成可执行的目标代码.hex文件,并加载到Proteus环境下的虚拟单片机中,才能进行虚拟仿真。1.2

Proteus虚拟仿真工具介绍Proteus是英国LabcenterElectronics公司在1989年推出的完全使用软件手段来对单片机应用系统进行虚拟仿真的软件工具。1.2.1Proteus简介

Proteus是目前世界上唯一的支持嵌入式处理器的虚拟仿真平台,它除了可仿真模拟电路、数字电路外,还可仿真8051、PIC12/16/18系列、AVR系列、MSP430等各主流系列单片机,以及各种外围可编程接口芯片。此外,它还支持ARM7、ARM9等型号的嵌入式微处理器的仿真。

有了Proteus的虚拟仿真平台,因此用户不需要用户硬件样机,就可直接在PC上对单片机系统进行虚拟仿真,将系统的功能及运行过程形象化,可以像焊接好的电路板一样看到单片机系统的执行效果。

72

Proteus元件库中具有几万种元件模型,因此它可直接对单片机的各种外围元件及电路进行仿真,如RAM、ROM、总线驱动器、各种可编程外围接口芯片、LED数码管显示器、LCD显示模块、矩阵式键盘以及多种D/A和A/D转换器等。此外还可对RS232总线、I2C总线、SPI总线进行动态仿真。Proteus提供了各种信号源、虚拟仿真仪器,并能对电路原理图的关键点进行虚拟测试。

Proteus提供了丰富的调试功能。在虚拟仿真中具有全速、单步、设置断点等调试功能,同时,它还可观察各变量、寄存器的当前状态。目前,Proteus已在包括剑桥大学、斯坦福大学、牛津大学、加州大学在内的全球数千所高校以及世界各大研发公司中得到广泛应用。

尽管Proteus具有开发效率高,不需要附加的硬件开发装置成本等优点,但是不能进行用户样机硬件的诊断。所以在单片机系统的设计开发中,一般是先在Proteus环境下绘出系统的硬件原理电路图,在KeilC51环境下书写并编译程序,然后在Proteus环境下仿真调试通过。依照仿真结果,来完成实际的硬件设计,把仿真通过的程序代码通过编程器或在线烧录到单片机的程序存储器中,然后运行程序并观察用户样机的运行结果,如有问题,再连接硬件仿真器或直接在线修改程序去分析、调试。1.2.2ProteusISIS的虚拟仿真

ProteusISIS(智能原理图输入)界面是用来绘制单片机系统的电路原理图,它还可直接实现单片机系统的虚拟仿真,可产生声、光及各种动作等逼真的效果。当电路连接无误后,单击单片机芯片载入经调试编译后生成的.hex文件,单击仿真运行按钮,即可检验电路硬件及软件的设计正确与否。Proteus软件在PC上安装完后,打开Proteus8.x软件,可以看到一个主界面,如图1-19所示。在主界面的菜单栏中,点击"NewProject",然后输入项目名称、储存路径以及进行单片机选择,还有编译程序的选择,从而建立一个新项目(具体过程将在本小节的最后介绍)。或者点击7576图1-19

Proteus的主界面"OpenProject"打开一个已经建立的项目,就会出现ProteusISIS原理电路图绘制界面,如图1-20所示。整个ISIS界面由原理图编辑窗口、预览窗口、对象选择窗口、工具箱、主菜单栏、主工具栏等区域组成。1.ISIS界面的窗口简介ISIS界面主要有3个窗口:原理图编辑窗口、预览窗口和对象选择窗口。(1)原理图编辑窗口原理图编辑窗口是用来绘制电路原理图、设计电路、设计各种符号模型的区域,图1-20所示的方框内为可编辑区,器件放置、电路设置都在此框中完成。77图1-20Proteus的ISIS界面(2)预览窗口

预览窗口用来对选中的器件对象进行预览,同时可实现对原理图编辑窗口的预览,如图1-21所示。它可显示两部分内容。

如果单击某个元件列表中的元件时,预览窗口会显示该元件的符号。

当鼠标指针落在原理图窗口时(即放置器件到原理图编辑窗口后或在原理图编辑窗口中单击鼠标后),它会显示整张原理图的缩略图,并会显示一个绿色的方框,方框里面的内容就是当前原理图窗口中显示的内容。单击绿色方框中的某一点,就可拖动鼠标来改变绿色方框的位置,从而改变原理图的可视范围,最后在绿色方框内单击鼠标,绿色方框就不再移动,从而将原理图的可视范围固定。图1-21预览窗口调整原理图的可视范围2.主菜单栏

图1-20最上面一行为主菜单栏,包含如下命令:文件、查看、编辑、工具、设计、绘图、源代码、调试、库、模板、系统和帮助。单击任意菜单命令后,都将弹出其下拉的子菜单命令列表。(1)

文件(File)菜单

文件菜单包括项目的新建设计、打开设计和打印等操作,如图1-23所示。ISIS下的文件主要是设计文件(DesignFiles),其文件类型为ProteusProject。它包括一个单片机硬件系统的原理电路图及其所有信息,用于虚拟仿真。

81

下面介绍文件菜单下的“NewProject(新建设计)”命令。

单击【File】→“NewProject”,会出现一张空的A4纸模板。新设计的文件默认名为“UNTITLED.DSN”,本命令会把该设计以这个名字存入磁盘文件中,文件的其他选项也会使用它作为默认名。如果想进行新的设计,需要给该设计命名,可单击NewProject.pdsprj→“保存设计”,输入新的文件名保存即可。如果想进行新的设计,需要给这个设计命名,可单击【文件】→“保存设计”,输入新的文件名保存即可。图1-22器件列表图1-23文件菜单2.工具(Tools)菜单

工具菜单如图1-24所示。本菜单中的“自动连线(W)”命令文字前的快捷图标

,在绘制电路原理图时出现,按下该图标即进入电路原理图的自动连线状态。3.调试(Debug)菜单

调试菜单如图1-25所示,它主要完成单步运行、断点设置等功能。85图1-24

工具菜单图1-25

调试菜单3.主工具栏主工具栏位于主菜单下面,以图标形式给出,栏中共有42个快捷图标按钮:86每一个图标按钮都对应一个具体的菜单命令,主要目的是为了快捷方便地使用这些命令。图标分为4组,简要介绍快捷图标命令的功能。878889904.工具箱图1-20中的左侧为工具箱,选择相应的工具箱图标按钮,系统将提供不同的操作工具。下面介绍工具箱中各图标按钮对应的功能。(1)模型工具栏各图标的功能。9192935.元件列表如图1-26所示,器件列表用于挑选器件、终端接口、信号发生器、仿真图表等。挑选器件时,单击“P”快捷图标,这时会打开挑选器件的对话框,在对话框中的“关键字”里面输入要检索的器件的关键词,例如要选择使用AT89C51,就可以直接输入。输入后能够在中间的“结果”栏里面看到搜索的器件的结果。在对话框的右侧,还能够看到选择的器件的仿真模型和PCB参数。选择了器件AT89C51后,双击AT89C51,该器件就会在左侧的器件列表中显示,以后再用到该器件时,只需在器件列表中选择即可。94图1-26

器件列表界面1.2.3Proteus的各种虚拟仿真调试工具Proteus提供了多种虚拟仿真工具,以检查设计的正确性,为单片机系统的电路设计、分析以及软硬件联调测试带来极大的方便。1.虚拟信号源ProteusISIS为用户提供了各种类型的虚拟激励信号源,并允许用户对其参数进行设置。单击工具箱中的快捷图标

,就会出现如图1-27所示的各种类型的激励信号源的名称列表以及选择的正弦波信号源,在预览窗口中显示的是正弦波信号源符号。图4-27名称列表中各符号所对应的激励信号源,如表4-1所示。图1-27

各种激励信号源表1-1 各种激励信号源2.

虚拟仪器单击工具箱中的快捷按钮

,可列出Proteus所有的虚拟仪器名称,如图1-28所示。99图1-28

虚拟仪器名称列表图1-28中的名称列表中所对应的虚拟仪器名称,如表1-2所示。表1-2各种符号对应的虚拟仪器下面简要介绍在单片机应用系统调试中常用的几种虚拟仪器。1.虚拟终端虚拟终端的原理图符号如图1-29所示。在调试异步串行通信时使用。虚拟终端共有4个接线端,其中RXD为数据接收端,TXD为数据发送端,RTS为请求发送信号,CTS为清除传送,是对RTS的响应信号。图1-29虚拟终端的原理图符号

图1-30为单片机与上位机(PC)之间进行串行通信,使用虚拟终端就可免去PC的仿真模型,直接由虚拟终端VT1、VT2显示出经RS232串行接口模型与单片机之间异步发送或接收数据的情况。

VT1显示的数据表示了单片机经串口发给PC的数据,VT2显示的数据表示了PC经RS232接口模型接收到的数据,从而省去了PC的串口模型。图1-30

单片机与PC之间串行通信的虚拟终端

虚拟终端在运行仿真时会弹出一个仿真界面,当PC向单片机发送数据时,可以和虚拟键盘关联,用户可从虚拟键盘经虚拟终端输入数据;当PC接收到单片机发送来的数据后,虚拟终端相当于一个显示屏,会显示相应信息。(2)I2C调试器图1-28中的虚拟仪器名称列表中的“I2CDEBUGGER”就是I2C调试器,原理图符号如图1-31所示。I2C调试器允许用户监测I2C接口总线,可以查看I2C总线发送的数据,同时也可作为从器件向I2C总线发送数据。I2C调试器有3个接线端。SDA:双向数据线。SCL:时钟线,双向。TRIG:触发输入,能使存储序列被连续地放置到输出队列中。图1-31I2C调试器的原理图符号图1-32所示为单片机通过控制I2C总线向带有I2C接口的存储器芯片AT24C02(即图中的FM24C02F)进行读写,可利用I2C调试器来观察I2C总线数据传送的过程。启动仿真,鼠标右键单击I2C调试器,出现I2C调试窗口,如图1-34所示。单击其中的“+”符号,还能把I2C总线传送数据的细节展现出来。I2C总线传送数据时,采用了特别的序列语句,出现在数据监测窗口中。图1-32单片机读写带有I2C接口的存储器AT24C02的电路原理图

由图1-33可见,使用I2C调试器可非常方便地观察I2C总线上传输的数据,非常容易手动控制I2C总线发送的数据,为I2C总线的单片机系统提供了十分有效的仿真调试手段。图1-33I2C调试窗口及单片机向AT24C02写入和读出的数据(3)SPI调试器SPI调试器允许用户查看沿SPI总线发送和接收的数据。图1-34所示为SPI调试器的原理图符号。SPI调试器共有5个接线端:DIN:接收数据端。DOUT:输出数据端。SCK:时钟端。 :从模式选择端,从模式时此端必须为低电平才能使终端响应;当工作在主模式下,而且数据正在传输时此端才为低电平。TRIG:输入端,能把下一个存储序列放到SPI的输出序列中。

SPI调试器的窗口如图1-34所示,它与I2C调试窗口是相似的。图1-34SPI调试器的原理图符号图1-35SPI调试器的窗口4.电压表和电流表ProteusVSM提供了4种电表,如图1-36所示,分别是DCVoltmeter(直流电压表)、DCAmmeter(直流电流表)、ACVoltmeter(交流电压表)和ACAmmeter(交流电流表)。可分别把4种电表放置到原理图编辑窗口中。图1-364种电表的原理图符号4.2.4虚拟设计仿真举例

Proteus环境下的一个单片机系统的原理电路虚拟设计与仿真需要3个步骤。(1)ProteusISIS环境下的电路原理图设计。(2)在KeilC51平台上进行源程序的输入、编译与调试,并最终生成目标代码文件(*.hex文件)。(3)调试与仿真,在Proteus环境下将目标代码文件(*.hex文件)加载到单片机中,并对系统进行虚拟仿真。下面以“流水灯”的设计为例,介绍如何使用Proteus。1111.新建或打开一个设计文件(1)建立新设计文件单击主菜单的“NewProject”选项新建一个项目,会弹出图1-37所示的“新建项目”窗口。点击“Next”,出现一个新的界面后,单击要选的“DEFAULT”选项,再单击“NEXT”按钮,选用系统默认的模板,即建立一个该模板的空白文件。(2)保存文件。建立了一个新的文件后,第一次保存该文件时,选择【File】→“SaveProjectAs”选项,这样就会以新的文件名保存该设计文件。如果不是第一次保存,可直接单击“保存”快捷按钮即可。图1-37

“新建项目”窗口2.选择需要的元件到元件列表

电路设计前,要把设计“流水灯”电路原理图中需要的器件列出,如表1-3所示。然后根据表1-3选择器件到器件列表中。观察图1-21,左侧的器件列表中没有一个器件,单击左侧工具栏中的按钮,再单击器件选择按钮就会出现“PickDevices”窗口,在窗口的“关键字”栏中,输入“AT89C51”,此时在“结果”栏中出现“器件搜索结果列表”,并在右侧出现“器件预览”和“器件PCB预览”,如图1-41所示。在“器件搜索结果列表”中双击所需要的器件“AT89C51”,这时在主窗口的器件列表中就会添加该器件。用同样的方法可将表1-3中所需要选择的其他器件也添加到器件列表中。

所有器件选取完毕后,单击窗口右下方的“确定”按钮,即可关闭“PickDevices”窗口,回到主界面进行原理图绘制。114115表1-3

流水灯所需元件列表3.放置元件并连接电路1.器件的放置、调整与编辑

①元件的放置。单击元件列表中所需要放置的元件,然后将鼠标移至原理图编辑窗口中单击一下,此时就会在鼠标指针处有一个红颜色的元件,移动鼠标选择合适的位置,单击一下左键,此时该元件就被放置在原理图窗口了。例如选择放置单片机AT89C51到原理图编辑窗口,具体步骤如图1-38所示。若要删除已放置的元件,用鼠标左键单击该元件,然后按Delete键即可删除。如果进行了误删除操作,可以单击恢复快捷按钮恢复。一个单片机系统电路原理图设计,除了元件还需要各种终端,如电源、地等,单击主工具栏中的快捷按钮,就会出现各种终端列表。单击元件终端中的某一项,上方的窗口中就会出现该终端的符号,如图1-39(a)所示。图1-38

元件放置的操作步骤此时可选择合适的终端放置到电路原理图编辑窗口中去,放置的方法与元件放置的方法相同。图1-39(b)为图1-39(a)列表中各项对应的终端符号。根据上述介绍,设计者可将所有的元件和终端放置到原理图编辑窗口中去。图1-39

终端列表及终端符号②

元件位置的调整。

改变元件在原理图中的位置,用鼠标左键单击需调整位置的元件,元件变为红颜色,移动鼠标指针到合适的位置,再释放鼠标即可。

调整元件的角度,用右键单击需调整的元件,会出现图1-40所示的菜单,操作菜单中的命令选项即可。③

元件参数设置。在需要设置参数的元件双击鼠标左键,就会出现“编辑元件”窗口。下面以单片机AT89C51为例,此时双击AT89C51,出现“编辑元件”窗口。设计者可根据设计的需要,在需要设置参数的元件双击鼠标左键,进入“编辑元件”窗口自行完成原理图中各元件的参数设置。图1-40调整元件角度的命令选项(2)电路元件的连接

两元件间绘制导线。在元件模式快捷按钮与自动布线器快捷按钮按下时,两个元件导线的连接方法是:先单击第一个元件的连接点,移动鼠标,此时会在连接点引出一根导线。如果想要自动绘出直线路径,只需单击另一个连接点。如果设计者想自己决定走线路径,只需在希望的拐点处单击鼠标左键。需要注意的是,拐点处导线的走线只能是直角。在自动布线器快捷按钮松开时,导线可按任意角度走线,只需要在希望的拐点处单击鼠标左键,把鼠标指针拉向目标点,拐点处导线的走向只取决于鼠标指针的拖动。

连接导线连接的圆点。单击连接点按钮,会在两根导线连接处或两根导线交叉处添加一个圆点,表示它们是连接的。

导线位置的调整。对某一绘制的导线,要想进行位置的调整,可用鼠标左键单击导线,导线两端各有一个小黑方块,单击右键出现菜单,单击“拖曳对象”,即可拖曳导线到指定的位置,也可进行旋转,然后单击导线,这就完成了导线位置的调整。

绘制总线与总线分支。

总线绘制:单击工具栏的图标按钮,移动鼠标到绘制总线的起始位置,单击鼠标左键,便可绘制出一条总线。如想要总线出现不是90°角的转折,此时自动布线器快捷按钮应当松开,总线即可按任意角度走线,只需要在希望的拐点处单击鼠标左键,把鼠标指针拉向目标点,在总线的终点处双击鼠标左键,即结束总线的绘制。

总线分支绘制:总线绘制完后,有时还需绘制总线分支。为使电路图显得专业和美观,通常要把总线分支画成与总线成45°角的相互平行的斜线,如图1-41所示。注意,此时一定要把自动布线器快捷按钮松开,总线分支走向只取决于鼠标指针的拖动。

对于图1-41所示的总线分支的绘制,先在AT89C51的P0口右侧画一条总线,然后再画总线分支。在元件模式快捷按钮

按下且自动布线器快捷按钮

松开时,导线可按任意角度走线。先单击第一个元件的连接点,然后移动鼠标指针,在希望的拐点处单击鼠标左键,最后向上移动鼠标指针,在与总线成45°角相交时单击鼠标左键确认,这样就完成了一条总线分支的绘制。而其他总线分支的绘制只需在其他总线的起始点双击鼠标左键,不断复制即可。例如,绘制P0.1引脚至总线的分支,只要把鼠标指针放置在P0.1引脚口的图1-41

总线与总线分支及线标位置,则会出现一个红色小方框,双击鼠标左键,自动完成像P0.0引脚到总线的连线,这样可依次完成所有总线分支的绘制。在绘制多条平行线时也可采用这种画法。

放置线标签。从图1-41中可看到,与总线相连的导线上都有线标D0、D1……D7。放置线标的方法如下:单击工具栏的图标

,再将鼠标移至需要放置线标的导线上单击,即会出现图1-42所示的“EditWireLabel”对话框,将线标填入“标号”栏(如填写“D0”等),单击“确定”按钮即可。与总线相连的导线必须要放置线标,这样相同线标的导线才能够导通。“EditWireLabel”对话框除了填入线标外,还有几个选项,设计者根据需要选择即可。经过上述步骤的操作,最终画出的“流水灯”的电路图如图1-43所示。图1-42

“EditWireLabel”对话框图1-43“流水灯”的电路原理图4.

加载目标代码文件、设置时钟频率及仿真运行(1)加载目标代码文件、设置时钟频率电路图绘制完成后,在Proteus的ISIS中双击原理图中的单片机,出现图1-44所示的“编辑元件”窗口,把在keil下生成的“.hex”文件(见1.1.4小节)加载到电路图中的单片机内即可进行仿真了。加载步骤如下:在“ProgramFile”的对话框中,输入.hex目标代码文件,再在ClockFrequency栏中设置12MHz,则该虚拟系统以12MHz的时钟频率运行。此时,即可回到原理图界面进行仿真了。图1-44

加载目标代码文件

在加载目标代码时需要特别注意的是:

运行时钟频率以单片机属性设置中的时钟频率(ClockFrequency)为准。

②需要注意的是,在Proteus中绘制电路原理图时,单片机最小系统所需的时钟振荡电路、复位电路、引脚与+5V电源的连接均可省略,这些Proteus已经默认,因此不影响仿真结果。(2)仿真运行

单击ProteusISIS界面中的快捷命令按钮(见图1-21左下角)即可运行程序。图4-21左下角的各种仿真运行命令按钮功能如下:

5.

Proteus自带编译器的设置与使用Proteus8.x版本与以往版本的不同之处,该版本不再需要用Keil编程后生成.Hex文件再手动拷入到原理图中,系统自动生成名为Debug.hex文件,一切都是自动完成,节约很多时间,在调试程序时很简单、方便。

下面介绍Proteus8.x版本自带编译器的设置与使用。在图1-19的主界面中点击“NewProject”,出现,修改文件名,然后点击“Next”,出现

图1-45的界面,选择其中的选项,然后点击“Next”,出现图1-46的界面,选择选项,再点击“Next”出现图1-47界面,在下拉条中选择单片机的类型、型号以及编译器种类,类型、型号以及编译器种类分别为“8051”、“AT89C51”以及“Keilfor8051”,然后点击“Next”,出现图1-48的界面,点击“Finish”出现图1-49或者是图1-50的界面,图1-49或者是图1-50界面,是由左上方的两个选项卡“SchematicCapture”,以及“SourceCode”来选择的,即可调试程序同时也观察原理图随着程序的变化(当然事先要把原理图和程序文件建立起来)。这时只需用菜单下的“Debug”命令调试即可。图1-46图1-45图1-47图1-48图1-49图1-50139第2章AT89S51单片机

硬件结构

140单片机应用特点是编写程序来控制硬件,读者应首先熟知并掌握AT89S51片内硬件的基本结构和特点。2.1AT89S51单片机的硬件组成

片内结构如图2-1所示。把作为控制应用所必需的基本功能部件都集成在一个集成电路芯片上。

下面对图2-1中的各部件进行简单介绍。(1)8位微处理器(CPU);(2)数据存储器(RAM):内部为128B(增强型的52子系列为256B),外部最多还可外扩64KB的数据存储器。(3)程序存储器(Flash存储器):用来存储程序。AT89S51内部有4KB的Flash存储器(AT89S52内部有8KB的Flash存储器;AT89S53/AT89S54/图2-1AT89S51单片机片内结构142AT89S55内部集成了12KB/20KB/20KB的Flash存储器)。如果内部程序存储器容量不够,外部最多可外扩至64KB程序存储器。(4)中断系统有5个中断源,对应5个中断向量;(5)2个可编程的16位定时器/计数器;(6)1个全双工的异步串行口;(7)4个8位可编程并行I/O口(P0口、P1口、P2口、P3口);(8)特殊功能寄存器(SFR):共有26个特殊功能寄存器,用于CPU对内部各外围部件进行管理、控制和监视。特殊功能寄存器实际上是内部各外围部件的控制寄存器和状态寄存器,这些特殊功能寄存器映射在内部RAM区的80H~FFH的地址区间内。(9)看门狗定时器(WDT):当单片机由于干扰而使程序陷入死循环或跑飞状态时,看门狗定时器可引起单片机复位,使程序恢复正常运行。2.2AT89S51的引脚功能

先了解引脚,牢记各引脚功能。AT89S51与各种8051芯片的引脚兼容。目前多采用40只引脚双列直插,如图2-2。此外,还有44引脚的PLCC和TQFP封装方式的芯片。

引脚按其功能可分为如下3类:(1)电源及时钟引脚—VCC、VSS;XTAL1、XTAL2。(2)控制引脚—PSEN*、ALE/PROG*、EA*/VPP、RST(RESET)(3)I/O口引脚——P0、P1、P2、P3,为4个8位I/O口

下面结合图2-2介绍各引脚的功能。1432.2.1电源及时钟引脚1.电源引脚(1)VCC(40脚):+5V电源。(2)VSS(20脚):数字地。144图2-2AT89S51双列直插封装方式的引脚2.时钟引脚

(1)XTAL1(19脚):片内振荡器反相放大器和时钟发生器电路输入端。用片内振荡器时,该脚接外部石英晶体和微调电容。外接时钟源时,该脚接来自外部时钟振荡器的信号。

(2)XTAL2(18脚):片内振荡器反相放大器的输出端。当使用片内振荡器,该脚接外部石英晶体和微调电容。当使用外部时钟源时,本脚悬空。2.2.2控制引脚(1)RST(RESET,9脚)

复位信号输入,在引脚加上持续时间大于2个机器周期的高电平,可使单片机复位。正常工作,此脚电平应≤0.5V。145

当看门狗溢出时,该脚将输出96个时钟振荡周期的高电平。(2)EA*/VPP(EnableAddress/VoltagePulseofPrograming,31脚)

EA*:第一功能:外部程序存储器访问允许控制端。EA*=1,在PC值≤0FFFH(不超出片内4KBFlash存储器地址范围)时,单片机读片内Flash存储器(4KB)中的程序,但PC值>0FFFH

(超出片内4KBFlash地址范围)时,将自动转向读取片外60KB(1000H~FFFFH)程序存储器空间中的程序。EA*=0,只读取片外程序存储器中内容,读取地址范围为0000H~FFFFH,片内的4KBFlash程序存储器不起作用。VPP:引脚第二功能,对片内Flash编程,接编程电压。(3)ALE/PROG*(AddressLatchEnable/PROGramming,30脚)ALE:为CPU访问外部程序存储器或外部数据存储器提供地址锁存控制信号,将低8位地址锁存在片外的地址锁存器中。

147此外,单片机正常运行时,ALE端一直有正脉冲信号输出,此频率为fosc的1/6。该信号可作外部定时或触发信号使用。

注意:每当AT89S51访问外部RAM或I/O时,要丢失一个ALE脉冲,所以ALE引脚的输出信号频率并不是准确的1/6

fosc。

如不需要ALE端输出脉冲信号,可将特殊功能寄存器AUXR(地址8EH,本章后面介绍)的第0位(ALE禁止位)置1,来禁止ALE操作,但在执行访问外部程序存储器或外部数据存储器操作时,ALE仍然有效,即ALE禁止位不影响对单片机对外部存储器的访问。PROG*:引脚第二功能,对片内Flash编程,加编程脉冲输入。(4)PSEN*

(ProgramStrobeENable,29脚)

片外程序存储器读选通信号,低有效。2.2.3并行I/O口引脚(1)P0口:P0.7~P0.0脚,8位,漏极开路的双向I/O口

当外扩存储器及I/O接口芯片时,P0口作为低8位地址总线及数据总线的分时复用端口。P0口也可作通用的I/O口用,需加上拉电阻,这时为准双向口。如作输入,应先向端口写1。可驱动8个LS型TTL负载。(2)P1口:P1.7~P1.0脚,8位,准双向I/O口,内部有上拉电阻。

准双向I/O口,作通用I/O输入时,应先向端口锁存器写1,149P1口可驱动4个LS型TTL负载。P1.5/MOSI、P1.6/MISO和P1.7/SCK也可用于对片内Flash存储器串行编程和校验,分别是串行数据输入、输出和移位脉冲引脚。(3)P2口:P2.7~P2.0脚,8位,准双向I/O口,具有内部上拉电阻。

当AT89S51扩展外部存储器及I/O口时,P2口作为高8位地址总线输出高8位地址。P2口也可作普通I/O使用。当作通用I/O输入时,应先向端口输出锁存器写1。可驱动4个LS型TTL负载。(4)P3口:P3.7~P3.0脚,8位,准双向I/O口,具有内部上拉电阻。

可作为通用的I/O口使用。作为通用I/O输入,应先向端口输出锁存器写入1。可驱动4个LS型TTL负载。P3口还可提供第二功能。第二功能定义如表2-1,应熟记。

综上所述,P0口作为总线口时,为双向口,作通用I/O用时,为准双向口,需加上拉电阻。P1、P2、P3口均为准双向口。151152注意:准双向口与双向口的差别。准双向口仅有两个状态。而P0口作为总线使用,口线内无上拉电阻,处于高阻“悬浮”态。故为双向三态I/O口。为什么P

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论