您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > 其它相关文档 > 基于89C51的单片机开发
物理与电子工程学院1基于89C51的单片机开发设计报告设计者:张建祥摘要89C51是一种带4K字节闪烁可编程可擦除只读存储器的低电压,高性能CMOS8位微处理器,俗称单片机。单片机的可擦除只读存储器可以反复擦除100次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的89C51是一种高效微控制器,89C2051是它的一种精简版本。89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。单片机也被称作“单片微型计算机”、“微控制器”、“嵌入式微控制器”。单片机一词最初是源于“SingleChipMicrocomputer”,简称SCM。随着SCM在技术上、体系结构上不断扩展其控制功能,单片机已不能用“单片微型计算机”来表达其内涵。国际上逐渐采用“MCU”(MicroControllerUnit)来代替,形成了单片机界公认的、最终统一的名词。为了与国际接轨,以后应将中文“单片机”一词和“MCU”唯一对应解释。在国内因为“单片机”一词已约定俗成,故而可继续沿用。我们所做的是单片机板子,它在工作原理和结构上基本类似于单片机,是单片机的压缩型,便于我们需诶和研究。【关键词】:89C51,串行接口,发光二极管,数码管等。物理与电子工程学院2一、89C51单片机的基本组成图所示为89C51系列单片机的基本结构框图。在一小块芯片上,集成了一个微型计算机的各个组成部分。每一个单片机包括:(1)一个8位的微处理器(CPU)。(2)片内数据存储器RAM(128B/256B)。存放可以读/写的数据---运算的中间结果、最终结果、欲显示的数据等。(3)片内程序存储器ROM/EPROM(4KB/8KB)。存放程序,一些原始数据和表格。但也有一些单片机内部不带ROM/EPROM,如8031,8032,80C31等。(4)四个8位并行I/O接口P0-P3。每个口既可以用作输入,也可以用作输出。(5)两个定时器/计数器。每个定时器/计数器都可以设置成计数方式,用以对外部事件进行计数,也可以设置成定时方式,并可以根据计数或定时的结果实现计算机控制。频率基准源计数器内部总线中断中断控制并行I/O口串行输入/输出振荡器及定时电路4K/8K字节程序存储器ROM128/256字节数据存储器RAM2个16位定时器/计数器8051CPU64K字节总线扩展控制可编程I/O口4×8位可编程串行口物理与电子工程学院3(6)五个中断源的中断控制系统。(7)一个全双工UART(通用异步接收发送器)的串行I/O口。用于实现单片机之间或单片机与微机之间的串行通信。(8)片内振荡器和时钟产生电路。但石英晶体和微调电容需要外接。最高允许振荡频率12MHZ。以上各个部分通过内部数据总线相连接。二、89C51单片机内部结构189C51单片机内部结构图8051/8751/8031芯片的外部引脚和指令系统完全兼容,其内部结构除ROM/EPROM不同外,其余完全相同。一个完整的计算机应该由运算器,控制器,存储器(ROM及RAM)和I/O接口组成。一般微处理器(如Z80)只包括运算器和控制器两部分。和一般微处理器相比,89C51增加了四个8位I/O口,一个串行口,4KBROM,128BRAM,很多工作寄存器及特殊功能寄存器(SFR)。各部分的功能简述如下.2、中央处理单元(CPU)CPU是单片机的核心,是计算机的控制和指挥中心,有运算器和控制器等部件组成。2.1运算器运算器包括一个可进行8位算术运算和逻辑运算的单元ALU,8位的暂存器1,物理与电子工程学院4暂存器2,8位的累加器ACC,寄存器B和程序状态寄存器PSW等。ALU:可对4位(半字节),8位(一字节)和16位(双字节)数据进行操作。能作加、减、乘、除、加1、减1、BCD数十进制调整及比较等算术运算和与、或、异或、求补及循环移位等逻辑操作。ACC:累加器ACC,8位,一个运算数经暂存器2进入ALU的输入端,与另一个来自暂存器1的运算数进行运算,运算结果又送回ACC。在指令中用助记符A来表示。PSW:程序状态寄存器,用于指示指令执行后的状态信息,相当于一般微处理器的标志寄存器。PSW中各位状态供程序查询和判别用。B:8位寄存器,在乘、除运算时,B寄存器用来存放一个操作数,也用来存放运算后的一部分结果;若不做乘、除运算时,则可作为通用寄存器使用。2.2控制器控制器包括程序计数器PC、指令寄存器IR、指令译码器ID、振荡器及定时电路等。程序计数器PC:由两个8位的计数器PCH及PCL组成,共16位。PC实际上是程序的字节地址计数器,PC中的内容是将要执行的下一条指令的地址。指令寄存器IR及指令译码器ID:由PC中的内容指定ROM地址,取出来的指令经指令寄存器IR送至指令译码器ID,由ID对指令译码并送PLA产生一定序列的控制信号,以执行指令所规定的操作。振荡器及定时电路:89C51单片机片内有振荡电路,只需外接石英晶体和频率微调电容(2个30pF左右),其频率范围为1.2MHz-12MHz。3、存储器89C51片内有ROM(程序存储器,只能读)和RAM(数据存储器,可读可写)两类,他们有各自独立的存储地址空间,与一般微机的存储器配置方式很不相同。3.1、程序存储器(ROM)89C51及8751的片内程序存储器容量为4KB,地址从0000H开始,用于存放程序和表格常数。3.2、数据存储器(RAM)89C51/8751/8031片内数据存储器均为128B,地址为00H-7FH,用于存放运物理与电子工程学院5算的中间结果、数据暂存以及数据缓冲等。在这128B的RAM中,有32个字节单元可指定为工作寄存器,这同一般微处理器不同。89C51的片内RAM和工作寄存器排在一个队列里统一编址。由图1可见,89C51单片机内部还有SP,DPTR,PCON,…,IE,IP等特殊功能寄存器,它们也同128字节RAM在一个队列编址,地址为80H~FFH。在这128字节RAM单元中有21个特殊功能寄存器(SFR),在这些特殊功能寄存器中还包括P0~P3口锁存器。3.3、I/O接口89C51有四个8位并行接口,即P0-P3。它们都是双向端口,每个端口有8条I/O线,均可输入/输出。P0-P3口四个锁存器同RAM统一编址,可以把I/O口当作一般特殊功能寄存器来寻址。4、管脚说明VCC:供电电压。GND:接地。P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。物理与电子工程学院6P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。P3口也可作为AT89C51的一些特殊功能口,如下表所示:口管脚备选功能P3.0RXD(串行输入口)P3.1TXD(串行输出口)P3.2/INT0(外部中断0)P3.3/INT1(外部中断1)P3.4T0(记时器0外部输入)P3.5T1(记时器1外部输入)P3.6/WR(外部数据存储器写选通)P3.7/RD(外部数据存储器读选通)P3口同时为闪烁编程和编程校验接收一些控制信号。RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于物理与电子工程学院7施加12V编程电源(VPP)。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡器的输出。振荡器特性XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。芯片擦除整个PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms来完成。在芯片擦操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。此外,AT89C51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。在闲置模式下,CPU停止工作。但RAM,定时器,计数器,串口和中断系统仍在工作。在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。结构特点8位CPU;片内振荡器和时钟电路;32根I/O线;外部存贮器寻址范围ROM、RAM64K;2个16位的定时器/计数器;5个中断源,两个中断优先级;全双工串行口;布尔处理器;5CPU时序时钟的基本概念启动单片机后,指令执行顺序:89C51也可使用外部振荡脉冲信号,由XTAL2端输入,直接送至内部时钟电物理与电子工程学院8路。因为XTAL2的逻辑电平与TTL电平不兼容,所以应接一个上拉电阻(5.1KΩ)。如图2-8所示。晶体振荡器的振荡信号从XTAL2端输入到片内的时钟发生器上,如图2-9所示。图2-7振荡电路图2-8外接时钟源接法图2-989C51的片内振荡器及时钟发生器三、Max2321、MAX232芯片简介MAX232芯片是MAXIM公司生产的、包含两路接收器和驱动器的IC芯片,适用于各种EIA-232C和V.28/V.24的通信接口.MAX232芯片内都有一个电源电压变换器,可以把输入的+5V电源电压变换为RS-232C输出电平所需的±10V电压.所以,采用此芯片接口的串行通信系统只需单一的+5V电源就可以了.对于没有±12V电源的场合,其适应性更强.加之其价格适中,硬件接口简单,所以被广泛采用.MAX232芯片的典型工作电路如下图所示.物理与电子工程学院92、
本文标题:基于89C51的单片机开发
链接地址:https://www.777doc.com/doc-4250585 .html