基于多任务系统设计思想的数控稳压源设计
扫描二维码
随时随地手机看文章
一.方案设计与比较
1.1控制芯片选择
方案一:采用8031芯片,其内部没有程序存储器,需要进行外部扩展,这给电路增加了复杂度。
方案二:采用2051芯片,其内部有2KB单元的程序存储器,不需外部扩展程序存储器。但由于系统用到较多的I/O口,因此此芯片资源不够用。
方案三:采用AT89C52单片机,其内部有4KB单元的程序存储器,不需外部扩展程序存储器,而且它的I/O口也足够本次设计的要求。
比较这三种方案,综合考虑单片机的各部分资源,因此此次设计选用方案三。
1.2键盘显示部分
控制与显示电路是反映电路性能、外观的最直观部分,所以此部分电路设计的好坏直接影响到电路的好坏。
方案一:采用可编程控制器8279与数码管及地址译码器74LS138组成,可编程/显示器件8279实现对按键的扫描、消除抖动、提供LED的显示信号,并对LED显示控制。用8279和键盘组成的人机控制平台,能够方便的进行控制单片机的输出。
方案二:采用单片机AT89C52与4X4矩阵组成控制和扫描系统,并将键盘接成总线形式进行分时扫描,同样采用总线的方式在P0口接1602液晶来显示实际输出电压和设定值,这种方案既能很好的控制键盘及显示,又为主单片机大大的减少了程序的复杂性,而且具有体积小,价格便宜的特点。
对比两种方案可知,方案一虽然也能很好的实现电路的要求,但考虑到电路设计的成本电路整体的性能,我采用方案二。
1.3 AD/DA模块部分
方案一:AD采用MAX196,MAX196S是美信公司的一款具有多个输入范围,12位的数据采集系统,它不仅具有转换时间短,采样速率快的优点,还具有两种可编程的掉电模式。DA采用TLV5638, TLV5638是TI公司的12位DA转换器,具有两个输出通道,数据传输接口为3线制的串行接口并且兼容SPI串行接口
方案二:AD和DA 分别采用TLC1543和 TLC5615。TLC1543和 TLC5615均是TI公司生产的10位串行接口芯片。它们不仅抗干扰性强,稳定性好,还具有低功耗和性价比高特点。
按照设计要求实现输出电压10mv步进的要求,AD和DA至少要求10位(最好是12位),但考虑到I/O口和操作方便以及功耗和性价比的问题,因此选择方案二。
1.4调理电路和报警模块
因为51单片机最多只能输出5V的电压,而设计要求能最多输出9.99V的电压,因此我选择了将输出电压通过同向放大电路放大2倍,并且再外加电路进行调理以便能电压能精确输出。报警模块则可以采用一个PNP三极管和蜂鸣器串联来实现设计要求。
二.理论分析与计算
2.1AD/DA模块的分析
由于设计基本要求输出电压范围为0~4.99V,实现10mV步进。即精度要求达到0.01V,8位的AD/DA显然达不到要求,因此必须选择10位以上的AD/DA考虑到性价比的问题选择10位的AD/DA。又由于TI公司生产的10位串行接口芯片TLC1543和 TLC5615不仅抗干扰性强而且具有很低的功耗,加上串行接口还能缓解接口紧张的局面。因此AD/DA芯片选择了TLC1543和 TLC5615。
2.2模拟接口和调理模块的分析
由于设计发挥部分要求进一步扩大输出电压范围到0~9.99V,而基本单片机模块最多只能提供不超过5V的电压,因此想到将输出电压放大2倍,再在软件中实现调整即可达到要求。调理部分的电路作用是为了稳定输出增加电路的带阻能力,此部分可用基本的模拟放大调节模块来实现,具体模块将在后面进行说明。
2.3键盘显示模块分析
在本次设计中,由于要随意输入0~9.99V范围内的电压值,并且还要求能实现10mV步进,因此采用4X4矩阵键盘来输入0-9十个数和小数点,再用两个按键来实现10 mV步进。显示模块采用1602分两行来显示设定值和实际电压输出即可达到基本设计要求。
[!--empirenews.page--]三.总体方案原理分析
3. 1 系统总体框图如图3-1所示。
系统模块分为:键盘输入模块,ADC模块,DAC模块,1602液晶显示模块,蜂鸣器报警模块,模拟接口和调理电路模块。键盘模块输入电压设定值,ADC实现实际输出电压值的测量,DAC实现设定值输出,蜂鸣器在按键输入时发提示音并且当设定值和实际测量值超过1V以上时报警,1602液晶显示电压设定值和实测值,模拟接口和调理电路模块调节电路和增加输出的带阻能力。
600)this.style.width='600px';" border="0" />
图3-1 系统结构框图
3. 2各模块设计
3.2.1键盘模块
键盘模块通过74HC573与单片机进行总线连接,单片机通过分时扫描来对设定值进行采样,键盘中取消和确认键用于取消和确定设定值,减和增用于实现10mV步进。
600)this.style.width='600px';" border="0" />
图3-2-1 键盘设计电路图
3.2.2A/D和D/A模块
A/D和D/A模块分别采用串行接口芯片TLC1543和 TLC5615,其中TLC1543与单片机P1口的部分管脚相连(P15提供模拟时序,P16提供使能信号)。TLC5615
与单片机P3口的P3.2至P3.5相连,并通过TLC5615的第七脚输出电压,其中
TLC5615的外部电路采用典型接法。
600)this.style.width='600px';" border="0" />
图3-2-2 键盘设计电路图
3.2.3显示和报警模块
显示模块采用LCD1602来显示设定值和实际电压输出,1602与单片机也是采用总线的接法来驱动,数据通过数据总线P0口来传输。报警模块则通过简单的电路实现,与单片机通过1.0来实现通讯。
600)this.style.width='600px';" border="0" />
图3-2-3显示和报警模块电路图
[!--empirenews.page--]3.2.4模拟接口和调理电路模块
模拟接口通过下图右边的放大器将输出电压放大两倍,并通过左边的电路来稳定电压输出和增加输出的电流。其中右边的放大器的同向输入端与DA电路的输出
相连。
600)this.style.width='600px';" border="0" />
图3-2-4模拟接口和调理电路模块
四.软件设计分析说明
4.1软件设计思想说明
本系统的软件采用多任务系统设计思想来完成,所谓的多任务就是将系统任务分割成若干独立的任务,然后让CPU按照一定的频度来轮流执行各个任务。这其中的一个关键点就是要用中断来进行任务之间的切换,并且每个任务在一个执行周期里所需的时间是多少必须要在分析之后进行严格的设定。
4.2总程序流程图如下
600)this.style.width='600px';" border="0" />
图5-1总程序流程图
五.系统仿真测试
5.1测试方案
运行系统仿真后,通过键盘输入设定输出电压值,观察LCD1602上显示的设定值和实际值是否符合实际,并听蜂鸣器在按键输入时是否有提示音。然后通过增和减按键来实现10mV步进,通过多次设定来测试系统电压的输出范围是否达到设计要求。
5.1测试结果
表5-1电压输出设定值和实际值
600)this.style.width='600px';" border="0" />
5.2结果分析
由上表可以看出,系统不仅达到了输出电压范围和电压步进要求也达到了设计的显示要求,而且输出电压范围大,具有按键提示和当设定值并当设定值和测量值超过1V以上时关闭输出和报警功能。系统还具有信号调理功能并且人机交互效果好。由此可以看出系统达到了全部的基本要求和部分发挥部分要求,还具有功耗低、抗干扰能力强等特点,基本满足设计要求。
六.结束语
首先,通过本次应用系统设计,在很大程度上提高了我的独立思考能力和单片机的专业知识,也深刻了解写一篇应用系统的步骤和格式,有过这样的一次经历,相信在接下来的日子我能在已有的基础上做得更好。本系统以STC89C52单片机作为系统的核心控制器件,由DAC模块,ADC模块,键盘模块,液晶显示模块和蜂鸣器模块和模拟接口和调理电路模块组成,具有系统功耗低、抗干扰能力强等特点。但是由于时间较紧,最后还有部分发挥部分的要求未达到,我会在接下来的时间里继续完善该设计,完善发挥部分的要求,并提高各方面的参数,以其做得更好。