




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、北京工業大學“STC”杯單片機系統設計大賽直流電子負載設計報告組名:北工大一隊2013年5月24日直流電子負載設計報告目錄摘要31.課題背景42.實驗設計要求42.1基本任務42.2基本要求42.3發揮部分53.總體方案論證與設計53.1硬件部分53.1.1DA轉換模塊53.1.2電壓跟隨模塊63.1.3單片機模塊73.2軟件部分83.2.1界面設計93.2.2橫流模式程序設計93.2.3恒阻模式程序設計94.系統調試94.1模塊調試94.1.1硬件部分調試94.1.2軟件部分調試104.2整體調試104.3測試結果分析105.實驗創新設計105.1界面創新105.2電流范圍擴展115.3電阻
2、范圍擴展115.4保護電路創新116.附錄126.1元器件識別方法和檢測方法126.2相關芯片資料136.3軟件部分程序源代碼146.4參考文獻207.心得體會21摘要本文論述了直流電子負載的設計思路和過程。本電子負載采用 “IAP15F2K61S2” 單片機作為系統的控制芯片,可實現以下功能:電子負載有恒流和恒阻兩種模式,可手動切換。恒流方式時不論輸入電壓如何變化(在一定范圍內),流過該電子負載的電流恒定,且電流值可設定。工作于恒阻模式時,電子負載端電阻保持恒定,且可設定,流入電子負載的電流隨被測直流電源的電壓變化而變化。AD模塊接受電路電壓和電流模擬信號,轉化為數字信號,經液晶模塊同步顯示
3、電壓和電流。包括控制電路(“IAP15F2K61S2”單片機)、主電路、采樣電路、顯示電路、基準電路等;能夠檢測被測電源的電流值、電壓值;各個參數都能直觀的在LCD屏上顯示。【關鍵詞】:電子負載、單片機、恒流、恒阻。1.課題背景在電路中,負載是指用來吸收電源供應器輸出的電能量的裝置,它將電源供應器輸出的電能量吸收并轉化為其他形式的能量儲存或消耗掉。如電爐子將電能轉化為熱能;電燈將電能轉化為光能;蓄電池將電能轉化為化學能;電機將電能轉化為動能。這些都是負載的真實表現形式。負載的種類繁多,但根據其在電路中表現的特性可分為阻性負載、容性負載、感性負載和混合性負載。在實驗室,我們通常采用電阻、電容、電
4、感等或它們的串并聯組合,作為負載模擬真實的負載情況。進行電源設備的性能實驗。電子負載是利用電子元件吸收電能并將其消耗的一 種負載。電子元件一般為功率場效應管(Power MOS)、絕緣柵雙極型晶體管(IGBT)等功率半導體器件。由于采用了功率半導體器件替代電阻等作為電能消耗的載體,使得負載的調節和控制易于實現,能達到很高的調節精度和穩定性。同時通過靈活多樣的調節和控制方法,不僅可以模擬實際的負載情況,還可以模擬一些特殊的負載波形曲線,測試電源設備的動態和瞬態特性。這是電阻等負載形式所無法實現的。2.實驗設計要求2.1基本任務設計并制作一個電子負載,作為測試“直流穩壓電源”或“蓄電池”性能指標的
5、輔助裝置。電子負載應具有恒流和恒阻兩種方式。被檢測直流穩壓電源或蓄電池的輸出電壓施加在電子負載的兩端,簡稱為電子負載的輸入電壓。恒流方式是指輸入電壓在一定的范圍內變化時,流過該電子負載的電流恒定,且該恒流值是可以設定的。恒阻方式是指電子負載相當于電阻,其輸入電壓與流過電子負載的電流成正比(比值就是電阻),且該電阻值可以設定。實現電子負載的電路部分,可以使用單獨的直流電源。2.2設計要求(1)恒流模式:當輸入電壓在3V-24V之間變化時,恒流電流可設置為:200mA-2.00A,步進100mA。(2)恒阻模式:當輸入電壓在3V-24V之間變化時,恒定電阻可設置為:6- 60(3)具有良好的人機接
6、口,完成參數設置和電壓、電流和電阻等參數的顯示。3.總體方案論證與設計電子負載用于測試直流穩壓電源、蓄電池等電源的性能。設計和制作一臺電子負載,有恒流和和恒阻兩種模式,可手動切換。恒流方式時不論輸入電壓如何變化(在一定范圍內),流過該電子負載的電流恒定,且電流值可設定。工作于恒阻模式時,電子負載端電壓保持恒定,且可設定,流入電子負載的電流隨被測直流電源的電壓變化而變化。3.1硬件部分實驗電路分為三個模塊:DA轉換模塊、電壓跟隨模塊和單片機控制模塊。系統整體框圖為:各模塊設計方案如下:3.1.1DA轉換模塊根據電路需要,綜合考慮價格,轉換速度與精度,使用方便程度等因數,我們選擇了DAC0832作
7、為核心的DA轉換芯片。DAC0832為8輸入并行DA轉換芯片,使用簡單。我們采取但緩沖工作模式,電路接線圖如圖1所示:圖 Error! Main Document Only.DAC0832的八位輸入端口接單片機P4口,運放我們采用了雙運放LM358,經測試,該電路DA轉換的精度和速度均滿足要求。3.1.2電壓跟隨模塊電壓跟隨模塊直接控制取樣電阻的電壓大小,從而控制其電流,來實現恒流的目的。設計中,該模塊充分運用了運放的“虛短”和“虛斷”,通過控制運放的正輸入端來控制取樣電阻上的電壓,實驗電路如圖2所示。由于實際中發現MOS管的功率較大,于是給場效應三極管加裝了散熱裝置。圖 Error! Mai
8、n Document Only.這個圖是一個最常用的恒流電路,這樣的電路更容易獲得穩定及精確的電流值,R3 為取樣電阻,VREF是給定信號,電路工作原理是:當給定一個信號時VREF,如果R3上的電壓小于VREF,也就是OP07的-IN小于+IN,OP07加輸出大,使MOS加大導通使 R3 的電流加大。如果R3上的電壓大于VREF時,-IN大于+IN,OP07 減小輸出,也就降R3上的電流,這樣電路最終維持在恒定的給值上,也就實現了恒流工作。如給定VREF為10mV,R3為0.01歐時電路恒流為1A,改變VREF可改變恒流值,VREF可用電位調節輸入或用DAC芯片由”IAP15F2K61S2”單
9、片機控制輸入,采用電位器可手動調節輸出電流。如采用DAC輸入可實現數控恒流電子負載。恒阻功能,在有些數控電子負載中并不設計專用電路,而是在恒流電路的基礎上通過”IAP15F2K61S2”單片機檢測到的輸入電壓來計算電流,達到恒阻功能的目的,比如要恒定電阻為 10 歐時,”IAP15F2K61S2”單片機檢測到輸入電壓為20V,那么會控制輸出電流為2A,但這種方法響應較慢,只適用于輸入變化較慢,且要求不高的場合。專業的恒阻電子負載都是由硬件實現的。恒阻電路如下圖所示:在定電阻工作模式時,電子負載所流入的負載電流依據所設定負載電阻和輸入電壓的大小而定,此時負載電流與輸入電壓呈正比例,比值即是所設定
10、的負載電阻,即負載電阻保持設定值不變。恒阻功能,在有些數控電子負載中并不設計專用電路,而是在恒流電路的基礎上通過”IAP15F2K61S2”單片機 檢測到的輸入電壓來計算電流,達到恒阻功能的目的,比如要恒定電阻為10歐時,”IAP15F2K61S2”單片機 檢測到輸入電壓為20V,那么會控制輸出電流為 2A,但這種方法響應較慢,只適用于輸入變化較慢,且要求不高的場合。專業的恒阻電子負載都是由硬件實現的。3.1.3單片機模塊單片機模塊采用”IAP15F2K61S2”作為核心控制模塊,通過盤片及開發版上的LCD屏來實現相關內容的顯示,通過按鍵和滑輪實現對電路的輸入和控制。單片機的編程部分將在軟件部
11、分說明。考慮到單片機不能直接采集大電壓,應在采集電路前加保護電路。保護電路如圖所示:3.2軟件部分軟件部分分為三個部分,即界面設計部分、橫流模式程序設計和恒阻模式程序設計。如見部分程序流程圖如下:各部分詳細設計說明如下:3.2.1界面設計界面設計仿照官方例程,采用菜單式設計。這樣設計比較方便操作者操作,也方便調用程序的各個模塊,順利實現相關功能。主菜單下根據功能設置“橫流模式”和“恒阻模式”兩個子菜單,橫流模式下又能通過滑輪實現對電流值的設置和輸出,恒阻模式先能通過滑輪實現對電阻值的設置和相關電流的輸出。該部分的源代碼在附錄部分給出。3.2.2橫流模式程序設計橫流模式能夠實現對電流的設置與輸出
12、。該部分采用滑輪與按鍵配合的方式來設置電流,操作方便。通過用戶輸入的電流值,該模塊能將其轉化為取樣電阻的相應電壓值,然后轉換為相應的2進制數到DA模塊,實現對橫流的控制。該部分的源代碼在附錄部分給出。3.2.3恒阻模式程序設計橫阻模式能夠實現對電阻的設置與相關電流輸出。該部分采用滑輪與按鍵配合的方式來設置電阻,操作方便。通過用戶輸入的電阻值,并結合采樣電路采得的外加電壓值,該模塊能計算出相應的電流。并最終轉化為相應的2進制數到DA模塊,實現對橫阻的控制。該部分的源代碼在附錄部分給出。4.系統調試系統調試分為模塊調試與整體調試兩個階段:在完成每一部分電路時,都要進行模塊調試,來確保各模塊都能正常
13、工作。在全部電路焊接完成時,要進行整體調試,來確保電路整體能實現相應的功能。系統調試順序詳細介紹如下:4.1模塊調試4.1.1硬件部分調試硬件部分調試分為兩部分,一個是電壓跟隨模塊調試,另一個是DA轉換部分調試。電壓跟隨模塊調試主要調試取樣電阻上的電壓值是否隨運放的的輸入管腳的電壓變化而變化及變化的靈敏度。調試時要對該模塊進行正常供電,在運放OP07的正輸入管腳加上一個可變電壓,測試取樣電阻上的電壓是否能和其保持一致。DA轉換模塊調試主要是調試該模塊能否把給定的數字信號轉換為相應的模擬信號,以及轉換的時間及精度。調試時要對該模塊進行正常供電,在DA0832的八位數字信號輸入端加上輸入信號,然后
14、在模擬信號輸出端測試其輸出信號,觀察其是否準確。4.1.2軟件部分調試 軟件部分調試是在Code Composer Studio v5環境下進行的,主要測試程序的語法錯誤與邏輯錯誤,可分函數、分文件逐個進行。軟件部分調試的另一個作用是確定程序中運用的重要基礎數值,該部分的測試可以采用雙向逼近法一個一個的確定。4.2整體調試整體調試是測試整個電路能否實現預定功能,測試時根據實驗要求逐個測試即可。首先對系統進行供電,單片機裝入編號的程序。橫流模式下,通過單片機設置電流值,改變外接電源的電壓值,觀察流過取樣電阻的電流是否改變。反復修改電流值,觀察電路能否實現恒流功能。恒阻模式下,通過單片機設置電阻值
15、,改變外接電源的電壓值,觀察流過取樣電阻的電流是否改變。反復修改電阻值,觀察電路能否實現恒阻功能。4.3測試結果分析恒流:不論輸入電壓如何變化,流過該電子負載的電流值恒定且可設定。恒阻:不論輸入電壓如何變化,流過該電子負載的電壓與電流的比例恒定。受實驗室環境與器材限制,稍有誤差。I/A恒阻特性曲線恒流特性曲線0預置負載4預置負載3I/AU/V0U/V0預置負載5電壓05.實驗創新設計5.1界面創新本程序在界面設計部分有諸多創新之處,程序剛剛加載時,LCD屏會出現“TI杯電子設計”字樣,來表示本次競賽的贊助方。歡迎界面過后,主程序的界面采取菜單模式,恒流模式和恒阻模式各自有自己的子菜單。在設置電
16、流和電阻的方式上,本程序創新的采取滑輪與按鍵相結合的方法,是操作更加簡潔、方便。程序在執行恒流或恒阻輸出的方式時,都能夠顯示當前的電流或電阻值,方便用戶測試。程序的每一級菜單均有退出或返回上一級按鈕,使用戶的操作體驗更加優化。5.2電流范圍擴展本實驗的基本要求的電流輸出范圍為0.2到2安培,步進0.1安培。但是由于我們采用了更加合理的電路結構和大功率的散熱片,使得本實驗的電流輸出范圍為0.2到3安培,步進0.1安培。大大提高了直流電子負載的性能,擴大了測試電壓的范圍。5.3電阻范圍擴展本實驗的基本要求的電阻范圍為6到60歐姆,步進1歐姆。但是由于我們采用了更加合理的電路結構和大功率的散熱片,使
17、得本實驗的電阻范圍為6到80歐姆,步進1歐姆。大大提高了直流電子負載的性能,擴大了測試電壓的范圍。5.4保護電路創新為了防止單片機被損壞,我們對輸出單片機的信號都加上了保護電路。通過創新設計,保護電路既能使單片機準確的測量相關電路參數,又不至于因為電流或電壓過大而導致單片機損壞。保護電路由分壓和限壓兩部分構成,電路如圖所示:6.附錄6.1元器件識別方法和檢測方法芯片的識別方法和檢測方法 相對于其他元件,芯片的識別和檢測相對簡單,芯片表面有明顯的型號標示,可以用來識別信號。而芯片的檢測實驗室也有專門的儀器,可以直接借助專用的儀器來檢測芯片的好壞。電阻的識別方法與檢測方法電阻的標示一般都是色環標示
18、法。色環標示主要應用圓柱型的電阻器上,如:碳膜電阻、金屬膜電阻、金屬氧化膜電阻、保險絲電阻、繞線電阻。主要分兩部分。第一部分的每一條色環都是等距,自成一組,容易和第二部分的色環區分。四個色環電阻的識別:第一、二環分別代表兩位有效數的阻值;第三環代表倍率;第四環代表誤差。 五個色環電阻的識別:第一、二、三環分別代表三位有效數的阻值;第四環代表倍率;第五環代表誤差。 如果第五條色環為黑色,一般用來表示為繞線電阻器,第五條色環如為白色,一般用來表示為保險絲電阻器。如果電阻體只有中間一條黑色的色環,則代表此電阻為零歐姆電阻。色環顏色和相應的數值對照表如下。銀金黑棕紅橙黃綠藍紫灰白無有效數字012345
19、6789數量級10-210-110010 1102103104105106107108109 電阻的檢測相對簡單,直接用萬用表測電阻的阻值并與電阻上的色環標示值比較就可以檢驗電阻的好壞。電容的識別方法與檢測方法電容器的標注規則為:當電容器的容量大于100pF而又小于1mF時,一般不注單位,沒有小數點的,其單位是pF時,有小數點的其單位是mF。如4700就是4700pF,0.22就是0.22mF。當電容量大于是10000pF時,可用mF為單位,當電容小于10000pF時用pF為單位。據此根據電容器表面的標注可以識別電容器的大小。電容器的檢測方法如下:1.用萬用電表的歐姆檔(R×10k或
20、R×1k檔,視電容器的容量而定),當兩表筆分別接觸容器的兩根引線時,表針首先朝順時針方向(向右)擺動,然后又慢慢地向左回歸至位置的附近,此過程為電容器的充電過程。2.當表針靜止時所指的電阻值就是該電容器的漏電電阻(R)。在測量中如表針距無窮大較遠,表明電容器漏電嚴重,不能使用。有的電容器在測漏電電阻時,表針退回到無窮大位置時,又順時針擺動,這表明電容器漏電更嚴重。一般要求漏電電阻R500k,否則不能使用。三極管的識別方法與檢測方法對于三極管的識別,三極管表面有明顯的型號標示,可以根據標示的型號判斷三極管的類型。三極管的檢測也可以運用萬用表的三極管測量功能來進行檢測。6.2相關芯片資料
21、DAC0832管腳圖OP07管腳圖LM358管腳圖IRF540管腳圖6.3軟件部分程序源代碼21#include <stdint.h>#include "HAL_PMM.h"#include "HAL_UCS.h"#include "HAL_Board.h"#include "HAL_Buttons.h"#include "HAL_Cma3000.h"#include "HAL_Dogs102x6.h"#include "HAL_Menu.h"
22、#include "HAL_Wheel.h"#include "LaunchpadDef.h"#include "Clock.h"#include "LPM.h"#include "MassStorage.h"#include "Mouse.h"#include "PMM.h"#include "Settings.h"#include "PowerTest.h"#include "DemoApps.h&qu
23、ot;#include "SdCard.h"#include "MenuGames.h"uint16_t timeoutCounter;uint16_t convert;static const uint8_t tiBug = 0x42, / Image width in pixels 0x08, / Image height in rows (1 row = 8 pixels) 0X00,0X00,0X00,0X00,0X00,0X00, ;static const char *const mainMenu = "1. hengliu&quo
24、t;, "2. hengzu "#define WHEEL_PORT_DIR P8DIR#define WHEEL_PORT_OUT P8OUT#define WHEEL_ENABLE BIT0#define ADC_PORT_SEL P6SEL#define ADC_INPUT_A5 BIT5void hengliu(void);void hengzu(void);void hengzuout(void);void hengliuout(void);void INIT_OUT_PUT(void);void DATA_OUT_PUT(uint8_t input_data);
25、extern void Wheel_init(void);extern uint8_t Wheel_getPosition(void);extern uint16_t Wheel_getValue(void);extern uint16_t PO_getValue(void);extern void Wheel_disable(void);extern void Wheel_enable(void);int number;int number1;char string10;uint8_t data;uint16_t positionData;uint16_t positionDataOld;u
26、int16_t po,poOld;#define SPI_SEL P4SEL#define SPI_DIR P4DIRvoid INIT_OUT_PUT(void)P4SEL = 0;P4DIR = 0XFF;void DATA_OUT_PUT(uint8_t input_data)P4OUT = input_data;void hengzu(void)Dogs102x6_init(); while (1) buttonsPressed=0; Dogs102x6_clearScreen(); if (buttonsPressed & BUTTON_S2) break; else num
27、ber=Wheel_getValue(); number1=number/54+6; if(number1>80) number1=80; itoa(number1,string,10); Dogs102x6_stringDraw(3, 30, string, DOGS102x6_DRAW_NORMAL); Dogs102x6_stringDraw(2, 0,"Are you sure?", DOGS102x6_DRAW_NORMAL); if(buttonsPressed & BUTTON_S1) hengzuout(); INIT_OUT_PUT();DA
28、TA_OUT_PUT(0X00); Dogs102x6_init(); void hengzuout(void)uint16_t getval;uint16_t in; Dogs102x6_init();while(1)Dogs102x6_clearScreen(); if (buttonsPressed & BUTTON_S2) break; else Dogs102x6_stringDraw(3, 30, string, DOGS102x6_DRAW_NORMAL); Dogs102x6_stringDraw(2, 0,"OUT", DOGS102x6_DRAW
29、_NORMAL); getval= PO_getValue(); getval=3 * getval ; in=6 * getval / ( 41 * number1 ); if(number1 <= 15) in=in+5; else if(15 < number1 <=20) in=in+4; if(20 < number1 <30) in=in+2; else if(30 <= number1 <40 ) in=in; if(40 <= number1 < 50 ) in=in-3; else if(50 <= number1
30、<55) in=in-4; if(55 <= number1 < 60 ) in=in-2; else if(60 <= number1 <=70 ) in=in-1; if(number1>70) in=in-2; INIT_OUT_PUT(); DATA_OUT_PUT(in); void hengliu(void)Dogs102x6_init(); while (1) buttonsPressed=0; Dogs102x6_clearScreen(); if (buttonsPressed & BUTTON_S2) break; else nu
31、mber=Wheel_getValue(); number1=number/140*100+200; if(number1>3000) number1=3000; itoa(number1,string,10); Dogs102x6_stringDraw(3, 30, string, DOGS102x6_DRAW_NORMAL); Dogs102x6_stringDraw(2, 0,"Are you sure?", DOGS102x6_DRAW_NORMAL); if(buttonsPressed & BUTTON_S1) hengliuout(); INIT
32、_OUT_PUT(); DATA_OUT_PUT(0X00); Dogs102x6_init(); void hengliuout(void)Dogs102x6_init();while(1)Dogs102x6_clearScreen(); if (buttonsPressed & BUTTON_S2) break; else Dogs102x6_stringDraw(3, 30, string, DOGS102x6_DRAW_NORMAL); Dogs102x6_stringDraw(2, 0,"OUT", DOGS102x6_DRAW_NORMAL); INIT
33、_OUT_PUT(); switch(number1) case 200: data=0X0A;break; case 300: data=0X10;break; case 400: data=0X16;break; case 500: data=0X1C;break; case 600: data=0X20;break; case 700: data=0X26;break; case 800: data=0X2C;break; case 900: data=0X32;break; case 1000: data=0X37;break; case 1100: data=0X3C;break;
34、case 1200: data=0X42;break; case 1300: data=0X47;break; case 1400: data=0X4C;break; case 1500: data=0X52;break; case 1600: data=0X58;break; case 1700: data=0X5C;break; case 1800: data=0X62;break; case 1900: data=0X68;break; case 2000: data=0X6C;break; case 2100: data=0X73;break; case 2200: data=0X79
35、;break; case 2300: data=0X7D;break; case 2400: data=0X83;break; case 2500: data=0X88;break; case 2600: data=0X8D;break; case 2700: data=0X92;break; case 2800: data=0X98;break; case 2900: data=0X9D;break; case 3000: data=0XA1;break; default : break; DATA_OUT_PUT(data); void main(void) uint8_t contras
36、t = *(unsigned char *)contrastSetpointAddress); uint8_t brightness = *(unsigned char *)brightnessSetpointAddress); Cma3000_setAccel_offset(*(unsigned char *)accelXcalibrationAddress), *(unsigned char *)accelYcalibrationAddress), *(unsigned char *)accelZcalibrationAddress); WDTCTL = WDTPW + WDTHOLD;
37、Board_init(); SetVCore(3); LFXT_Start(XT1DRIVE_0); Init_FLL_Settle(25000, 762); SFRIFG1 = 0; SFRIE1 |= OFIE; _enable_interrupt(); SetupRTC(); Dogs102x6_init(); Dogs102x6_backlightInit(); if (contrast = 0xFF) contrast = 11; if (brightness = 0xFF) brightness = 11; Dogs102x6_setBacklight(brightness); D
38、ogs102x6_setContrast(contrast); Dogs102x6_clearScreen(); Wheel_init(); Buttons_init(BUTTON_ALL); Buttons_interruptEnable(BUTTON_ALL); buttonsPressed = 0; Dogs102x6_imageDraw(tiBug, 0, 16); while (!buttonsPressed) for (timeoutCounter = 0; timeoutCounter < 0xFFFF; timeoutCounter+) if (buttonsPresse
39、d) break; _delay_cycles(91000000); break; buttonsPressed = 0; Dogs102x6_clearScreen(); while (1) Dogs102x6_stringDraw(7, 0, "*S1=Enter S2=Esc*", DOGS102x6_DRAW_NORMAL); switch (Menu_active(char *)mainMenu, 2) case 1: hengliu(); break; case 2: hengzu(); break; default: break; void Wheel_ini
40、t(void) WHEEL_PORT_DIR |= WHEEL_ENABLE; WHEEL_PORT_OUT |= WHEEL_ENABLE; P6SEL = 0X0F; P6SEL |=BIT6; ADC12CTL0 = ADC12ON+ADC12MSC+ADC12SHT0_15; / Turn on ADC12CTL1 = ADC12SHP+ADC12CONSEQ_3; ADC12MCTL0 = ADC12INCH_5; ADC12MCTL1 = ADC12INCH_6+ADC12EOS; ADC12CTL0 |= ADC12ENC; ADC12IE = 0x03;uint8_t Whee
41、l_getPosition(void) uint8_t position = 0; Wheel_getValue(); if (positionData > 0x0806) position = 7 - (positionData - 0x0806) / 260; /scale the data for 8 different positions else position = positionData / 260; return position;uint16_t Wheel_getValue(void) ADC12IE = 0x03; ADC12CTL0 |= ADC12SC; _b
42、is_SR_register(LPM0_bits + GIE); ADC12IE = 0x00; if (positionData > positionDataOld) if (positionData - positionDataOld) > 10) positionDataOld = positionData; /use new data if else positionData = positionDataOld; else if (positionDataOld - positionData) > 10) positionDataOld = positionData;
43、 else positionData = positionDataOld; return positionData;uint16_t PO_getValue(void) ADC12IE = 0x03; ADC12CTL0 |= ADC12SC; _delay_cycles(2000); _bis_SR_register(LPM0_bits + GIE); ADC12IE = 0x00; if (po > poOld) if (po - poOld) > 10) poOld = po; else po = poOld; else if (poOld - po) > 10) po
44、Old = po; else po = poOld; return po;void Wheel_disable(void) WHEEL_PORT_OUT &= WHEEL_ENABLE; ADC12CTL0 &= ADC12ENC; ADC12CTL0 &= ADC12ON; void Wheel_enable(void) WHEEL_PORT_OUT |= WHEEL_ENABLE; ADC12CTL0 |= ADC12ON; ADC12CTL0 |= ADC12ENC; #pragma vector = ADC12_VECTOR_interrupt void ADC12_ISR(void) switch (_even_in_range(ADC12IV, ADC12IV_ADC12IFG15) case ADC12IV_NONE: break; case ADC12IV_ADC12OVIFG: break; case ADC12IV_ADC12TOVIFG:
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 北京市順義區第一中學2024?2025學年高一下學期3月月考 數學試題(含解析)
- 2025年北京中考英語應用文常用句型歸納總結(復習必背)
- 江西傳媒職業學院《建筑結構課程設計》2023-2024學年第二學期期末試卷
- 四川航天職業技術學院《給水排水工程結構》2023-2024學年第二學期期末試卷
- 衢州職業技術學院《口腔材料》2023-2024學年第二學期期末試卷
- 內蒙古包頭一中2025屆高三復習質量監測(五)生物試題文試卷含解析
- 遼寧省葫蘆島市2025年初三下學期期末考試語文試題仿真(B)卷含解析
- 四川外國語大學《醫學分子生物學實驗技術》2023-2024學年第二學期期末試卷
- 山西省朔州市2025屆初三5月月考試題數學試題含解析
- 臺州科技職業學院《物流規劃仿真》2023-2024學年第二學期期末試卷
- 浴池出兌合同協議
- 2025年遼寧能源控股集團所屬鐵法能源公司招聘筆試參考題庫含答案解析
- 跨境物流部門管理制度
- 防空掩體知識培訓課件
- 工業和信息化部產業發展促進中心招聘筆試真題2024
- 2025年醫保知識競賽題庫及答案:新政策調整下的醫保選擇
- 呼吸科知識解剖課件
- 幼兒園教育評估指南解讀
- 模擬雨的形成課件
- 多維數據循環嵌套分析-全面剖析
- 《旅游策劃實務》課件-《秦嶺北望 千古》長安西安五天四晚親子家庭定制游方案
評論
0/150
提交評論