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

正文內容

基于msp430單片機的壁掛式空調風門運動控制系統(tǒng)設計(編輯修改稿)

2025-02-14 16:16 本頁面
 

【文章內容簡介】 總體框架圖圖41 系統(tǒng)設計框圖本系統(tǒng)的MSP430G2553單片機由USB供電,步進電機驅動電路由5V獨立電壓源供電。,若按鍵被按下,再經過步進電機驅動電路功率放大后,通過這兩個按鍵分別來實現(xiàn)電機的正反轉控制,調速系統(tǒng)由軟件方式完成,即用中斷定時器控制轉速。此系統(tǒng)將應用于壁掛式空調風門的控制,具有很強的現(xiàn)實意義,壁掛式風門如圖42。 圖42 壁掛式風門鍵盤控制模塊包括方向控制鍵、啟停鍵。實現(xiàn)對步進電機的方向和啟動停止控制。 按鍵功能的簡單介紹鍵盤在單片機的應用中能實現(xiàn)向單片機輸入數(shù)據、傳送命令等的功能,是人工干預單片機的主要手段之一。鍵盤的實質是一組按鍵開關的集合。鍵盤所用的開關為機械彈性開關,結合了機械觸點的合、斷作用。一個電壓信號在機械觸點的斷開,閉合過程中,都會產生抖動,一般為5—10ms;兩次抖動之中為穩(wěn)定的閉合狀態(tài),時間由按鍵動作所決定;第一次抖動前和第二次抖動后為開斷狀態(tài)。按鍵閉合與否,反映在輸出電壓上就是呈現(xiàn)出高電平或者低電平。通過對輸出電平的高低狀態(tài)的檢測,便可以確認按鍵是否按下。高電平表示按鍵斷開,低電平表示按鍵閉合狀態(tài)。并且,為了能直觀的表示按鍵閉合與否,還可以為每個按鍵相應增加了發(fā)光二極管,按鍵斷開時,發(fā)光二極管滅,當有鍵閉合時,相應的發(fā)光二極管變亮。為了確保單片機對一次按鍵動作只確認一次按鍵,必須消除抖動的影響。消除按鍵抖動通常采用硬件、軟件兩種方法。由于硬件消抖電路設計復雜,本設計只做簡單敘述;軟件消抖適合按鍵較多的情況,方便簡單。其原理是在第一次檢測到有鍵按下時,執(zhí)行一段延時10ms的子程序后在確認該鍵電平是否仍保持閉合狀態(tài)電平,如果保持閉合狀態(tài)電平則確認為真正有鍵按下,從而消除了抖動的影響。按鍵在被按下和松手被釋放時產生抖動的示意圖如圖43所示。圖43 按鍵在被按下和松手被釋放時產生抖動按鍵的抖動將會引起一次按鍵被誤讀多次,所以為了避免這種不合理情況的發(fā)生,我們在做鍵盤輸入時必須要進行消除抖動,消抖的方法分為兩種:硬件消抖,軟件消抖。1硬件消抖:利用硬件電路消除抖動,是將按鍵產生的抖動變成理想的高低電平,使之不會造成單片機的誤讀。其中利用RS觸發(fā)器就是一種較為理想的的硬件消抖電路,硬件消抖具有速度快、效果好等優(yōu)點,缺點是會增加硬件成本。硬件消抖電路如圖44所示。圖44 硬件消抖電路2軟件消抖:軟件消抖是通過軟件延時的方法,將按鍵產生的邊沿抖動過濾掉,具體做法是:測出一次低電平后執(zhí)行一個延時程序(大約1020ms),前沿抖動消失后再測該端口的電平狀態(tài),如果仍然是低電平,則認為是有按鍵按下,當按鍵松開后也要執(zhí)行一段延時程序,避開后沿抖動后,再檢測按鍵是否真的已經釋放。通過以上分析便知,軟件消抖無論在操作上或者成本上都優(yōu)于硬件消抖,所以我們采用軟件消抖。 ULN2003芯片的基本介紹本系統(tǒng)的設計目的是為了高效控制步進電機的轉動,因此需要將單片機發(fā)出的脈沖轉換為步進角度,才能控制步進電機的轉動,我們這里采用ULN2003為步進電機提供脈沖信號。ULN2003的七個NPN達林頓連接晶體管是低邏輯電平數(shù)字電路(如TTL,CMOS或PMOS/NMOS)和大電流高電壓要求的燈、繼電器、打印機和其他類似負載間的接口的理想器件。廣泛用于計算機,工業(yè)和消費類產品中。所有器件有集電極開路輸出和用于瞬變抑制的續(xù)流箝位二極管。ULN2003的設計和標準TTL系列兼容。 ULN2003芯片的引腳介紹:引腳1:CPU脈沖輸入端,端口對應一個信號輸出端。 引腳2:CPU脈沖輸入端。引腳3:CPU脈沖輸入端。引腳4:CPU脈沖輸入端。引腳5:CPU脈沖輸入端。引腳6:CPU脈沖輸入端。引腳7:CPU脈沖輸入端。引腳8:接地。 引腳9:該腳是內部7個續(xù)流二極管負極的公共端,各二極管的正極分別接各達林頓管的集電極。用于感性負載時,該腳接負載電源正極,實現(xiàn)續(xù)流作用。如果該腳接地,實際上就是達林頓管的集電極對地接通。 引腳10:脈沖信號輸出端,對應7腳信號輸入端。 引腳11:脈沖信號輸出端,對應6腳信號輸入端。 引腳12:脈沖信號輸出端,對應5腳信號輸入端。 引腳13:脈沖信號輸出端,對應4腳信號輸入端。 引腳14:脈沖信號輸出端,對應3腳信號輸入端。 引腳15:脈沖信號輸出端,對應2腳信號輸入端。 引腳16:脈沖信號輸出端,對應1腳信號輸入端。它的管腳連接圖與芯片內部結構圖如圖45與46所示: 圖45 ULN2003管腳連接圖圖46 ULN2003芯片內部結構 ULN2003芯片的特點和功能ULN2003芯片是高耐壓,大電流達林頓陣列,它由7組達林頓晶體管陣列和相應的電阻網絡和鉗位二極管網絡構成,它具有同時驅動7組負載的能力,是單片雙極型大功率高速集成電路。功率電子電路大多數(shù)要求具有大電流輸出能力,以便用于驅動各種類型的負載。功率驅動電路是功率電子設備輸出電路的一個必要組成部分。ULN2003芯片高壓大電流達林頓晶體管陣列產品是可控大功率器件。ULN2003 的基極電阻,在5V 的工作電壓下它能與TTL 和CMOS 電路直接相連,可以直接處理原先需要標準邏輯緩沖器來處理的數(shù)據。ULN2003 工作電壓高,工作電流大,灌電流可達500mA,并且能夠在關態(tài)時承受50V 的電壓,輸出還可以在高負載電流并行運行。ULN2003 采用DIP—16 或SOP—16 塑料封裝。ULN2003是大電流驅動陣列,多用于單片機、智能儀表、PLC、數(shù)字量輸出等控制電路中。可直接驅動繼電器等負載。輸入5VTTL電平,輸出可達500mA/50V。ULN2003是高耐壓、大電流達林頓陳列,由七個硅NPN達林頓管組成。 該電路的特點如下: ,在5V的工作電壓下它能與TTL和CMOS電路 直接相連,可以直接處理原先需要標準邏輯緩沖器來處理的數(shù)據。ULN2003 是高壓大電流達林頓晶體管陣列系列產品,具有電流增益高、工作電壓高、溫度范圍寬、帶負載能力強等特點,適應于各類要求高速大功率驅動的系統(tǒng) ULN2003步進電機的驅動電路與步進電機的結合首先介紹ULN2003步進電機驅動電路板模塊的各個功能,如圖47所示圖47 ULN2003步進電機驅動電路板模塊圖48 步進電機驅動原理圖從原理圖48中我們可以很清楚的看出MSP430G2553單片機的I/O口輸出的有序的脈沖序列從ULN2003芯片的輸入端輸入,輸入端口分別為IN1,IN2,IN3,IN4。并從其13,14,15,16引腳輸出又與步進電機的接口連接,若連接成功則電機運行指示燈將會發(fā)光。此外,ULN2003芯片還要外接5V電源,獨立供電。所有模塊組合后,得到系統(tǒng)實物圖49。圖49 系統(tǒng)實物圖 第五章 軟件設計 軟件設計平臺CCS(Code Composer Studio)是TI公司研發(fā)的一款具有環(huán)境配置、源文件編輯、程序調試、跟蹤和分析等功能的集成開發(fā)環(huán)境,能夠幫助用戶在一個軟件環(huán)境下完成編輯、編譯、鏈接、調試和數(shù)據分析等工作。,功能更強大、性能更穩(wěn)定、可用性更高,是MSP430軟件開發(fā)的理想工具。Code Composer Studio(CCS 是用于 TI DSP、微處理器和應用處理器的集成開發(fā)環(huán)境)。 Code Composer Studio 包含一整套用于開發(fā)和調試嵌入式應用的工 具。 它包含適用于每個 TI 器件系列的編譯器、源碼編輯器、項目構建環(huán)境、調試器、描述器、仿真器以及多種其它功能。 Code Composer Studio IDE 提供了 單個用戶界面,可幫助您完成應用開發(fā)流程的每個步驟。 借助于精密的高效工具,用戶能夠利用熟悉的工具和界面快速上手并將功能添加至他們的應用。 Code Composer Studio IDE 的交互式描述器可以快速測量代碼性能,確保在調試和開發(fā)階段高效地使用 DSP 目標資源。 該描述器使開發(fā)人員能夠在他們 的應用中輕松描述指令周期或其它事件(例如高速緩沖存儲器未命中數(shù)/命中數(shù)、管道拖延和分支)的所有 C/C++ 函數(shù)。 描述范圍可用于在優(yōu)化期間專注于 代碼的高使用率區(qū)域,幫助開發(fā)人員生成經過精細調節(jié)的代碼。 描述可用于任何組合形式的匯編、C++ 或 C 代碼。 為提高生產力,所有描述設備在整個開發(fā)周期內均可用。CCSV5軟件開發(fā)環(huán)境界面如圖51所示。圖51 CCSV5軟件開發(fā)環(huán)境界面系統(tǒng)初始化:include unsigned char MotorStep=0。 //步進馬達步序,將在Switch包含的語句中得到體現(xiàn)。unsigned int MotorDelay,TIM,CT。//初始變量的賦值。unsigned char key1=1,key2=1。// 初始變量的賦值。define speed 4 // 調整速度 數(shù)值不要設的太低 低了會引起震動。void SetMotorzheng()。//子函數(shù)設定電機正傳void SetMotorfan()。//子函數(shù)設定電機反轉進入主函數(shù):void main(void){WDTCTL = WDTPW + WDTHOLD。// Stop WDT(關閉看門狗)。P1DIR |= 0x17。//,其他P1口設為輸出狀態(tài)。P1REN |= 0x08。 //,即啟動上拉電阻,滿足高電平要求。P2DIR |= 0x00。// 將P2口設為輸入。P2REN |= 0x01。 //通過寄存器,啟動上拉電阻功能。 CCTL0 = CCIE。// CCR0 interrupt enabled(讓中斷使能)。CCR0 = 5000。TACTL = TASSEL_2 + MC_1。// SMCLK, contmode。_BIS_SR(GIE)。// Enter LPM0 w/ interrupt。MotorStep=0。確認一下MotorStep確實給低電平。重復掃描按鍵:while(1)//重復掃描是否有按鍵被按下{key1=P1INamp。0x08。//將P1口輸入的值與0X08相與,,即相與之后key1為低電平。key2=P2INamp。0x01。key2同上。if(key1==0)//若key1為低電平。{SetMotorzheng()。//就調用SetMotorzheng ()子函數(shù)。}else if(key2==0) 若key2為低電平。{ SetMotorfan()。//就調用SetMotorfan()子函數(shù)。}}}調用子函數(shù),完成電機轉動功能:void SetMotorzhen(){ switch(MotorStep){ case 0://在此條件下,將A相設為低電平,其他B,C,D為高電平。 if(TIM)//利用Timer A0 interrupt service routine中斷程序,可以調整單片機I/O口是否與驅動器的IN導通,即完成調速的功能。 { P1OUT = 0x1A。 //將A相設為低電平,其他B,C,D為高電平。 MotorStep = 1。//下次調用子函數(shù)時,進入Case 1。 TIM=0。//使TIM為0,在中斷程序中繼續(xù)判斷,下一次變?yōu)?時執(zhí)行IF語句。 }break。跳出Switch語句。case 1:// AB if(TIM) { P1OUT = 0x14。 MotorStep = 2。 TIM=0。 } break。case 2://B if(TIM) { P1OUT = 0x15。 MotorStep = 3。 TIM=0。 } break。case 3: //BC if(TIM) { P1OUT = 0x11。 MotorStep = 4。 TIM=0。 } break。 case 4: //C if(TIM) { P1OUT = 0x13。 MotorStep = 5。 TIM=0。 } break。 case 5: //CD if(TIM) { P1OUT = 0x03。 MotorStep = 6。 TIM=0。 } break。 case 6: //D if(TIM) { P1OUT = 0x07。 MotorStep = 7。 TIM=0。 } break。 case 7://DA if(TIM) { P1OUT = 0x06。 MotorStep = 0。 TIM=0。 } break。 }}void SetMotorfan()//反轉與正傳原理相同,只是顛倒了通電順序。{ switch(MotorStep) { case 7: if(TIM){
點擊復制文檔內容
教學課件相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1