基于单片机的程控电源设计

基于单片机的程控电源设计

ID:875408

大小:583.03 KB

页数:30页

时间:2017-09-22

基于单片机的程控电源设计_第1页
基于单片机的程控电源设计_第2页
基于单片机的程控电源设计_第3页
基于单片机的程控电源设计_第4页
基于单片机的程控电源设计_第5页
资源描述:

《基于单片机的程控电源设计》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、基于单片机的程控电源设计一、项目背景直流稳压源是一种常见的电子仪器,其广泛应用于实验教学和科学研究等领域。目前使用的直流稳压电源大部分存在诸多缺点,如输出不可调,电压不稳定等等,因而导致实验结果不精确。本次项目就设计一个基于单片机控制的程控电源。描述:使用单片机输出PWM去控制电源调压模块以控制电源电压输出,实现步进可调。项目参数:1输入电压8~16V,如果输入电压低于8V或者高于16V,利用BEEP报警,并且关掉PWM的输出2输出电压6~14V,如果输出电压低于6V或者高于14V,利用BEEP报警,同样关掉PWM的输出3调压分辨率0.25V4用按键输入电压预设值,然后通过按键的

2、“+”、“-”来步进调节电源的输出,达到预设值允许的范围内5通过LM3037(LCD14432)来显示当前的电压预设值,当前电压的输出值以及分辨率二、项目概要分析1、硬件分析:1、软件分析:1)熟悉单片机的原理与应用2)BEEP报警程序设计3)矩阵按键程序设计4)液晶显示驱动程序设计5)产生PWM程序设计6)电压反馈AD采样程序设计一、系统分析1、硬件分析:1)单片机与BEEP、矩阵按键、LM3037液晶显示以及AD采样转换芯片的具体连接。(单片机控制芯片)(BEEP电路部分)(矩阵按键输入部分)(LM3037液晶显示部分)(TLC549CDA/D转换)1)程控电路部分原理图:1

3、、软件分析:1)BEEP报警,P2^2引脚出现低电平,BEEP发出声音。2)矩阵按键的扫描,采用逐行扫描模式,扫描每个按键是否按下,并做键值处理。3)LM3037液晶的显示,可以采用并行显示或者串行显示,该液晶自带中文字库。4)AD549CDA/D转换芯片驱动程序的编写,5)定时器程序的编写6)外部中断程序的编写7)PWM脉宽调制波的产生一、程序流程图一、程序设计#include#include/*--------两个常用的宏定义--------*/#defineuint8unsignedchar#defineuint16unsignedi

4、nt/*-----AD采样时使用的延时定义----*/#defineWait1us{_nop_();}#defineWait2us{Wait1us;Wait1us;}#defineWait4us{Wait2us;Wait2us;}#defineWait10us{Wait4us;Wait4us;Wait2us;}#defineWait20us{Wait10us;Wait10us;}sbitLED_Control=P2^0;/*--------数码管显示函数的声明-----*/voidSEG_Disp(uint8dat);/*---------扫描按键的说明------------*

5、/voidKEY_Scan(void);/*---------延时函数的说明------------*/voidDelay_ms(uint16z);/*---------数码管段选的定义----------*/sbitHC138_A0=P1^1;sbitHC138_A1=P1^2;sbitHC138_A2=P1^3;/*---------lcd14432的定义----------*/sbitRS=P1^5;sbitRW=P1^6;sbitEN=P1^7;bitBUSY(void);voidWrite_cmd(uint8cmd);voidWrite_dat(uint8dat);vo

6、idLCD14432_Init(void);voidHZ_Disp(uint8*p);voidLCD_Test();/*----------AD转换的引脚定义------*/sbitTlc549_Dout=P2^3;sbitTlc549_CS=P2^4;sbitTlc549_Clock=P2^2;uint8Read_ADConvert(void);/*----------T0的函数声明---------*/voidTimer0_Init(void);/*----------PWM的输出端口---------*/sbitPWM0=P1^2;voidPWM_Out(uint8rate

7、);uint8key_value=0;//按键值uint8count=0;//记录定时次数uint8count1=0;//uint8rate1=50;uint8flag=0;/*----------0~9的数码管断码表------------*/uint8SEG_data[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};uint8AD_Value[5];intmain(void){uint8i=0;uint8Conv

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。