1、I摘 要本文主要论述了一种基于 AT89C51 单片机为核心控制器的数控直流稳压电源的设计原理和实现方法,其主要由辅助电源、显示电路、控制电路、数模转换电路、稳压电路等部分组成。该系统原理是以 AT89C51 单片机为控制单元, ,以数模转换芯片 DAC0809 进行转换为模拟信号。辅助电源提供各个芯片、数码管和放大器所需工作电压,显示电路用于显示电源输出电压的大小,输出电压值可通过按键对其进行步进控制(0.1V) ,并且在按键长时间按下的时候能连续增加或减小。与传统的稳压电源相比具有操作方便,电源稳定性高以及其输出电压大小采用数码显示的特点。该系统具有抗干扰性能好,可靠性高,及最终输出电压值
2、与真实显示值精确度较高等优点。关键词: 数控直流稳压电源 AT89C51 DAC0809 IIDesign of Digital Power sourceAbstractThe method of this paper based on the AT89C51 microcontroller core of the numerical controller DC power supply design theory and realization. The digital DC power supply from the analog power, display circuit, contr
3、ol circuit, digital-to-analog conversion circuit, regulator circuit and analog-to-digital converter circuit composed of six parts. This system is based on the principle of single-chip microcomputer to control the unit AT89C51 to DAC0809 digital-to-analog converter chip reference voltage to control t
4、he output voltage, while the analog-to-digital converter dac0809 chip convert the sampling of voltage to digital signals. Analog power supply to provide the various chips, digital amplifier control and the required operating voltage, display circuit for displaying the size of power supply output vol
5、tage, output voltage value may be stepping through the control button ( 0.1V), and a long button press when under the continuous increase or decrease. And compared to the traditional regulated power supply with easy to operate, high power stability, as well as the size of the output voltage characte
6、ristics of the use of digital display. This system has the resistance to interference well, the reliability is high, and finally output voltage value and real demonstration value precision higher merit.Key words: Digital DC Voltage-stabilized Power Source AT89C51 DAC0809 1目 录摘 要 .IDESIGN OF DIGITAL
7、POWER SOURCE .IIABSTRACT .II第一章 绪论 3第二章 电源概述及方案设计 52.1 直流稳压源概述及定义 .52.2 方案的比较与选择 .52.2.1 传统直流稳压源 .52.2.2 数控直流稳压电源 .62.2.3 方案的最终选择 .72.3 数控直流稳压电源设计方案及结构 .72.3.1 系统总体设计方案 .82.3.2 数控直流稳压源总体结构 .8第三章 硬件系统设计 93.1 控制模块的分析 .93.1.1 单片机简介 93.1.2 AT89C51 单片机简介 113.1.3 AT89C51 单片机的性能参数: 113.1.4 AT89C51 内存空间 .12
8、3.1.5 AT89C51 单片机的功能特性概述 123.1.6 AT89C51 接口设计 153.2 显示模块 .163.2.1 数码显示输出部分 163.3 键盘模块 173.4.数模转换模块设计与实现 173.4.1 芯片方案选择 173.4.2 DAC0809 的简介 .173.4.3:LM317 介绍 .20第四章 辅助电源设计 2224.1 辅助电源模块 .224.3 串联线性稳压模块 .234.4 集成运放作比较电路 .2345 串联线性稳压电路的应用 .24第五章 系统软件设计 .25第六章 系统的测试与仿真 .266.1.1 开发工具 Keil c51.266.1.2 仿真工
9、具介绍 PROTUES7.5.266.1.3 仿真界面 276.2 单片机系统抗干扰说明 .28总结 30致 谢 31参考文献 32附录 A 原理图 .33附录 B PCB 图 .34附录 C 程序清单 .35第一章 绪论1.1 课题的背景和意义电源技术尤其是数控电源技术是一门实践性很强的工程技术,服务于各行各业。电力电3子技术是电能的最佳应用技术之一。当今电源技术融合了电气、电子、系统集成、控制理论、材料等诸多学科领域。随着计算机和通讯技术发展而来的现代信息技术革命,给电力电子技术提供了广阔的发展前景,同时也给电源提出了更高的要求。随着数控电源在电子装置中的普遍使用,普通电源在工作时产生的误
10、差,会影响整个系统的精确度。电源在使用时会造成很多不良后果,世界各国纷纷对电源产品提出了不同要求并制定了一系列的产品精度标准。只有满足产品标准,才能够进入市场。随着经济全球化的发展,满足国际标准的产品才能获得进出的通行证。数控电源是从 80 年代才真正的发展起来的,期间系统的电力电子理论开始建立。这些理论为其后来的发展提供了一个良好的基础。在以后的一段时间里,数控电源技术有了长足的发展。但其产品存在数控程度达不到要求、分辨率不高、功率密度比较低、可靠性较差的缺点。因此数控电源主要的发展方向,是针对上述缺点不断加以改善。单片机技术及电压转换模块的出现为精确数控电源的发展提供了有利的条件。新的变换
11、技术和控制理论的不断发展,各种类型专用集成电路、数字信号处理器件的研制应用,到 90 年代,己出现了数控精度达到 0.05V 的数控电源,功率密度达到每立方英寸 50W 的数控电源。从组成上,数控电源可分成器件、主电路与控制等三部分。目前在电力电子器件方面,几乎都为旋纽开关调节电压,调节精度不高,而且经常跳变,使用麻烦。利用数控电源,可以达到每步 0.1V 的精度,输出电压范围09.9V,电流可以达到 500mA。数控技术方面的发展是以 51 系列单片机为主控单元电路的拓扑和软开关技术等电子技术的完善为主要标志。数字化则应属于控制方面的重要发展方向,随着信息技术的突飞猛进,将对开关电源技术的发
12、展起到巨大推进作用。数控电源目前的发展,主要朝着更高的数控精度和分辨率及更好的动态特性;更好的环保性能;智能化与高可靠性;更广泛的应用等方向发展。1.2 数控电源的发展20 世纪 80 年代,出现了一种叫作开关式稳压电源,这种电源是采用功率半导体器件作为开关,通过控制开关的占空比调整输出电压。开关型稳压电路中的调整管工作在开关状态,因而功耗小,电路效率高。开关电源的种类很多,按调整管与负载的连接方式可分为串联和并联型,串连开关稳压电路是降压型电路,并联开关型稳压电路是升压型电路。按稳压的控制方式可分为脉冲宽度调制型(PWM) 、脉冲频率调制型(PFM)和混合调制。这其中尤以 PWM 最为盛行,
13、这种电源在开关和稳压方面功能非常优越,但在电压输出精度方面仍存在缺陷,旋钮式远不能满足工业需求,数控技术的发展给电源的发展注入新的活力,数控逐渐成为一种趋势随着人们生活水平的不断提高,数字化控制无疑是人们追求的目标之一,它所给人带来的方便也是不可否定的,其中数控制直流稳压电源就是一个很好的典型例子,但人们对它的要求也越来越高,要为现代人工作、科研,生活、提供更好的,更方便的设施就需要从数字电子技术入手,一切向数字化,智能化方向发展.本文所介绍的数控。1.3 数控电源技术4电源技术尤其是数控电源技术是一门践性很强的工程技术,服务于各行各业。众所周知,许多科学实验都离不开电源,并且在这些实验中经常
14、会对通电时间、电压高低、电流大小以及动态指标有着特殊的要求,因此,如果实验电源不仅具有良好的输出质量而且还具有多功能以及一定的智能化,那么就省去了许多不精确的人为操作,取而代之的是精确的微机控制,而我们所要做的就是显示输出电压、电流,预置输出电压值等功能。就是在实验开始前对一些参数进行预设。这将会给各个领域中的实验研究带来不同程度的便捷与高效。因此,直流电源今后的发展目标之一就是不仅要在性能上做到效率高、噪声低、高次谐波低、既节能又不干扰环境,还要在功能上力求实现数控化、多功能化与智能化。1.4 数控电源的主要用途直流稳压电源是电子技术常用的设备之一,广泛的应用于教学、科研等领域。传统的多功能
15、直流稳压电源功能简单、比较难于控制、可靠性低、干扰大、精度低且体积大、复杂度高。普通直流稳压电源品种很多, 但均存在以下二个问题: 1) 输出电压是通过粗调(波段开关) 及细调(电位器)来调节。这样, 当输出电压需要精确输出或需要在一个小范围内改变时(如 1. 05 1. 07V ) ,困难就较大。另外, 随着使用时间的增加, 波段开关及电位器难免接触不良, 对输出会有影响。2) 稳压方式均是采用串联型稳压电路, 对过载进行限流或截流型保护, 电路构成复杂,稳压精度也不高。在家用电器和其他各类电子设备中,通常都需要电压稳定的直流电源供电。但在实际生活中,都是由 220V 的交流电网供电。这就需
16、要通过变压、整流、滤波、稳压电路将交流电转换成稳定的直流电。滤波器用于滤去整流输出电压中的纹波,一般传统电路由滤波扼流圈和电容器组成,若由晶体管滤波器来替代,则可缩小直流电源的体积,减轻其重量,且晶体管滤波直流电源不需直流稳压器就能用作家用电器的电源,这既降低了家用电器的成本,又缩小了其体积,使家用电器小型化。及电压转换模块的出现为精确数控电源的发展提供了有利的条件。新的变换技术和控制理论的不断发展,各种类型专用集成电路、数字信号处理器件的研制应用,到 90 年代,己出现了数控精度达到 0.05V 的数控电源,功率密度达到每立方英寸 50W 的数控电源。从组成上,数控电源可分成器件、主电路与控
17、制等三部分。目前在电力电子器件方面,几乎都为旋纽开关调节电压,调节精度不高,而且经常跳变,使用麻烦 1。在一些测试设备中需要数控直流稳压电源,以便在测试过程中按测试要求随时改变输出电压。在普通可调直流稳压电源中,通过调节电位器去改变取样电压值,从而获得不同的输出电压。 5第二章 电源概述及方案设计2.1 直流稳压源概述及定义直流稳压电源又称直流稳压器。它的供电电源大都是交流电源,当交流供电电源的电压或负载电阻变化时,稳压器的直接输出电压都能保持稳定。稳压器的参数有电压稳定度、纹波系数和响应速度等。前者表示输入电压的变化对输出电压的影响。纹波系数表示在额定工作情况下,输出电压中交流分量的大小;后
18、者表示输入电压或负载急剧变化时,电压回到正常值所需时间。直流稳压电源分连续导电式与开关式两类。前者由变压器把单相或三相交流电压变到适当值,然后经整流、滤波,获得不稳定的直流电源,再经稳压电路得到稳定电压(或电流)。这种电源线路简单、纹波小、相互干扰小,但体积大、耗材多,效率低(常低于 4060)。后者以改变调整元件(或开关)的通断时间比来调节输出电压,从而达到稳压。这类电源功耗小,效率可达 85左右。所以,80 年代以来发展迅速。从工作方式上可分为:可控整流型。用改变晶闸管的导通时间来调整输出电压。斩波型。输入是不稳定的直流电压,以改变开关电路的通断比得到单向脉动直流,再经滤波后得到稳定直流电
19、压。变换器型。不稳定直流电压先经逆变器变换成高频交流电,再经变压、整流、滤波后,从所得新的直流输出电压取样,反馈控制逆变器工作频率,达到稳定输出直流电压的目的 2。2.2 方案的比较与选择2.2.1 传统直流稳压源一、 传统直流稳压电源的概述在电子电路和电气设备中,通常都需要电压稳定的直流电源供电,直流电源可分为两大类,一类是化学电源,如各种各样的干电池、蓄电池、充电电池等电源;其优点是体积小、重量轻、携带方便等,缺点是成本高,易污染。另一类是稳压电源,它是把交流电网 220V 的电压降为所需要的数值,然后通过整流、滤波和稳压电路,得到稳定的直流电压,这是现实生活中应用比较广泛的一类。二、 传
20、统直流稳压源的组成能够把交流电转变为平滑的稳定的直流电的装置叫直流稳压电源。它主要由电源变压器、整流电路、滤波电路、稳压电路四部分组成,如图 1-2 所示。6电源变压器整流电路滤波电路稳压电路220v50Hz图 1-2 传统直流稳压源的组成三、 传统直流稳压源各部分原理1. 电源变压器电网提供的交流电一般为 220V(或 380V) ,而各种电子设备所需要直流电压的幅值却各不相同。因此,常常需要将电网电压先经过电源变压器,然后将变换以后的副边电压再去整流、滤波和稳压,最后得到所需要的直流电压幅值。2. 整流部分整流电路的作用是利用具有单向导电性能的整流元件,将正负交替的正弦交流电压整流成单方向
21、的脉动电压。但是,这种单向脉动电压往往包含着很大的脉动成分,距离理想的直流电压还差得很远。3. 滤波电路滤波器由电容、电感等储能元件组成。它的作用是尽可能地将单向脉动电压中的脉动成分滤掉,使输出电压成为比较平滑的直流电压。但是,当电网电压或负载电流发生变化时,滤波器输出直流电压的幅值也将随之而变化,在要求比较高的电子设备中,这种情况是不符合要求的。4. 稳压部分稳压电路的作用是采取某些措施,使输出的直流电压在电网电压或负载电流发生变化时保持稳定。2.2.2 数控直流稳压电源一、 数控直流稳压电源的概述数控电源是从 80 年代才真正的发展起来的,期间系统的电力电子理论开始建立。这些理论为其后来的
22、发展提供了一个良好的基础。在以后的一段时间里,数控电源技术有了长足的发展。但其产品存在数控程度达不到要求、分辨率不高、功率密度比较低、可靠性较差的缺点 3。因此数控电源主要的发展方向,是针对上述缺点不断加以改善。单片机技术及电压转换模块的出现为精确数控电源的发展提供了有利的条件。新的变换技术和控制理论的不断发展,各种类型专用集成电路、数字信号处理器件的研制应用,到 907年代,己出现了数控精度达到 0.05V 的数控电源,功率密度达到每立方英寸 50W 的数控电源。二、 数控直流稳压电源的组成从组成上,数控电源可分成键盘显示电路、控制电路、D/A、A/D 转换电路、稳压电路等四部分。三、 数控
23、直流稳压电源的优点电源采用数字控制,具有以下明显优点:1. 易于采用先进的控制方法和智能控制策略,使电源模块的智能化程度更高,性能更完美。2. 控制灵活,系统升级方便,甚至可以在线修改控制算法,而不必改动硬件线路。3. 控制系统的可靠性提高,易于标准化,可以针对不同的系统(或不同型号的产品),采用统一的控制板,而只是对控制软件做一些调整即可。4. 易组成高可靠性的多模块逆变电源并联运行系统。为了得到高性能的并联运行逆变电源系统,每个并联运行的逆变电源单元模块都采用全数字化控制,易于在模块之间更好地进行均流控制和通讯或者在模块中实现复杂的均流控制算法(不需要通讯),从而实现高可靠性、高冗余度的逆
24、变电源并联运行系统。2.2.3 方案的最终选择通过以上两种方案的比较,方案一的电路结构简单,实现容易,但其精度不高,随着全球经济的发展,传统稳压电源已不再适用在精度要求高的领域。而方案二的数控直流稳压电源电路结构相对来说较方案的一复杂,但其稳定性、可靠性、易维护性、精度等都比传统直流稳压电源有着明显的优势。因此本文在设计中采用方案二。但是由于方案中有辅助电源部分,辅助电源主要就是给系统中的芯片提供工作电源,所以,方案一中的各部分电路在本设计中以设计辅助电源的形式出现。所以说传统数控直流电源的设计思想是贯穿今后数控电源设计的始终的,这就更体现了技术是一步步不断成熟的历程。2.3 数控直流稳压电源
25、设计方案及结构该数控直流稳压源采用独立键盘,一个用来加,一个用来减。可对输出电压进行设置显示于数码管,AT89C51 单片机的 P0 口作为数码管的段选,P2.0,P2.1,P2.2 作为数码管的位选信号,其输出进过 P3 口到 DA 芯片 DAC0809 和经过 LM358 比较放大,三端可8调稳压芯片 LM317 控制电压输出。本设计研究范围:输出电压:1.2410.8V。输出最大电流:500mA。本次设计所要解决的问题是:(1)采用 51 系列单片机作为整机的控制单元,通过改变输入数字量来改变输出电压值,从而使输出功率管的基极电压发生变化,间接地改变输出电压的大小。(2)经过 A/D 进
26、行模数转换,间接用单片机实时对电压进行采样,然后进行数据处理及显示。(3)通过按键来设置直流电源的输出电压,设置步进等级可达 0.1V,并可由数码管显示实际输出电压值和电压设定值。2.3.1 系统总体设计方案稳压控制:采用从输出端电压反馈控制形式来实现,主要由利用 LM358 作比较,调整管实现稳压。A/D 转换:采用 ADC0809 模数转换芯片,将键盘控制设定的模拟电压转换成数字电压显示于数码管。稳压电路:经过三端稳压芯片 LM317 稳压输出。2.3.2 数控直流稳压源总体结构一般的,一个数控直流稳压源从逻辑上主要分为电源模块、显示模块硬件控制模块和数据处理四个部分。总体结构有 DAC0
27、809 数模转换模块,辅助电源模块,稳压模块,硬件控制单片机模块,显示模块,键盘模块 7 个模块组成,其整体结构框图如图 2-1 所示。图 2-1 总体结构框图9第三章 硬件系统设计3.1 控制模块的分析3.1.1 单片机简介单片机是指一个集成在一块芯片上的完整计算机系统。尽管他的大部分功能集成在一块小芯片上,但是它具有一个完整计算机所需要的大部分部件:CPU、内存、内部和外部总线系统,目前大部分还会具有外存。同时集成诸如通讯接口、定时器,实时时钟等外围设备。而现在最强大的单片机系统甚至可以将声音、图像、网络、复杂的输入输出系统集成在一块芯片上 11。单片机也被称为微控制器(Microcont
28、roler) ,是因为它最早被用在工业控制领域。单片机由芯片内仅有 CPU 的专用处理器发展而来。最早的设计理念是通过将大量外围设备和 CPU 集成在一个芯片中,使计算机系统更小,更容易集成进复杂的而对提及要求严格的控制设备当中。INTEL 的 Z80 是最早按照这种思想设计出的处理器,从此以后,单片机和专用处理器的发展便分道扬镳。早期的单片机都是 8 位或 4 位的。其中最成功的是 INTEL 的 8031,因为简单可靠而性能不错获得了很大的好评。此后在 8031 上发展出了 MCS51 系列单片机系统。基于这一系统的单片机系统直到现在还在广泛使用。随着工业控制领域要求的提高,开始出现了16
29、 位单片机,但因为性价比不理想并未得到很广泛的应用。90 年代后随着消费电子产品大发展,单片机技术得到了巨大的提高。随着 INTEL i960 系列特别是后来的 ARM 系列的广泛应用,32 位单片机迅速取代 16 位单片机的高端地位,并且进入主流市场。而传统的8 位单片机的性能也得到了飞速提高,处理能力比起 80 年代提高了数百倍。目前,高端的 32 位单片机主频已经超过 300MHz,性能直追 90 年代中期的专用处理器,而普通的型号出厂价格跌落至 1 美元,最高端的型号也只有 10 美元。当代单片机系统已经不再只在裸机环境下开发和使用,大量专用的嵌入式操作系统被广泛应用在全系列的单片机上
30、。而在作为掌上电脑和手机核心处理的高端单片机甚至可以直接使用专用的 Windows 和Linux 操作系统。单片机比专用处理器更适合应用于嵌入式系统,因此它得到了最多的应用。事实上单片机是世界上数量最多的计算机。现代人类生活中所用的几乎每件电子和机械产品中都会集成有单片机。手机、电话、计算器、家用电器、电子玩具、掌上电脑以及鼠标等电脑配件中都配有 1-2 部单片机。而个人电脑中也会有为数不少的单片机在工作。汽车上一般配备 40 多部单片机,复杂的工业控制系统上甚至可能有数百台单片机在同时工作!10单片机的数量不仅远超过 PC 机和其他计算的综合,甚至比人类的数量还要多。单片机又称单片微控制器,
31、它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。概括的讲:一块芯片就成了一台计算机。它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。同时,学习使用单片机是了解计算机原理与结构的最佳选择。单片机内部也用和电脑功能类似的模块,比如 CPU,内存,并行总线,还有和硬盘作用相同的存储器件,不同的是它的这些部件性能都相对我们的家用电脑弱很多,不过价钱也是低的,一般不超过 10 元即可用它来做一些控制电器一类不是很复杂的工作足矣了。我们现在用的全自动滚筒洗衣机、排烟罩、VCD 等等的家电里面都可以看到它的身影!它主要是作为控制部分的核心部件。 它是一种在线式实时控制计
32、算机,在线式就是现场控制,需要的是有较强的抗干扰能力,较低的成本,这也是和离线式计算机的(比如家用 PC)的主要区别。 单片机是靠程序的,并且可以修改。通过不同的程序实现不同的功能,尤其是特殊的独特的一些功能,这是别的器件需要费很大力气才能做到的,有些则是花大力气也很难做到的。一个不是很复杂的功能要是用美国 50 年代开发的 74 系列,或者 60 年代的CD4000 系列这些纯硬件来搞定的话,电路一定是一块大 PCB 板!但是如果要是用美国 70年代成功投放市场的系列单片机,结果就会有天壤之别!只因为单片机的通过你编写的程序可以实现高智能,高效率,以及高可靠性! 由于单片机对成本是敏感的,所
33、以目前占统治地位的软件还是最低级汇编语言,它是除了二进制机器码以上最低级的语言了,既然这么低级为什么还要用呢?很多高级的语言已经达到了可视化编程的水平为什么不用呢?原因很简单,就是单片机没有家用计算机那样的 CPU,也没有像硬盘那样的海量存储设备。一个可视化高级语言编写的小程序里面即使只有一个按钮,也会达到几十 K 的尺寸!对于家用 PC 的硬盘来讲没什么,可是对于单片机来讲是不能接受的。 单片机在硬件资源方面的利用率必须很高才行,所以汇编虽然原始却还是在大量使用。一样的道理,如果把巨型计算机上的操作系统和应用软件拿到家用 PC 上来运行,家用 PC 的也是承受不了的。可以说,二十世纪跨越了三
34、个“电”的时代,即电气时代、电子时代和现已进入的电脑时代。不过,这种电脑,通常是指个人计算机,简称 PC 机。它由主机、键盘、显示器等组成。还有一类计算机,大多数人却不怎么熟悉。这种计算机就是把智能赋予各种机械的单片机(亦称微控制器) 。顾名思义,这种计算机的最小系统只用了一片集成电路,即可进行简单运算和控制。因为它体积小,通常都藏在被控机械的“肚子”里。它在整个装置中,起着有如人类头脑的作用,它出了毛病,整个装置就瘫痪了。现在,这种单片机的使用领域已十分广泛,如智能仪表、实时工控、通讯设备、导航系统、家用电器等。各种产品一旦用上了单片机,就能起到使产品升级换代的功效,常在产品名称前冠以形容词
35、“智能型” ,如智能型洗衣机等。现在有些工厂的技术人员或其它业余电子11开发者搞出来的某些产品,不是电路太复杂,就是功能太简单且极易被仿制。究其原因,可能就卡在产品未使用单片机或其它可编程逻辑器件上。3.1.2 AT89C51 单片机简介AT89C51 是美国 ATMEL 公司生产的低电压,高性能 CMOS8 位单片机,片内含 4k bytes 的可反复擦写的只读程序存储器(PEROM)和 128 bytes 的随机存取数据存储器(RAM) ,器件采用 ATMEL 公司的高密度、非易失性存储技术生产,兼容标准 MCS-51 指令系统和输出管脚,片内置通用 8 位中央处理器(CPU)和 Flas
36、h 存储单元。ATMEL 的AT89C51 是一种高效微控制器,AT89C2051 是它的一种精简版本。AT89C 单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。功能强大 AT89C51 单片机可为您提供许多高性价比的应用场合,可灵活应用于各种控制领域。此单片机的引脚图如图 6-1 所示:图 6-1 AT89C51 引脚图3.1.3 AT89C51 单片机的性能参数:1. 与 MCS-51 产品指令系统完全兼容2. 4k 字节可重擦写 Flash 闪速存储器3. 1000 次擦写周期124. 全静态操作:0Hz24MHz5. 三级加密程序存储器6. 1288 字节内部 RAM7.
37、32 个可编程 IO 口线8. 2 个 16 位定时计数器9. 6 个中断源10. 可编程串行 UART 通道11. 低功耗空闲和掉电模式3.1.4 AT89C51 内存空间1、内部程序存储器(FLASH)4K 字节。2、外部程序存储器(ROM)64K 字节。3、内部数据存储器(RAM)256 字节。4、外部数据存储器(RAM)64K 字节。3.1.5 AT89C51 单片机的功能特性概述AT89C51 提供以下标准功能:4k 字节 Flash 闪速存储器,128 字节内部 RAM,32 个IO 口线,两个 16 位定时计数器,一个 5 向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟
38、电路。同时,AT89C51 可降至 0Hz 的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止 CPU 的工作,但允许 RAM,定时计数器,串行通信口及中断系统继续工作。掉电方式保存 RAM 中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。P0 口:P0 口是一组 8 位漏极开路型双向 IO 口,也即地址数据总线复用口。作为输出口用时,每位能吸收电流的方式驱动 8 个 TTL 逻辑门电路,对端口写“1”可作为高阻抗输入端用。在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8 位)和数据总线复用,在访问期间激活内部上拉电阻。在 FIash 编程时,P0
39、 口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。P1 口:P1 是一个带内部上拉电阻的 8 位双向 IO 口,P1 的输出缓冲级可驱动(吸收或输出电流)4 个 TTL 逻辑门电路。对端口写“1” ,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL) 。FIash 编程和程序校验期间,P1 接收低 8 位地址。P2 口:P2 是一个带有内部上拉电阻的 8 位双向 IO 口,P2 的输出缓冲级可驱动(吸收或输出电流)4 个 TTL 逻辑门电路。对端口写“1” ,通过内部的上拉电阻把端口
40、拉13到高电平,此时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL) 。在访问外部程序存储器或 16 位地址的外部数据存储器(例如执行 MOVXDPTR 指令)时,P2 口送出高 8 位地址数据。在访问 8 位地址的外部数据存储器(如执行 MOVXRI 指令)时,P2 口线上的内容(也即特殊功能寄存器(SFR)区中 R2 寄存器的内容) ,在整个访问期间不改变。Flash 编程或校验时,P2 亦接收高位地址和其它控制信号。P3 口:P3 口是一组带有内部上拉电阻的 8 位双向 IO 口。P3 口输出缓冲级可驱动(吸收或输出电流)4 个 TTL
41、逻辑门电路。对 P3 口写入“1”时,它们被内部上拉电阻拉高并可作为输入端口。作输入端时,被外部拉低的 P3 口将用上拉电阻输出电流(IIL) 。P3 口除了作为一般的 IO 口线外,更重要的用途是它的第二功能,如表 6-1 所示。端口引脚 第二功能P3.0 RXD(串行输入口)P3.1 TXD(串行输出口)P3.2 INTO(外部中断 0)P3.3 INT1(外部中断 1)P3.4 T0(定时/计数器 0)P3.5 T1(定时/计数器 1)P3.6 WR(外部数据存储器写选通)P3.7 RD(外部数据存储器读选通)表 6-1 部分引脚第二功能表RST:复位输入。ALE/PROG:当访问外部程
42、序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低 8 位字节。Error!Error!Error!Error!:程序存储允许输出是外部程序存储器的读选通信号,当外部程序存储器取指令(或数据)时,每个机器周期两次有效,即输出两个脉冲。EA/VPP:外部访问允许。时钟振荡器:AT89C5l 中有一个用于构成内部振荡器的高增益反相放大器,引脚XTAL1 和 XTAL2 分别是该放大器的输入端和输出端。这个放大器与作为反馈元件的片外石英晶体或陶瓷谐振器一起构成自激振荡器,振荡电路参见图 6-3。外接石英晶体(或陶瓷谐振器)及电容 C1、C2 接在放大器的反馈回路中构成并联振荡电路
43、。对外接电容 C1、C2虽然没有十分严格的要求,但电容容量的大小会轻微影响振荡频率的高低、振荡器工作的稳定性、起振的难易程序及温度稳定性,如果使用石英晶体,我们推荐电容使用1430pF10pF,而如使用陶瓷谐振器建议选择 40pF10F。用户也可以采用外部时钟。采用外部时钟的电路如图 6-2 左图所示。这种情况下,外部时钟脉冲接到 XTAL1 端,即内部时钟发生器的输入端,XTAL2 则悬空 8。图 6-2 单片机时钟电路 图 6-3 单片机内部震荡电路波特率在使用串口做通讯时,一个很重要的参数就是波特率,只有上下位机的波特率一样时才可以进行正常通讯。波特率是指串行端口每秒内可以传输的波特位数
44、。有一些初学的朋友认为波特率是指每秒传输的字节数,如标准 9600 会被误认为每秒种可以传送 9600 个字节,而实际上它是指每秒可以传送 9600 个二进位,而一个字节要 8 个二进位,如用串口模式 1 来传输那么加上起始位和停止位,每个数据字节就要占用 10 个二进位,9600 波特率用模式 1 传输时,每秒传输的字节数是 960010960 字节。51 芯片的串口工作模式 0 的波特率是固定的,为 fosc/12,以一个 12M 的晶振来计算,那么它的波特率可以达到 1M。模式 2 的波特率是固定在 fosc/64 或 fosc/32,具体用那一种就取决于 PCON 寄存器中的 SMOD
45、 位,如 SMOD 为 0,波特率为 focs/64,SMOD 为 1,波特率为 focs/32。模式 1 和模式 3 的波特率是可变的,取决于定时器 1 或 2(52 芯片)的溢出速率。那么我们怎么去计算这两个模式的波特率设置时相关的寄存器的值呢?可以用以下的公式去计算 12。波特率(2SMOD32)定时器 1 溢出速率上式中如设置了 PCON 寄存器中的 SMOD 位为 1 时就可以把波特率提升 2 倍。通常会使用定时器 1 工作在定时器工作模式 2 下,这时定时值中的 TL1 做为计数,TH1 做为自动重装值 ,这个定时模式下,定时器溢出后,TH1 的值会自动装载到 TL1,再次开始计数
46、,这样可以不用软件去干预,使得定时更准确。在这个定时模式 2 下定时器 1 溢出速率的计算公式如下:15溢出速率(计数速率)/(256TH1)上式中的“计数速率”与所使用的晶体振荡器频率有关,在 51 芯片中定时器启动后会在每一个机器周期使定时寄存器 TH 的值增加一,一个机器周期等于十二个振荡周期,所以可以得知 51 芯片的计数速率为晶体振荡器频率的 1/12,一个 12M 的晶振用在 51 芯片上,那么 51 的计数速率就为 1M。通常用 11.0592M 晶体是为了得到标准的无误差的波特率,那么为何呢?计算一下就知道了。如我们要得到 9600 的波特率,晶振为11.0592M 和 12M
47、,定时器 1 为模式 2,SMOD 设为 1,分别看看那所要求的 TH1 为何值。代入公式: 11.0592M:9600(232)(11.0592M/12)/(256-TH1) 此时 TH1250。12M:9600(232)(12M/12)/(256-TH1) 此时 TH1249.49。上面的计算可以看出使用 12M 晶体的时候计算出来的 TH1 不为整数,而 TH1 的值只能取整数,这样它就会有一定的误差存在不能产生精确的 9600 波特率。当然一定的误差是可以在使用中被接受的,就算使用 11.0592M 的晶体振荡器也会因晶体本身所存在的误差使波特率产生误差,但晶体本身的误差对波特率的影响
48、是十分之小的,可以忽略不计。3.1.6 AT89C51 接口设计如图 6-4 所示,课题设计用 51 系列单片机来对硬件控制,其中 P0 口对应数码显示接口与 D/A 转化模块的输入接口,P1 口对应键盘接口与外接计算机控制,P2 口对应 A/D转化的输出接口和 ULN2003 的输入端。16图 6-4 单片机接口设计3.2 显示模块3.2.1 数码显示输出部分这是决定系统使用是否方便的关键。这里又有两个方案。方案一:采用电阵式液晶显示器(LCD)显示。虽然其功能强大,可显示各种字体的数字,汉字,图象,还可以自定义显示内容,但是编程复杂,需要消耗大量时间完成显示部分的编程工作,成本也比普通数码
49、管贵。方案二:采用通用 LED 数码管显示。虽只能显示非常有限的符号和数码字,但是在本设计中完全满足显示需要,且编程简便,可节约大量时间。分析以上两种方案的优缺点,本设计采用方案二。数码管 LED 串口显示模块通常有两种显示方法:动态显示和静态显示。 动态显示:连接方法是将每个二极管的同名端连在一起,而每个显示器的 公共极各自独立的接受 I/O 线控制,CPU 向字段输出端口输出字型码,所有显示器接受到相同的字符,而要使用哪个显示器要取决于他们的 COM 的电平,而这段是由 I/O 端控制的,由单片机输出。动态扫描时连续的动态扫描,只是肉眼暂留现象,乃发光二极管的余辉效应,给人的感觉是一组稳定的显示数据。 静态显示: 静态显示显示效果好,但是功耗大,但不占用端口,只需两个串口线输出,变成较为简单。而且采用静态显示需要的驱动器件多,硬件成本相对更高。 比较以上两种方案,方案一硬件简单程序复杂,方案二硬件复杂程序简单,考虑到实惠和对自己的编程锻炼,选择方案动态显示。动态扫描 方法是用其接口电路把所有显示器的 8 个笔画字段(ag 和 dp)同名端连在一起,而每个显示器的公共极各自独立的接受 I/O 线控制。CPU 向字段输