秋霞电影网午夜鲁丝片无码,真人h视频免费观看视频,囯产av无码片毛片一级,免费夜色私人影院在线观看,亚洲美女综合香蕉片,亚洲aⅴ天堂av在线电影猫咪,日韩三级片网址入口

單片機課程設(shè)計

上傳人:仙*** 文檔編號:28147043 上傳時間:2021-08-23 格式:DOC 頁數(shù):40 大小:627.50KB
收藏 版權(quán)申訴 舉報 下載
單片機課程設(shè)計_第1頁
第1頁 / 共40頁
單片機課程設(shè)計_第2頁
第2頁 / 共40頁
單片機課程設(shè)計_第3頁
第3頁 / 共40頁

下載文檔到電腦,查找使用更方便

15 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《單片機課程設(shè)計》由會員分享,可在線閱讀,更多相關(guān)《單片機課程設(shè)計(40頁珍藏版)》請在裝配圖網(wǎng)上搜索。

1、 課程設(shè)計(論文) 題 目 名 稱 基于單片機溫度測量系統(tǒng)設(shè)計 課 程 名 稱 單片機原理及在電氣測控學科中的應(yīng)用 學 生 姓 名 學 號 系 、專 業(yè) 課

2、程設(shè)計(論文)任務(wù)書 年級專業(yè) 學生姓名 學 號 題目名稱 基于單片機的溫度測量系統(tǒng)設(shè)計 設(shè)計時間 課程名稱 單片機原理及在電氣測控學科中的應(yīng)用 課程編號 121200105 設(shè)計地點 一、 課程設(shè)計(論文)目的 《單片機原理》課程是一門實踐性、應(yīng)用性很強的課程。通過課程設(shè)計使學生較系統(tǒng)的掌握有關(guān)單片機控制的設(shè)計思想和設(shè)計方法,為學生今后從事單片機控制系統(tǒng)開發(fā)工作打下堅實的基礎(chǔ)。本課程設(shè)計的基本要求是使學生全面。單片機控制系統(tǒng)的基本理論,熟熟悉掌握MCS-51系列單片機的編程方法,讓學生在接近實際工作環(huán)境下,完成一個簡單的單片機控制系統(tǒng)設(shè)計。

3、 二、 已知技術(shù)參數(shù)和條件 1、加熱爐、溫度控制范圍:50—100℃; 2、開發(fā)環(huán)境:MCS-51系列單片機開發(fā)系統(tǒng)、Proteus單片機仿真系統(tǒng) 3、硬件:實驗室提供PC機、溫度傳感器、電風扇、設(shè)計控制系統(tǒng)所需的電子元器件、可調(diào)直流電源等。 4、單片機設(shè)計相關(guān)書籍資料。 三、 任務(wù)和要求 設(shè)計任務(wù): 利用MCS-51系列單片機設(shè)計一個溫度自動控制系統(tǒng),利用數(shù)碼管實時的顯示當前溫度,并能根據(jù)設(shè)定的溫度值控制溫度。加溫設(shè)備利用加熱爐實現(xiàn),降溫時利用電風扇進行降溫。 設(shè)計要求 1、要求進行方案論證,說明控制系統(tǒng)的工作原理。 2、要求設(shè)計測量系統(tǒng)的硬件電路,給出電路原理圖和

4、元器件清單。 3、要求給出軟件流程圖并編寫程序源代碼。 4、完成系統(tǒng)的調(diào)試,給出調(diào)試結(jié)果并分析。 5、撰寫符合要求的課程設(shè)計說明書。 注:1.此表由指導教師填寫,經(jīng)系、教研室審批,指導教師、學生簽字后生效; 2.此表1式3份,學生、指導教師、教研室各1份。 四、參考資料和現(xiàn)有基礎(chǔ)條件(包括實驗室、主要儀器設(shè)備等) 1、THKSCM-1型單片機實驗系統(tǒng)實驗指導書、KEIL 軟件,WAVE 軟件 2、數(shù)字控制與PLC實驗室“THKSCM-1型單片機實驗系統(tǒng)”。 五、進度安排 2011年6月7日-8日:收集和課程設(shè)計有關(guān)的資料,熟悉課題任務(wù)和要求 2011年6月9日:總

5、體方案設(shè)計 2011年6月10日-12日:硬件電路設(shè)計 2011年6月13日-15日:軟件設(shè)計 2011年6月15日-17日:系統(tǒng)調(diào)試改進 2011年6月18日-21日:整理書寫設(shè)計說明書 2011年6月22日-23日:答辯并考核 六、教研室審批意見 教研室主任(簽字): 年 月 日 七|、主管教學主任意見 主管主任(簽字): 年 月 日 八、備注

6、 指導教師(簽字): 學生(簽字): 學生姓名 學 號 系 專業(yè)班級 題目名稱 基于單片機的溫度測量系統(tǒng)設(shè)計 課程名稱 單片機原理及在電氣測控學科中的應(yīng)用 一、學生自我總結(jié) 經(jīng)過此次的課程設(shè)計,我學會了很多,特別是獨立思考能力和動手能力。這次的課程設(shè)計鞏固了我的單片

7、機知識,比如使用DS18B20傳感器,怎樣把220V的交流電壓變成5V直流穩(wěn)壓電源,讓我真正掌握了用protues繪畫硬件圖,并進行仿真和調(diào)試。但是在此次的課程設(shè)計中也發(fā)現(xiàn)了自己很多的不足,特別是硬件設(shè)計方面,不知道如何去設(shè)計硬件以及外部接線圖。不過我會在以后的學習中好好努力,把自己沒學好的方面學好。 學生簽名: 年 月 日 二、指導教師評定 評分項目 平時成績 論文 答辯 綜合成績 權(quán) 重 30 40 30 單項成績

8、 指導教師評語: 指導教師(簽名): 年 月 日 注:1、本表是學生課程設(shè)計(論文)成績評定的依據(jù),裝訂在設(shè)計說明書(或論文)的“任務(wù)書”頁后面; 2、表中的“評分項目”及“權(quán)重”根據(jù)各系的考核細則和評分標準確定。 摘 要 溫度是工業(yè)控制中主要的被控參數(shù)之一,特別是在冶金、化工、建材、食品、機械、石 油等工業(yè)中,具有舉足重輕的作用。隨著電子技術(shù)和微型計算機的迅速發(fā)展,微機測量和控制技術(shù)

9、得到了迅速的發(fā)展和廣泛的應(yīng)用。 采用單片機來對溫度進行控制,不僅具有控制方便、組態(tài)簡單和靈活性大等優(yōu)點,而且可以大幅度提高被控溫度的技術(shù)指標,從而能夠大大提高產(chǎn)品的質(zhì)量和數(shù)量。MSP430系列單片機具有處理能強、運行速度快、功耗低等優(yōu)點,應(yīng)用在溫度測量與控制方面,控制簡單方便,測量范圍廣,精度較高。 本設(shè)計主要做了如下幾方面的工作:一是確定系統(tǒng)的的總設(shè)計方案,給出系統(tǒng)框圖。本設(shè)計以AT89S51單片機為核心的溫度測量系統(tǒng)的工作原理和設(shè)計方法。溫度信號由溫度芯片DD18B20采集,并以數(shù)字信號的方式傳送給單片機。單片機通過對信號進行相應(yīng)處理,從而實現(xiàn)溫度測量的目的。二是硬件設(shè)計,在這里采用模塊

10、設(shè)計方法,設(shè)計各單元電路原理圖及元器件參數(shù)。主要模塊有:單片機最下系統(tǒng)設(shè)計模塊、傳感器溫度采集設(shè)計模塊、A/D模數(shù)轉(zhuǎn)換設(shè)計模塊、液晶顯示設(shè)計模塊。三是軟件設(shè)計,包括繪制軟件主程序流程圖、和編寫程序源代碼。四是進行調(diào)試及仿真實驗,為了驗證該溫度測量系統(tǒng)設(shè)計的正確性,在protues進行硬件軟件聯(lián)合調(diào)試并完成該測量系統(tǒng)的仿真實驗,仿真結(jié)果表明本設(shè)計是正確的。 關(guān)鍵詞: AT89C51;單片機;DS18B20;溫度測量 目 錄 摘要 ………………………………………………………………….……Ⅰ 1 總體方案論證 ………………………………………………………

11、…1 2 硬件電路設(shè)計 …………………………………………………………2 2.1 最小系統(tǒng)模塊…………………………………………………………2 2.2 電源電路設(shè)計…………………………………………………………7 2.3 溫度傳感器DS18B20溫度采集模塊 ………………………………7 2.4 A/D模數(shù)轉(zhuǎn)換…………………………………………………………10 2.5 液晶顯示器LM016L顯示模塊 ……………………………………11 2.6 系統(tǒng)總體硬件原理圖 ………………………………………………13 3 系統(tǒng)軟件設(shè)計 …………………………………………………………15 3.1軟件流程圖

12、……………………………………………………………15 3.2程序源代碼……………………………………………………………16 4 系統(tǒng)仿真調(diào)試及實物 ………………………………………………….21 5 設(shè)計總結(jié)及心得 ………………………………………….……………23 參考文獻………………………………………………………………24 附錄Ⅰ…………………………………………………………………25 附錄Ⅱ…………………………………………………………………33 附錄Ⅲ…………………………………………………………………35 1 總體方案論證 本設(shè)計以AT89S51單片機為核心

13、的溫度測量系統(tǒng)的工作原理和設(shè)計方法。溫度信號由溫度芯片DD18B20采集,并以數(shù)字信號的方式傳送給單片機。單片機通過對信號進行相應(yīng)處理,從而實現(xiàn)溫度測量的目的。系統(tǒng)通過運用用復(fù)位按鈕實現(xiàn)測量控制,按下按鍵復(fù)位按鈕則刷新測量的溫度值。 系統(tǒng)的硬件設(shè)計,在這里采用模塊設(shè)計方法,設(shè)計各單元電路原理圖及元器件參數(shù)。主要模塊有:單片機最下系統(tǒng)設(shè)計模塊、傳感器溫度采集設(shè)計模塊、A/D模數(shù)轉(zhuǎn)換設(shè)計模塊、液晶顯示設(shè)計模塊。對于軟件設(shè)計部分,包括繪制軟件主程序流程圖、和編寫程序源代碼。最后可以通過對系統(tǒng)整體進行調(diào)試及仿真實來驗證該系統(tǒng)設(shè)計的正確性。 系統(tǒng)總體框圖如圖1.1所示。 時鐘 數(shù)字顯示

14、 LCD AT89C51 復(fù)位 溫度傳感器DS18B20 (信號的調(diào)理轉(zhuǎn)換) 5V穩(wěn)壓電源 圖1.1 系統(tǒng)總體框圖 2 硬件電路設(shè)計 2.1 最小系統(tǒng)模塊設(shè)計 所謂單片機最小系統(tǒng),是指在單片機外部增加盡可能少的原件電路,組成一個讓單片機可獨立工作的系統(tǒng)。 圖2.1最小系統(tǒng)電路圖 2.1.1 AT89C51芯片介紹 AT89C51是一種帶4K字節(jié)閃存可編程可擦除只讀存儲器(FPEROM—Flash Programmable and Erasable Read Only Memory)的低電壓、高性能CM

15、OS 8位微處理器,俗稱單片機。AT89C51是一種帶2K字節(jié)閃存可編程可擦除只讀存儲器的單片機。單片機的可擦除只讀存儲器可以反復(fù)擦除1000次。該器件采用ATMEL高密度非易失存儲器制造技術(shù)制造,與工業(yè)標準的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲器組合在單個芯片中,ATMEL的AT89C51是一種高效微控制器,AT89C51是它的一種精簡版本。AT89C51單片機為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價廉的方案。外形及引腳排列如圖2.2所示。 圖2.2 AT89C2051引腳圖 (1)主要特性 與MCS-51單片機產(chǎn)品兼容 4K字節(jié)在系統(tǒng)

16、可編程Flash存儲器 1000次擦寫周期 全靜態(tài)工作:0Hz—24MHz 32個可編程I/O口線 2個16位定時器/計數(shù)器 5個中斷源 全雙工UART串行通道 低功耗空閑和掉電模式 掉電后中斷可喚醒 看門狗定時器 雙數(shù)據(jù)指針 靈活的ISP編程(字或字節(jié)模式) 4.0---5.5V電壓工作范圍    數(shù)據(jù)保留時間:10年    三級程序存儲器鎖定    1288位內(nèi)部RAM   可編程串行通道 片內(nèi)振蕩器和時鐘電路 (2)內(nèi)部結(jié)構(gòu)組成 單片機AT89C51可以劃分為CPU、存儲器、并行口、串行口、定時/計數(shù)器和中斷邏

17、輯幾個部分。 CPU由運算器和控制邏輯構(gòu)成。其中包括若干特殊功能寄存器(SFR) AT89C51時鐘有兩種方式產(chǎn)生,即內(nèi)部方式和外部方式。 AT89C51在物理上有四個存儲空間:片內(nèi)/片外程序存儲大路、片內(nèi)/片外數(shù)據(jù)存儲器。片內(nèi)有256B數(shù)據(jù)存儲器RAM和4KB的程序存儲器ROM。除此之外,還可以在片外擴展RAM和ROM,并且和有64KB的尋址范圍。 AT89C51內(nèi)部有一個可編程的、全雙工的串行接口。它串行收發(fā)存儲在特殊功能寄存器SFR的串行數(shù)據(jù)緩沖器SBUF中的數(shù)據(jù)。 AT89C51共有4個(P0、P1、P2、P3口)8位并行I/O端口,共32個引腳。P0口雙向I/O口

18、,用于分時傳送低8位地址和8位數(shù)據(jù)信號;P1、P2、P3口均為準雙向I/O口;其中P2口還用于傳送高8位地址信號;P3口每一引腳還具有特殊功能,用于特殊信號的輸入輸出和控制信號。 AT89C51內(nèi)部有兩個16位可編程定時器/計數(shù)器T0、T1。最大計數(shù)值為216-1。工作方式和定時器或計數(shù)器的選擇由指令來確定。 中斷系統(tǒng)允許接受5個獨立的中斷源,即兩個外部中斷,兩個定時器/計數(shù)器中斷以及一個串行口中斷。 (3)管腳說明:   VCC:供電電壓。   GND:接地。   P0口:P0口為一個8位漏級開路雙向I/O口,每腳可吸收8TTL門電流。當P0口的管腳第一次寫1時,被定義為高

19、阻輸入。P0能夠用于外部程序數(shù)據(jù)存儲器,它可以被定義為數(shù)據(jù)/地址的第八位。在FIASH編程時,P0 口作為原碼輸入口,當FIASH進行校驗時,P0輸出原碼,此時P0外部必須被拉高。   P1口:P1口是一個內(nèi)部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。P1口管腳寫入1后,被內(nèi)部上拉為高,可用作輸入,P1口被外部下拉為低電平時,將輸出電流,這是由于內(nèi)部上拉的緣故。在FLASH編程和校驗時,P1口作為第八位地址接收。   P2口:P2口為一個內(nèi)部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個TTL門電流,當P2口被寫“1”時,其管腳被內(nèi)部上拉電阻拉高,

20、且作為輸入。并因此作為輸入時,P2口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。P2口當用于外部程序存儲器或16位地址外部數(shù)據(jù)存儲器進行存取時,P2口輸出地址的高八位。在給出地址“1”時,它利用內(nèi)部上拉優(yōu)勢,當對外部八位地址數(shù)據(jù)存儲器進行讀寫時,P2口輸出其特殊功能寄存器的內(nèi)容。P2口在FLASH編程和校驗時接收高八位地址信號和控制信號。   P3口:P3口管腳是8個帶內(nèi)部上拉電阻的雙向I/O口,可接收輸出4個TTL門電流。當P3口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3口將輸出電流(ILL)這是由于上拉的緣故。P3口同時為閃爍編程和

21、編程校驗接收一些控制信號。P3口也可作為AT89C51的一些特殊功能口,如下表2.1所示。 表2.1 P3端口引腳與復(fù)用功能表 端口引腳 復(fù)用功能 P3.0 RXD(串行輸入口) P3.1 TXD(串行輸出口) P3.2 /INT0(外部中斷0) P3.3 /INT1(外部中斷1) P3.4 T0(定時器0外部輸入) P3.5 T1(定時器1外部輸入) P3.6 /WR(外部數(shù)據(jù)存儲器寫選通) P3.7 /RD(外部數(shù)據(jù)存儲器讀選通) RST:復(fù)位輸入。當振蕩器復(fù)位器件時,要保持RST腳兩個機器周期的高電平時間。   ALE/PROG:當訪問外部存

22、儲器時,地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在FLASH編程期間,此引腳用于輸入編程脈沖。在平時,ALE端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的1/6。因此它可用作對外部輸出的脈沖或用于定時目的。然而要注意的是:每當用作外部數(shù)據(jù)存儲器時,將跳過一個ALE脈沖。如想禁止ALE的輸出可在SFR8EH地址上置0。此時, ALE只有在執(zhí)行MOVX,MOVC指令是ALE才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ALE禁止,置位無效。 /PSEN:外部程序存儲器的選通信號。在由外部程序存儲器取指期間,每個機器周期兩次/PSEN有效。在訪問外部數(shù)據(jù)存儲器時,這兩

23、次有效的/PSEN信號將不出現(xiàn)。 /EA/VPP:當/EA保持低電平時,則在此期間外部程序存儲器(0000H-FFFFH),不管是否有內(nèi)部程序存儲器。注意加密方式1時,/EA將內(nèi)部鎖定為RESET;當/EA端保持高電平時,此間內(nèi)部程序存儲器。在FLASH編程期間,此引腳也用于施加12V編程電源(VPP)。   XTAL1:反向振蕩放大器的輸入及內(nèi)部時鐘工作電路的輸入。   XTAL2:來自反向振蕩器的輸出。 2.1.2時鐘電路 AT89C51芯片內(nèi)部有一個高增益反向放大器用于構(gòu)成振蕩器。反向放大器的輸入端為XATL1,輸出端為XATL2。在XATL1 和XATL2兩端跨接由石

24、英晶體及兩個電容構(gòu)成的自激振蕩器,電容C1和C2取20pF,選用不同的電容對震蕩頻率有微調(diào)作用,但石英晶體本身的標定頻率才是單片機振蕩頻率的決定因數(shù)。時鐘電路如圖2.4所示。 圖2.4時鐘電路 時鐘電路中,兩個電容都選擇20 pF電容,電容一端接與晶振相連,另一端接地。選擇的晶振是頻率為12MHZ。此模塊就是產(chǎn)生像時鐘一樣準確的震蕩電路。 2.1.3復(fù)位電路 (1) 手動按鈕復(fù)位 手動按鈕復(fù)位需要人為在復(fù)位輸入端RST上加入高電平。一般采用的辦法是在RST端和正電源Vcc之間接一個按鈕。當人為按下按鈕時,則Vcc的+5V電平就會直接加到RST端。手動按鈕復(fù)位的電路

25、如圖2.5所示。由于人的動作再快也會使按鈕保持接通達數(shù)十毫秒,所以,完全能夠滿足復(fù)位的時間要求。本系統(tǒng)采用的就是手動按鈕復(fù)位,電路連接圖如圖2.5所示。 圖2.5 復(fù)位電路 2.2 電源電路設(shè)計 220V交流電經(jīng)過變壓器降壓成 12V,經(jīng)過橋式整流器整流、C1濾波,成為約 14V直流電,再經(jīng)三端穩(wěn)壓集成電路7805穩(wěn)壓,形成5V穩(wěn)定直流電,作為光電輸入電路、脈沖形成電路(U1-U8 組成電壓比較器) 和計數(shù)與顯示電路的工作電源。電源設(shè)計電路圖如圖2.6所示,電源電路工作原理如圖2.7所示。 圖2.6 電源電路 220V交流電 橋式整流 濾波 5V直流電輸

26、出 7805穩(wěn)壓模塊 圖2.7電路工作原理圖 2.3 溫度采集電路 2.3.1 DS18B20芯片簡介 DS18B20是由美國DALLAS公司生產(chǎn)的單線數(shù)字溫度傳感器芯片。與傳統(tǒng)的熱敏電阻有所不同,DS18B20可直接將被測溫度轉(zhuǎn)化為串行數(shù)字信號。通過編程,DS18B20可以實現(xiàn)9~12位的溫度讀數(shù)。信息經(jīng)過單線接口送入DS18B20或從DS18B20送出,因此從微處理器到DS18B20僅需連接一條信號線和地線。讀、寫和執(zhí)行溫度變換所需的電源可以由數(shù)據(jù)線本身提供,而不需要外部電源。 2.3.2 DS18B20的主要特點 (1)采用單線技術(shù),與單片機通信只需一個引腳;

27、 (2)通過識別芯片各自唯一的產(chǎn)品序列號從而實現(xiàn)單線多掛接,簡化了分布式溫度檢測的應(yīng)用; (3)實際應(yīng)用中不需要外部任何器件即可實現(xiàn)測溫; (4)可通過數(shù)據(jù)線供電,電壓的范圍在3~5.5V; (5)不需要備份電源; (6)測量范圍為-55~+125℃,在-10~+85℃范圍內(nèi)誤差為0.5℃; (7)數(shù)字溫度計的分辨率用戶可以在9位到12位之間選擇,可配置實現(xiàn)9~12位的溫度讀數(shù); (8)將12位的溫度值轉(zhuǎn)換為數(shù)字量所需時間不超過750ms; (9)用戶定義的,非易失性的溫度告警設(shè)置,用用戶可以自行設(shè)定告警的上下限溫度。 2.3.3 DS18B20的引腳功能 DS18B20的

28、引腳如圖2.8所示。 圖2.8 DS18B20引腳圖 DS18B20功能如表2.2所示。 表2.2 DS18B20引腳功能表 引腳PR35 符號 說明 1 GND 地 2 DQ 單線運用的數(shù)據(jù)輸入/輸出引腳 3 VCC 可選VCC引腳 2.3.4 溫度采集電路圖 溫度測量系統(tǒng)主要運用了DS18B20和AT89C51。如何使兩者連接實現(xiàn)功能是溫度測量電路的主要設(shè)計目的。 在硬件上,DS18B20與單片機的連接有兩種方式,一種是VCC接外部電源,GND接地,I/O與單片機I/O線相連;另一種是用寄生電源供電,此時UDD、GND接地,I/O接單片機I/O,內(nèi)部

29、寄生電源I/O口線要接5千歐左右的上拉電阻。這里采用的是第一種連接方式,如圖2.10所示 圖2.10 溫度采集電路 2.4 模數(shù)轉(zhuǎn)換 2.4.1 A/D轉(zhuǎn)換器的基本原理 模數(shù)轉(zhuǎn)換器即A/D轉(zhuǎn)換器,或簡稱ADC,是用來把模擬電壓量u1轉(zhuǎn)換成為與它成比例的二進制數(shù)字量Dn的電路。A/D轉(zhuǎn)換包括量化和編碼兩個過程。所謂量化就是把幅值可連續(xù)變化的電壓轉(zhuǎn)化成為所規(guī)定的單位量化電壓的整數(shù)倍。編碼就是把量化的結(jié)果用代碼表示出來。 既然輸入電壓的幅值是連續(xù)變化的,它的幅值不一定是其量化單位的整數(shù)倍,所以量化過程不可避免會引入誤差,這種誤差叫量化誤差。 為了把一個變化范圍0--0.7V的模擬信號

30、轉(zhuǎn)換為3位二進制數(shù)碼,首先把0.7V分成8個離散電平,這8個離散電平為0、0.1V、…0.7V。沒相鄰離散電平的差值相等,都是一個量化單位,為0.1V。這個過程就叫量化。量化過程實際上就是用有限的量化值代替模擬量的過程。為了對量化候的信號進行處理,還應(yīng)該把量化的結(jié)果用二進制代碼獲其他形式表示,這個過程就叫編碼。 模數(shù)轉(zhuǎn)換器最重要的參數(shù)是轉(zhuǎn)換的精度,通常用輸出的數(shù)字信號的位數(shù)的多少表示。轉(zhuǎn)換器能夠準確輸出的數(shù)字信號的位數(shù)越多,表示轉(zhuǎn)換器能夠分辨輸入信號的能力越強,轉(zhuǎn)換器的性能也就越好。 A/D轉(zhuǎn)換器的主要技術(shù)指標: (1)分辨率:用二進制表示,位數(shù)越高,轉(zhuǎn)換精度越大。 (2)相對精度:理

31、想下是一條直線,各個轉(zhuǎn)換點偏離理想特性的誤差。 (3)轉(zhuǎn)換速度:指完成一次轉(zhuǎn)換所需時間。 2.4.2 ADC0809A/D轉(zhuǎn)換器芯片 ADC0809是CMOS工藝,采用逐次逼近法的8位、A/D轉(zhuǎn)換芯片28引腳雙列直插式封裝,片內(nèi)除A/D轉(zhuǎn)換部分外還有多路模擬開關(guān)。多路開關(guān)有8路模擬量輸入端,以及8路模擬量分時輸入,共用一個A/D轉(zhuǎn)換器進行轉(zhuǎn)換。 (1)ADC0809的內(nèi)部邏輯結(jié)構(gòu) 由圖2.11可知,ADC0809由一個8路模擬開關(guān)、一個地址鎖存與譯碼器、一個A/D轉(zhuǎn)換器和一個三態(tài)輸出鎖存器組成。多路開關(guān)可選通8個模擬通道,允許8路模擬量分時輸入,共用A/D轉(zhuǎn)換器進行轉(zhuǎn)換。三態(tài)輸出鎖

32、器用于鎖存A/D轉(zhuǎn)換完的數(shù)字量,當OE端為高電平時,才可以從三態(tài)輸出鎖存器取走轉(zhuǎn)換完的數(shù)據(jù)。ADC0809的內(nèi)部邏輯結(jié)構(gòu)如圖2.11所示。 圖2.11 ADC0809的內(nèi)部邏輯結(jié)構(gòu)圖 (2)ADC0809引腳結(jié)構(gòu) ADC0809引腳結(jié)構(gòu)圖如圖2.11所示。 D7-D0:8位數(shù)字量輸出引腳。 IN0-IN7:8位模擬量輸入引腳。 VCC:+5V工作電壓。 GND:地。 REF(+):參考電壓正端。 REF(-):參考電壓負端。

33、 START:A/D轉(zhuǎn)換啟動信號輸入端。 ALE:地址鎖存允許信號輸入端。 (以上兩種信號用于啟動A/D轉(zhuǎn)換) A、B、C:地址輸入線。 EOC:轉(zhuǎn)換結(jié)束信號輸出引腳,開始轉(zhuǎn)換時為低電平,當轉(zhuǎn)換結(jié)束為高電平。 OE:輸出允許控制端,用以打開三態(tài)數(shù)據(jù)輸出鎖存器。 CLK:時鐘信號輸入端(一般為500KHz)。 ADC0809對輸入模擬量要求:信號單極性,電壓范圍是0-5V,若信號太小,必須進行放大;輸入的模擬量在轉(zhuǎn)換過程中應(yīng)該保持不變,如若模擬量變化太快,則需在輸入前增加采樣保持電路。 地址輸入和控制線:4條

34、 ALE為地址鎖存允許輸入線,高電平有效。當ALE線為高電平時,地址鎖存與譯碼器將A,B,C三條地址線的地址信號進行鎖存,經(jīng)譯碼后被選中的通道的模擬量進轉(zhuǎn)換器進行轉(zhuǎn)換。A,B和C為地址輸入線,用于選通IN0-IN7上的一路模擬量輸入。通道選擇表如表2.3所示。 表2.3 8位模擬開關(guān)功能表 ADDC ADDB ADDA 輸入通道號 0 0 0 IN0 0 0 1 IN1 0 1 0 IN2 0 1 1 IN3 1 0 0 IN4 1 0 1 IN5 1 1 0 IN6 1 1 1 IN7 2.5 液晶顯示器LM0

35、16L顯示模塊 2.5.1液晶顯示器LM016L結(jié)構(gòu)功能介紹 液晶顯示器是一種將液晶顯示器件、連接器件、集成電路、PCB線路板、背光源,結(jié)構(gòu)器件裝配在一起的組件。LM016L液晶模塊采用HD44780控制器。HD44780具有簡單而功能較強的指令集,可以實現(xiàn)字符移動、閃爍等功能。HD44780控制器由兩個8位寄存器、指令寄存器(IR)和數(shù)據(jù)寄存器(DR)、忙標志(BF)、顯示數(shù)據(jù)RAM(DDRAM)、字符發(fā)生器ROM(CGROM)、字符發(fā)生器RAM(CGRAM)、地址計數(shù)器(AC)構(gòu)成。 IR用于寄存指令碼,只能寫入不能讀出;DR用于寄存數(shù)據(jù),數(shù)據(jù)由內(nèi)部操作自動寫入DDRAM和CGRAM

36、,或者暫存從DDRAM和CGRAM讀出的數(shù)據(jù)。BF為1時,液晶模塊處于內(nèi)部處理模式,不響應(yīng)外部操作指令和接受數(shù)據(jù)。 DDRAM用來存儲顯示的字符,能存儲80個字符碼。 CGROM由8位字符碼生成5 x 7點陣字符160種和510點陣字符32種,8位字符編碼和字符的對應(yīng)關(guān)系。 CGRAM是為用戶編寫特殊字符留用的,它的容量僅64字節(jié)??梢宰远x8個57點陣字符或者4個510點陣字符。 AC可以存儲DDRAM和CGRAM地址,如果地址碼隨指令寫入IR,則IR自動把地址碼裝入AC,同時選擇DDRAM或者CGRAM單元。LMO16L液晶模塊的引腳功能見下表2.4所示。 表2.4:LM016L

37、液晶模塊的引腳功能 引腳號 名稱 電平 功能描述 1 Vss 地 2 VDD 電源 3 VEE 亮度調(diào)節(jié) 4 RS 控制指令位 H:數(shù)據(jù)線上為數(shù)據(jù)信號 L:數(shù)據(jù)線上為指令信號 5 RW 讀寫指令位 H:讀數(shù)據(jù)模式 L:寫數(shù)據(jù)模式 6 E 使能信號 使能信號端 7~14 DB0~DB7 數(shù)據(jù)線 數(shù)據(jù)線 2.5.2 LM016L液晶顯示電路 P2.0~P2.7與D0~D7相連,P3. 0~P3.2分別于三個使能端RS、RW、E相連,來控制LMO16L的顯示。如圖2.12所示,為LCD顯示連接電路圖。其為開機顯示的初始

38、狀態(tài)。 圖2.12 LCD顯示連接電路圖 2.6 系統(tǒng)總體硬件原理圖 電路原理圖用Protues軟件繪制而成。首先對硬件系統(tǒng)AT89C51,引腳TXAL1、TXAL2與晶振時鐘電路相連,RST引腳接復(fù)位電路。一起構(gòu)成了單片機的最小系統(tǒng)。P2.0~P2.7與D0~D7相連,P3. 0~P3.2分別于三個使能端RS、RW、E相連,來控制LMO16L的顯示。P1.7連接的是溫度采集電路,采用傳感器DS18B20來進行溫度采集,將采集到的溫度轉(zhuǎn)換數(shù)字,由LMO16L液晶顯示屏顯示。系統(tǒng)原理圖如圖2.13所示: 圖2.13 系統(tǒng)硬件電路圖 3 系統(tǒng)軟件設(shè)計 系統(tǒng)程序主要包括主程序,

39、讀出溫度子程序,溫度轉(zhuǎn)換命令子程序,計算溫度子程序,顯示數(shù)據(jù)刷新子程序。 3.1軟件流程圖 3.1.1 主程序流程圖 主程序的主要功能是負責溫度的實時顯示、讀出并處理DS18B20的測量的當前溫度值,其程序流程見圖3.1所示。 3.1.2溫度轉(zhuǎn)換命令子程序流程圖 溫度轉(zhuǎn)換命令子程序主要是發(fā)溫度轉(zhuǎn)換開始命令,當采用12位分辨率時轉(zhuǎn)換時間約為750ms,在本程序設(shè)計中采用1s顯示程序延時法等待轉(zhuǎn)換的完成。溫度轉(zhuǎn)換命令子程序流程圖如圖3.2所示 發(fā)DS18B20復(fù)位命令 發(fā)跳過ROM命令 發(fā)溫度轉(zhuǎn)換開始命令 結(jié)束 開始 初始化 讀度溫度

40、 計算溫度及數(shù)據(jù)處理 LCD顯示 圖3.1 主程序流程圖 圖3.2溫度轉(zhuǎn)換流程圖 3.2各子程序源代碼 3.2.1 LCD的C語言源代碼 void delayNOP() { _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); } bit lcd_busy() { bit result; lcd_rs=0; lcd_rw=1; lcd_en=1; delayNOP(); result

41、=(bit)(P2&0x80); lcd_en=0; return(result); } void lcd_wdat(uchar date) { while(lcd_busy()); lcd_rs=1; lcd_rw=0; lcd_en=0; P2=date; delayNOP(); lcd_en=1; delayNOP(); lcd_en=0; delayNOP(); } void reset() { uchar i;

42、 lcd_wcmd(0x38); lcd_wcmd(0x0c); lcd_wcmd(0x06); lcd_wcmd(0x01); lcd_wcmd(0x00|0x80); for(i=0;i<16;i++) { lcd_wdat(dis1[i]); delayNOP(); } lcd_wcmd(0X40|0x80); for(i=0;i<5;i++) { lcd_wdat(dis2[i]);

43、 delayNOP(); } } 3.2.2 DS18B20 C語言源代碼 ds18b20_rst() { dq=1; delay(8); dq=0; delay(90); dq=1; delay(14); x=dq; delay(20); return (x); } ds18b20_rd() { uchar dat=0; uchar i; for(i=0;i<8;i++)

44、{ dq=0; dat>>=1; dq=1; if(dq) dat=dat|0x80; delay(10); } return(dat); } void ds18b20_wr(uchar com) { uchar i; for(i=0;i<8;i++) { dq=0; dq=com&0x01; delay(10); dq=1; c

45、om>>=1; } delay(4); } read_temp() { int tt; bit c; ds18b20_rst(); ds18b20_wr(0xcc); ds18b20_wr(0x44); ds18b20_rst(); ds18b20_wr(0xcc); ds18b20_wr(0xbe); temp_data[0]=ds18b20_rd(); temp_data[1]=ds18b20_rd();

46、temp_data[1]<<=4; c=temp_data[1]&0x80; if(c==0) { symbol=0; t=((temp_data[0])+(temp_data[1]<<=4))*0.0625; } if(c==1) { symbol=1; tt=~((temp_data[0])+(temp_data[1]<<=4))+1; t=tt*0.0625; } return(t); }

47、 void ds18b20_disp() { uchar flagdat; disdata[0]=t/100+0x30; disdata[1]=t%100/10+0x30; disdata[2]=t%10+0x30; disdata[4]=temp_data[0]&0x0f; disdata[3]=ditab[disdata[4]]+0x30; if(symbol==0) flagdat=0x20;

48、 else flagdat=0x2d; if(disdata[0]==0x30&&disdata[1]==0x30) { disdata[0]=0x20; disdata[1]=0x20; } if(disdata[0]==0x30&&disdata[1]!=0x30) disdata[0]=0x20; 4 系統(tǒng)仿真及調(diào)試 4.1仿真及調(diào)試 (1)安裝keil 與 proteus。 (2)軟件調(diào)試,在Keil軟件上輸

49、入程序,進行編譯、連接。 圖4.1 keil軟件下編寫程序 (3)在proteus進行硬件仿真。 (4)仿真結(jié)果:運行程序,LCD首先顯示的溫度數(shù)據(jù)與溫度傳感器DS18B20的數(shù)據(jù)一致,如圖4.2所示。按下復(fù)位鍵,顯示當時測量的室內(nèi)溫度:“weather forecast tem:41.0”;重復(fù)按下復(fù)位鍵鍵,LCD刷新測量的溫度值。 圖4.2 仿真結(jié)果電路圖 4.2 實物過程與步驟 (1)查找相關(guān)元器件的使用及連接方式。如DS18B20與AT89C51的連接方式。 (2)對系統(tǒng)原理圖進行調(diào)試與分析。 (3)領(lǐng)取元器件和耗材。 (4)按照元器件清單找出元器件,確認

50、元器件質(zhì)量和參數(shù)。 (5)完成在通用電路板上元器件的布置和焊接。 (6)將程序?qū)懭雴纹瑱C并裝到電路板上,接通5V電源在電路板上電調(diào)試。 4.3 實物結(jié)果與分析 (1)實物圖結(jié)果分析: 如實物圖所示本次設(shè)計的基于單片機89C51的溫度測量儀實物圖,其顯示端和測量端通過一系列的元件連接起來。為了驗證數(shù)據(jù)轉(zhuǎn)換的可靠性,設(shè)計時安裝了LCD顯示器,在測試中通過觀察顯示端與測量端是否顯示相同的溫度值來檢驗數(shù)據(jù)傳送的可靠性。圖中為實物圖,測得現(xiàn)場的環(huán)境溫度為29度,與實際情況相符,驗證了測量端電路能夠有效工作,同時顯示端溫度值與測量端溫度值保持一致,證明了數(shù)據(jù)傳送的可靠性,此外,當按下復(fù)位鍵時,顯

51、示端的溫度值和測量端的溫度值同時發(fā)生改變,DS18B20傳感器則重新測量溫度,重復(fù)上一次的系統(tǒng)信號轉(zhuǎn)換,LCD顯示器重新顯示當前值。此設(shè)計在環(huán)境惡劣的情況下依然可以觀察到環(huán)境溫度的變化,尤其是需要測惡劣環(huán)境下溫度時,避免了人員直接置身其中,保障了其安全性。 (2)實驗操作結(jié)果列表如下 表4.1 實驗操作項目表 操作項目 實驗操作 LCD溫度顯示 操作項目一 不做任何操作顯示當前室溫 30攝氏度 操作項目二 用電風扇進行降溫操作 28攝氏度 操作項目三 用加熱爐進行升溫操作 38攝氏度 5 設(shè)計總結(jié)及心得 在為期兩周的單片機課程設(shè)計中,我們要

52、設(shè)計一個溫度測量系統(tǒng)。軟件使用Keil軟件進行仿真調(diào)試。硬件使用單片機仿真器、編程器、實驗儀三合一綜合開發(fā)平臺上的DS18B20數(shù)字溫度采集模塊和LMO16L液晶顯示模塊。唐博士首先給我們詳細講解了芯片的功能和工作原理,并給了一份參考程序。在機房進行實驗時,我們也遇到了很多困難,例如在做實物圖時我們將溫度傳感器的引腳接反了,經(jīng)過再三細心檢查和查資料最終才更正過來。在對參考程序進行仿真時,結(jié)果也出了問題。然后,我思考設(shè)計要求對程序進行修改,初次修改沒有成功,我詢問了老師,老師給我講解了思路。經(jīng)過再三的請教、修改程序,反復(fù)調(diào)試,最后成功了,心里非常高興,這次是我獨自思考,獨立完成的,也使我對整個程

53、序有了更深的理解。 通過這次的課程設(shè)計作品的制作讓我對單片機的理論有了更加深入的了解,同時在具體的制作過程中我們發(fā)現(xiàn)現(xiàn)在書本上的知識與實際的應(yīng)用存在著不小的差距,書本上的知識很多都是理想化后的結(jié)論,忽略了很多實際的因素,或者涉及的不全面,可在實際的應(yīng)用時這些是不能被忽略的,我們不得不考慮這方的問題,這讓我們無法根據(jù)書上的理論就輕易得到預(yù)想中的結(jié)果,有時結(jié)果甚至很差別很大。通過這次實踐使我更深刻的體會到了理論聯(lián)系實際的重要性,我們在今后的學習工作中會更加的注重實際,避免稱為只會紙上談兵。 參考文獻: [1]樓然苗. 單片機課程設(shè)計指導[M

54、].北京:北京航空航天大學出版社,2007:35—47. [2]張克農(nóng).數(shù)字電子技術(shù)基礎(chǔ)[M].北京:高等教育出版社,2003:255—271. [3]胡宴如.模擬電子技術(shù)基礎(chǔ)[M].北京:高等教育出版社,2001:91—111. [4]李朝青.單片機原理及接口技術(shù)[M].北京:北京航空航天大學出版社,1999:17—277. [5]謝自美.電子線路設(shè)計、實驗、測試[M].武漢:華中理工大學出版社,2003:23—57. [6]康華光.電子技術(shù)基礎(chǔ)[M].北京:高等教育出版社,2002:13—34. [7]李強.數(shù)字電子技術(shù)基礎(chǔ)教程[M].北京:電子工業(yè)出版社,2002:25—45

55、. [8]趙志杰.集成電路應(yīng)用識圖方法[M].北京:機械工業(yè)出版社,2003:10—31. 附錄Ⅰ: #include #include #include #define uchar unsigned char #define uint unsigned int sbit lcd_rs=P3^0; sbit lcd_rw=P3^1;

56、 sbit lcd_en=P3^2; sbit dq=P1^7; uchar code dis1[]={"Weather forecast"}; uchar code dis2[]={"temp:"}; temp_data[]={0x00,0x00}; disdata[]={0x00,0x00,0x00,0x00,0x00}; uchar code ditab[16]={0x00,0x01,0x01,0x02,0x03,0x03,0x04,0x04, 0x05,0x06,0x06,0x07,0x08,0x08,0x09,0x09};

57、bit x; uint t; uchar symbol; /*******************************************************/ void delay(uint ms) { while(ms--); } void delayNOP() { _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); } /***************************************************/ /*檢查LCD忙狀態(tài) */

58、 /*lcd_busy為1時,忙,等待。 lcd-busy為0時,閑,可寫指令與數(shù)據(jù)。 */ /**************************************************/ bit lcd_busy() { bit result; lcd_rs=0; lcd_rw=1; lcd_en=1; delayNOP(); result=(bit)(P2&0x80); lcd_en=0; return(result); } /*寫指令數(shù)據(jù)到LCD */ /*RS=L,RW=L,E=高脈沖,D0-

59、D7=指令碼。 */ /************************************************/ void lcd_wcmd(uchar cmd) { while(lcd_busy()); lcd_rs=0; lcd_rw=0; lcd_en=0; P2=cmd; delayNOP(); lcd_en=1; delayNOP(); lcd_en=0; delayNOP(); } /***********************************

60、**************/ /*寫顯示數(shù)據(jù)到LCD */ /*RS=H,RW=L,E=高脈沖,D0-D7=數(shù)據(jù)。 */ /***********************************************/ void lcd_wdat(uchar date) { while(lcd_busy()); lcd_rs=1; lcd_rw=0; lcd_en=0; P2=date; delayNOP(); lcd_en=1; delayNOP(); lcd_en=0;

61、 delayNOP(); } /* LCD初始化設(shè)定 */ /*****************************************************/ void reset() { uchar i; lcd_wcmd(0x38); //16*2顯示,5*7點陣,8位數(shù)據(jù) lcd_wcmd(0x0c); //顯示開,關(guān)光標 lcd_wcmd(0x06); //移動光標 lcd_wcmd(0x01); //清除LCD的顯示內(nèi)容 /* 設(shè)定顯示位置 */ /****************

62、************************************/ lcd_wcmd(0x00|0x80); //數(shù)據(jù)指針=80+地址變量 /*自定義字符寫入CGRAM */ /****************************************************/ for(i=0;i<16;i++) { lcd_wdat(dis1[i]); delayNOP(); } /*us級延時函數(shù) */ /***********************************

63、*****************/ lcd_wcmd(0X40|0x80); for(i=0;i<5;i++) { lcd_wdat(dis2[i]); delayNOP(); } } /*初始化ds1820 */ /**********************************************/ ds18b20_rst() { dq=1; //拉高總線 delay(8); //稍做延時 dq=0; //DQ復(fù)位

64、 delay(90); //精確延時 大于 480us dq=1; delay(14); x=dq; //X=0則初始化成功 X=1則初始化失敗 delay(20); return (x); //返回信號,0=X,1= no X } /* 讀一個字節(jié) */ /***********************************************/ ds18b20_rd() { uchar dat=0; uchar i; for(i=0;i<8;i

65、++) { dq=0; // 給脈沖信號 dat>>=1; dq=1; // 給脈沖信號 if(dq) dat=dat|0x80; delay(10); } return(dat); } /* 寫一個字節(jié) */ /***********************************************/ void ds18b20_wr(uchar com) { uchar i; for(

66、i=0;i<8;i++) { dq=0; dq=com&0x01; delay(10); dq=1; com>>=1; } delay(4); } /* 讀取溫度 */ /**********************************************/ read_temp() { int tt; bit c; ds18b20_rst(); ds18b20_wr(0xcc); // 跳過讀序號列號的操作 ds18b20_wr(0x44); // 啟動溫度轉(zhuǎn)換 ds18b20_rst(); ds18b20_wr(0xcc); //跳過讀序號列號的操作 ds18b20_wr(0xbe); //讀取溫度寄存器 temp_data[0]=d

展開閱讀全文
溫馨提示:
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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔

相關(guān)搜索

關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!