智能電扇-課程設計報告_第1頁
智能電扇-課程設計報告_第2頁
智能電扇-課程設計報告_第3頁
智能電扇-課程設計報告_第4頁
智能電扇-課程設計報告_第5頁
已閱讀5頁,還剩14頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

項目編號:2015-2016學年第一學期微機原理(單片機)課程設計總結報告項目名稱: 智能電扇 班級: 姓名: 學號:微機原理(單片機)課程設計任務書項目名稱:智能電扇內容與要求: 上位機:完成界面設計與通訊程序(1)能夠顯示并設定當前電扇運行狀態(tài)(高速、中速、低速、停止)(2)能夠定時控制電扇運行(3)能夠將電扇運行狀態(tài)的改變保存至文檔(4)可以對串口進行設置下位機:完成電路設計與控制程序(1)完成電扇的控制設計(2)通過串口與上位機通訊(3)可通過按鍵設置電扇的運行狀態(tài),并顯示在LED數(shù)碼管上(4)當定時控制時可顯示倒計時項目組任務分擔評價表姓名分擔任務組內評價張雷LED顯示模塊設計與編程,下位機串口通訊程序,單片機設計與編程,電路的搭建與焊接5劉思源上位機轉速顯示及設定程序、串口通訊程序、文件保存程序、倒計時顯示程序5課程設計報告評分表內容總體方案硬件設計軟件設計結果分析明細清單問題分析心得體會參考文獻程序代碼格式規(guī)范總分張雷得分劉思源得分 微機原理(單片機)課程設計報告目錄一、總體方案1二、硬件設計1三、軟件設計2四、結果分析或項目所實現(xiàn)的功能、指標5五、明細清單7六、設計調試中遇到的疑難問題及解決方法7七、心得體會與建議8參考文獻9附錄A.下位機程序9附錄B.上位機程序圖1616微機原理(單片機)課程設計報告一、總體方案智能電扇總體框圖如圖1-1所示。單 片 機LED顯示模塊ULN2003USB電扇按鍵調速及定時模塊上位機圖1-1 智能電扇總體功能模塊示意圖圖中,單片機通過驅動芯片ULN2003控制USB電扇轉動,通過PWM方式調節(jié)輸入USB電扇的電壓來調節(jié)轉速。按鍵模塊共有6個鍵,Key14用于調速和調節(jié)定時時間,Key56用于開始設置定時和確定定時設置。LED模塊可以顯示電扇當前的轉速和定時時間。上位機可以對電扇的轉速和定時進行設置,并能將轉速變化信息存儲到指定的txt文件中。二、硬件設計本項目下位機采用STC89C52RC型號單片機。該芯片具有8k字節(jié)Flash,512字節(jié)RAM, 32 位I/O 口線,看門狗定時器,內置4KB EEPROM,MAX810復位電路,3個16 位定時器/計數(shù)器,4個外部中斷,一個7向量4級中斷結構,全雙工串行口,是一種低功耗、高性能CMOS8位微控制器,符合設計中對經(jīng)濟、環(huán)保指標的要求。電扇驅動芯片采用ULN2003。該芯片是高耐壓、大電流達林頓晶體管陣列,由七個硅NPN 達林頓體管組成。每一對達林頓都串聯(lián)一個2.7K 的基極電阻,在5V 的工作電壓下它能與TTL 和CMOS 電路直接相連,可以直接處理原先需要標準邏輯緩沖器來處理的數(shù)據(jù)。電扇采用網(wǎng)上常用的USB電扇,通過USB轉串口器件轉化為4個接頭(1個電源端、2個數(shù)據(jù)傳送端、1個地端),供電時只需連接電源端和地端,并可通過改變電源端電壓來控制電扇轉速。顯示模塊采用實驗室配備的6位數(shù)碼管LED板,使用時只需把其RXD和TXD端連接到單片機的預設管腳即可,使用方便,成本低廉,顯示效果好。硬件電路連接圖如圖2-1所示圖2-1 硬件電路連接圖LED板1號2號引腳接VCC,3號引腳接單片機P27,4號引腳接單片機P26,5號引腳接地。驅動芯片ULN2003的1號引腳接P20,同時通過一個10K的上拉電阻接到9號引腳,8號引腳接地,9號引腳接VCC和USB接頭的4號引腳,16號引腳接USB接頭的1號引腳,其余引腳懸空。USB電扇只需把USB插頭插到USB接頭上即可。三、軟件設計3.1 設計思路3.1.1 下位機:USB電扇的驅動方式非常簡單,只需改變其VCC端的電壓即可改變轉速。設計中使用PWM方式控制電扇VCC端的電壓,通過Key14調節(jié)其占空比。在默認狀態(tài)下Key1Key4分別對應電扇的停止、低速、中速、高速狀態(tài)。Key5為啟動定時設置按鍵。當按下Key5后,系統(tǒng)進入電扇定時設置狀態(tài),共有4位數(shù)字可以設置,可把電扇的定時時間設置在09999秒之間。此時,Key14不再用于調節(jié)轉速,Key1用于左移位選,Key2用于右移位選,Key3用于使被選中的位數(shù)值+1,Key4用于被選中的位數(shù)值-1,并且,被選中的位會不停閃爍。按下Key5默認的定時設置是從0000秒開始的,且最低位默認被選中。如果按下Key5后進入定時設置狀態(tài)后10秒內沒有其他按鍵操作,系統(tǒng)會自動退出定時設置狀態(tài),之前的定時信息不保存。如果按下Key5后進入定時設置狀態(tài)后再次按下Key5,則會重新進入定時設置狀態(tài),之前的定時設置不保存。Key6為確定定時設置。按下Key5進入定時設置狀態(tài),通過Key14設置定時時間后,按下Key6即可保存本次定時設置,系統(tǒng)退出定時設置狀態(tài),電扇按照設定的定時轉動,當?shù)褂嫊r結束后自動停止。3.1.2 上位機:上位機通過LABVIEW仿真單片機的按鍵設置,與下位機進行串口通訊,調速功能與下位機的原理相同,定時模塊只需把需要設定的數(shù)字輸入到文本框中,再按下發(fā)送鍵即可把定時時間傳遞到下位機中。每次轉速發(fā)生變化后,轉速變化信息會自動存儲到預先設定的txt文件中。3.2 主程序流程圖如3-1所示。開始初始化是否按下KEY5是KEY14用于設置定時時間上位機否KEY14用于調速上位機LED板USB電扇保存速度變化信息到txt文件圖3-1 主程序流程圖設計中串行通信采用的波特率為9600,串口采用方式2的工作方式,其計算公式如下:波特率=(2SMOD/32)*(T1溢出率)考慮電源管理寄存器PCON,取PCON為0x80,所以波特率加倍,令TH1=0xFD,最終得到波特率為9600.四、結果分析或項目所實現(xiàn)的功能、指標4.1 上位機:如圖4-1所示,上位機顯示界面共有5個部分:成員信息、串口設置、電機狀態(tài)、定時時間發(fā)送和文件保存。串口設置部分中COM口選擇單片機連接到電腦時的COM口,波特率選擇下位機初始化時設置的波特率,其他使用默認值即可。電機狀態(tài)部分中以LED小燈顯示電機當前處于何種狀態(tài)(圖4-1中處于高速狀態(tài)),使用鼠標單擊其他速度按鈕,即可改變電扇的運行狀態(tài)。定時時間發(fā)送部分現(xiàn)在“時間”文本框中輸入一個09999之間的整數(shù),然后單擊“發(fā)送時間”下方的確定按鈕,即可使電扇按照預設的時間轉動,倒計時結束后自動停止轉動。在文件保存路徑中可以指定一個txt文件,每當轉速變化時,轉速變化信息會自動存儲到指定的txt文件中。圖4-1 上位機顯示結果4.2 下位機: 圖4-2為系統(tǒng)的初始狀態(tài)。LED板左邊第一位數(shù)字代表轉速,0、1、2、3分別對應停止、低速、中速、高速狀態(tài)。LED板右邊4位代表電扇的定時時間,單位為秒,0000代表不進行定時。圖4-2 智能電扇系統(tǒng)初始狀態(tài) 圖4-3為高速運行狀態(tài)圖4-3 高速運行狀態(tài) 圖4-4為進行定時設置后的狀態(tài),從圖中可以看出,再經(jīng)過1214秒電扇會自動停止。圖4-4 設置定時后的系統(tǒng)五、明細清單明細及價格清單如表5-1所示序號名稱型號/規(guī)格數(shù)量價格(元)1單片機最小系統(tǒng)板STC89C52RC1602溫度傳感器DS18B20113LED板16 4USB電扇 齊心(COMIX)L602 USB小風扇 129表5-1 明細及價格清單價格總計約96元。六、設計調試中遇到的疑難問題及解決方法張雷:本次試驗使用的最小系統(tǒng)板上有6個按鍵,我們的課程設計要求能使電扇在高速、中速、低速、停止共4狀態(tài)間切換,并能定時。我們小組最初設計是2個按鍵用于調速(加速、減速)剩下4個按鍵用于定時(開始設置定時、確定定時的時間、增加時間、減少時間),但發(fā)現(xiàn)這樣時間只能一秒一秒的增加和減少,很不方便。后來經(jīng)過我們小組討論,最終決定使用一鍵兩功能的方案,即一個按鍵在不同的狀態(tài)下是不同的功能。這樣的設計就需要一個狀態(tài)切換鍵,比如設置Key5為狀態(tài)切換鍵,當不按Key5時,Key14用于調速,按下Key5時,Key14用于設置定時。這個狀態(tài)切換的設計給我的編程帶來很大困難。由于Key5的按下只是一瞬間,我并不知道該如何保存這個狀態(tài)。后來經(jīng)過查閱資料,我在按鍵檢測的函數(shù)中增加了一個檢測上一次按鍵的功能,通過上一次按鍵和這一次按鍵的對比來判斷是否按下了某個鍵,最終解決了這個問題。劉思源: 1、設計中要求上位機和下位機進行串口通訊,我按照網(wǎng)上的Labview教程搭建完串口后發(fā)現(xiàn)程序并不能和單片機進行連接,后來經(jīng)過詢問同學后才知道是沒有安裝Visa驅動模塊,在安裝后解決了問題。 2、設計中要求把轉速變化信息保存到txt文件中,如果之前沒有設定保存的路徑,在轉速變化時會自動彈出一個保存窗口,如果此時不保存,而是關掉窗口,Labview就會崩潰。這個問題應該是Labview文件保存模塊的本身的特性導致的,只要在文件保存路徑中指定一個txt文件就能解決問題。七、心得體會與建議張雷:本次課程設計是我第一次完成的一個完整的單片機項目。之前我也上過一些單片機的實驗選修課,不過做的都是一些比較基礎的東西,上學期的微機硬件實驗綜合性較強,但使用的是匯編語言。所以這次課程設計對我來說是一個全新的,很有挑戰(zhàn)性的任務。一開始我拿到題目時是毫無頭緒的,根本不知道程序從何寫起。但通過班里同學的幫助,我漸漸地有了整個程序的設計思路,并通過查閱資料逐步完成了單片機初始化、按鍵控制、LED顯示等模塊的實現(xiàn)。對于課程的建議是在微機原理的課時里留出更多的時間給單片機,因為班里的許多同學和我一樣對于單片機的整體設計是非常缺乏經(jīng)驗的,課設最初的時候會遭遇很大的困難。希望老師在平時上課時增加單片機部分的內容和硬件設計。劉思源:本次課程設計上位機使用的Labview軟件是我之前從未接觸過的。面對這個全新的軟件,我從網(wǎng)上查閱教程,并聽從其他會使用Labview同學的指導,逐步學會了使用Labview制作一個上位機程序。Labview的功能非常強大,使用圖形搭建程序比VCC+方便了許多。對于課程的建議是應該把所有的課程設計題目進行難度分級,并根據(jù)難度給不同的得分,比如難的題目完成的話給分從80分起,簡單的題目完成了從60分起等等。這樣可以讓同學根據(jù)自己的水平進行選題,量力而行。參考文獻1楚現(xiàn)知,吳吉祥,李錦忠.基于LabVIEW的監(jiān)控界面設計與單片機的串行通信J工業(yè)控制計算機2005,18(7)2陳誠,李言武,葛立峰.基于LabVIEW的單片機串口通信設計J 現(xiàn)代計算機(專業(yè)版)2009,013焦玉朋.基于51單片機的PWM直流電機調速系統(tǒng)D內蒙古:內蒙古大學,2013附錄A.下位機程序#include #define TSETH 0x4C/50mssbit fan=P20;sbit dispc=P26;sbit dispd=P27;bit key5=0;unsigned int mcnt=0;unsigned char speed=0,scnt=19,tbsize,srem,sdig; /tbsize為發(fā)送數(shù)據(jù)位數(shù),srem為閃爍時間,sdig計時功能的時間,speed為當前速度unsigned char txbuf4,inset4;unsigned char code duties4=0x00,0x80,0xc0,0xff;void display (void);void disp_send (unsigned char);void speed_regulation (unsigned char);void init() /初始化函數(shù)TMOD=0x21; /T1方式2,T0方式1TH0=TSETH; /T0為50msTL0=0x00;TR0=1;TH1=0xfd;TL1=0xfd;/baud rate: 9600TR1=1;SCON=0x50; /串口工作方式1speed_regulation(1);ET0=1; /開T0中斷ES=1; /開串口中斷EA=1; /開所有中斷void main (void)unsigned char i,j;display();init();/根據(jù)電壓生成PWM波for(;)for(i=dutiesspeed;i0xff;i+)fan=0;for(j=0;j0x00;i-)fan=1;for(j=0;j32;j+);void speed_regulation (unsigned char newg)/調速if(speed!=newg)speed=newg;display();txbuf0=0xff;txbuf1=speed;tbsize=2;SBUF=txbuf0;void display (void) /LED顯示函數(shù),數(shù)碼管共6位,從右往左計數(shù)。前4位顯示計時時間,第6位顯示速度。unsigned char code digit10=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;/09編碼unsigned char i;unsigned int mcc;if(key5)for(i=0;i4) disp_send(0x00);else disp_send(digitinseti);else /如果沒按下key5,則當前顯示速度信息mcc=mcnt;for(i=1;i=4;i+)disp_send(digitmcc%10);mcc/=10; disp_send(0x00); /數(shù)碼管第5位不亮disp_send(digitspeed); /第6位顯示速度void disp_send (unsigned char c) /顯示傳遞函數(shù),用于把已編碼的要顯示信息發(fā)送到LEDunsigned char i;for(i=1;i=8;i+)dispc=0;dispd=c&0x80;c=1;dispc=1;void key () interrupt 1/按鍵判斷static unsigned char keylast=0xff,keypast=0xff;unsigned char keynow,i;TH0=TSETH;keynow=P3|0x03;if(keynow=keylast) /判斷兩次按鍵是否相同,若不同,則把本次按鍵的值(keynow)賦給上次按鍵的值(keylast)if(key5)/是否按下key5switch(keynow)&keypast)/如果按下key5,進入計時設置功能,并檢測下一個按了哪個鍵case 0x80:/按key1則左移位選if(sdig=3) sdig=0;else sdig+;srem=100;break;case 0x40:/按key2則右移位選if(sdig=0) sdig=3;else sdig-;srem=100;break;case 0x20:/按key3則數(shù)值+1if(insetsdig=9) insetsdig=0;else insetsdig+;srem=95;break;case 0x10:/按key4則數(shù)值-1if(insetsdig=0) insetsdig=9;else insetsdig-;srem=95;break;case 0x08:key5=0;display();break; /按key5則退出計時設置功能case 0x04: /按key6則確定計時設置mcnt=0;scnt=19;for(i=1;i=4;i+) mcnt=mcnt*10+inset4-i;key5=0;display();else /如果沒按下key5,則為調速功能switch(keynow)&keypast) /key1key4分別對應停止、低速、中速、高速,在LED屏幕上分別以0、1、2、3顯示case 0x80:speed_regulation(0);break;case 0x40:speed_regulation(1);break;case 0x20:speed_regulation(2);break;case 0x10:speed_regulation(3);break;case 0x08:key5=1;srem=100;sdig=0;for(i=0;i=3;i+) inseti=

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論