單片機課程設(shè)計_第1頁
單片機課程設(shè)計_第2頁
單片機課程設(shè)計_第3頁
單片機課程設(shè)計_第4頁
單片機課程設(shè)計_第5頁
已閱讀5頁,還剩26頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、單片機課程設(shè)計單片機課程設(shè)計 l一個具有通信功能的電熱水器控制器 l電信工08-02 l小組成員:劉凱、江勇軍、羅丁 1 1、用戶需求、用戶需求 設(shè)計一個具有通信功能的電熱水器控制器 2、設(shè)計任務、設(shè)計任務 l保持最低水溫,即無論何時,溫度低于設(shè)定的最 低水位,自動加熱到該溫度 l在2個指定時間點,把溫度加熱到設(shè)定的最高溫 度。特別注意,只要加熱到這個溫度后,只有當 水溫低于最低水溫才再次加熱,并且只加熱到最 低水溫。 l可以用串口讀取當前溫度、設(shè)定的最低水溫、最 高水溫、2個指定時間。并可以隨時設(shè)定以上參 數(shù)。 3、原理框圖及說明、原理框圖及說明(1)(1) l根據(jù)設(shè)計任務,設(shè)計如下框圖:

2、3、原理框圖及說明、原理框圖及說明(2)(2)系統(tǒng)連線系統(tǒng)連線 3、原理框圖及說明、原理框圖及說明(3)(3) l電源部分,為單片機提供5v穩(wěn)壓電源;3位按鍵提供給 用戶用來設(shè)定時間、設(shè)置定時點、設(shè)置溫度用;5位顯 示led中的4位用來顯示時間,另一位用來作為功能顯示, 表示正常計時、還是在設(shè)定時間、設(shè)置溫度、或者是觸 發(fā)加熱電路等;加熱電路使用繼電器連接加熱電阻。 l89s51上電后,啟動內(nèi)部計時程序,顯示當前時間,并 不斷讀取當前溫度,若低于設(shè)定的最低水溫,則驅(qū)動加 熱電路加熱至最低水溫;同時不斷讀取當前時間是否到 達預設(shè)時間,若到達則驅(qū)動加熱電路加熱至最高溫度; 還要檢查有無按鍵按下,處

3、理相應操作。 3、原理框圖及說明、原理框圖及說明(4)(4) l設(shè)置的3位按鍵分別為: ls1:功能選擇(正常狀態(tài)、設(shè)定鬧鈴功能選擇(正常狀態(tài)、設(shè)定鬧鈴1、設(shè)定鬧、設(shè)定鬧 鈴鈴2、校正時間、設(shè)定最低溫度、設(shè)定最高溫度、校正時間、設(shè)定最低溫度、設(shè)定最高溫度、 設(shè)定最低溫度)設(shè)定最低溫度), ls2:時間/溫度+ ls3:時間/溫度-。 3、原理框圖及說明、原理框圖及說明(5)(5) ll5顯示功能選擇,l1-l4顯示時間。在“正?!?時,l5不顯示,按s2、s3無效。 ll5顯示1、2、3、4、5、6時,分別對應設(shè)置時間、 設(shè)置定時1、設(shè)置定時2、設(shè)置最低溫度、設(shè)置最 高溫度、加熱;按s2時間/

4、溫度增加1分鐘,按s3 時間/溫度減少1分鐘。 l上電復位后所有時間及溫度均初始化為0 4、主要元件選擇及參數(shù)計算、主要元件選擇及參數(shù)計算 電阻、電容、各種元件如何選擇? 4.1復位與振蕩電路復位與振蕩電路 l復位電路如圖2,由c5和r48構(gòu)成。由于51單片機為低 電平復位,圖示電路利用電容的特性,在剛剛外加5v電 源時rst腳的電壓為低。時間常數(shù)=rc=38ms,滿足芯 片復位要求。(p4,rst段)由于電壓為5v,可選擇耐 壓6.3v的電解電容即可。 l圖2、復位與振蕩電路: l振蕩電路按照說明書的推薦,選擇6mhz晶體,c7、c8 選擇30pf瓷片電容。 4.2 顯示電路顯示電路(1)

5、l顯示元件選擇8段led數(shù)碼管,共陽極。段選信號 經(jīng)過一組限流電阻接到51的p0口,位選信號由 p2.3到p2.7經(jīng)過u2進行電流放大后提供,因此得 到數(shù)碼管l1顯示時p2.7=1,p2的其他引腳為0,以 此推算,得到表1、5位數(shù)碼管與p2對應表 l表1、5位數(shù)碼管與p2對應表: 顯示數(shù)碼管 l1亮 l2亮 l3亮 l4亮 l5亮 p2.7p2.1 100000 0 0100000001000 0 00010000000100 4.2 顯示電路顯示電路(2) l表2、顯示段碼表 : p0.7- p0.0 1100000 0 1111100 1 1010010 0 1011000 0 10011

6、0 01 1001001 0 1000001 0 1111100 0 1000000 0 1001000 0 顯示0123456789 4.2 顯示電路顯示電路(3) l圖3、顯示電路 l 4.3按鍵電路按鍵電路 l由于89s51的p1口內(nèi)部有上拉電阻,為簡化電 路,用按鍵開關(guān)直接接對應引腳p1.0、p1.1、 p1.2到地,并把p1.0口作為通用輸入口。即當 s1沒有按下時,p1.0=1,當s1按下時,p1.0=0 l圖4、按鍵電路 : 4.4 輸出驅(qū)動電路輸出驅(qū)動電路 (1) l本次設(shè)計選擇繼電器的一對干接點作為驅(qū)動輸出。對用 戶來說,jdq1m與jdq1o間,相當于一個電源開關(guān),當達 到

7、鬧鈴條件時,開關(guān)閉合5s,然后斷開。 lj1繼電器選擇dc5v驅(qū)動,觸點容量為ac220v1a的小型繼 電器。(如tx2-5v)。由于這類繼電器線圈電流需要 28ma,51單片機無法直接驅(qū)動,需要加三極管實現(xiàn)電流 放大。q1工作在開關(guān)狀態(tài)。為了消除q1由導通變截止時, j1線圈上產(chǎn)生反生電動勢,從而可能使得q1的集電極電 壓過高,bvceo而擊穿q1,加入了d3,確保q1的集電極 電壓最大為vcc+0.7v。 4.4 輸出驅(qū)動電路輸出驅(qū)動電路(2)(2) l圖5、輸出驅(qū)動電路 4.5 電源電路電源電路 (1) l電源采用交流變壓器獲得約6v的交流,經(jīng) yd1yd4整流后,得到約8v直流。由于前

8、述電 路總的電流小于200ma,故選擇7805穩(wěn)壓塊, 便宜、好用。而ydx選擇1n4001以上即可。 4.5 電源電路電源電路 (2) l圖6、電源電路 4.6溫度檢測溫度檢測 l這部分需用數(shù)字溫度傳感器ds18b20,dsl820數(shù)字溫 度計提供9位(二進制)溫度讀數(shù),指示器件的溫度信息經(jīng) 過單線接口送入dsl820或從dsl820送出,因此從主機 cpu到dsl820僅需一條線(和地線)。dsl820的電源可以 由數(shù)據(jù)線本身提供而不需要外部電源。因為每一個 dsl820在出廠時已經(jīng)給定了唯一的序號,因此任意多個 dsl820可以存放在同一條單線總線上。這允許在許多不 同的地方放置溫度敏感

9、器件。dsl820的測量范圍從- 55到+125,增量值為0.5,可在l s(典型值)內(nèi)把溫 度變換成數(shù)字。 l p1.4口連接單總線溫度傳感器ds18b20: 4.7串口通信串口通信 l采用max232芯片實現(xiàn)串口通信電平的轉(zhuǎn)換. l串口模塊連接如圖: 4.8 其他其他 l考慮到單片機是數(shù)字電路,工作時在vcc上產(chǎn) 生干擾尖脈沖。為消除它通過電源耦合到其他器 件,影響其他器件的工作,一般要就近在本芯片 的vcc引腳加退耦電容,0.1uf。 l圖7、退耦電路 : 5、軟件規(guī)劃、軟件規(guī)劃 l模塊劃分與軟件流程圖、定時、串口等軟件方面 的計算 5.1軟件劃分及主流程圖軟件劃分及主流程圖 l根據(jù)設(shè)計

10、要求,采用定時器0作為時鐘數(shù)據(jù)源, 定時器0每100ms中斷一次,需計數(shù)600個方為1 分鐘。顯示、鍵盤、比較等全部放在主程序中實 現(xiàn)。 l顯示部分設(shè)置顯示緩沖區(qū),顯示數(shù)據(jù)直接送入緩 沖區(qū),由程序完成動態(tài)掃描。 5.1.1設(shè)計的全局變量設(shè)計的全局變量 (1)顯示緩沖區(qū),char disbuf5; (2)當前顯示位號,表示動態(tài)顯示時正在 顯示的led編號char dispos; (3)1分鐘計數(shù) unsigned minutecount; 對100ms計數(shù); (4)當前時間之小時,char hour; (5)當前時間之分鐘,char minute; (6)功能選擇,char function;

11、(7)設(shè)定時間1之小時,char alarmhour1; (8)設(shè)定時間1之分鐘,char alarmminute1; (9)設(shè)定時間2之小時,char alarmhour2; (10)設(shè)定時間2之分鐘,char alarmminute2; (11)當前的溫度 int tempnow (12)設(shè)定的最低溫度int templow (13)設(shè)定的最高溫度int temphigh 5.1.2設(shè)計函數(shù)(設(shè)計函數(shù)(1) l(1)主函數(shù) main() 入口:無,出口:無。 一個大的循環(huán),程序永不結(jié)束。 l(2)數(shù)據(jù)送顯示緩沖區(qū) int data2disbuf(unsigned char dis,unsi

12、gned char pos) 功能:如題。 入口:要顯示的數(shù)值(如顯示8就賦值8)、顯示位號 出口:1完成,0未完成。 改動顯示緩沖區(qū)內(nèi)容 l(3)顯示緩沖區(qū)動態(tài)顯示 void disdisbuf( void ) 功能:完成緩沖區(qū)譯為段碼,輸出段碼、位選碼,延時保證3ms(5位顯示一遍 共15ms,不會有閃爍感) 入口:無,出口:無。 改動當前顯示位號。 l(4)根據(jù)功能選擇把不同數(shù)據(jù)送顯示緩沖區(qū) unsigned char todisbuf( void ) 功能:根據(jù)功能選擇,把相應的數(shù)據(jù)分別送指定的顯示緩沖區(qū),主要是要把高、 低 、位分開,包括l5的顯示。 入口:無,出口:功能選擇值。 調(diào)

13、用data2disbuf()。 5.1.2設(shè)計函數(shù)(設(shè)計函數(shù)(2) l(6)中斷服務程序(計時功能) 功能:每100ms中斷一次,記錄中斷次數(shù)到600次則分鐘1,并調(diào) 整為合法的時間格式。入口:無,出口:無。 改動當前時間值。 l(7)加熱函數(shù)1 void warmup1(int temp) 功能:啟動加熱電路加熱到最低溫度templow。入口:int templow。 出口:無。 l(8)加熱函數(shù)2 void warmup2(int temp) 功能:啟動加熱電路加熱到最高溫度 temphigh。入口:int temphigh。出口:無。 開始 由當前顯示位號取顯示緩沖區(qū)內(nèi)容;查段 碼輸出到

14、段選端口,按照當前顯示位號輸 出位選碼 當前溫度是否 低于最低值 調(diào)用加熱函數(shù)1 到設(shè)定時間 1 到設(shè)定時間 2 延時3ms, 時間到 當前顯示位號+,當前顯示位號 5則改為0 結(jié)束 調(diào)用加熱函數(shù)2 y n y n y n n y 圖8:顯示緩沖區(qū)動態(tài)顯示框圖 主程序框圖主程序框圖 5.2定時參數(shù)計算定時參數(shù)計算 l系統(tǒng)設(shè)計中選擇了6mhz晶體,定時器0設(shè)定為 100ms定時中斷,選擇定時器0工作模式為:模 式1,時間常數(shù)為:th0 3ch;tl0 0b0h 6.體會與感想體會與感想 l 這學期,通過對單片機技術(shù)這門課程的學習,使我 們對單片機技術(shù)有了初步的認識;通過實驗,使我們對 其有了進一步的了解。隨著社

溫馨提示

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

評論

0/150

提交評論