资源描述
摘要单片机是一种集成电路芯片,采用超大规模技术把具有数据处理能力(如算术运算,逻辑运算、数据传送、中断处理)的微处理器(CPU)。随着单片机技术的飞速发展,各种单片机蜂拥而至,单片机技术已成为一个国家现代化科技水平的重要标志。单片机可单独地完成现代工业控制所要求的智能化控制功能,这是单片机最大的特征。单片机控制系统能够取代以前利用复杂电子线路或数字电路构成的控制系统,可以软件控制来实现,并能够实现智能化。现在单片机控制范畴无所不在,例如通信产品、家用电器、智能仪器仪表、过程控制和专用控制装置等等,单片机的应用领域越来越广泛。本毕业设计的课题是“简易数字电压表的设计”。主要考核我们对单片机技术,编程能力等方面的情况。观察独立分析、设计单片机的能力,以及实际编程技能。本课题主要解决A/D转换、数据处理及显示控制等三个模块。控制系统采用AT89C52单片机,A/D转换采用ADC0809。关键字介绍:单片机,AT89C52,A/D转换,ADC0809,数据处理。 AbstractChip Processor is a kind of chip of integrated circuit, adopt to exceed large-scale technology have data handling ability( such as arithmetic manipulation, logic is operational , data deliver and suspend handling) tiny processor ( CPU ). Along with Chip Processor technology develop fast, various Chip Processor come in great numbers, Chip Processor technology has become a important sign of the national modern level of science and technology.Chip Processor can complete modern industrial control alone the intelligent control function that will beg, this is the feature of biggest Chip Processor. When Chip Processor control system can replace, using the control system that complex electronic line or digital circuit forms can software control come to realize, and can realize intelligence to melt. Now, Chip Processor control category is omnipresent , for instance communicate product, electric home appliances, intelligent instrument appearance, course control and the control equipment for special purpose and so on, the application field of Chip Processor is more and more extensive. Graduate the program of design is the design of simple digital volmeter . Check on our condition for the aspects such as Chip Processor technology and programming ability mainly. Observe actual programming ability as well as the ability of independent analysis and design Chip Processor. This program solves the data handling and conversion of A/D mainly and shows the 3 modulars such as control. Control system adopts AT89C52 only flat machine, the conversion of A/D adopts ADC0809.Keyword introduction: Chip Processor, AT89C52, A/D changes, ADC0809,Data handle. 目录第一章 绪论511 单片机简介512 单片机的应用领域613 单片机的发展趋势714 单片机应用系统的开发过程81.4.1 总体设计91.4.2 硬件电路设计91.4.3 软件设计9第二章 数字电压表1021 数字电压表的特点1022 数字仪表的发展趋势11第三章 系统设计1331 功能要求及设计目标1332 方案论证1333 系统硬件电路设计1334 系统程序的设计173.4.1 初始化程序173.4.2 主程序173.4.3 显示子程序173.4.4 模/数转换测量子程序1835 性能分析19第四章 主要硬件功能及介绍2041 ADC0809204.1.1 主要特性204.1.2 内部结构204.1.3 外部特性(引脚功能)2142 AT89C52224.2.1 主要性能224.2.2 引脚结构234.2.3 引脚功能说明244.2.4 特殊功能寄存器274.2.5 存储器结构284.2.6 定时器0和定时器1294.2.7 定时器2294.2.8 中断304.2.9 晶振特性324.2.10 空闲模式324.2.11 掉电模式334.2.12 程序储存器的加密334.2.13 Flash编程并行模式344.2.14 编程方法34第五章毕业设计总结35附录38附录一 简易数字电压表的单片机控制源程序38附录二参考文献47附录三文献翻译48 第一章 绪论11 单片机简介单片机是一种集成电路芯片,采用超大规模技术把具有数据处理能力(如算术运算,逻辑运算、数据传送、中断处理)的微处理器(CPU),随机存取数据存储器(RAM),只读程序存储器(ROM),输入输出电路(I/O口),可能还包括定时计数器,串行通信口(SCI),显示驱动电路(LCD或LED驱动电路),脉宽调制电路(PWM),模拟多路转换器及A/D转换器等电路集成到一块单块芯片上,构成一个最小然而完善的计算机系统。这些电路能在软件的控制下准确、迅速、高效地完成程序设计者事先规定的任务。由此来看,单片机有着微处理器所不具备的功能,它可单独地完成现代工业控制所要求的智能化控制功能,这是单片机最大的特征。然而单片机又不同于单板机,芯片在没有开发前,它只是具备功能极强的超大规模集成电路,如果赋予它特定的程序,它便是一个最小的、完整的微型计算机控制系统,它与单板机或个人电脑(PC机)有着本质的区别,单片机的应用属于芯片级应用,需要用户了解单片机芯片的结构和指令系统以及其它集成电路应用技术和系统设计所需要的理论和技术,用这样特定的芯片设计应用程序,从而使该芯片具备特定的功能。 不同的单片机有着不同的硬件特征和软件特征,即它们的技术特征均不尽相同,硬件特征取决于单片机芯片的内部结构,用户要使用某种单片机,必须了解该型产品是否满足需要的功能和应用系统所要求的特性指标。这里的技术特征包括功能特性、控制特性和电气特性等等,这些信息需要从生产厂商的技术手册中得到。软件特征是指指令系统特性和开发支持环境,指令特性即我们熟悉的单片机的寻址方式,数据处理和逻辑处理方式,输入输出特性及对电源的要求等等。开发支持的环境包括指令的兼容及可移植性,支持软件(包含可支持开发应用程序的软件资源)及硬件资源。要利用某型号单片机开发自己的应用系统,掌握其结构特征和技术特征是必须的。单片机控制系统能够取代以前利用复杂电子线路或数字电路构成的控制系统,可以软件控制来实现,并能够实现智能化,现在单片机控制范畴无所不在,例如通信产品、家用电器、智能仪器仪表、过程控制和专用控制装置等等,单片机的应用领域越来越广泛。诚然,单片机的应用意义远不限于它的应用范畴或由此带来的经济效益,更重要的是它已从根本上改变了传统的控制方法和设计思想。是控制技术的一次革命,是一座重要的里程碑。12 单片机的应用领域单片机广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等领域,大致可分如下几个范畴:1.在智能仪器仪表上的应用单片机具有体积小、功耗低、控制功能强、扩展灵活、微型化和使用方便等优点,广泛应用于仪器仪表中,结合不同类型的传感器,可实现诸如电压、功率、频率、湿度、温度、流量、速度、厚度、角度、长度、硬度、元素、压力等物理量的测量。采用单片机控制使得仪器仪表数字化、智能化、微型化,且功能比起采用电子或数字电路更加强大。例如精密的测量设备(功率计,示波器,各种分析仪)。2.在工业控制中的应用用单片机可以构成形式多样的控制系统、数据采集系统。例如工厂流水线的智能化管理,电梯智能化控制、各种报警系统,与计算机联网构成二级控制系统等。3.在家用电器中的应用可以这样说,现在的家用电器基本上都采用了单片机控制,从电饭褒、洗衣机、电冰箱、空调机、彩电、其他音响视频器材、再到电子秤量设备,五花八门,无所不在。4.在计算机网络和通信领域中的应用现代的单片机普遍具备通信接口,可以很方便地与计算机进行数据通信,为在计算机网络和通信设备间的应用提供了极好的物质条件,现在的通信设备基本上都实现了单片机智能控制,从手机,电话机、小型程控交换机、楼宇自动通信呼叫系统、列车无线通信、再到日常工作中随处可见的移动电话,集群移动通信,无线电对讲机等。5.单片机在医用设备领域中的应用单片机在医用设备中的用途亦相当广泛,例如医用呼吸机,各种分析仪,监护仪,超声诊断设备及病床呼叫系统等等。此外,单片机在工商,金融,科研、教育,国防航空航天等领域都有着十分广泛的用途。13 单片机的发展趋势现在可以说单片机是百花齐放,百家争鸣的时期,世界上各大芯片制造公司都推出了自己的单片机,从8位、16位到32位,数不胜数,应有尽有,有与主流C51系列兼容的,也有不兼容的,但它们各具特色,互成互补,为单片机的应用提供广阔的天地。纵观单片机的发展过程,可以预示单片机的发展趋势,大致有:1.低功耗CMOS化MCS-51系列的8031推出时的功耗达630mW,而现在的单片机普遍都在100mW左右,随着对单片机功耗要求越来越低,现在的各个单片机制造商基本都采用了CMOS(互补金属氧化物半导体工艺)。象80C51就采用了HMOS(即高密度金属氧化物半导体工艺)和CHMOS(互补高密度金属氧化物半导体工艺)。CMOS虽然功耗较低,但由于其物理特征决定其工作速度不够高,而CHMOS则具备了高速和低功耗的特点,这些特征,更适合于在要求低功耗象电池供电的应用场合。所以这种工艺将是今后一段时期单片机发展的主要途径。2.微型单片化现在常规的单片机普遍都是将中央处理器(CPU)、随机存取数据存储(RAM)、只读程序存储器(ROM)、并行和串行通信接口,中断系统、定时电路、时钟电路集成在一块单一的芯片上,增强型的单片机集成了如A/D转换器、PMW(脉宽调制电路)、WDT(看门狗)、有些单片机将LCD(液晶)驱动电路都集成在单一的芯片上,这样单片机包含的单元电路就更多,功能就越强大。甚至单片机厂商还可以根据用户的要求量身定做,制造出具有自己特色的单片机芯片。此外,现在的产品普遍要求体积小、重量轻,这就要求单片机除了功能强和功耗低外,还要求其体积要小。现在的许多单片机都具有多种封装形式,其中SMD(表面封装)越来越受欢迎,使得由单片机构成的系统正朝微型化方向发展。3.主流与多品种共存现在虽然单片机的品种繁多,各具特色,但仍以80C51为核心的单片机占主流,兼容其结构和指令系统的有PHILIPS公司的产品,ATMEL公司的产品和中国台湾的Winbond系列单片机。所以C8051为核心的单片机占据了半壁江山。而Microchip公司的PIC精简指令集(RISC)也有着强劲的发展势头,中国台湾的HOLTEK公司近年的单片机产量与日俱增,与其低价质优的优势,占据一定的市场分额。此外还有MOTOROLA公司的产品,日本几大公司的专用单片机。在一定的时期内,这种情形将得以延续,将不存在某个单片机一统天下的垄断局面,走的是依存互补,相辅相成、共同发展的道路。14 单片机应用系统的开发过程单片机的应用系统随着其用途不同,其硬件和软件均不相同,也即单片机的最初的选型都很重要,原则上是选择高性价比的单片机,硬件软件化是提供系统性价比的有效方法,尽量减少硬件成本,多用软件来实现相同的功能,这样也可大大提高系统的可靠性。 虽然单片机的硬件选型不尽相同,软件编写也千差万别,但系统的研制步骤和方法是基本一致的,一般都分为总体设计、硬件电路的构思设计、软件的编制和仿真调试几个阶段。1.4.1 总体设计确立功能特性指标不管是工程控制系统还是智能仪器仪表,都必须先分析和了解项目的总体要求,输入信号的类型和数量,输出控制的对象及数量,辅助外设(如传感器)的种类及要求,使用的环境及工作的电源要求,产品的成本,可靠性要求和可维护性及经济效益等等因素,必要时可参考同类产品的技术资料,制定出可行的性能指标。1.4.2 硬件电路设计总体设计中确立的功能特性要求,确定单片机的型号,所需外围扩展芯片、存储器、I/O电路、驱动电路、可能还有A/D和D/A转换电路以及其它模拟电路,设计出应用系统的电路原理图。1.4.3 软件设计系统资源在单片机应用系统的开发中,软件的设计是最复杂和困难的,大部分情况下工作量都较大,特别是对那些控制系统比较复杂的情况。如果是机电一体化的设计人员,往往需要同时考虑单片机的软硬件资源分配。第二章 数字电压表数字电压表简称DVM,它是采用数字化测量技术,把连续的模拟量(直流输入电压)转换成不连续、离散的数字形式并加以显示的仪表。21 数字电压表的特点1显示清晰直观,读数准确传统的模拟式仪表必须借助于指针和刻度盘进行读数,在读数过程中不可避免的会引入人为的测量误差。数字电压表则采用先进的数显技术,使测量结果一目了然,只要仪表不发生跳读现象,测量结果就是唯一的。新型数字电压表还增加了标志符显示功能,包括测量项目、符号单位和特殊符号、为解决DVM不能反映被测电压的连续变化过程以及变化趋势这一难题,一种数字/模拟条图仪表业已问世。模拟图条(Anal of Bargraph)有双重含义:第一,被测量为模拟量;第二,利用条状图形来模拟被测量的大小及变化趋势。这类仪表将数字显示与高分辨率模拟条图显示集于一身,兼有DVM与模拟电压表之优点。 智能数字电压表均带微处理器和标准接口,可配合计算机和打印机进行数据处理或自动打印,构成完整的测试系统。2显示位数显示位数通常为31/2位、32/3位、33/4/位、41/2位、43/4位、51/2位、61/2位、71/2位、81/2位共9种。判定数字仪表的位数有两条原则:能显示09所有数字的位是整数位;分数位的数值是以最大显示值中最高位数字为分子,用满量程时最高数字作分母。例如,某数字仪表的最大显示值为1999,满量程计数值为2000,这表明该仪表有3个整数位,而分数位的分子为1,分母是2,故称之为31/2位,读作三位半。 3准确度高准确度是测量结果中系统误差与随机误差的综合。4分辨率高数字电压表在最低电压量程上末位1个字所代表的电压值,称为仪表的分辨力,它反映仪表灵敏度的高低。分辨力随显示位数的增加而提高。分辨率是指所能显示的最小数字(零除外)与最大数字的百分比。例如31/2位DVM的分辨率为1/19990.05。需要指出,分辨力与准确度属于两个不同的观念。从测量角度看,分辨力是虚指标(与测量误差无关),准确度才是实指标(代表测量误差的大小)。5测量范围宽多量程DVM一般可测量01000V直流电压,配上高压探头还可测上万伏的高压。6扩展能力强在数字电压表的基础上,还可扩展成各种通用及专用数字仪表、数字多用表(DMM)和智能仪表,以满足不同的需要。7测量速度快数字电压表在每秒钟内对被测电压的测量次数,叫测量速率,单位是次/S。它主要取决于A/D转换器的转换速率,其倒数是测量周期。8输入阻抗高数字电压表具有很高的输入阻抗,通常为10M10000M,最高可达1T。9集成度高,微功耗新型数字电压表普遍采用CMOS大规模集成电路,整机功耗很低。10抗干扰能力强51/2位以下的DVM大多采用积分式A/D转换器,其串模抑制比、共模抑制比各别可达100dB、80120dB。高档DVM还采用数字滤波、浮地保护等先进技术,进一步提高了抗干扰能力,共模抑制比可达180dB。22 数字仪表的发展趋势采用新技术、新工艺,由LSI和VLSI构成的新型数字仪表及高档智能仪器的大量问世,标志着电子仪器领域的一场革命,也开创了现代电子测量技术的先河。1广泛采用新技术,不断开发新产品2模块化的发展方向新一代数字仪表正朝着标准模块化的方向发展。预计在不久的将来,许多数字仪表将由标准化、通用化、系列化的模块所构成,给电路设计和安装调试、维修带来极大方便。表面安装技术(SMT)和表面安装元器件(SMD)将获得普遍应用。这项技术被誉为世界电子工艺技术的一项重要突破。所谓表面安装是将微型化的表面安装集成电路(SMIC)和表面安装元件,用粘贴工艺直接安装在印刷板上,再用波峰焊接机焊接,由此取代传统的打孔焊接工艺,使印刷板安装密度大为增加,可靠性得到明显提高。3多重显示仪表为彻底解决数字仪表不便于观察连续变化量的技术难题,数字/模拟条图双显示仪表已成为国际流行款式,它兼有数字仪表准确度高、模拟式仪表便于观察被测量的变化过程及变化趋势的两大优点。模拟条图大致分成三类:液晶(LCD)条图,呈断续的条状,这种显示器的分辨力高、微功耗,体积小,低压驱动,适于电池供电的小型化仪表。等离子体(PDP)光柱显示器,其优点是自身发光,亮度高,显示清晰,观察距离远,分辨力较高,缺点是驱动电压高,耗电较大。LED光柱,它是由多只发光二极管排列而成。这种显示器的亮度高,成本低,但象素尺寸较大,功耗高,驱动电路复杂。4安全性仪器仪表在设计和使用中的安全性,对于生产厂家和广大用户都是至关重要的问题。一方面厂家必须为仪表设计安全保护电路,并使之符合国际标准(例如美国UL认证,欧洲GS认证,ISO9001国际标准质量认证);另一方面用户必须安全操作,时刻注意仪表上的各种安全警告指示。仪表的保护电路在于最大限度的减小或防止因误操作而造成的危害。以DMM为例,常见的误操作是用电流档或电阻档去测量电压。5操作简单化 第三章 系统设计31 功能要求及设计目标简易数字电压表可以测量05V的8路输入电压值,并在四位LED数码管上轮流显示或单路选择显示,测量最小分辨率为0.019V,测量误差约为0.02V。32 方案论证按照系统功能实现要求,决定控制系统采用AT89C52单片机,A/D转换采用ADC0809。系统除能确保实现要求的功能外,还可以方便进行8路其他A/D转换量的测量、远程测量结果传送等扩展功能。数字电压表系统设计方框图如图2.1。上点复位AT89C52 P0 P2 P1 P3ADC0809LED显示串口通信电源电路 图2.1 33 系统硬件电路设计简易数字电压测量电路由A/D转换、数据处理及显示控制等组成, A/D转换有集成电路0809完成。0809具有8路模拟输入端口,地址线(2325脚)可决定对哪一路模拟输入作A/D转换。22脚为地址锁存控制,当输入为高电平时,对地址信号进行锁存。6脚为测试控制,当输入一个2us宽高电平时,就开始A/D转换。7脚为A/D转换结束标志,当A/D转换结束时,7脚输出高电平。9脚为A/D转换数据输出允许控制,当OE脚为高电平,A/D转换数据从该端口输出。10脚为0809的时钟输入端,利用单片机30脚的六分频晶振频率再通过分频器二分频得到1MHz时钟。单片机的P1、P3.0P3.3端口作为四位LED数码管显示控制。P3.5端口用作单路显示/循环显示转换按钮,P3.6端口用作单路显示选择频道。P0端口作A/D转换数据读入用,P2端口用作0809的A/D转换控制。 图2.2 系统电路图 图2.3 52芯片与A/D模块连接电路图 图2.4 2分频电路图分频器是由两块74S74芯片组成的二分频电路,也可由14024芯片单独完成。在本设计中采用了前者。引脚3接89C52的30脚。由晶振产生的12MHz晶振频率,利用单片机30脚的六分频晶振频率再通过分频器二分频得到1MHz时钟。引脚5连接0809的10脚。10脚为0809的时钟输入端。图2.5 晶振电路图 晶振输入输出电路分别连接单片机18、19引脚。18脚XTAL2是振荡器反相放大器的输出端。19脚XTAL1是振荡器反相放大器和内部时钟发生电路的输入端。 图2.6 RST引脚连接图 当系统上电时,RST脚持续2个机器周期高电平将使单片机复位。34 系统程序的设计3.4.1 初始化程序系统上电时,初始化程序将70H77H内存单元清0,P2口置0。3.4.2 主程序 在刚上电时,系统默认为循环显示8个通道的电压值状态。当进行一次测量后,将显示每一通道的A/D转换值,每个通道的数据显示时间为1s左右。主程序在调用显示程序和测试子程序之间循环,主程序流程图见图2.3。开始初始化调用A/D转换子程序调用显示子程序图2.3 主程序流程图3.4.3 显示子程序显示子程序采用动态扫描法实现四位数码管的数值显示。测量所得的A/D转换数据放在70H77H内存单元中,测量数据在显示时需转换为十进制BCD码放在78H7BH单元中,其中7BH存放通道标志数。寄存器R3用作8路循环控制,R0用作显示数据地址指针。3.4.4 模/数转换测量子程序数转换测量子程序用来控制对0809八路模拟输入电压的A/D转换,并将对应的数值移入70H77H内存单元。其程序流程见图2.4。开始启动测试(TESTART)A/D转换结束?P3.7=1?取数据(P2.5=1)0809地址加1地址数小于8?结束NY NY 图2.4 A/D转换测量程序流程图35 性能分析单片机为8位处理器,当输入电压为5.00时,输出数据值为255(FFH),因此单片机最大的数值分辨率为0.0196V(5/255)。这就决定了该电压表的最大分辨率(精度)只能达到0.0196V。测试时电压数值的变化一般以0.02的电压幅度变化,如要获得更高的精度要求,应采用12位、13位的A/D转换器。ADC0809的直流输入阻抗为1M欧,能满足一般的电压测试需要。另外,经测试ADC0809可直接在2MHz的频率下工作,这样可省去分频器。第四章 主要硬件功能及介绍 系统所采用的硬件为: A/D转换器ADC0809以及单片机AT89C52。以下就对两块主要芯片的功能进行简单的介绍。41 ADC08094.1.1 主要特性 1)8路8位AD转换器,即分辨率8位。 2)具有转换起停控制端。 3)转换时间为100s4)单个5V电源供电 5)模拟输入电压范围05V,不需零点和满刻度校准。 6)工作温度范围为-4085摄氏度 7)低功耗,约15mW。 4.1.2 内部结构 ADC0809是CMOS单片型逐次逼近式A/D转换器,内部结构如图3.1所示,它由8路模拟开关、地址锁存与译码器、比较器、8位开关树型D/A转换器、逐次逼近寄存器、三态输出锁存器等其他一些电路组成。因此,ADC0809可处理8路模拟量输入,且有三态输出能力,既可与各种微处理器相连,也可单独工作。输入输出与TTL兼容。 图3.1 ADC0809内部结构框图 图3.2 ADC0809引脚图4.1.3外部特性(引脚功能)ADC0809芯片有28条引脚,采用双列直插式封装,如图3.2所示。下面说明各引脚功能。 IN0IN7:8路模拟量输入端。2-12-8:8位数字量输出端。 ADDA、ADDB、ADDC:3位地址输入线,用与选通8路模拟输入中的一路。如表3.1所示。表3.1ADDA、ADDB、ADDC真值表ADDCADDBADDA输入通道000IN0001IN1010IN2011IN3100IN4101IN5110IN6111IN7ALE:地址锁存允许信号,输入,高电平有效。 START: AD转换启动信号,输入,高电平有效。 EOC: AD转换结束信号,输出,当AD转换结束时,此端输出一个高电平(转换期间一直为低电平)。 OE:数据输出允许信号,输入,高电平有效。当AD转换结束时,此端输入一个高电平,才能打开输出三态门,输出数字量。CLK:时钟脉冲输入端。要求时钟频率不高于640KHZ。 REF(+)、REF(-):基准电压。 Vcc:电源,单一5V。 GND:地。 ADC0809的工作过程是:首先输入3位地址,并使ALE=1,将地址存入地址锁存器中。此地址经译码选通8路模拟输入之一到比较器。START上升沿将逐次逼近寄存器复位。下降沿启动 AD转换,之后EOC输出信号变低,指示转换正在进行。直到AD转换完成,EOC变为高电平,指示AD转换结束,结果数据已存入锁存器,这个信号可用作中断申请。当OE输入高电平 时,输出三态门打开,转换结果的数字量输出到数据总线上。42 AT89C52AT89C52是ATMEL公司生产的低电压,高性能CMOS 8位单片机。片内含8kbtyes的可反复擦写的Flash只读程序储存器和256bytes的随即存取数据储存器(RAM),器件采用ATMEL公司高密度、非易失性储存技术生产,与标准MCS-51指令系统及8052产品引脚兼容。片内置通用8位中央处理器(CPU)和Flash存储单元,功能强大AT89C52单片机适合与许多较为复杂控制应用场合。4.2.1 主要性能l 与MCS-51单片机产品兼容l 8K字节可重擦写Flash闪速存储器l 1000次擦写周期l 全静态操作:0Hz24Hzl 三级加密程序存储器l 256*8字节内部RAMl 32个可编程I/O口线l 三个16位定时器/计数器l 八个中断源l 可编程串行UART通道l 低功耗空闲和掉电模式4.2.2 引脚结构 图3.3 AT89C52引脚图AT89C52提供以下标准功能:8k字节Flash闪速存储器,256字节内部RAM,32个I/O口线,3个16位定时/计数器,一个6向量两级中断结构,一个全双工串行通信口,片内震荡器及时钟电路。同时,AT89C52可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。掉电方式保存RAM中的内存,但振荡器停止工作并禁止其他所有部件工作直到下一个硬件复位。 图3.4 89C52方框图4.2.3 引脚功能说明VCC : 电源GND: 地P0 口:P0口是一个8位漏极开路的双向I/O口。作为输出口,每位能驱动8个TTL逻辑电平。对P0端口写“1”时,引脚用作高阻抗输入。当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。在这种模式下,P0具有内部上拉电阻。在flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。程序校验时,需要外部上拉电阻。P1 口:P1 口是一个具有内部上拉电阻的8 位双向I/O 口,p1 输出缓冲器能驱动4 个TTL 逻辑电平。对P1 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。此外,P1.0和P1.2分别作定时器/计数器2的外部计数输入(P1.0/T2)和时器/计数器2的触发输入(P1.1/T2EX),具体如下表所示。在flash编程和校验时,P1口接收低8位地址字节。 表3.2引脚号第二功能P1.0T2(定时器/计数器T2的外部计数输入),时钟输出P1.1T2EX(定时器/计数器T2的捕捉/重载触发信号和方向控制)P1.5MOSI(在系统编程用)P1.6MOSI(在系统编程用)P1.7SCK(在系统编程用)P2 口:P2 口是一个具有内部上拉电阻的8 位双向I/O 口,P2 输出缓冲器能驱动4 个TTL 逻辑电平。对P2 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行MOVX DPTR)时,P2 口送出高八位地址。在这种应用中,P2 口使用很强的内部上拉发送1。在使用8位地址(如MOVX RI)访问外部数据存储器时,P2口输出P2锁存器的内容。在flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。P3 口:P3 口是一个具有内部上拉电阻的8 位双向I/O 口,p2 输出缓冲器能驱动4 个TTL 逻辑电平。对P3 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。P3口亦作为AT89C52特殊功能(第二功能)使用,如下表所示。在flash编程和校验时,P3口也接收一些控制信号。 表3.3引脚号第二功能P3.0RXD(串行输入)P3.1TXD(串行输出)P3.2INTO(外部中断0)P3.3INTO(外部中断0)P3.4T0(定时器0外部输入)P3.5T1(定时器1外部输入)P3.6WR(外部数据存储器写选通)P3.7RD(外部数据存储器写选通)RST: 复位输入。晶振工作时,RST脚持续2个机器周期高电平将使单片机复位。RST 脚输出96个晶振周期的高电平。特殊寄存器AUXR(地址8EH)上的DISRTO位可以使此功能无效。DISRTO默认状态下,复位高电平有效。ALE/PROG:地址锁存控制信号(ALE)是访问外部程序存储器时,锁存低8位地址的输出脉冲。在flash编程时,此引脚(PROG)也用作编程输入脉冲。在一般情况下,ALE以晶振六分之一的固定频率输出脉冲,可用来作为外部定时器或时钟使用。然而,特别强调,在每次访问外部数据存储器时,ALE脉冲将会跳过。如果需要,通过将地址为8EH的SFR的第0位置“1”,ALE操作将无效。这一位置“1”,ALE仅在执行MOVX或MOVC指令时有效。否则,ALE将被微弱拉高。这个ALE 使能标志位(地址为8EH的SFR的第0位)的设置对微控制器处于外部执行模式下无效。PSEN:外部程序存储器选通信号(PSEN)是外部程序存储器选通信号。当AT89C52从外部程序存储器执行外部代码时,PSEN在每个机器周期被激活两次,而在访问外部数据存储器时,PSEN将不被激活。EA/VPP:访问外部程序存储器控制信号。为使能从0000H 到FFFFH的外部程序存储器读取指令,EA必须接GND。为了执行内部程序指令,EA应该接VCC。在flash编程期间,EA也接收12伏VPP电压。XTAL1:振荡器反相放大器和内部时钟发生电路的输入端。XTAL2:振荡器反相放大器的输出端。表3.4 AT89C52 特殊寄存器映象及复位值4.2.4 特殊功能寄存器特殊功能寄存器(SFR)的地址空间映象如表3.4所示。并不是所有的地址都被定义了。片上没有定义的地址是不能用的。读这些地址,一般将得到一个随机数据;写入的数据将会无效。用户不应该给这些未定义的地址写入数据“1”。由于这些寄存器在将来可能被赋予新的功能,复位后,这些位都为“0”。定时器2寄存器:寄存器T2CON和T2MOD包含定时器2 的控制位和状态位(如表3.5和表3.6所示),寄存器对RCAP2H和RCAP2L是定时器2的捕捉/自动重载寄存器。中断寄存器:各中断允许位在IE寄存器中,六个中断源的两个优先级也可在IE中设置。 表3.5 T2CON:定时器/计数器2控制寄存器双数据指针寄存器:为了更有利于访问内部和外部数据存储器,系统提供了两路16位数据指针寄存器:位于SFR中82H83H的DP0和位于84H85。特殊寄存器AUXR1中DPS0 选择DP0;DPS=1 选择DP1。用户应该在访问数据指针寄存器前先初始化DPS至合理的值。掉电标志位:掉电标志位(POF)位于特殊寄存器PCON的第四位(PCON.4)。上电期间POF置“1”。POF可以软件控制使用与否,但不受复位影响。4.2.5 存储器结构MCS-51器件有单独的程序存储器和数据存储器。外部程序存储器和数据存储器都可以64K寻址。程序存储器:如果EA引脚接地,程序读取只从外部存储器开始。对于89C52,如果EA 接VCC,程序读写先从内部存储器(地址为0000H1FFFH)开始,接着从外部寻址,寻址地址为:2000HFFFFH。数据存储器:AT89C52 有256 字节片内数据存储器。高128 字节与特殊功能寄存器重叠。也就是说高128字节与特殊功能寄存器有相同的地址,而物理上是分开的。当一条指令访问高于7FH 的地址时,寻址方式决定CPU 访问高128 字节RAM 还是特殊功能寄存器空间。直接寻址方式访问特殊功能寄存器(SFR)。例如,下面的直接寻址指令访问0A0H(P2口)存储单元。MOV 0A0H , #data使用间接寻址方式访问高128 字节RAM。例如,下面的间接寻址方式中,R0 内容为0A0H,访问的是地址0A0H的寄存器,而不是P2口(它的地址也是0A0H)。MOV R0 , #data堆栈操作也是间接寻址方式。因此,高128字节数据RAM也可用于堆栈空间。4.2.6 定时器0和定时器1在AT89C52 中,定时器0和定时器1的操作与AT89C51一样。4.2.7 定时器2定时器2是一个16位定时/计数器,它既可以做定时器,又可以做事件计数器。其工作方式由特殊寄存器T2CON中的C/T2位选择(如表3.5所示):定时器2有三种工作模式:捕捉方式、自动重载(向下或向上计数)和波特率发生器。工作模式由T2CON中的相关位选择。定时器2有2个8位寄存器:TH2和TL2。在定时工作方式中,每个机器周期,TL2寄存器都会加1。由于一个机器周期由12个晶振周期构成,因此,计数频率就是晶振频率的1/12。表3.6 定时器2工作模式RCLK+TCLKCP/RL2TR2MODE00116位自动重载01116位捕捉11波特率发生器0(不用)在计数工作方式下,寄存器在相关外部输入角T2 发生1 至0 的下降沿时增加1。在这种方式下,每个机器周期的S5P2期间采样外部输入。一个机器周期采样到高电平,而下一个周期采样到低电平,计数器将加1。在检测到跳变的这个周期的S3P1 期间,新的计数值出现在寄存器中。因为识别10的跳变需要2个机器周期(24个晶振周期),所以,最大的计数频率不高于晶振频率的1/24。为了确保给定的电平在改变前采样到一次,电平应该至少在一个完整的机器周期内保持不变。4.2.8 中断AT89C52 有6个中断源:两个外部中断(INT0 和INT1),三个定时中断(定时器0、1、2)和一个串行中断。这些中断如图3.5所示每个中断源都可以通过置位或清除特殊寄存器IE 中的相关中断允许控制位分别使得中断源有效或无效。IE还包括一个中断允许总控制位EA,它能一次禁止所有中断。如表3.8所示,IE.6位是不可用的。对于AT89S52,IE.5位也是不能用的。用户软件不应给这些位写1。它们为AT89系列新产品预留。定时器2可以被寄存器T2CON中的TF2和EXF2的或逻辑触发。程序进入中断服务后,这些标志位都可以由硬件清0。实际上,中断服务程序必须判定是否是TF2 或EXF2激活中断,标志位也必须由软件清0。定时器0和定时器1标志位TF0 和TF1在计数溢出的那个周期的S5P2被置位。它们的值一直到下一个周期被电路捕捉下来。然而,定时器2 的标志位TF2 在计 数溢出的那个周期的S2P2被置位,在同一个周期被电路捕捉下来。表3.8 中断允许控制寄存器(IE)图3.5 中断源4.2.9 晶振特性如图3.6,AT89C52 单片机有一个用于构成内部振荡器的反相放大器,XTAL1 和XTAL2 分别是放大器的输入、输出端。石英晶体和陶瓷谐振器都可以用来一起构成自激振荡器。从外部时钟源驱动器件的话,XTAL2 可以不接,而从XTAL1 接入,如图3.7。由于外部时钟信号经过二分频触发后作为外部时钟电路输入的,所以对外部时钟信号的占空比没有其它要求,最长低电平持续时间和最少高电平持续时间等还是要符合要求的。 图3.6 内部振荡电路连接图 图3.7 外部振荡电路连接图石英晶振C1,C2=30PF10PF 陶瓷谐振器C1,C2=40PF10PF4.2.10 空闲模式在空闲工作模式下,CPU 处于睡眠状态,而所有片上外部设备保持激活状态。这种状态可以通过软件产生。在这种状态下,片上RAM和特殊功能寄存器的内容保持不变。空闲模式可以被任一个中断或硬件复位终止。由硬件复位终止空闲模式只需两个机器周期有效复位信号,在这种情况下,片上硬件禁止访问内部RAM,而可以访问端口引脚。空闲模式被硬件复位终止后,为了防止预想不到的写端口,激活空闲模式的那一条指令的下一条指令不应该是写端口或外部存储器。4.2.11 掉电模式在掉电模式下,晶振停止工作,激活掉电模式的指令是最后一条执行指令。片上RAM和特殊功能寄存器保持原值,直到掉电模式终止。掉电模式可以通过硬件复位和外部中断退出。复位重新定义了SFR 的值,但不改变片上RAM 的值。在VCC未恢复到正常工作电压时,硬件复位不能无效,并且应保持足够长的时间以使晶振重新工作和初始化。表3.9 空闲模式和掉电模式下的外部引脚状态模式程序储存器ALEPSENPORT0PORT1PORT2PORT3空闲内部11数据数据数据数据空闲外部11浮空数据地址数据掉电内部00数据数据数据数据掉电外部00数据数据数据数据 4.2.12 程序储存器的加密AT89C52有三个加密位不可编程(U)和可编程获得下表所示的功能。表3.10加密位保护模式程序加密位 保护类型LB1LB2LB31UUU无程序保护功能2PUU禁止从内容存储器取代码字节执行外部存储器的MOVE指令。复位时,EA被采样并锁存,禁止对Flash存储器进一步编程3PPU除与方式2功能相同外,同时禁止校验4PPP除与方式3相同外,同时禁止外部执行加密位1(LB1)编程后,EA引脚的逻辑值被采样,并在复位期间锁存。如果器件复位,而没有复位,将锁存一个随机值,直到复位为止。为了器件功能正常,锁存到的EA值必须和这个引脚的当前逻辑电平一致。4.2.13 Flash编程并行模式AT89C52带有用作编程的片上Flash存储器阵列。编程接口需要一个高电压(12V)编程使能信号,并且兼容常规的第三方Flash或EPROM编程器。AT89C52程序存储阵列采用字节式编程。4.2.14 编程方法对AT89C52编程之前,需根据Flash编程模式表和对地址、数据和控制信号设置。可采用下列步骤对AT89C52编程:1在地址线上输入编程单元地址信号2在数据线上输入正确的数据3激活相应的控制信号4把EA/Vpp升至12V5每给Flash写入一个字节或程序加密位时,都要给ALE/PROG一次脉冲。字节写周期时自身定制的,典型值仅仅50us。改变地址、数据重复第1步到第5步,直到全部文件结束。 图3.8 编程电路 图3.9 校验电路第五章毕业设计总结大学四年生活的最后一个学期即将结束,这也代表着整个大学生活即将离我远去。在这矛盾的时刻,我不知道该如何表达我内心的情感,有挑战未知的雀跃,更有的是依依惜别的离情!总结过去可以拨开时间的迷雾,清晰的回首所走过的路,从而为将来的人生旅程准备一些经验和教训。回顾这个毕业设计的整个阶段,我感觉前所未有的满足感。不仅仅是因为完成了毕业设计,更重要的是在这个过程中,我自己在不断的学习新的知识,在不断的提高专业知识和自己本身的办事能力及考虑问题的全面性。经过此过程,知识的应用、巩固和提高,让我能够把所学同实际应用相结合。在毕业设计后,我进行了总结,希望这些经验能给自己今后的工作提供借鉴。在这个漫长的毕业设计过程中,当然有挫折,有失败,但正是这种经历使我一步步积累了宝贵的经验。在下面几个方面我得到了进步: 1始终充满激情和自信,要坚持笑对人生 不过做什么,既然选择了,那么就要全新的姿态,满腔的热情去投入要做的事情中去。只有这样,你才能在办事当中体会乐趣;也只有这样,你才能在一个良好的心态下取得进步。 2.谦虚,戒骄戒躁 做任何事情,都不可以骄傲。古人云:骄兵必败。即使你能力再强,如果骄傲还是会断送你的前程。因此,在毕业设计的过程中,我始终保持着一颗谦虚的心。平时多下工夫,掌握扎实的理论知识,遇到问题,尽自己的努力去解决或者是向指导老师请教。 3.掌握新的学习方法,发挥主观能动性 在毕业设计过程中,我从和指导老师和同学们的交流中不断的吸取经验,并且不断的对这些东西进行总结和分析,用自己的想法和思路来完成对问题的理解。 4.做事有毅力,持之以恒 做事难免会遇到麻烦和困难,但是不能因为这些而且终止或者减缓我们的前进的步伐。在毕业设计开始阶段,曾猛打精神。可经过几天的作业,感到十分的疲惫,于是放慢了进度。直到最后阶段才不得不仓促完成毕业设计。所以在这个毕业设计的过程中,让我吸取了这个教训,懂得了做事要有毅力,持之以恒。也许毕业设计是我人生中作为学生的最后一次作业,不过它教会了我很多,很多。让我改正了错误的观点和做法,提高了考虑事情所站的高度,为自己最终的离开送上一份丰厚的礼物。总之,向着自己的目标前进,充实的过好每一天,只要无悔,便是成功。而成才而言,则是一个漫长积累的过程,必须要执着进取,踏实奋斗,才有望品尝成功的喜悦。人在不同的时期会有不同的观点和想法,但这只是形式上的改变,其基础却已深深扎根于思维深处,是再难改变的。在以后的生活中,积极向上,笑对人生将是我的原则和动力,爱国爱家,踏实进取则是我人生成才的基石。
展开阅读全文