智能電扇-課程設(shè)計(jì)報(bào)告_第1頁
智能電扇-課程設(shè)計(jì)報(bào)告_第2頁
智能電扇-課程設(shè)計(jì)報(bào)告_第3頁
智能電扇-課程設(shè)計(jì)報(bào)告_第4頁
智能電扇-課程設(shè)計(jì)報(bào)告_第5頁
已閱讀5頁,還剩14頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

項(xiàng)目編號:2015-2016學(xué)年第一學(xué)期微機(jī)原理(單片機(jī))課程設(shè)計(jì)總結(jié)報(bào)告項(xiàng)目名稱: 智能電扇 班級: 姓名: 學(xué)號:微機(jī)原理(單片機(jī))課程設(shè)計(jì)任務(wù)書項(xiàng)目名稱:智能電扇內(nèi)容與要求: 上位機(jī):完成界面設(shè)計(jì)與通訊程序(1)能夠顯示并設(shè)定當(dāng)前電扇運(yùn)行狀態(tài)(高速、中速、低速、停止)(2)能夠定時控制電扇運(yùn)行(3)能夠?qū)㈦娚冗\(yùn)行狀態(tài)的改變保存至文檔(4)可以對串口進(jìn)行設(shè)置下位機(jī):完成電路設(shè)計(jì)與控制程序(1)完成電扇的控制設(shè)計(jì)(2)通過串口與上位機(jī)通訊(3)可通過按鍵設(shè)置電扇的運(yùn)行狀態(tài),并顯示在LED數(shù)碼管上(4)當(dāng)定時控制時可顯示倒計(jì)時項(xiàng)目組任務(wù)分擔(dān)評價表姓名分擔(dān)任務(wù)組內(nèi)評價張雷LED顯示模塊設(shè)計(jì)與編程,下位機(jī)串口通訊程序,單片機(jī)設(shè)計(jì)與編程,電路的搭建與焊接5劉思源上位機(jī)轉(zhuǎn)速顯示及設(shè)定程序、串口通訊程序、文件保存程序、倒計(jì)時顯示程序5課程設(shè)計(jì)報(bào)告評分表內(nèi)容總體方案硬件設(shè)計(jì)軟件設(shè)計(jì)結(jié)果分析明細(xì)清單問題分析心得體會參考文獻(xiàn)程序代碼格式規(guī)范總分張雷得分劉思源得分 微機(jī)原理(單片機(jī))課程設(shè)計(jì)報(bào)告目錄一、總體方案1二、硬件設(shè)計(jì)1三、軟件設(shè)計(jì)2四、結(jié)果分析或項(xiàng)目所實(shí)現(xiàn)的功能、指標(biāo)5五、明細(xì)清單7六、設(shè)計(jì)調(diào)試中遇到的疑難問題及解決方法7七、心得體會與建議8參考文獻(xiàn)9附錄A.下位機(jī)程序9附錄B.上位機(jī)程序圖1616微機(jī)原理(單片機(jī))課程設(shè)計(jì)報(bào)告一、總體方案智能電扇總體框圖如圖1-1所示。單 片 機(jī)LED顯示模塊ULN2003USB電扇按鍵調(diào)速及定時模塊上位機(jī)圖1-1 智能電扇總體功能模塊示意圖圖中,單片機(jī)通過驅(qū)動芯片ULN2003控制USB電扇轉(zhuǎn)動,通過PWM方式調(diào)節(jié)輸入USB電扇的電壓來調(diào)節(jié)轉(zhuǎn)速。按鍵模塊共有6個鍵,Key14用于調(diào)速和調(diào)節(jié)定時時間,Key56用于開始設(shè)置定時和確定定時設(shè)置。LED模塊可以顯示電扇當(dāng)前的轉(zhuǎn)速和定時時間。上位機(jī)可以對電扇的轉(zhuǎn)速和定時進(jìn)行設(shè)置,并能將轉(zhuǎn)速變化信息存儲到指定的txt文件中。二、硬件設(shè)計(jì)本項(xiàng)目下位機(jī)采用STC89C52RC型號單片機(jī)。該芯片具有8k字節(jié)Flash,512字節(jié)RAM, 32 位I/O 口線,看門狗定時器,內(nèi)置4KB EEPROM,MAX810復(fù)位電路,3個16 位定時器/計(jì)數(shù)器,4個外部中斷,一個7向量4級中斷結(jié)構(gòu),全雙工串行口,是一種低功耗、高性能CMOS8位微控制器,符合設(shè)計(jì)中對經(jīng)濟(jì)、環(huán)保指標(biāo)的要求。電扇驅(qū)動芯片采用ULN2003。該芯片是高耐壓、大電流達(dá)林頓晶體管陣列,由七個硅NPN 達(dá)林頓體管組成。每一對達(dá)林頓都串聯(lián)一個2.7K 的基極電阻,在5V 的工作電壓下它能與TTL 和CMOS 電路直接相連,可以直接處理原先需要標(biāo)準(zhǔn)邏輯緩沖器來處理的數(shù)據(jù)。電扇采用網(wǎng)上常用的USB電扇,通過USB轉(zhuǎn)串口器件轉(zhuǎn)化為4個接頭(1個電源端、2個數(shù)據(jù)傳送端、1個地端),供電時只需連接電源端和地端,并可通過改變電源端電壓來控制電扇轉(zhuǎn)速。顯示模塊采用實(shí)驗(yàn)室配備的6位數(shù)碼管LED板,使用時只需把其RXD和TXD端連接到單片機(jī)的預(yù)設(shè)管腳即可,使用方便,成本低廉,顯示效果好。硬件電路連接圖如圖2-1所示圖2-1 硬件電路連接圖LED板1號2號引腳接VCC,3號引腳接單片機(jī)P27,4號引腳接單片機(jī)P26,5號引腳接地。驅(qū)動芯片ULN2003的1號引腳接P20,同時通過一個10K的上拉電阻接到9號引腳,8號引腳接地,9號引腳接VCC和USB接頭的4號引腳,16號引腳接USB接頭的1號引腳,其余引腳懸空。USB電扇只需把USB插頭插到USB接頭上即可。三、軟件設(shè)計(jì)3.1 設(shè)計(jì)思路3.1.1 下位機(jī):USB電扇的驅(qū)動方式非常簡單,只需改變其VCC端的電壓即可改變轉(zhuǎn)速。設(shè)計(jì)中使用PWM方式控制電扇VCC端的電壓,通過Key14調(diào)節(jié)其占空比。在默認(rèn)狀態(tài)下Key1Key4分別對應(yīng)電扇的停止、低速、中速、高速狀態(tài)。Key5為啟動定時設(shè)置按鍵。當(dāng)按下Key5后,系統(tǒng)進(jìn)入電扇定時設(shè)置狀態(tài),共有4位數(shù)字可以設(shè)置,可把電扇的定時時間設(shè)置在09999秒之間。此時,Key14不再用于調(diào)節(jié)轉(zhuǎn)速,Key1用于左移位選,Key2用于右移位選,Key3用于使被選中的位數(shù)值+1,Key4用于被選中的位數(shù)值-1,并且,被選中的位會不停閃爍。按下Key5默認(rèn)的定時設(shè)置是從0000秒開始的,且最低位默認(rèn)被選中。如果按下Key5后進(jìn)入定時設(shè)置狀態(tài)后10秒內(nèi)沒有其他按鍵操作,系統(tǒng)會自動退出定時設(shè)置狀態(tài),之前的定時信息不保存。如果按下Key5后進(jìn)入定時設(shè)置狀態(tài)后再次按下Key5,則會重新進(jìn)入定時設(shè)置狀態(tài),之前的定時設(shè)置不保存。Key6為確定定時設(shè)置。按下Key5進(jìn)入定時設(shè)置狀態(tài),通過Key14設(shè)置定時時間后,按下Key6即可保存本次定時設(shè)置,系統(tǒng)退出定時設(shè)置狀態(tài),電扇按照設(shè)定的定時轉(zhuǎn)動,當(dāng)?shù)褂?jì)時結(jié)束后自動停止。3.1.2 上位機(jī):上位機(jī)通過LABVIEW仿真單片機(jī)的按鍵設(shè)置,與下位機(jī)進(jìn)行串口通訊,調(diào)速功能與下位機(jī)的原理相同,定時模塊只需把需要設(shè)定的數(shù)字輸入到文本框中,再按下發(fā)送鍵即可把定時時間傳遞到下位機(jī)中。每次轉(zhuǎn)速發(fā)生變化后,轉(zhuǎn)速變化信息會自動存儲到預(yù)先設(shè)定的txt文件中。3.2 主程序流程圖如3-1所示。開始初始化是否按下KEY5是KEY14用于設(shè)置定時時間上位機(jī)否KEY14用于調(diào)速上位機(jī)LED板USB電扇保存速度變化信息到txt文件圖3-1 主程序流程圖設(shè)計(jì)中串行通信采用的波特率為9600,串口采用方式2的工作方式,其計(jì)算公式如下:波特率=(2SMOD/32)*(T1溢出率)考慮電源管理寄存器PCON,取PCON為0x80,所以波特率加倍,令TH1=0xFD,最終得到波特率為9600.四、結(jié)果分析或項(xiàng)目所實(shí)現(xiàn)的功能、指標(biāo)4.1 上位機(jī):如圖4-1所示,上位機(jī)顯示界面共有5個部分:成員信息、串口設(shè)置、電機(jī)狀態(tài)、定時時間發(fā)送和文件保存。串口設(shè)置部分中COM口選擇單片機(jī)連接到電腦時的COM口,波特率選擇下位機(jī)初始化時設(shè)置的波特率,其他使用默認(rèn)值即可。電機(jī)狀態(tài)部分中以LED小燈顯示電機(jī)當(dāng)前處于何種狀態(tài)(圖4-1中處于高速狀態(tài)),使用鼠標(biāo)單擊其他速度按鈕,即可改變電扇的運(yùn)行狀態(tài)。定時時間發(fā)送部分現(xiàn)在“時間”文本框中輸入一個09999之間的整數(shù),然后單擊“發(fā)送時間”下方的確定按鈕,即可使電扇按照預(yù)設(shè)的時間轉(zhuǎn)動,倒計(jì)時結(jié)束后自動停止轉(zhuǎn)動。在文件保存路徑中可以指定一個txt文件,每當(dāng)轉(zhuǎn)速變化時,轉(zhuǎn)速變化信息會自動存儲到指定的txt文件中。圖4-1 上位機(jī)顯示結(jié)果4.2 下位機(jī): 圖4-2為系統(tǒng)的初始狀態(tài)。LED板左邊第一位數(shù)字代表轉(zhuǎn)速,0、1、2、3分別對應(yīng)停止、低速、中速、高速狀態(tài)。LED板右邊4位代表電扇的定時時間,單位為秒,0000代表不進(jìn)行定時。圖4-2 智能電扇系統(tǒng)初始狀態(tài) 圖4-3為高速運(yùn)行狀態(tài)圖4-3 高速運(yùn)行狀態(tài) 圖4-4為進(jìn)行定時設(shè)置后的狀態(tài),從圖中可以看出,再經(jīng)過1214秒電扇會自動停止。圖4-4 設(shè)置定時后的系統(tǒng)五、明細(xì)清單明細(xì)及價格清單如表5-1所示序號名稱型號/規(guī)格數(shù)量價格(元)1單片機(jī)最小系統(tǒng)板STC89C52RC1602溫度傳感器DS18B20113LED板16 4USB電扇 齊心(COMIX)L602 USB小風(fēng)扇 129表5-1 明細(xì)及價格清單價格總計(jì)約96元。六、設(shè)計(jì)調(diào)試中遇到的疑難問題及解決方法張雷:本次試驗(yàn)使用的最小系統(tǒng)板上有6個按鍵,我們的課程設(shè)計(jì)要求能使電扇在高速、中速、低速、停止共4狀態(tài)間切換,并能定時。我們小組最初設(shè)計(jì)是2個按鍵用于調(diào)速(加速、減速)剩下4個按鍵用于定時(開始設(shè)置定時、確定定時的時間、增加時間、減少時間),但發(fā)現(xiàn)這樣時間只能一秒一秒的增加和減少,很不方便。后來經(jīng)過我們小組討論,最終決定使用一鍵兩功能的方案,即一個按鍵在不同的狀態(tài)下是不同的功能。這樣的設(shè)計(jì)就需要一個狀態(tài)切換鍵,比如設(shè)置Key5為狀態(tài)切換鍵,當(dāng)不按Key5時,Key14用于調(diào)速,按下Key5時,Key14用于設(shè)置定時。這個狀態(tài)切換的設(shè)計(jì)給我的編程帶來很大困難。由于Key5的按下只是一瞬間,我并不知道該如何保存這個狀態(tài)。后來經(jīng)過查閱資料,我在按鍵檢測的函數(shù)中增加了一個檢測上一次按鍵的功能,通過上一次按鍵和這一次按鍵的對比來判斷是否按下了某個鍵,最終解決了這個問題。劉思源: 1、設(shè)計(jì)中要求上位機(jī)和下位機(jī)進(jìn)行串口通訊,我按照網(wǎng)上的Labview教程搭建完串口后發(fā)現(xiàn)程序并不能和單片機(jī)進(jìn)行連接,后來經(jīng)過詢問同學(xué)后才知道是沒有安裝Visa驅(qū)動模塊,在安裝后解決了問題。 2、設(shè)計(jì)中要求把轉(zhuǎn)速變化信息保存到txt文件中,如果之前沒有設(shè)定保存的路徑,在轉(zhuǎn)速變化時會自動彈出一個保存窗口,如果此時不保存,而是關(guān)掉窗口,Labview就會崩潰。這個問題應(yīng)該是Labview文件保存模塊的本身的特性導(dǎo)致的,只要在文件保存路徑中指定一個txt文件就能解決問題。七、心得體會與建議張雷:本次課程設(shè)計(jì)是我第一次完成的一個完整的單片機(jī)項(xiàng)目。之前我也上過一些單片機(jī)的實(shí)驗(yàn)選修課,不過做的都是一些比較基礎(chǔ)的東西,上學(xué)期的微機(jī)硬件實(shí)驗(yàn)綜合性較強(qiáng),但使用的是匯編語言。所以這次課程設(shè)計(jì)對我來說是一個全新的,很有挑戰(zhàn)性的任務(wù)。一開始我拿到題目時是毫無頭緒的,根本不知道程序從何寫起。但通過班里同學(xué)的幫助,我漸漸地有了整個程序的設(shè)計(jì)思路,并通過查閱資料逐步完成了單片機(jī)初始化、按鍵控制、LED顯示等模塊的實(shí)現(xiàn)。對于課程的建議是在微機(jī)原理的課時里留出更多的時間給單片機(jī),因?yàn)榘嗬锏脑S多同學(xué)和我一樣對于單片機(jī)的整體設(shè)計(jì)是非常缺乏經(jīng)驗(yàn)的,課設(shè)最初的時候會遭遇很大的困難。希望老師在平時上課時增加單片機(jī)部分的內(nèi)容和硬件設(shè)計(jì)。劉思源:本次課程設(shè)計(jì)上位機(jī)使用的Labview軟件是我之前從未接觸過的。面對這個全新的軟件,我從網(wǎng)上查閱教程,并聽從其他會使用Labview同學(xué)的指導(dǎo),逐步學(xué)會了使用Labview制作一個上位機(jī)程序。Labview的功能非常強(qiáng)大,使用圖形搭建程序比VCC+方便了許多。對于課程的建議是應(yīng)該把所有的課程設(shè)計(jì)題目進(jìn)行難度分級,并根據(jù)難度給不同的得分,比如難的題目完成的話給分從80分起,簡單的題目完成了從60分起等等。這樣可以讓同學(xué)根據(jù)自己的水平進(jìn)行選題,量力而行。參考文獻(xiàn)1楚現(xiàn)知,吳吉祥,李錦忠.基于LabVIEW的監(jiān)控界面設(shè)計(jì)與單片機(jī)的串行通信J工業(yè)控制計(jì)算機(jī)2005,18(7)2陳誠,李言武,葛立峰.基于LabVIEW的單片機(jī)串口通信設(shè)計(jì)J 現(xiàn)代計(jì)算機(jī)(專業(yè)版)2009,013焦玉朋.基于51單片機(jī)的PWM直流電機(jī)調(diào)速系統(tǒng)D內(nèi)蒙古:內(nèi)蒙古大學(xué),2013附錄A.下位機(jī)程序#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計(jì)時功能的時間,speed為當(dāng)前速度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)/調(diào)速if(speed!=newg)speed=newg;display();txbuf0=0xff;txbuf1=speed;tbsize=2;SBUF=txbuf0;void display (void) /LED顯示函數(shù),數(shù)碼管共6位,從右往左計(jì)數(shù)。前4位顯示計(jì)時時間,第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,則當(dāng)前顯示速度信息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,進(jìn)入計(jì)時設(shè)置功能,并檢測下一個按了哪個鍵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則退出計(jì)時設(shè)置功能case 0x04: /按key6則確定計(jì)時設(shè)置mcnt=0;scnt=19;for(i=1;i=4;i+) mcnt=mcnt*10+inset4-i;key5=0;display();else /如果沒按下key5,則為調(diào)速功能switch(keynow)&keypast) /key1key4分別對應(yīng)停止、低速、中速、高速,在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)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論