久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 6624|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

開關(guān)穩(wěn)壓芯片LM2576ADJ做數(shù)控電源程序

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:75926 發(fā)表于 2015-4-3 00:13 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式

//陳永飛于2016年3月28號寫的數(shù)控電源,上電初始電壓是3V
//采用ATMEGA8芯片做的,四位數(shù)碼管顯示電壓值,調(diào)節(jié)范圍是1.8V到12V之間
//采用開關(guān)穩(wěn)壓芯片LM2576ADJ做的降壓,效率高達77%,電流最大3A,誤差電壓為正負0.2V
#include<avr/io.h>
#include<avr/interrupt.h>
#define uchar unsigned char
#define uint unsigned int
#define duan PORTD
uchar const tab[]={        0xC0,/*0*/
        0xF9,/*1*/
        0xA4,/*2*/
        0xB0,/*3*/
        0x99,/*4*/
        0x92,/*5*/
        0x82,/*6*/
        0xF8,/*7*/
        0x80,/*8*/
        0x90,/*9*/
};
uint DY=30; //30就是為3.0V電壓,用于設(shè)定電壓
uint AD_shu,tiao_shu; //一個用于保存ADC轉(zhuǎn)換后的數(shù),一個用于運算比較
void delay(uint k)
{
for(;k>0;k--);
}
void init()
{
DDRD=0xff; //D端口全為輸出
PORTD=0;
DDRC=0xfc;  //C端口低兩位用于ADC,高四位用于數(shù)碼管位選
PORTC=0x0; //C端口輸出全0
DDRB=0x07; //定義PB口的低三位為輸出,PB1為PWM輸出信號
PORTB=0xf8; //低三位輸出0,高五位加上拉電阻
TCCR1A=0X63; //設(shè)置PWM比較匹配器
TCCR1B=0X13; //設(shè)置PWM比較匹配器
OCR1A=250;  //裝PWM寄存器的高位比較值
OCR1B=10;  //裝PWM寄存器的低位比較值,開啟后自加,達到高位時,PB1端口取反
ADMUX=0xc0;  //ADC選通道0,并且用內(nèi)部的2.56V參考電壓,數(shù)據(jù)右對齊
ADCSRA=0xac; //ADC是連續(xù)轉(zhuǎn)換,并且16分頻,并且開了中斷
}
void desplay(uint dian_ya)
{
duan=tab[dian_ya/100]; //顯示十位電壓
PORTB|=0x04;  //PC2為位選
delay(400);
PORTB&=0xfb;
duan=tab[dian_ya%100/10]&0x7f; //顯示個位電壓,并點亮小數(shù)點
PORTB|=0x08;   //PC3為位選
delay(400);
PORTB&=0xf7;
duan=tab[dian_ya%10]|0x80; //顯示小數(shù)位電壓,并滅小數(shù)點
PORTB|0x10;   //PC4為位選
delay(400);
PORTB&=0xef;
duan=tab[11];  //用于設(shè)定時點亮
PORTB|=0x20;  //PB5為位選
delay(400);
PORTB&=0xdf;
}
void key()
{
if(!(PINB&0x08)) //PB3為加電壓按鍵
{
  delay(5000);
  if(!(PINB&0x08))
  {
   DY++;
   if(DY>120)DY=120;
  }
}
if(!(PINB&0x10)) //PB4為減電壓按鍵
{
  delay(5000);
  if(!(PINB&0x10))
  {
   DY--;
   if(DY<18)DY=18;
  }
}
}
int main()
{
uchar i=1;
    init();
ADCSRA|=0x40; //開始ADC轉(zhuǎn)換
while(1)
{
  key();
  tiao_shu=(uint)(((float)AD_shu)/8.5); //計算ADC采樣后的數(shù)進行電阻分壓后的實際數(shù)據(jù)轉(zhuǎn)換補常
  if(tiao_shu>(DY+2)) i--;  //如果采樣轉(zhuǎn)換后數(shù)值大于設(shè)定值,就減小PWM脈寬(設(shè)定值加2是電壓誤差值)
  if(tiao_shu<(DY-2)) i++;  //如果采樣轉(zhuǎn)換后數(shù)值小于設(shè)定值,就加大PWM脈寬(設(shè)定值減2是電壓誤差值)
  delay(20);  //延時
  OCR1B=i;  //裝入PWM寄存器
  desplay(DY);
}
}
SIGNAL(SIG_ADC)
{
AD_shu=ADCL;
AD_shu|=(uint)(ADCH<<8);
}










分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 99re6在线视频精品免费 | www.日韩 | 中文字幕在线一区二区三区 | 日韩精品一区二区不卡 | 久久99精品久久久 | 日韩欧美国产成人一区二区 | 国产97在线视频 | 狠狠视频| 精品一区电影 | 免费色网址 | 精品一二 | 91久久精品国产 | 亚洲日本一区二区 | 国产精品久久久久久吹潮 | www.国产.com | 91精品国产乱码麻豆白嫩 | 亚洲二区视频 | 成人性生交大片免费看r链接 | 中文字幕 国产 | 久久久久se | 狠狠av | 国产免费一区二区三区 | 久久美女视频 | 日日操夜夜操视频 | 91精品久久久久久久久久 | 亚洲精品中文在线观看 | 欧美日韩亚洲在线 | 天天av网 | 日韩午夜精品 | 日韩av在线一区 | 美国a级毛片免费视频 | 国产精品99久久久久久宅男 | 国产精品久久久久久久久久久久久 | 一级片视频免费观看 | 精品久久久久久 | 国产一区久久 | 久久国产精品视频 | 成人国产一区二区三区精品麻豆 | 五月婷婷中文 | 日韩中文字幕视频 | 成人高潮片免费视频欧美 |