久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
262電源的mega48單片機源代碼帶Protues仿真
[打印本頁]
作者:
iop273252933
時間:
2017-1-5 15:06
標題:
262電源的mega48單片機源代碼帶Protues仿真
分享一個電源的mega48程序帶Protues仿真和源代碼
下面是262電源的仿真原理圖:
0.png
(37.51 KB, 下載次數: 127)
下載附件
2017-1-6 03:00 上傳
部分單片機源碼預覽:
//ICC-AVR application builder : 2016/12/5 8:30:38
// Target : m48p
// Crystal: 1.0000Mhz
#include <avr/io.h>
#include <avr/interrupt.h>
#include <util/delay.h>
#include <math.h>
//void _delay_us (double __us); //微秒級
//void _delay_ms (double __ms); //毫秒級
/*******************指示燈宏定義*******************/
#define z_LED_ON() (PORTB|=0x08) //主電燈亮 PB3
#define z_LED_OFF() (PORTB&=0xE7) //主電燈滅
#define b_LED_ON() (PORTB|=0x20) //備電燈亮 PB5
#define b_LED_OFF() (PORTB&=0xDF) //備電燈滅
#define r_LED_ON() (PORTD|=0x01) //弱電燈亮 PD0
#define r_LED_OFF() (PORTD&=0xFE) //弱電燈滅
#define o_LED_ON() (PORTD|=0x02) //輸出燈亮 PD1
#define o_LED_OFF() (PORTD&=0xfD) //輸出燈滅
#define c_LED_ON() (PORTD|=0x08) //充電燈亮 PD3
#define c_LED_OFF() (PORTD&=0xf7) //充電燈滅
#define c_LED_STATE() (PORTD^=(1<<PD3)) //充電燈滅
#define M10_OFF() (PORTD&=0xBF) //PD6置0 M10
#define M10_ON() (PORTD|=0x40) //PD6置1 M10
#define M32_OFF() (PORTD&=0xFB) //PD2置0 M32
#define M32_ON() (PORTD|=0x04) //PD2置1 M32
/*******************電壓采集通道宏定義*******************/
#define Spare_ele_via 0x40 //ADC0-PC1備電
#define Main_ele_via 0x41 //ADC1-PC0主電
#define uchar unsigned char
#define uint unsigned int
/*******************************************
函數名稱: IO口初始化程序
功 能: 實現IO初始化
參 數: 無
返 回 值: 無
********************************************/
void port_init(void)
{
PORTC = 0x00;//上拉電阻不使能
DDRC = 0x00; //PC0作為AD的輸入
PORTB = 0x00;//輸出置0
DDRB = 0xFF;//輸出
DDRD = 0xFF;//AIN1設置為輸入
PORTD = 0x01;//上拉電阻不使能
}
/*****************************************************
函數名稱: 定時器1初始化函數
功 能: 分頻數1024,定時1秒,誤差為0.0%,TOP=0xFFFF
參 數: 無
返 回 值: 無
****************************************************/
void timer1_init(void)
{
TCCR1B = 0x00; //stop
TCNT1H = 0xF0; //setup
TCNT1L = 0xBE;
OCR1AH = 0x0F;
OCR1AL = 0x42;
OCR1BH = 0x0F;
OCR1BL = 0x42;
ICR1H = 0x0F;
ICR1L = 0x42;
TCCR1A = 0x00;
}
/*******************************************
函數名稱: 定時器1中斷處理函數
功 能: flag標志位來指示狀態
參 數: 無
返 回 值: 無
********************************************/
ISR(TIMER1_OVF_vect)
{
static unsigned int m;
TCNT1H = 0xF0; //setup
TCNT1L = 0xBE;
++m;
if(m==1||m==2||m==3)
{
c_LED_ON();
}
else
{
m=0;
c_LED_OFF();
}
//c_LED_STATE();
}
/*******************************************
函數名稱: 設備初始化函數
功 能: 對AVR單片機進行初始化
參 數: 無
返 回 值: 無
********************************************/
void init_devices(void)
{
cli(); //disable all interrupts
port_init();
timer1_init();
MCUCR = 0x00;//允許引腳電阻上拉
EICRA = 0x00; //外部中斷
EIMSK = 0x00;//外部中斷失能
TIMSK0 = 0x00; //timer 0 interrupt sources
TIMSK1 = 0x01; //T/C1 溢出中斷使能
TIMSK2 = 0x00; //timer 2 interrupt sources
PCMSK0 = 0x00; //pin change mask 0 引腳電平變化中斷禁用
PCMSK1 = 0x00; //pin change mask 1
PCMSK2 = 0x00; //pin change mask 2
PCICR = 0x00; //pin change enable 引腳電平變化中斷控制寄存器禁用
SMCR = 0x00; //power controller
sei(); //開總中斷
}
/*************************************************************
函數名稱: AD采樣函數。
功 能: 實現電壓的AD采樣。
參 數: 無
返 回 值: temp--AD采樣的值。
************************************************************/
unsigned int mega48_ad(unsigned char channel)
{
volatile static unsigned int ad_value[64]; //AD轉換緩沖
volatile static unsigned char ch=0x40;
unsigned int temp;
unsigned char i;
static unsigned int max_value;
ADMUX = channel; //5V電壓 AVCC
ADCSRA = (1<<ADEN)|(1<<ADPS2)|(1<<ADPS0); //開啟AD轉換功能單次模式,32分頻
if(ch==channel)
{
ADCSRA |= (1<<ADSC); //啟動轉換
while(ADCSRA&_BV(ADSC)); //查詢是否轉換結束
temp = ADCL;
temp|= (unsigned int)(ADCH<<8);
temp=temp&0x3FF;
return temp;
}else
{
for(i=0;i<64;i++)
{
ADCSRA |= (1<<ADSC); //啟動轉換
while(ADCSRA&_BV(ADSC)) //查詢是否轉換結束
{
_delay_us(500);
}
temp = ADCL;
temp|= (unsigned int)(ADCH<<8);
ad_value[i] = temp&0x3FF;
}
max_value = ad_value[0];
for(i=1;i<64;i++)
{
if(ad_value[i]>max_value)
{
max_value =ad_value[i];
}
}
max_value =(long int)(max_value/M_SQRT2);
return max_value;
}
//ADCSRA &= 0x7F;
}
/********************************************
函數名稱: 主函數
功 能:
參 數: 無
返 回 值: 無
********************************************/
int main(void)
{ uint ad[2];
volatile static unsigned int cutflag;
float z_voltage, b_voltage;
init_devices();
while(1)
{
ad[0]=mega48_ad(Main_ele_via); //讀出AD的采樣值
z_voltage=(ad[0]*5.0)/1024.0;
ad[1]=mega48_ad(Spare_ele_via);
b_voltage=(ad[1]*5.0)/1024.0;
if((cutflag==0) && z_voltage>=1.05 && b_voltage>=2)//主電正常,備電正常
{
o_LED_OFF();//主電輸出
b_LED_ON();//備電燈亮
z_LED_ON();//主電燈亮
if(b_voltage<=2.8)//主電正常,備電正常,脈沖充電
{
M32_OFF();
cutflag=0;
TCCR1B = 0x05; //start Timer
}else
{
c_LED_OFF();//充電燈滅
TCCR1B = 0x00; //stop
}
}
else if(z_voltage>=1.05&&b_voltage<=2)//主電正常,備電不正常
{
TCCR1B = 0x00; //stop
r_LED_ON();//
o_LED_OFF();//主電輸出
b_LED_OFF();//備電燈滅
c_LED_OFF();//充電燈滅
z_LED_ON();//主電燈亮
}
else if(z_voltage<1.05&&b_voltage>=2)//主電不正常,備電正常
{
TCCR1B = 0x00; //stop
z_LED_OFF();
o_LED_ON();//輸出
cutflag=1;
b_LED_ON();//備電燈亮
c_LED_OFF();//充電燈滅
r_LED_ON();//弱電燈亮
_delay_ms(1);
M32_ON();
}
else if(z_voltage<1.05&&b_voltage<1.8)//主電不正常,備電電池耗盡
{
TCCR1B = 0x00; //stop
z_LED_OFF();//主電燈滅
b_LED_OFF();//備電燈滅
c_LED_OFF();//充電燈滅
r_LED_OFF();//弱電燈滅
o_LED_OFF();//不輸出
}
else//備電電壓1.8<備電<2 and 主電不正常
{
TCCR1B = 0x00; //stop
c_LED_OFF();//充電燈滅
b_LED_ON();//備電燈亮
z_LED_OFF();//主電燈滅
o_LED_ON();//備電輸出
}
if((cutflag==1) && z_voltage>=1.3 && b_voltage>=2)
{
_delay_us(1);
if((cutflag==1) && z_voltage>=1.3 && b_voltage>=2)
{
cutflag=0;
}
}
}
}
復制代碼
0.png
(69.07 KB, 下載次數: 154)
下載附件
2017-1-6 03:00 上傳
所有資料下載(包含仿真工程文件和源程序):
262電源程序MEGA48.rar
(406.74 KB, 下載次數: 18)
2017-1-5 15:04 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
作者:
020202000
時間:
2017-5-17 18:51
現在正在用這個開發,感謝分享
歡迎光臨 (http://m.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
亚洲黄色录像
|
国产精品国产三级国产aⅴ浪潮
|
久久视频免费在线观看
|
国产一区在线播放
|
久久久黄色片
|
日本免费黄色网址
|
97久久超碰
|
800av在线播放
|
97国产在线
|
免费在线小视频
|
国产精品一二
|
欧美色综合天天久久综合精品
|
在线视频成人
|
久久小视频
|
日韩av在线网站
|
www黄色
|
中文字幕欧美激情
|
久久一区二区三区四区
|
一区二区三区在线免费
|
欧美视频一区二区三区
|
精品视频99
|
伊人成人在线
|
中文字幕一区二区在线播放
|
国产精品一级
|
88av视频
|
青青草免费在线
|
性欧美bbw
|
黄色片视频
|
亚洲精品久久久久久久久
|
一区二区精品
|
欧美精品成人一区二区在线观看
|
www.色日本
|
国产黄网
|
涩涩视频免费看
|
久久国产一区二区三区
|
亚洲另类色图
|
干干干操操操
|
精品少妇v888av
|
亚洲精品网站在线观看
|
又黄又爽的网站
|
中文字幕精品在线观看
|