99久久全国免费观看_国产一区二区三区四区五区VM_久久www人成免费看片中文_国产高清在线a视频大全_深夜福利www_日韩一级成人av

  • 回復
  • 收藏
  • 點贊
  • 分享
  • 發新帖

PIC16F73做的逆變器程序及原理圖,文件以上傳

我給別人做的逆變器,功率50~4000w,實地作過樣機,波形良好純正弦波,帶冰箱,洗衣機彩電沒任何問題.具有過電流保護,穩壓反饋,全單片機控制.希望大家能多提意見,共同學習.源程序為C語言,程序量大約1.5k.qq:382370905重新上傳附件內有原理圖,C源程序,PIC16F73文檔,PROTEUS仿真文件.1158297630.rar

時隔這么多年,都忘記了這件事情了,今天看qq空間,才發現還發表了這個帖子。我是做儀表的,不是專業做電源的。對電源的理解很粗糙。而且我不是專業電源廠家,做這個程序和電源的目的也是給朋友幫忙,朋友也不是做電源的,也是個愛好者。看過了好多的回復。程序能不能用呢?肯定能用,但是要熟悉單片機的開發才可以,這么多年過去了,現在看以前的程序確實很粗糙。正如有網友所說,我走火入魔了,呵呵,其實只是第一次接觸這個而已。就連PIC也是第一次使用,所以理解力是不夠的,再說開發程序的時候連個仿真器都沒有,完全都是自己憑著自己的想象力構建的,所以有錯誤或者理解偏差很正常。所以談不上走火入魔,另外這個直接做產品問題很多,根本就是一個愛好者的處女做而已。希望大家多多包容吧。

全部回復(336)
正序查看
倒序查看
qghqgh
LV.6
2
2006-09-15 13:15
頂.
0
回復
wwwjjjwww
LV.2
3
2006-09-15 13:52
大家頂一下吧,我可是全部奉獻給了大家了.



500) {this.resized=true; this.width=500; this.alt='這是一張縮略圖,點擊可放大。\n按住CTRL,滾動鼠標滾輪可自由縮放';this.style.cursor='hand'}" onclick="if(!this.resized) {return true;} else {window.open('http://u.dianyuan.com/bbs/u/56/891187394781.jpg');}" onmousewheel="return imgzoom(this);">
0
回復
qghqgh
LV.6
4
2006-09-15 13:56
@wwwjjjwww
大家頂一下吧,我可是全部奉獻給了大家了.[圖片]500){this.resized=true;this.width=500;this.alt='這是一張縮略圖,點擊可放大。\n按住CTRL,滾動鼠標滾輪可自由縮放';this.style.cursor='hand'}"onclick="if(!this.resized){returntrue;}else{window.open('http://u.dianyuan.com/bbs/u/56/891187394781.jpg');}"onmousewheel="returnimgzoom(this);">
文件下載不了啊.
0
回復
wwwjjjwww
LV.2
5
2006-09-15 14:05
重新上傳1158306159.rar
0
回復
upsdian
LV.3
6
2006-09-15 15:02
@wwwjjjwww
重新上傳1158306159.rar
還是下載不了啊!
0
回復
wwwjjjwww
LV.2
7
2006-09-15 15:47
為什么我上傳的文件不對?
0
回復
upsdian
LV.3
8
2006-09-15 16:47
@wwwjjjwww
為什么我上傳的文件不對?
要不,發到我的郵箱里吧.我也研究一下. linhua_23@163.com 謝了!
0
回復
qghqgh
LV.6
9
2006-09-15 17:10
@upsdian
要不,發到我的郵箱里吧.我也研究一下.linhua_23@163.com謝了!
現在論壇上的RAR文件都不能下載.怎么回事?
0
回復
houtao
LV.6
10
2006-09-15 19:34
@wwwjjjwww
重新上傳1158306159.rar
不知這位兄臺能否發一份給我,我現正在研究UPS.
0
回復
houtao
LV.6
11
2006-09-15 19:38
@houtao
不知這位兄臺能否發一份給我,我現正在研究UPS.
給我來一份?
0
回復
2006-09-15 20:20
發一份給我吧!小弟在此先謝謝了.yypyesse@163.com
0
回復
hbzjcjw
LV.10
13
2006-09-15 20:23
@qghqgh
現在論壇上的RAR文件都不能下載.怎么回事?
給我傳一份:hbzjcjw@sohu.com
0
回復
zhai_0099
LV.3
14
2006-09-15 22:26
@wwwjjjwww
為什么我上傳的文件不對?
給我來1份:zgk_278@163.com 謝謝
0
回復
z123456
LV.4
15
2006-09-16 08:56
@wwwjjjwww
為什么我上傳的文件不對?
貼出來,或轉為文本文件
0
回復
grs998
LV.3
16
2006-09-16 10:57
給小弟一份!!
0
回復
zli
LV.7
17
2006-09-16 12:51
能不能給一份zlier1026@163.com
0
回復
zwg0106
LV.1
18
2006-09-16 12:51
過我一份吧
我的郵箱:zwg0106@163.com
Thank you!!!!!!
0
回復
hbzjcjw
LV.10
19
2006-09-16 20:45
敢問兄弟什么學歷?小學?
0
回復
wwwjjjwww
LV.2
20
2006-09-18 09:16
//------------------------------------------------------------
//       spwm信號調制
//------------------------------------------------------------
#include
#include
//系統配置
__CONFIG(HS&PWRTEN&BOREN&PROTECT&WDTEN);
//打開看門狗,選擇高速晶振,上電延時復位,掉電復位使能,代碼保護
//------------------------------------------------------------
//指示燈宏定義
#define L1_RED_ON   RB1=1;RB2=0;//L1紅燈亮
#define L1_OFF   RB1=0;RB2=0;
#define L2_RED_ON   RB4=1;RB3=0;//L2紅燈亮
#define L2_OFF   RB4=0;RB3=0;
#define L3_RED_ON   RB7=1;RB5=0;//L3紅燈亮
#define L3_OFF   RB7=0;RB5=0;
#define L1_GREE_ON  RB2=1;RB1=0;//L1綠燈亮
#define L2_GREE_ON  RB3=1;RB4=0;//L2綠燈亮
#define L3_GREE_ON  RB5=1;RB7=0;//L3綠燈亮
//-----------------------------------------------------------
//模擬輸入通道宏定義
#define AN0 CHS2=0;CHS1=0;CHS0=0;
#define AN1 CHS2=0;CHS1=0;CHS0=1;
#define AN2 CHS2=0;CHS1=1;CHS0=0;
//-----------------------------------------------------------
//-----------------------------------------------------------
void adc_init()
{
//ad時鐘選擇
ADCS1=1;//FOSC/32
ADCS0=0;
/*IF CPU IS PIC16F7X7
VCFG1=0;
VCFG0=0;//vref=vdd-vss
*/
PCFG0=0;
PCFG1=0;
PCFG2=0;//VREF=VDD-VSS
ADON=1;//打開ad模塊
ADIF=0;//清除ad中斷標志
ADIE=0;//打開ad模塊中斷
}
//-----------------------------------------------------------
void port_init()//端口初始化
{
//端口b設置
TRISB0=0;TRISB1=0;TRISB2=0;TRISB3=0;TRISB4=0;TRISB5=0;
TRISB6=1;//輸入
TRISB7=0;//RB端口方向設置
PORTB=0;//輸出0
RBPU=0;//使能內部弱上拉
INTE=0;//禁止RB0中斷
RBIF=0;
RBIE=1;//允許RB端口電平變化中斷
//端口c設置
TRISC=0X00;//PORTC are outputs
PORTC=0;//輸出為0
RC1=RC2=0;
RC3=1;RC4=0;
//timer0 init
T0CS=0;//選擇內部指令時鐘
T0IF=0;
//T0IE=1;//在第一次ccp1比較后打開中斷使能
//timer1
TMR1CS=0;//定時器模式
}
//----------------------------------------------------------
//----------------------------------------------------------
//軟件延時子程序*/
void       DELAY()
{
unsigned int i;
   for(i=2000;i>0;i--);
}
//----------------------------------------------------------
void init_start()//開始
{
L1_RED_ON;L2_RED_ON;L3_RED_ON;
DELAY();DELAY();DELAY();DELAY();
DELAY();DELAY();DELAY();DELAY();
DELAY();DELAY();DELAY();DELAY();
DELAY();DELAY();DELAY();DELAY();
DELAY();DELAY();DELAY();DELAY();
DELAY();DELAY();DELAY();DELAY();
DELAY();DELAY();DELAY();DELAY();
DELAY();DELAY();DELAY();DELAY();
DELAY();DELAY();DELAY();DELAY();
DELAY();DELAY();DELAY();DELAY();
DELAY();DELAY();DELAY();DELAY();
L2_OFF;L3_OFF;L1_OFF;
DELAY();DELAY();DELAY();DELAY();
DELAY();DELAY();DELAY();DELAY();
DELAY();DELAY();DELAY();DELAY();
DELAY();DELAY();DELAY();DELAY();
DELAY();DELAY();DELAY();DELAY();
DELAY();DELAY();DELAY();DELAY();
DELAY();DELAY();DELAY();DELAY();
DELAY();DELAY();DELAY();DELAY();
DELAY();DELAY();DELAY();DELAY();
DELAY();DELAY();DELAY();DELAY();
DELAY();DELAY();DELAY();DELAY();
L1_GREE_ON;L2_GREE_ON;L3_GREE_ON;
DELAY();DELAY();DELAY();DELAY();
DELAY();DELAY();DELAY();DELAY();
DELAY();DELAY();DELAY();DELAY();
DELAY();DELAY();DELAY();DELAY();
DELAY();DELAY();DELAY();DELAY();
DELAY();DELAY();DELAY();DELAY();
DELAY();DELAY();DELAY();DELAY();
DELAY();DELAY();DELAY();DELAY();
DELAY();DELAY();DELAY();DELAY();
DELAY();DELAY();DELAY();DELAY();
DELAY();DELAY();DELAY();DELAY();
L2_OFF;L3_OFF;L1_OFF;
}
//----------------------------------------------------------
bit k,power;//關機及按鍵標志
bank1 unsigned char tm_sum;//系統實際變量
bank1 unsigned char ad_res_1,ad_res_0,ad_res_2; //ad轉換結果寄存器
bank1 float  sin_am,sin_l,sin_d;//浮點數,幅值變量,臨時變量,臨時變量
bit sin_up;//sin函數正負半周標志
bit tmr_s,tmr_d,crut_ie;//定時標志,定時標志變化標志,電流延時保護允許
unsigned char crut_tmr;//電流延時時間變量
unsigned char power_s;//電源動作延時變量
bit power_ie;//電源允許動作標志
bit power_up;//初次開機標志
unsigned char power_up_s;//初次開機延時標志
bit crut_if;volue_if;
//-----------AD1通道轉換--------------------
void ad_0()
{
AN0;//選擇通道0
DELAY();//延時,采樣電容充電
ADGO=1;//開器AD
while(ADGO);//等待ad結束
ad_res_0=ADRES;//結果轉存到變量AD_RES_0
}
//-----------AD1通道轉換--------------------
void ad_1()
{
AN1; DELAY();
ADGO=1;while(ADGO);
ad_res_1=ADRES;
if(ad_res_1>132){sin_am-=0.005;if((ad_res_1-132)>10)sin_am-=0.04; }
else
if((ad_res_1<=132)&&(ad_res_1>=130))sin_am+=0;
else
if(ad_res_1<130) {sin_am+=0.005;if((130-ad_res_1) >10)sin_am+=0.04;}
if(sin_am>1.6)sin_am=1.6;
}
//------------AD2通道轉換-------------------
void ad_2()
{
AN2; DELAY();
ADGO=1;while(ADGO);
ad_res_2=ADRES;
}
//-------------------------------------------
const unsigned char sin_[]={40,50,73,85,100,113,127,141,157,170,180,189,196,200,203,
204,//正半周
204,//負半周
203,200,195,188,179,169,157,144,129,113,96,78,59,39,15};
unsigned char sin_num;//SIN函數表查表變量
//-------------------------------------------------------------------------------
void CCP_start()
{
CCPR2L=0X0;//設置CCP2,0%的脈寬輸出
CCPR1L=0X0;//設置CCP1,0%的脈寬輸出
TRISC=0X00;//PORTC are outputs
PR2=0Xff;//設置PWM的工作周期,16Mhz,PWM周期15.562khz
CCP1M3=1;CCP1M2=1;//CCP1模塊PWM模式
CCP2M3=1;CCP2M2=1;//CCP2模塊PWM模式
sin_up=1;//正負半周SIN函數
sin_num=0;//脈寬周期調整計數器
sin_am=0;//sin函數的幅值
sin_am=0.3000;//sin函數的幅值
crut_ie=1;//電流慢保護允許
}
//-------------中斷服務程序------------------------------------
void interrupt key_ccp_timer()
{
if(TMR2IF&TMR2IE){TMR2IF=0;//定時器2中斷服務函數
  if(sin_num==31){sin_num=0;sin_up=!sin_up;}
  sin_d=sin_[sin_num];
  sin_l=sin_am*sin_d;if(sin_l>=255)sin_l=255;//限幅
  if(sin_up)
  {CCPR2L=(unsigned char)sin_l;CCPR1L=0;}//換向
  else
      {CCPR1L=(unsigned char)sin_l;CCPR2L=0;}//換向
  sin_num++;
}
CLRWDT();//清除看門狗
if(RBIF&&RBIE){RBIF=0;if((!RB6)&&power_ie)k=1;}//端口b中斷服務函數
if(TMR1IF&TMR1IE){TMR1IF=0;tm_sum++;if(tm_sum==31){tm_sum=0;tmr_s=!tmr_s;tmr_d=1;}}
//定時器1中斷服務函數
}
//************************************************************************************
main()
{
CLRWDT(); //清除看門狗
port_init();//端口初始化
init_start();//開機狀態
adc_init();//ad通道初始化
//-----
RC4=0;//繼電器關閉
RC3=1;//關閉脈沖封鎖
//-----
TMR1CS=0;//同步模式
T1SYNC=0;//內部指令周期
TMR1H=0XFD;
TMR1L=0X10;//定時器1初值
TMR1IE=1;//定時器1中斷使能
//-----
TRISC=0X00;//端口C輸出
TRISC1=TRISC2=1;//RC1,RC2輸入模式
PEIE=1;//外圍模塊中斷使能
TMR2IE=1;//打開定時器2中斷使能
GIE=1;//開全局中斷
TMR2ON=1;//打開定時器2
TOUTPS3=0;TOUTPS2=1;TOUTPS1=0;TOUTPS0=0;//定時器2后分頻器5分頻
TMR1ON=1;//打開定時器1
power_ie=1;//允許開機
while(1)
{
CLRWDT();//清除看門狗
if(k){
  DELAY();DELAY();DELAY();DELAY();DELAY();DELAY();//延時
  DELAY();DELAY();DELAY();DELAY();DELAY();DELAY();//延時
if(k&&RB6){k=0;power=!power;}//開關機標志
if(power)//開機
{
power_ie=0;//開關間隔開始計時
RC3=0;//打開脈沖封鎖
RC4=1;//打開繼電器
L3_RED_ON;//打開L3綠燈
CCP_start();//開始SPWM
}
if(!power)//關機
{
power_ie=0;//開關間隔開開始計時
crut_if=0;//電流保護標志清零
volue_if=0;//電池電壓保護標志清零
L1_OFF;//關燈
L2_OFF;
L3_OFF;
RC3=1;//關閉脈沖封鎖
CCP2CON=0;CCP1CON=0;//復位CCP模塊
RC2=RC1=0;//置端口固定電平
L3_OFF;//關閉L3綠燈
RC4=0;//關閉繼電器
}
}
//-----輸出電流檢測
if(power_up)
{
if(ad_res_0>=204)//電流高于4v,快保護
{
crut_if=1;crut_tmr=0;crut_ie=0;
L2_GREE_ON;RC3=1;RC4=0;L3_GREE_ON;
}
if((ad_res_0>=102)&&(ad_res_0<204))//高于2v電流慢保護
{
L2_GREE_ON;
if(tmr_s&&tmr_d&&crut_ie)//時基,時基變化標志,保護允許
{
tmr_d=0;crut_tmr++;
if(crut_tmr==10)
{
crut_tmr=0;crut_ie=0;crut_if=1;//保護
L2_GREE_ON;RC3=1;RC4=0;L3_GREE_ON;
}
}
}
if(ad_res_0<102){crut_tmr=0;L2_OFF;if(crut_if)L2_GREE_ON;}//電流正常低于2v
//-----電池電壓檢測
if(ad_res_2>=102){L1_OFF;if(volue_if)L1_GREE_ON;}
//電池電壓大于2v,L1紅燈滅
if((ad_res_2<102)&&(ad_res_2>=91)){L1_GREE_ON;}//電池低于2v大于1.8v
     if(ad_res_2<92){volue_if=1;L1_GREE_ON;RC3=1;RC4=0;L3_GREE_ON;} //電池低于1.8v
}
//-----模擬采集
if(power)ad_1();//在開機狀態下檢測反饋電壓
ad_2();//采集電池電壓
ad_0();//采集電流
if(power_ie==0)//開關機時間間隔
{
if(tmr_s&&tmr_d){tmr_d=0;power_s++;}
if(power_s==10){power_s=0;power_ie=1;}
}
if(power_up==0)//上電延時1秒檢測電池電壓
{
if(tmr_s&&tmr_d){tmr_d=0;power_up_s++;}
if(power_up_s==1){power_up_s=0;power_up=1;}
}
}
}
0
回復
wwwjjjwww
LV.2
21
2006-09-18 09:19
0
回復
qghqgh
LV.6
22
2006-09-18 13:21
@wwwjjjwww
1158542354.ddb
正在學習中,多謝.
0
回復
upsdian
LV.3
23
2006-09-18 14:26
@wwwjjjwww
1158542354.ddb
怎么打不開啊!??
0
回復
wcssh
LV.4
24
2006-09-18 14:31
@wwwjjjwww
1158542354.ddb
用Protel99se無發打開
0
回復
wwwjjjwww
LV.2
25
2006-09-20 09:19
@wcssh
用Protel99se無發打開
我試了,可以下載,可以大開
0
回復
xiaxiao1127
LV.4
26
2006-09-21 03:55
@wwwjjjwww
我試了,可以下載,可以大開
老大你的ddb文件用protel99se無發打開.
0
回復
hbzjcjw
LV.10
27
2006-09-21 12:10
@xiaxiao1127
老大你的ddb文件用protel99se無發打開.
這種無聊的貼子真是浪費人的熱情!
0
回復
hbzjcjw
LV.10
28
2006-09-21 22:40
@hbzjcjw
這種無聊的貼子真是浪費人的熱情!
0
回復
wcssh
LV.4
29
2006-09-22 09:27
@hbzjcjw
1158849640.ddb
能打開了,謝謝.
0
回復
qghqgh
LV.6
30
2006-09-23 14:42
@wcssh
能打開了,謝謝.
我試了一下,輸出帶負載壓降太大.且看不到正弦波形.不知問題出在哪里.盼樓主及高手解答.多謝!
0
回復
kwlon
LV.2
31
2006-12-09 13:14
@qghqgh
我試了一下,輸出帶負載壓降太大.且看不到正弦波形.不知問題出在哪里.盼樓主及高手解答.多謝!
1165641200.ddb
高手看一下,能行嗎?
0
回復
主站蜘蛛池模板: 麻豆少妇厨房com | 四川少妇搡BBW搡BBBB | 免费吃奶摸下激烈视频青青网 | 又硬又粗又大一区二区三区视频 | 国产aⅴ夜夜欢一区二区三区 | 免费网站看V片在线18禁无码 | 超碰人人人人 | 精品久久久国产 | 国产黄色免费在线视频 | 国产一卡2卡3卡四卡精品国色 | 国内精品久久久久精品 | 黑人把女人弄到高潮a片 | 欧美视频www | 91丨九色丨黑人外教 | 午夜无码片在线观看影视 | 精品无码一区二区的天堂 | www在线免费 | 欧美阿v视频 | 亚洲视频www | 国产一级片大全 | 免费黄色一级 | 老司机深夜福利在线观看 | 性欧美乱妇com喷浆水多 | h免费观看| 国产91一区二区在线观看 | 久久一区二区三区精华液介绍 | 国产成人综合亚洲A片激情文学 | 四虎网址入口 | 无码专区天天躁天天躁在线 | 蜜臀久久99精品久久久久久 | 成人偷拍片视频在线观看 | 日本激情视频一区 | 十八禁羞羞视频爽爽爽 | 欧美另类激情 | 亚洲中文久久精品81 | 日韩av中文字幕第一页 | 国产一区正在 | 伊人久久综合色 | 青青草免费在线播放 | 在线观看高清不卡无码视频 | 一级做a爰片久久毛片一 |