久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 15379|回復: 9
打印 上一主題 下一主題
收起左側

基于MSP430單片機的溫度控制系統設計與實現

  [復制鏈接]
跳轉到指定樓層
樓主
ID:361293 發表于 2018-6-28 20:03 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
實習實訓課程指導教程
——《單片機應用實踐》
——《電子設計與應用實踐》

基于單片機的溫度控制系統
設計與實現


     2015年9月

整個系統通過單片機MSP430G2553控制DS18B20讀取溫度,采用LCD1602顯示,溫度傳感器DS18B20與單片機之間通過串口進行數據傳輸.MSP430系列單片機具有超低功耗,且外圍的整合性高,DS18B20只需一個端口即可實現數信,連接方便。

目錄

1 項目要求
2項目分析和系統設計
3 硬件設計
3.1單片機選型模塊
3.2溫度測量模塊
3.3 LCD液晶顯示模塊
3.4系統電源
4 軟件設計
4.1主程序
4.2溫度測量子程序
5 系統調試
5.1硬件調試
5.2程序調試
5.3聯合調試
6項目演練
7項目總結
附錄1電路設計原理圖(參考)
附錄2  PCB設計原理圖(參考)
附錄3 關鍵程序(參考)
基于單片機的溫度控制系統設計與實現
1 項目要
此系統的主要功能:
● 可以測量一定攝氏度內的溫度;
● 用液晶顯示溫度,精確到小數點后兩位;
● 利用溫度傳感器(DS18B20)測量某一點環境溫度;
● 至少有高、低兩路限溫控制輸出接口控制外部電路。
● 高、低兩路限溫控制點可在一定范圍內獨立設置,通過發光二極管模擬顯示其控制狀態輸出。
● 當溫度達到高、低限溫控制點發光報警;
● 提高溫度測量精度,使分辨率不低于0.10C;
● 可以通過按鍵設置高、低兩路限溫控制點。
2項目分析和系統設計
此數字溫度控制系統硬件部分利用了MSP430G2553芯片內部的ADC10功能配置,結合DS18B20溫度傳感器來測量環境中的溫度,將所測數值在LCD1602串行顯示;軟件部分利用CCS軟件來進行編譯,并且根據實際需要來完成各模塊程序的編寫,再進行復雜的調試。
3 硬件設計
該溫度控制系統在MSP430G2553芯片的功能配置和協調下,與其他模塊搭建來完成。由MSP430控制溫度傳感器DS18B20實時測量環境中的溫度,然后在LCD5110顯示出來,當該溫度超過了設定的最大或者最小溫度值時,LED開始報警。


                       輸入輸入


3.1系統結構框圖
3.1單片機選型模塊
基于名為Launch Pad,MSP-EXP430G2低成本實驗板是一款適用于TI最新MSP430G2XXX犀利產品的完整開發解決方案。基于USB的集成型仿真器可提供全系列MSP430G2XX器件開發應用所必備的所有軟件、硬件。Lunch Pad具有集成的DIP目標插座,可支持多達20個引腳,從而使MSP430Value Line器件能夠輕松插入LaunchPad實驗板電路。
3.2單片機選型模塊圖
3.2溫度測量模塊
溫度測量傳感器采用DALLAS公司DS18B20的單總線數字化溫度傳感器,測溫范圍為-55℃~125℃,可編程為9位~12位A/D轉換精度,測溫分辨率達到0.0625℃,采用寄生電源工作方式,CPU只需一根口線便能與DS18B20通信,占用CPU口線少,可節省大量引線和邏輯電路。接口電路如圖3.3所示。
3.3 DS18B20測量電路圖
3.3 LCD液晶顯示模塊
LCD液晶顯示模塊采用LCD1602型號,性價比高,LCD1602可以顯示32個字符,口相對簡單。1602共16個管腳,但是編程用到的主要管腳不過三個,分別為:RS(數據命令選擇端),R/W(讀寫選擇端),E(使能信號);以后編程便主要圍繞這三個管腳展開進行初始化,寫命令,寫數據。
以下具體闡述這三個管腳:
RS為寄存器選擇,高電平選擇數據寄存器,低電平選擇指令寄存器。
R/W為讀寫選擇,高電平進行讀操作,低電平進行寫操作。
E端為使能端,后面和時序聯系在一起。
除此外,D0~D7分別為8位雙向數據線。
其接線如圖3.4所示
3.4 LCD顯示電路
3.4系統電源
整個電路采用USB電源,為所有的USB 外設提供了單一的易于使用的標準的連接類型,簡化了USB 外設的設計。整個的USB 的系統只有一個端口和一個中斷節省了系統資源。
4 軟件設計4.1主程序
本系統整體工作主要由單片機程序控制實現,其工作過程為:由MSP430控制溫度傳感器DS18B20實時測量環境中的溫度,然后在LCD1602顯示出來,當該溫度超過了設定的最大或者最小溫度值時,LED開始報警。
程序流程圖如下:


4.2 溫度測量子程序圖
5 系統調試5.1硬件調試
主要根據系統框圖和硬件原理設計進行原理的繪制、各參數的設置、電路板的制作,以及元器件的焊接等。具體如下:
5.1.1 各單元電路,確認各單元電路鏈接無誤,尤其是關鍵元器件,一定要接保護電阻。
(1)在樣機加電之前,首先用萬用表等工具,根據硬件電器原理圖和裝配圖仔細檢查樣機線路的正確性,并核對元器件的型號、規格和安裝是否符合要求。應特別注意電源的走線,防止電源之間的短路和極性錯誤,電源連接是否正確測試LCD顯示屏是否有輸出,LCD顯示屏上的溫度的顯示是否符合;
(2)運用MSP430單片機中簡單的I/O口功能,優異在檢查硬件是否正常工作時先檢測單片機本身的I/O口設置,可以先不連接外部電路,使用單片機本身I/O口,測試程序是否正確,以免在軟件調試中引起不必要的麻煩。
5.1.2 PCB設計注意事項:
在進行PCB設計時,必須遵守PCB設計的一般原則,并注意其要求。
(1)此系統采用的電阻和電容較多,注意在畫PCB時注意各器件的封裝,對照使用的實物選取封裝,保證焊接硬件的正確性。
(2)此系統采用光敏電阻及較大的極性電容,介于成本的原因,采用的封裝是是直插式的,在PCB設計時特別注意
(3)根據電路的模塊布局,這樣便于在出現問題時進行檢查,尤其注意MSP430單片機系統中I/O口是否設置正確。
5.2程序調試
此程序設計中僅使用了MSP430單片機系統中I/O口資源,調試過程中,主要使用寄存器窗口,以及設置斷點,觀察系統程序主要實現對采集來的模擬信號進行模數轉換,并對數字信號進行液晶顯示,所以程序有采集模擬信號、DA轉換和液晶顯示三部分;在中斷子程序設置斷點,判斷運行是否正確。在調試過程中,由局部到整體,判斷程序可能出現的問題,認真分析邏輯,實現要求的功能,在簡化程序。

5.2.1 CCSV5的打開步驟
  • 右鍵Code Composer Studio v5快捷方式,左鍵打開。會出現如圖5.2所示界面:
5.1 Code Composer Studio v5軟件加載界面
(2)加載完畢之后會有如圖5.3所示界面出現:
5.2 Code Composer Studio v5軟件打開界面
(3)選擇Project->Import Existing CCS Eclipse Project,導入程序文件夾中的工程;具體操作如圖5.4:
5.3 Code Composer Studio v5程序導入步驟圖
5.2.2CCSV5的使用步驟               
  (1)CCS新建工程:
①首先打開CCS并確定工作區間,然后選擇project-->New CCS Project
彈出圖5.5對話框。,在簡化程序。
5.4創建新工程主界面
②在project name中輸入新建工程名稱turang。
③在Device部分中,Variant中選擇MSP430G××× Family,芯片選擇MSP430G2553,其余選擇默認。
④選擇空工程,然后單擊Finish,完成新工程的創建。
⑤創建工程如圖5.6所示:
5.5ProjectExplorer界面
⑥然后選擇File-->New-->Source File,新建一個C文件,并且命名為turang.C,并在工程名上右擊選擇Add Files,創建工程如圖5.7:
5.6 新建工程界面
(2)CCS調試:
①調試之前,先確定目標配置文件是否已經創建并且配置正確。
②首先進行工程編譯:選擇Project-->Build Project,編譯目標工程。編譯結果如圖5.8所示,表示沒有錯誤,可以進行下載調試,如果有錯誤,知道調試到沒錯誤為止。
5.7工程調試結果
③單擊運行圖標運行程序,可以觀察顯示的結果。在程序調試的過程中,也可通過設置斷點來調試程序,選擇需要設置斷點的位置,右擊鼠標選擇Breakpoints-->Breakpoint,斷點設置成功后顯示圖標可以通過雙擊該圖標來取消該斷點。程序運行的過程中還可以通過單步調試按鈕進行調試。
5.3聯合調試
整個系統的軟硬件都完成后,需要進行聯合調試,主要是針對系統設定的功能能否完成和完善進行調試。將電路線連接好,接入3V電源,LCD顯示屏亮,且測得當前溫度,如果當前溫度超過給定的量程范圍內LED等就會亮,此時就是發出警報,提示當前溫度已超出給定溫度范圍。超出給定的溫度(35°)LED燈就會亮,否則LED燈就會滅,如下圖。
5.8聯合調試圖
1



6項目演練
對于本設計,尚可以進一步進行如下設想:
使用按鍵控制設定的溫度的高低,設計思路如下:
系統主要包括16位單片機MSP430、溫度采集模塊DS18B20、液晶顯示模塊LCD1602、鍵盤控制和執行機構等幾個部分。設計思路如下:
系統總體方案設計框圖如下:



                       輸入輸入


6.1系統結構框圖


7項目總結
此系統單片機具有集成度高,通用性好,功能強,特別是體積小,重量輕,耗能低,可靠性高,抗干擾能力強和使用方便等獨特優點,在數字、智能化方面有廣泛的用途。430與51的最大區別在于430有很多的寄存器,較之51程序較為復雜。雖然與51單片機的組成都是差不多但還有很大的區別,就拿本次設計還說,雖說是之前是了解過還改用msp430設計還是有一點的難度,對于51單片機I/O口多,而現在我們用的msp430雖說是功能多,但編程起來還是很困難,可能是我知識的欠缺,之前所學的可能是最簡單的,現在學習了這個16位的單片機還是有一點難度,不過我們還需多學習。
1



附錄1電路設計原理圖(參考)
1



附錄2  PCB設計原理圖(參考)

附錄3 關鍵程序(參考)
  1. 主程序:
  2. void main()
  3. {
  4.                 WDTCTL=WDTPW+WDTHOLD;         //關閉看門狗
  5.                 BCSCTL1=CALBC1_1MHZ;          //BCSCTL1 Calibration Data for 1MHz
  6.                 DCOCTL=CALDCO_1MHZ;           //DCOCTL  Calibration Data for 1MHz
  7.                 BCSCTL2=SELM_1+DIVM_0;        //設置MCLK為1MHZ
  8.               // __enable_interrupt();      // 中斷控制開啟

  9.                 P1SEL&=0X00;            //設置P1口為I/O模式
  10.                 P2SEL&=0X00;            //設置P2口為I/O模式
  11.                 P1DIR|=0XFF;            //設置P1口為輸出模式
  12.                 P2DIR|= (BIT0+BIT1+BIT2+BIT4);            //設置P2口為輸出模式

  13.                 P1OUT&= 0X00;              //P1口清零
  14.                 P2OUT&=~(BIT0+BIT1+BIT2);  //P2.0 2.1 2.2 清零
  15.                 init();
  16.                 DS18B20_Init();
  17.                 //_EINT();

  18.                 while(1)
  19.                 {
  20.                               DS18B20_ReadTemp();
  21.                               xianshi();
  22.                               baojing ();
  23.                 }
  24. }


  25. 顯示子程序:
  26. void xianshi()
  27. {
  28.               float n;              unsigned long value;
  29.               n=Temper*1000;
  30.               value = (unsigned long int)n;

  31.               temp_display[1] = digit[value/100000];          //100位
  32.               value = value%100000;

  33.               temp_display[2] = digit[value/10000];           //10位
  34.               value = value%10000;

  35.               temp_display[3] = digit[value/1000];            //1位
  36.               value = value%1000;

  37.               temp_display[5] = digit[value/100];             //0.1位
  38.               value = value%100;

  39.               temp_display[6] = digit[value/10];              //0.01位
  40.               value = value%10;

  41.               temp_display[7] = digit[value/1];               //0.001位
  42. }


  43. 報警子程序:
  44. void baojing ()
  45. {
  46.               t=35;
  47.               if(Temper>t)
  48.               {

  49.                             P2OUT|=BIT4;
  50.                             DispStr(0,0,LCDBuf3);
  51.                             DispStr(0,1,temp_display);
  52.                             Disp1Char(8,1,0XDF);

  53.               }
  54.               else
  55.                             {
  56.                             P2OUT&=~BIT4;
  57.                             DispStr(11,0,"     ");
  58.                             DispStr(0,0,LCDBuf1);
  59.                             DispStr(0,1,temp_display);
  60.                             Disp1Char(8,1,0XDF);

  61.                             }
  62. }


  63. 外延子程序:
  64. //按鍵中斷函數
  65. #pragma vector=PORT2_VECTOR
  66. __interrupt void Port_2(void)
  67.               {


  68.                 if((P2IN&BIT4)==0)
  69.                 {
  70.                               delay_ms(10);
  71.                               if((P2IN&BIT4)==0)
  72.                               {
  73.                                t=t-1;
  74.                               }
  75.                               P2IFG&=~((BIT4+BIT5));
  76.                 }

  77.                 if((P2IN&BIT5)==0)
  78.                 {

  79.                               delay_ms(10);
  80.                               if((P2IN&BIT5)==0)
  81.                               {
  82.                               t=t+1;
  83.                               }
  84.                               P2IFG&=~((BIT4+BIT5));
  85.                 }
  86.                 P2IFG&=~((BIT4+BIT5));
  87.               }
復制代碼

完整的Word格式文檔51黑下載地址:
基于單片機的溫度控制系統設計與實現.docx (1.45 MB, 下載次數: 144)


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏5 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:370204 發表于 2018-7-12 14:57 | 只看該作者
好東西 莫非是石油大學校友?
回復

使用道具 舉報

板凳
ID:440497 發表于 2018-12-5 22:36 | 只看該作者
你好,老哥,這個是我的結課作業,你能告訴我要買什么元器件嗎?謝謝!
回復

使用道具 舉報

地板
ID:491793 發表于 2019-3-16 20:35 | 只看該作者
你好,有完整代碼嗎?
回復

使用道具 舉報

5#
ID:499186 發表于 2019-3-27 15:35 | 只看該作者

你好,有完整代碼嗎?
回復

使用道具 舉報

6#
ID:516895 發表于 2019-4-20 09:32 | 只看該作者
樓主,大佬有完整版嗎?跪求
回復

使用道具 舉報

7#
ID:634706 發表于 2019-12-7 15:30 | 只看該作者
感謝老哥
回復

使用道具 舉報

8#
ID:410729 發表于 2020-2-24 15:38 | 只看該作者
樓主有程序源碼嗎
回復

使用道具 舉報

9#
ID:760639 發表于 2020-5-25 14:46 | 只看該作者
求一份完整版程序
回復

使用道具 舉報

10#
ID:786453 發表于 2020-6-22 15:05 | 只看該作者
樓主,求完整代碼
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 色综合视频 | 日韩一区二区视频 | 国产视频久久 | 久久久精品视 | 中文字幕精品一区久久久久 | 亚洲精品九九 | 一区二区三 | 日日人人 | 欧美精品一区二区三区蜜桃视频 | 国产精品视频一区二区三 | 亚洲精品一区中文字幕乱码 | 亚洲午夜视频在线观看 | 色婷婷av一区二区三区软件 | 超碰97人人人人人蜜桃 | 精品国产免费一区二区三区五区 | 国产午夜精品一区二区三区四区 | 久久国产精品久久国产精品 | 日韩三级精品 | 国产成人精品一区二区三区在线 | 99福利视频| 99免费在线观看 | 国产一区二区电影 | 91精品国产美女在线观看 | 久久久久国产 | 欧美精品一区二区三区蜜桃视频 | 国产三级在线观看播放 | 欧美日韩免费一区二区三区 | 日韩在线免费视频 | 欧美狠狠操 | 亚洲成人99| 黄页网址在线观看 | 一区二区三区高清 | av一级一片 | 日韩免费av | 青青草网| 欧美一区二区在线播放 | 国产乱码精品一区二区三区五月婷 | 欧美日韩精品一区 | 伊人网91 | 午夜色婷婷 | 青青久视频 |