1.设计要求:
(1) 输入电压:AC220V±10%,频率50Hz;
(2) 输出电压/电流:DC 0~15V可调,最大输出电流2A,但也不能是毫安级别;
(3) 输出纹波电压:≤±0.1V。
具体的工作内容 :
(1)系统硬件电路设计:(1)单片机最小系统电路;(2)电压调整电路(3)A/D、D/A转换电路;(4)保护电路;(5)按键、显示、声光报警电路;(6)辅助电源电路。
(2)利用protel软件完成电路原理图的绘制;
(3)在proteus环境下建立电路仿真模型,结合硬件编写相应的软件程序并仿真验证系统功能;
2.设计方案:
设计以单片机AT89C51为控制核心,通过数摸转换器DAC0832 来实现对稳压电源的调节,使用按键进行控制,控制电压DC0~15V可调。使用显示器进行显示,数字显示输出电压。同时使用发光二极管和蜂鸣器进行报警。同时在在硬件电路中加入保护电路,保护器件正常运行。
3.实现功能补充说明:
1.输出+15V,-15V,+5V的直流电;
2.通过按键进行控制,按下+键增加0.5V,按下-键减少0.5V,误差不超过0.1V;
3.要通过8位的显示器显示,一个是要显示自己的设定值,另一个要显示实际输出值。例如:14V, 13.9 V这样自己设定的是14V,输出显示的是13.9V;
4.要通过按键给的值进行D/A转换然后电流调整实现0-15V可调;
5.同时电流不能太小,不能是毫安级别的,至少要达到安;
6.输出以后,通过采集电路将电流和电压进行采集,将采集的信号进行A/D转换反馈到AT89C51单片机,与输出的数据进行比较,实现0-15V可调稳定输出;
7.同时设计保护电路,对整个电路进行保护,同时还具有声光报警电路,对整个电路进行报警。
【资源下载】下载地址如下:779
https://docs.qq.com/doc/DTlRSd01BZXNpRUxl
#include "lcd1602.h"
#include "ADC0832.h"
#include "timer.h"
sbit add = P1^0;
sbit minus = P1^1;
sbit buzzer = P1^7;
sbit relay = P1^6;
u8 AD,DA,Preset_U=0,Really_U=0;
void main()
{
buzzer = 0;relay = 0;
timer_Init();
LCD1602_Init();
LCD1602_ShowString(0,0,"Pre: V");LCD1602_ShowFloatNum(4,0,Preset_U);
LCD1602_ShowString(0,1,"Rea: V");LCD1602_ShowFloatNum(4,1,Really_U);
P3 = 0;//DACconversion(PCF8591,0x40,0);
while(1)
{
if(add == 0)
{
if(Preset_U<150)
{
Preset_U+=5;
DA=(float)Preset_U*1.02+0.5;//(float)Preset_U*51/50 =1.02
P3 = DA;//DACconversion(PCF8591,0x40,DA);
LCD1602_ShowFloatNum(4,0,Preset_U);
}
while(add == 0);
}
if(minus == 0)
{