第一范文网 - 专业文章范例文档资料分享平台

开关电源模块并联供电系统设计 - 图文

来源:用户分享 时间:2025/12/2 4:45:49 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

ADCSRA|=(1<

//******ADC2初始化********// void ADC2INIT(void) {

ADMUX=0x42; //AREF基准压,结果右对齐,通道为ADC2 ADCSRA=0x87; //使能ADC,单次转换,预分频为128 ADCSRA|=(1<

//*********获取ADC的采样值*********// int get_ADCdata(void) {

int a,b; a=b=0;

b=ADCL; //读高位后数据更新 a=ADCH; //再读取ADCH数据 a=(a<<8); //右对齐,左移八位 a=(a|b); //组成10位二进制数据 return a; }

//*********去头去尾,获取平均值*********// float get_ave(int a[8]) {

float v;

unsigned char i; float sum=0;

for(i=1;i<7;i++) //从第2次到第6次数据 {

sum=sum+a[i]; }

v=sum/6; return v; }

//********获取ADC0采样8次的平均值**********// float get_ADC0data(void) {

unsigned char i=0;

22

float v;

int buf[8]={0}; for(i=0;i<8;i++) {

ADC0INIT(); //AD初始化一次 buf[i]=get_ADCdata(); //将数据放入数组 }

v=get_ave(buf); return v; }

//********获取ADC1采样8次的平均值**********// float get_ADC1data(void) {

unsigned char i=0; float v;

int buf[8]={0}; for(i=0;i<8;i++) {

ADC1INIT(); //AD初始化一次 buf[i]=get_ADCdata(); //将数据放入数组 }

v=get_ave(buf); return v; }

//********获取ADC2采样8次的平均值**********// float get_ADC2data(void) {

unsigned char i=0; float v;

int buf[8]={0}; for(i=0;i<8;i++) {

ADC2INIT(); //AD初始化一次 buf[i]=get_ADCdata(); //将数据放入数组 }

v=get_ave(buf); return v; }

//*********将数据拆分送显示*******// void display_AD0() {

23

int a,b;

uchar s[6],k[6]; uchar i,j,m;

a=get_ADC0data()*REF/1024*1000; //将数据转化为十进制 b=get_ADC0data(); //数字量

s[0]=a/1000+'0'; s[1]='.';

s[2]=a00/100+'0'; s[3]=a0/10+'0'; s[4]=a+'0'; s[5]='V';

k[0]='D'; k[1]=':';

k[2]=b/1000+'0'; k[3]=b00/100+'0'; k[4]=b0/10+'0'; k[5]=b+'0';

write_com(0xC0);

for(i=0;i<6;i++) {

write_dat(s[i]); }

write_com(0xC7);

for(j=0;j<6;j++) {

write_dat(k[j]); } }

//*********电压比较*******// void com_vol() {

if(get_ADC2data()>=360) // {

OCR1A=265; // OCR1B=265; }

if(get_ADC2data()<=310) //

实际电压值大于8.4V 钳位到8.4V 实际电压值小于7.6V

24

{

OCR1A=240; //钳位到7.6V OCR1B=240; } }

//*************KEY.H************// #ifndef _KEY_H_ #define _KEY_H_

void key_init(); void press(); uchar key();

#endif

//**************KEY.C*************// #include #include #include\

#define uchar unsigned char #define uint unsigned int

uint count_pwm=255; uint count_pwm1=255;

//**********按键初始化函数********// void key_init() {

DDRD&=~BIT(0); //独立键盘接口置高电平 PORTD|=BIT(0);

DDRD&=~BIT(1); //独立键盘接口置高电平 PORTD|=BIT(1);

DDRD&=~BIT(2); //独立键盘接口置高电平 PORTD|=BIT(2);

DDRD&=~BIT(3); //独立键盘接口置高电平 PORTD|=BIT(3);

DDRD&=~BIT(7); //独立键盘接口置高电平 PORTD|=BIT(7); }

//*********按键函数***********// void press()

25

开关电源模块并联供电系统设计 - 图文.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c3zr7a6m9xj6msol1o423_7.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top