在汽車、工業和電信行業的設計師當中,使用高功率升壓型轉換器的現像正變得越來越普遍。當需要 300W 或更高的功率時,必須在功率器件中實現高效率 (低功率損耗),以免除增設龐大散熱器和采用強迫通風冷卻的需要
上傳時間: 2014-12-01
上傳用戶:lhc9102
為拓展單相光伏并網無功補償功能,實現單相并網系統無功和諧波電流的精確檢測和補償,提出一種改進的新型瞬時無功與諧波電流檢測及補償方法。該方法以瞬時無功理論為基礎,推導出單相并網逆變器瞬時無功控制規律,可以簡便、快速地分離所需電流分量;并結合無差拍理論,給出基于無差拍控制的單相并網逆變器的脈寬調制(PWM) 算法,可以對瞬時諧波及無功電流進行補償。將該控制策略應用于單相光伏并網系統,使光伏并網系統除提供有功功率外,同時兼備無功與諧波補償功能,增強了光伏并網功能。
上傳時間: 2014-04-15
上傳用戶:yanyueshen
QSP-12是一款性/價比極高的直接使用USB通訊協議而開發的三星單片機專用編程器。不同于傳統采用USB轉RS232的編程器,直接使用USB通訊協議的QSP-12更快更可靠!配合精心優化設計的PC客戶端編程(燒錄)軟件,實現了業界最高的編程性能。自動燒錄S3F9454(包含擦除/編程/校驗/寫Smart option/Read protect/LDC protect/Hard Lock)只須0.7秒,代碼越小,燒錄越快;代碼越大,優勢越明顯! 編程器采用小巧而堅實的烤漆鐵質外殼設計,具有極高的耐用性和抗電磁干擾能力,配備防止反插的RJ-11專業在線編程接口,確保您在使用過程中沒機會出錯。QSP-12快速可靠的編程(燒錄)能力,無論是您在產品開發、量產,還是在產品的現場升級階段,它都能給您帶來前所未有高效、可靠的編程體驗!在現今人力成本日益高漲的時代,為您贏得更多優勢! QSP-12特點: 直接使用USB通訊,更快、更可靠 無需用戶設定編程電壓,更安全、易用 業界最高的編程性能,節省人力成本 支持脫機燒錄 支持在線編程(ISP) 外形小巧,方便產品現場升級 堅實的烤漆鐵質外殼,更美觀耐用、抗電磁干擾能力強 低功耗(<0.5W),綠色環保
上傳時間: 2013-11-19
上傳用戶:uuuuuuu
摘要:文章介紹了一種以8031單片機為核心片外擴展at93c46電擦除可編程只讀存儲器并帶有數碼LED顯示時.分.秒和以指示燈做標志的按鍵校時自動打鈴器。 關鍵詞:單片機 存儲器 數碼管
上傳時間: 2013-11-01
上傳用戶:refent
TKS-668B單片機實時在線仿真器是TKS-KOOKS系列仿真器中的精簡版本,采用了最新的仿真技術具有較高的性能/價格比.除沿襲了TKS-HOOKS仿真器一貫的高性能、高穩定外、更增添了精密運行時間顯示和115200b/s串口下載速度,并且整機消耗功率大幅度的減少。在TKS-668B單片機仿真器支持的單片機芯片仿真范圍內,性能表現優異、穩定、運行速度更快,更加適合于仿真標準89C51系列單片機及兼容產品。
上傳時間: 2013-11-23
上傳用戶:墻角有棵樹
S51編程器制作包:自制AT89S51編程器教程AT89S51芯片的日漸流行,對我們單片機初學者來說是一個大好消息。因為做個AT89S51編程器非常容易,而且串行編程模式更便于做成在線編程器,給頻繁燒片,調試帶來了巨大的方便。 電路: 只要焊13根線就可以搞定這個電路。基本原理:RST置高電平,然后向單片機串行發送 編程命令。P1.7(SCK)輸入移位脈沖,P1.6(MISO)串行輸出,P1.5(MOSI)串行輸入(要了解詳細編程原理可以去看AT89S51的數據手冊)。使用并口發出控制信號,74373只是用于信號轉換,因為并口直接輸出高電平的電壓有點沒到位,使用其他芯片也可以,還有人提出直接接電阻。并口引腳1控制P1.7,引腳14控制P1.5,引腳15讀P1.6,引腳16控制RST,引腳17接74373 LE(鎖存允許),18-25這些引腳都可以接地。建議在你的單片機系統板上做個6芯的接口。注意:被燒寫的單片機一定是最小系統(單片機已經接好電源,晶振,可以運行),VCC,GND是給74373提供電源的。 還有一個方案:使用串口+單片機,這個方案已經用了半年了。電路稍微麻煩一點,速度比較快,而且可以燒AT89C51等等。其實許多器件編程原理差不多,由于我沒太多時間研究器件手冊,更沒有MONEY買一堆芯片來測試,所以只實現了幾個最常用單片機編程功能(AT89C51,C52,C55,AT89S51,S52,S53)。如果要燒寫其他單片機,你可以直接編寫底層控制子程序(例如,寫一個單元,讀一個單元,擦除ROM的子程序)。如果有需要,我可以在器件選擇欄提供一個“X-CHIP”的選擇,“X-CHIP”的編程細節將由用戶自己去實現。當你仔細閱讀器件手冊后,會發現實現這些子程序其實好容易,這也是初學者學單片機編程的好課題。如果成功了會極大的提高你學單片機的積極性。 軟件: 這個軟件的通信,控制部分早在半年前就完成了,這回只是換了個界面和加入并口下載線的功能,希望你看到這個軟件不會想吐。使用很簡當,有一點特別,當你用鼠標右鍵點擊按鈕后,可以把相關操作設置為自動模式(只有打開文件,擦除芯片,寫FLASH ROM,讀FLASH ROM,效驗數據 可以設置),點擊‘自動完成’后會依次完成這些操作,并在開始時檢測芯片。當“打開文件”設為自動后,第2次燒寫同一個文件時不必再去打開文件,軟件會自動刷新緩沖。軟件在WIN XP,WIN 2000可以使用(管理員登陸的),在WIN 98 ,WIN ME使用并口模式時會更快些。這個軟件同時支持串口編程器和并口下載線。操作正常結束后會有聲音提示。如果沒有聲卡或聲卡爛了,則聲音會從機箱揚聲器中發出。注意:記得在CMOS設置中把并口設為ECP模式。就這些東西,應該夠詳細吧,還有什么問題或遇到什么困難可以聯系我,軟件出現什么問題一定要通知我修正。祝你一次就搞定。
上傳時間: 2014-01-24
上傳用戶:13162218709
看門狗定時器的工作原理:WDT 工作原理使能時,WDT 將遞增,直到溢出,或稱“超時”。除非處于休眠或空閑模式,WDT 超時會強制器件復位。為避免WDT 超時復位,用戶必須定期用PWRSAV 或CLRWDT 指令將看門狗定時器清零。如果WDT 在休眠或空閑模式下超時,器件將喚醒并從PWRSAV 指令執行處繼續執行代碼。在上述兩種情況下,WDTO 位(RCON<4>)都會置1,表示該器件復位或喚醒事件是由于WDT超時引起的。如果WDT 將CPU 從休眠或空閑模式喚醒,“休眠”狀態位(RCON<3>)或“空閑”狀態位(RCON<2>)也會置1,表示器件之前處于省電模式。9.2.1 使能和禁止WDT通過FWDTEN(CW1<7>)配置位可將WDT 使能或禁止。FWDTEN 配置位置1 時,使能WDT。這是已擦除器件的默認值。關于閃存配置字寄存器的更多詳細信息,請參見器件數據手冊。
上傳時間: 2014-01-20
上傳用戶:mikesering
利用TPM2定時器產生一通道語音信號輸出,語音數據為PCM格式:PCM的概念脈沖編碼調制(Pulse Code Modulation,PCM)是概念上最簡單、理論上最完善的編碼系統,是最早研制成功、使用最為廣泛的編碼系統,但也是數據量最大的編碼系統。PCM的編碼原理比較直觀和簡單,它的原理框圖如圖1-1所示。在這個編碼框圖中,它的輸入是模擬聲音信號,它的輸出是PCM樣本。圖中的“防失真濾波器”是一個低通濾波器,用來濾除聲音頻帶以外的信號;“波形編碼器”可暫時理解為“采樣器”,“量化器”可理解為“量化階大小(step-size)”生成器或者稱為“量化間隔”生成器。
上傳時間: 2013-11-21
上傳用戶:DXM35
串行編程器源程序(Keil C語言)//FID=01:AT89C2051系列編程器//實現編程的讀,寫,擦等細節//AT89C2051的特殊處:給XTAL一個脈沖,地址計數加1;P1的引腳排列與AT89C51相反,需要用函數轉換#include <e51pro.h> #define C2051_P3_7 P1_0#define C2051_P1 P0//注意引腳排列相反#define C2051_P3_0 P1_1#define C2051_P3_1 P1_2#define C2051_XTAL P1_4#define C2051_P3_2 P1_5#define C2051_P3_3 P1_6#define C2051_P3_4 P1_7#define C2051_P3_5 P3_5 void InitPro01()//編程前的準備工作{ SetVpp0V(); P0=0xff; P1=0xff; C2051_P3_5=1; C2051_XTAL=0; Delay_ms(20); nAddress=0x0000; SetVpp5V();} void ProOver01()//編程結束后的工作,設置合適的引腳電平{ SetVpp5V(); P0=0xff; P1=0xff; C2051_P3_5=1; C2051_XTAL=1;} BYTE GetData()//從P0口獲得數據{ B_0=P0_7; B_1=P0_6; B_2=P0_5; B_3=P0_4; B_4=P0_3; B_5=P0_2; B_6=P0_1; B_7=P0_0; return B;} void SetData(BYTE DataByte)//轉換并設置P0口的數據{ B=DataByte; P0_0=B_7; P0_1=B_6; P0_2=B_5; P0_3=B_4; P0_4=B_3; P0_5=B_2; P0_6=B_1; P0_7=B_0;} void ReadSign01()//讀特征字{ InitPro01(); Delay_ms(1);//----------------------------------------------------------------------------- //根據器件的DataSheet,設置相應的編程控制信號 C2051_P3_3=0; C2051_P3_4=0; C2051_P3_5=0; C2051_P3_7=0; Delay_ms(20); ComBuf[2]=GetData(); C2051_XTAL=1; C2051_XTAL=0; Delay_us(20); ComBuf[3]=GetData(); ComBuf[4]=0xff;//----------------------------------------------------------------------------- ProOver01();} void Erase01()//擦除器件{ InitPro01();//----------------------------------------------------------------------------- //根據器件的DataSheet,設置相應的編程控制信號 C2051_P3_3=1; C2051_P3_4=0; C2051_P3_5=0; C2051_P3_7=0; Delay_ms(1); SetVpp12V(); Delay_ms(1); C2051_P3_2=0; Delay_ms(10); C2051_P3_2=1; Delay_ms(1);//----------------------------------------------------------------------------- ProOver01();} BOOL Write01(BYTE Data)//寫器件{//----------------------------------------------------------------------------- //根據器件的DataSheet,設置相應的編程控制信號 //寫一個單元 C2051_P3_3=0; C2051_P3_4=1; C2051_P3_5=1; C2051_P3_7=1; SetData(Data); SetVpp12V(); Delay_us(20); C2051_P3_2=0; Delay_us(20); C2051_P3_2=1; Delay_us(20); SetVpp5V(); Delay_us(20); C2051_P3_4=0; Delay_ms(2); nTimeOut=0; P0=0xff; nTimeOut=0; while(!GetData()==Data)//效驗:循環讀,直到讀出與寫入的數相同 { nTimeOut++; if(nTimeOut>1000)//超時了 { return 0; } } C2051_XTAL=1; C2051_XTAL=0;//一個脈沖指向下一個單元//----------------------------------------------------------------------------- return 1;} BYTE Read01()//讀器件{ BYTE Data;//----------------------------------------------------------------------------- //根據器件的DataSheet,設置相應的編程控制信號 //讀一個單元 C2051_P3_3=0; C2051_P3_4=0; C2051_P3_5=1; C2051_P3_7=1; Data=GetData(); C2051_XTAL=1; C2051_XTAL=0;//一個脈沖指向下一個單元//----------------------------------------------------------------------------- return Data;} void Lock01()//寫鎖定位{ InitPro01();//先設置成編程狀態//----------------------------------------------------------------------------- //根據器件的DataSheet,設置相應的編程控制信號 if(ComBuf[2]>=1)//ComBuf[2]為鎖定位 { C2051_P3_3=1; C2051_P3_4=1; C2051_P3_5=1; C2051_P3_7=1; Delay_us(20); SetVpp12V(); Delay_us(20); C2051_P3_2=0; Delay_us(20); C2051_P3_2=1; Delay_us(20); SetVpp5V(); } if(ComBuf[2]>=2) { C2051_P3_3=1; C2051_P3_4=1; C2051_P3_5=0; C2051_P3_7=0; Delay_us(20); SetVpp12V(); Delay_us(20); C2051_P3_2=0; Delay_us(20); C2051_P3_2=1; Delay_us(20); SetVpp5V(); }//----------------------------------------------------------------------------- ProOver01();} void PreparePro01()//設置pw中的函數指針,讓主程序可以調用上面的函數{ pw.fpInitPro=InitPro01; pw.fpReadSign=ReadSign01; pw.fpErase=Erase01; pw.fpWrite=Write01; pw.fpRead=Read01; pw.fpLock=Lock01; pw.fpProOver=ProOver01;}
上傳時間: 2013-11-12
上傳用戶:gut1234567
無線感測器已變得越來越普及,短期內其開發和部署數量將急遽增加。而無線通訊技術的突飛猛進,也使得智慧型網路中的無線感測器能夠緊密互連。此外,系統單晶片(SoC)的密度不斷提高,讓各式各樣的多功能、小尺寸無線感測器系統相繼問市。儘管如此,工程師仍面臨一個重大的挑戰:即電源消耗。
上傳時間: 2013-10-30
上傳用戶:wojiaohs