freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于avr單片機(jī)的電力諧波分析系統(tǒng)設(shè)計(jì)(編輯修改稿)

2024-07-15 15:28 本頁面
 

【文章內(nèi)容簡(jiǎn)介】 單片機(jī)選型常用單片機(jī)按照處理能力分為8位,16位,32位。32位單片機(jī)主要是應(yīng)用在復(fù)雜的控制系統(tǒng)或是信號(hào)處理上,ARM系列的CPU是典型的代表;16位單片機(jī)中MSP430系列性能十分優(yōu)秀,擁有12位分辨率的A/D,運(yùn)算速度也比較高。這些MCU的性能都非常的好,雖然與DSP相比外圍功能很強(qiáng)大,但同它一樣,這些類型的CPU引腳數(shù)比較多,手工焊接不易,必須使用專門的開發(fā)工具才能進(jìn)行學(xué)習(xí)開發(fā)。而一般的MCS51系列單片機(jī),內(nèi)部資源十分緊張,外圍功能少,通常需要外接器件來擴(kuò)充功能,因此本設(shè)計(jì)采用ATMEL公司AVR單片機(jī)進(jìn)行開發(fā)。AVR單片機(jī)是ATMEL公司出品的新一代8位單片機(jī),該單片機(jī)采用高性能的RISC內(nèi)核,具有很低的功耗,并且有多種節(jié)能控制方式。AVR單片機(jī)內(nèi)部為高級(jí)語言進(jìn)行了優(yōu)化,用高級(jí)語言編寫的程序可以高效率的生成執(zhí)行代碼。內(nèi)部集成了EEPROM用以保存數(shù)據(jù),ISP功能提高了單片機(jī)開發(fā)的靈活性,也省去了購買并行編程器的費(fèi)用,降低開發(fā)成本。AVR單片機(jī)內(nèi)部的集成了可以編程的RC振蕩器,要求不高時(shí)可以免去外接的石英振蕩器。此外,AVR單片機(jī)集成了多種外設(shè),如看門狗定時(shí)器、捕獲器、串行接口(UART或USART),很多型號(hào)還集成了TWI(兼容I2C接口)、模擬比較器、ADC、低電壓復(fù)位保護(hù)、PWM控制器。部分新的型號(hào)還集成了USB控制器、射頻收發(fā)電路等,功能更為強(qiáng)大。本設(shè)計(jì)選用MEGA系列的ATmega32L單片機(jī),ATmega32有如下特點(diǎn):32K 字節(jié)的系統(tǒng)內(nèi)可編程Flash(具有同時(shí)讀寫的能力,即RWW),1024 字節(jié) EEPROM, 2K 字節(jié) SRAM,32 個(gè)通用I/O 口線,32 個(gè)通用工作寄存器,用于邊界掃描的JTAG 接口,支持片內(nèi)調(diào)試與編程,三個(gè)具有比較模式的靈活的定時(shí)器/ 計(jì)數(shù)器(T/C), 片內(nèi)/ 外中斷,可編程串行USART,面向字節(jié)的兩線串行接口, 8 路10 位具有可選差分輸入級(jí)可編程增益(TQFP 封裝) 的ADC ,具有片內(nèi)振蕩器的可編程看門狗定時(shí)器,一個(gè)SPI 串行端口,以及六個(gè)可以通過軟件進(jìn)行選擇的省電模式。 工作于空閑模式時(shí)CPU 停止工作,而USART、兩線接口、A/D 轉(zhuǎn)換器、SRAM、T/C、SPI 端口以及中斷系統(tǒng)繼續(xù)工作;掉電模式時(shí)晶體振蕩器停止振蕩,所有功能除了中斷和硬件復(fù)位之外都停止工作;在省電模式下,異步定時(shí)器繼續(xù)運(yùn)行,允許用戶保持一個(gè)時(shí)間基準(zhǔn),而其余功能模塊處于休眠狀態(tài); ADC 噪聲抑制模式時(shí)終止CPU 和除了異步定時(shí)器與ADC 以外所有I/O 模塊的工作,以降低ADC 轉(zhuǎn)換時(shí)的開關(guān)噪聲; Standby 模式下只有晶體或諧振振蕩器運(yùn)行,其余功能模塊處于休眠狀態(tài),使得器件只消耗極少的電流,同時(shí)具有快速啟動(dòng)能力;擴(kuò)展Standby 模式下則允許振蕩器和異步定時(shí)器繼續(xù)工作。ATmega32片內(nèi)ISP Flash 允許程序存儲(chǔ)器通過ISP 串行接口,或者通用編程器進(jìn)行編程,也可以通過運(yùn)行于AVR 內(nèi)核之中的引導(dǎo)程序進(jìn)行編程。引導(dǎo)程序可以使用任意接口將應(yīng)用程序下載到應(yīng)用Flash存儲(chǔ)區(qū)(ApplicationFlash Memory)。在更新應(yīng)用Flash存儲(chǔ)區(qū)時(shí)引導(dǎo)Flash區(qū)(Boot Flash Memory)的程序繼續(xù)運(yùn)行,實(shí)現(xiàn)了RWW 操作。 通過將8 位RISC CPU 與系統(tǒng)內(nèi)可編程的Flash 集成在一個(gè)芯片內(nèi),ATmega32 成為一個(gè)功能強(qiáng)大的單片機(jī),為許多嵌入式控制應(yīng)用提供了靈活而低成本的解決方案。ATmega32的片內(nèi)結(jié)構(gòu)如圖3-1:圖3-1 AVR單片機(jī)片內(nèi)結(jié)構(gòu) 電源電路~,但不穩(wěn)定的電源可能會(huì)給A/D的轉(zhuǎn)換結(jié)果帶來誤差或?qū)纹瑱C(jī)工作產(chǎn)生潛在的危害,此外,運(yùn)算放大電路需要正負(fù)5V的穩(wěn)壓電源,因此需要做一個(gè)能輸出正負(fù)5V的穩(wěn)壓電源。單片機(jī)、運(yùn)算放大器、電平轉(zhuǎn)換電路的用電電流僅為mA級(jí),全部功耗不會(huì)超過1w,因此電源變壓器選用次級(jí)中間抽頭,雙9V輸出的5W變壓器,經(jīng)橋式整流電路整流后,通過7805和7905兩塊5V的穩(wěn)壓芯片輸出177。5V的穩(wěn)壓電壓。Cs1~Cs4四個(gè)電解電容的作用是濾波,而C7~C10四個(gè)較小的瓷片電容是為了消除高頻干擾。電源部分的電路3-2所示:圖3-2 穩(wěn)壓電源電路 最小系統(tǒng)設(shè)計(jì)ATmega32L單片機(jī)內(nèi)部有32KB的FlashROM和2KB的SRAM,完全能滿足信號(hào)采集、諧波分析要求,因此不需要擴(kuò)展ROM或RAM(該單片機(jī)沒有與51系列單片機(jī)一樣的ALE地址鎖存使能、PSEN程序存儲(chǔ)器使能等信號(hào)的輸出,內(nèi)部設(shè)計(jì)上也不支持存儲(chǔ)器的擴(kuò)充)。直接用單片機(jī)、復(fù)位電路、時(shí)鐘信號(hào)電路、A/D轉(zhuǎn)換濾波電路、和ISP接口即可工作,最小系統(tǒng)的電路圖部分如圖3-3。圖3-3 單片機(jī)最小系統(tǒng)電路圖 復(fù)位電路ATmega32L單片機(jī)已經(jīng)內(nèi)置了上電復(fù)位設(shè)計(jì)。并且在熔絲位里,可以控制復(fù)位時(shí)的額外時(shí)間,故AVR外部的復(fù)位線路在上電時(shí),可以設(shè)計(jì)得很簡(jiǎn)單:直接拉一只10K的電阻到VCC即可(R0)。為了可靠,(C0)以消除干擾、雜波。D0(1N4148)的作用有兩個(gè):作用一是將復(fù)位輸入的最高電壓鉗在Vcc+ 左右,另一作用是系統(tǒng)斷電時(shí),將R0(10K)電阻短路,讓C0快速放電,讓下一次來電時(shí),能產(chǎn)生有效的復(fù)位。當(dāng)AVR在工作時(shí),按下S0開關(guān)時(shí),復(fù)位腳變成低電平,觸發(fā)AVR芯片復(fù)位。實(shí)際應(yīng)用時(shí),如果不需要復(fù)位按鈕,復(fù)位腳可以不接任何的零件,AVR芯片也能穩(wěn)定工作。即這部分不需要任何的外圍零件。但為了電路的標(biāo)準(zhǔn)和工作的可靠,設(shè)計(jì)中保留了復(fù)位電路。 時(shí)鐘信號(hào)電路ATmega32L單片機(jī)內(nèi)置RC振蕩線路,可以產(chǎn)生1M、2M、4M、8M的振蕩頻率。不過,內(nèi)置的畢竟是RC振蕩,受電源電壓,系統(tǒng)溫度的影響很大。在一些要求較高的場(chǎng)合,比如本設(shè)計(jì)需要用定時(shí)器每1/3200秒產(chǎn)生一個(gè)中斷采集信號(hào),同時(shí)與RS232通信也需要較精確的波特率時(shí),所以必須使用外部的晶振線路。早期的90S系列,晶振兩端均需要接22pF左右的電容。Mega系列實(shí)際使用時(shí),這兩只小電容不接也能正常工作。不過為了線路的規(guī)范化,設(shè)計(jì)中仍然保留這兩個(gè)電容。 A/D轉(zhuǎn)換濾波電路系統(tǒng)設(shè)備內(nèi)部及外部的數(shù)字電路都會(huì)產(chǎn)生電磁干擾(EMI),從而影響模擬測(cè)量的精度。如果轉(zhuǎn)換精度要求較高,那么可以通過以下方法來減少噪聲:1. 模擬通路越短越好。保證模擬信號(hào)線位于模擬地之上,并使它們與高速切換的數(shù)字信號(hào)線分開。2. 如圖3-3所示, AVCC 應(yīng)通過一個(gè)LC (L1,C5)網(wǎng)絡(luò)與數(shù)字電壓源VCC 連接。3. 使用ADC 噪聲抑制器來降低來自CPU 的干擾噪聲。4. 如果有ADC 端口被用作數(shù)字輸出,那么必須保證在轉(zhuǎn)換進(jìn)行過程中它們不會(huì)有電平的切換。也可以從外面輸入?yún)⒖茧妷海热缭谕饷媸褂肨L431基準(zhǔn)電壓源。因?yàn)锳/D的精度只有10為,所以一般使用內(nèi)部自帶的參考電壓已經(jīng)足夠。(C3)。實(shí)際應(yīng)用時(shí),為了簡(jiǎn)化線路,可以將AVCC直接接到VCC,AREF懸空。即這部分不需要任何的外圍零件。本設(shè)計(jì)仍然保留這部分電路。 ISP接口ISP下載接口,不需要任何的外圍零件。使用雙排25插座。由于沒有外圍零件,故PB5(MOSI)、PB6(MISO)、PB7(SCK)、復(fù)位腳仍可以正常使用,不受ISP的干擾。 熔絲位設(shè)置ATmega32L單片機(jī)提供了6個(gè)鎖定位和兩個(gè)熔絲位字節(jié)。出廠時(shí)熔絲位的設(shè)置是使用片內(nèi)1MHZ,而系統(tǒng)需要精確時(shí)鐘,因此在使用單片機(jī)工作前必須對(duì)單片機(jī)的熔絲位進(jìn)行配置。根據(jù)ATmega32L手冊(cè)中給出的關(guān)于時(shí)鐘源選擇的設(shè)置如表3-1;時(shí)鐘及啟動(dòng)時(shí)間的相關(guān)配置位在熔絲位的低字節(jié),熔絲位低字節(jié)的功能如表3-2。表3-1 時(shí)鐘源的選擇芯片時(shí)鐘選項(xiàng)CKSEL3..0外部晶體/ 陶瓷振蕩器1111 1010外部低頻晶振1001外部RC 振蕩器1000 0101標(biāo)定的內(nèi)部RC 振蕩器0100 0001外部時(shí)鐘0000表3-2 熔絲位低字節(jié)功能表熔絲位低位字節(jié)位號(hào)描述默認(rèn)值BODLEVEL7BOD 觸發(fā)電平1 ( 未編程)BODEN6BOD 使能1 ( 未編程)SUT15選擇啟動(dòng)時(shí)1 ( 未編程)SUT04選擇啟動(dòng)時(shí)0 ( 已編程)CKSEL33選擇時(shí)鐘源0 ( 已編程)CKSEL22選擇時(shí)鐘源0 ( 已編程)CKSEL11選擇時(shí)鐘源0 ( 已編程)CKSEL00選擇時(shí)鐘源1 ( 未編程)由此可以看出需要將熔絲位低位字節(jié)由出廠時(shí)默認(rèn)的值0xE1改寫為0xEE。熔絲位的設(shè)置相對(duì)比較繁瑣,而且對(duì)熔絲位進(jìn)行了錯(cuò)誤的操作會(huì)導(dǎo)致單片機(jī)的死鎖。為了簡(jiǎn)化操作,可以借助編程器提供的熔絲位配置功能,不僅方便,而且還可以避免熔絲位誤操作帶來的損失。以雙龍公司的SLISP()MCU在線編程軟件為例,說明熔絲位的設(shè)置。運(yùn)行SLISP軟件,點(diǎn)擊程序?qū)υ捒蛏系摹芭渲萌劢z位”,彈出一個(gè)“配置熔絲設(shè)置”的對(duì)話框,可以看到各個(gè)熔絲位的設(shè)置狀態(tài),如圖3-4所示,點(diǎn)擊設(shè)置導(dǎo)航,選擇。Startup time: 1K CK+0ms。[CKSEL=1110 SUT=01]后再點(diǎn)擊設(shè)置導(dǎo)航,返回到如圖3-4的“配置熔絲設(shè)置”的設(shè)置狀態(tài),即為所需要的熔絲配置。圖3-4 熔絲位配置界面 信號(hào)預(yù)處理電路電壓信號(hào)經(jīng)過隔離以后,可以再經(jīng)電阻分壓調(diào)整到單片機(jī)可以接受的范圍以內(nèi)。但使用單片機(jī)的單輸入通道時(shí),ADC不能對(duì)電壓信號(hào)的負(fù)半周識(shí)別,因此可以用靜態(tài)偏置的辦法將交流電壓信號(hào)變成隨交流信號(hào)變化的直流信號(hào)。圖3-5信號(hào)預(yù)處理電路具體的做法如圖3-5所示,由LM358N的一只運(yùn)算放大器與R01,R02,R03構(gòu)成一個(gè)加法電路,R03為負(fù)反饋電阻,根據(jù)運(yùn)放的‘虛斷’、‘虛短’性質(zhì),可以得到是-5V電源電壓經(jīng)電位器R04分壓得到的一個(gè)負(fù)的靜態(tài)偏置電壓;是交流信號(hào)經(jīng)電位器R05分壓后得到的一個(gè)幅值更低的交流信號(hào);有效值約為9V,R04和R05的耗散功率可由公式得到,因此選用普通的1/8w可變電阻即可,不用再考慮耗散功率的問題。電路接好以后,先粗略的調(diào)整電位器R04和R05,使和輸出大概為1V左右,然后在輸出端ADC1接上示波器細(xì)致的調(diào)整,~。ADC能測(cè)量的電壓范圍是0~,留出來的10%左右的裕量是因?yàn)楣╇娤到y(tǒng)的電壓也可能會(huì)有10%的波動(dòng),留出來的裕量不夠,采樣出來的波形會(huì)削掉波峰和波谷,會(huì)為諧波分析帶來嚴(yán)重的影響。整個(gè)電路的工作過程可以用圖3-6表示,圖3-6(a)中交流信號(hào)和直流偏置為,加法運(yùn)算并反相后得到如圖3-6(b)所示的直流波形,虛線間的雙向箭頭標(biāo)明了留出的裕量。圖3-6信號(hào)處理過程示意圖 TTL與RS-232電平轉(zhuǎn)換電路與接口單片機(jī)與上位機(jī)通信需要用到串行接口,單片機(jī)的異步串行口輸出的是TTL電平,而普通計(jì)算機(jī)使用的是RS-232協(xié)議標(biāo)準(zhǔn)的電平,因此單片機(jī)連接與上位機(jī)之間使用串行口通信時(shí)需要一個(gè)TTL與RS-232電平轉(zhuǎn)換的電路。TTL電平與RS-232協(xié)議的電氣特性如表3-3所示:表3-3 RS232與TTL電平EIA-RS-232-CTTL邏輯1(mark)-3V~-15V=邏輯0(space)+3V~+15V= 電平的轉(zhuǎn)換可以用分立元件實(shí)現(xiàn),為了增加電路的抗干擾和可靠性,選用美信公司MAX232集成電路做電平轉(zhuǎn)換。MAX232內(nèi)部有兩組電平轉(zhuǎn)換電路,這里僅用到一對(duì),接線電路按照美信公司提供的技術(shù)手冊(cè)接線,如圖3-7。圖3-7 TTL與RS-232電平轉(zhuǎn)換電路4. 諧波分析軟件設(shè)計(jì) 程序總體框架諧波分析軟件部分是整個(gè)系統(tǒng)的靈魂,系統(tǒng)的數(shù)據(jù)采集,計(jì)算以及通信都通過軟件程序?qū)崿F(xiàn)。諧波分析程序通過定時(shí)器中斷產(chǎn)生固定的采樣時(shí)間,在定時(shí)器中斷中將采樣來的數(shù)據(jù)讀出并存儲(chǔ)。主程序控制整個(gè)過程的方向,通過判斷F_done采集完成標(biāo)記和I_average平均值計(jì)數(shù)變量的狀態(tài)來決定是否進(jìn)行FFT運(yùn)算以及顯示數(shù)據(jù)。諧波分析的主體程序流程如圖4-1左,定時(shí)器中斷程序流程如圖4-1右。圖4-1 諧波分析程序流程圖 常量與變量定義程序中的FFT計(jì)算部分采用了查表法求解來提高速度,因此在程序的中需要提供sin_table和cos_talbe兩組常量數(shù)組,為了節(jié)約緊張的SRAM空間,需要給兩個(gè)常量加flash擴(kuò)充字符。flash是CodeVisionAVR中的保留字符,是對(duì)ANSI C語言的擴(kuò)充,編程程序會(huì)把flash修飾的常量存儲(chǔ)到Flash ROM中,運(yùn)行時(shí)不會(huì)在占用多余的SRAM空間。此外,程序中為了提示顯示數(shù)據(jù)的類型,也定義了幾個(gè)字符串常量,如harmonics analysis result/:表示“諧波分析結(jié)果”,為了節(jié)約SRAM空間,也用flash修飾。但存儲(chǔ)在Flash ROM中的字符串不能直接調(diào)用,因此需要用庫中的char *strcpyf(char *dest,char flash *src)等函數(shù)將其復(fù)制到SRAM中的dest字符串?dāng)?shù)組中使用。字符串處理上,定義char tempstr[40]。char tempstrnm[16]。兩個(gè)字符串?dāng)?shù)組臨時(shí)存放各種需要交給上位機(jī)的字符,使用時(shí)需要注意不要使數(shù)組越界。定義float dataR[65]={0}存放采集得到的數(shù)據(jù),因?yàn)椴杉牡谝粋€(gè)電壓數(shù)據(jù)是上次FFT計(jì)算前就已經(jīng)量化出來的了,所以程序中采用一個(gè)變通的辦法,多采集一個(gè)數(shù)據(jù),在FFT計(jì)算前將其舍去。多余的這個(gè)數(shù)據(jù)變量可以在程序中用作臨時(shí)變量。float dataI[65]={0}是FFT計(jì)算中用到的虛部數(shù)據(jù)。float mode[23]存放FFT計(jì)算后前21次諧波的模值,float THDU; float rms分別表示電壓總畸變率和電壓有效值。此外,程序中定義兩個(gè)bit F_done=0表示采集完成;unsigned char P_real=0表示采集數(shù)據(jù)的數(shù)組指針和char I_average=0采集完成次數(shù)作為程序分支的控制。以上是主要變量的定義類型和作用,詳細(xì)的變量定義參見
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1