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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

單片機匯編語言溫度控制系統設計程序仿真-智能儀器儀表綜合實訓

[復制鏈接]
跳轉到指定樓層
樓主
這是一個51單片機的溫度控制系統,包括proteu仿真程序、代碼和文檔。

仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)


目錄
一、系統設計第 1 頁
系統總體設計方案第 1 頁                                                                                 
溫度信號采集電路選擇和數據處理第 3 頁
軟件設計第 3 頁
二、單元電路設計第 5 頁
溫度信號采集電路第 5 頁
步進電機電路 第 5 頁
液晶顯示模塊 第 6 頁
晶振復位電路第 7 頁   
三、總結體會第 7 頁
四、參考文獻第 8 頁
附錄:程序清單第 8 頁

一、系統設計(一) 系統總體設計方案
設計框圖如下所示:
圖1  系統總體設計框圖





總電路圖如下:

圖2  系統總電路圖
簡單功能說明:
一個顯示實時溫度的小系統,可以自行設定高溫報警和低溫報警值,實現溫度控制電機帶動外圍器件功能。本系統通過溫度傳感器DS18B20實現對溫度數據的采集,數據處理后顯示到液晶屏上,通過數據處理,溫度值精確度為0.1。

簡單操作方法:
系統上電后液晶顯示實時溫度,通過按鍵可以設定高低溫限定值:
A.按下K1,顯示系統的高低溫限定值;
B.再按K1,進入設定狀態,液晶屏光標閃動提示設定,此時設定高溫限值還是低溫限值可以在
  K1鍵轉換;
C.進入設定狀態后,K2鍵用于值加1,K3鍵用于值減1;
D.設定完后,按鍵K4確認后退出,返回顯示實時溫度!
(二) 溫度信號采集電路選擇和數據處理
方案:采用溫度傳感器DS18B20
美國DALLAS公司的產品可編程單總線數字式溫度傳感器DS18B20可實現室內溫度信號的采集,有很多優點:如直接輸出數字信號,故省去了后繼的信號放大及模數轉換部分,外圍電路簡單,成本低;單總線接口,只有一根信號線作為單總線與MCU連接,且每一只都有自己唯一的64位系列號存儲在其內部的ROM存儲器中,故在一根信號線上可以掛接多個DS18820,便于多點測量且易于擴展.
DS18B20的測溫范圍較大,集成度較高,故選用此方案。
DS18B20內部1,2位寄存器存放實時溫度值,本系統對以上兩寄存器數據處理后精度為0.1;DS18B20第3,4位寄存器分別存放高溫限值和低溫限值,并且DS18B20內部還有EEPROM,因此通過第3,4寄存器與EEPROM的數據交換就能實現對設定后的值進行貯存。
(三) 軟件設計
本實驗中我選用Keil編程平臺.
主程序流程圖:

圖3 主程序流程圖


二、單元電路設計(一) 溫度信號采集電路
圖4 溫度信號采集電路
(二) 步進電機電路
圖5 步進電機電路

(三) 液晶顯示模塊
圖6液晶顯示模塊
(四) 晶振復位電路
圖7 晶振復位電路

三、總結體會

本次設計給我們提供了一個將自己所學的知識應用于實踐的良機,通過了兩個周的設計我學到了很多非常有價值的東西,懂得了如何將理論知識轉化成實際程序的設計;掌握的單片機開發與設計的思路與方案確定;學會了更有效的查找自己所需的資料;同時也意識到了團隊協作的重要性;掌握了硬件與程序設計的一般步驟和方法。這對我們以后的學習和工作的是非常有幫助的。

設計是我們將來必需的技能,這次設計剛好給我們提供了一個應用自己所學知識的機會,從到圖書館和網上查找資料到對硬件與程序模塊的設計對各模塊的調試再到最后整體設計調試,都對我所學的知識進行了檢驗,增強了自信心。

    通過本次設計,我進一步溫習和鞏固了課本的理論知識,對單片機各接口與外部電路之間的連接關系有了更加深刻的理解。同時掌握了Proteus和keil軟件的基本應用。同時,在設計過程中,將理論知識應用于實際應用,增強了理論聯系實際的能力。雖然設計時有時一個問題需要我們花費很長的時間,很煩很累但當我們通過查找資料解決了之后心里很開心很有成就感。同時也使我明白了要將理論運用于實踐還是一種非常重要的能力,要想牢固的掌握所學的知識我們必須將理論與實踐結合起來,用理論來指導實踐,用實踐來驗證理論,增強對理論的理解。不斷地充實自己的理論,提高自己的動手能力。最終完成了整個設計之后,使我更加堅信只要我們努力和采用正確的方法,沒有什么事是我們解決不了的。   

最后,我在這里衷心地感謝所有教給我知識和在設計中給予我幫助的老師們和同學們,是他們給我們的知識才使我們得以順利完成此次設計。



單片機匯編語言源程序如下:
  1. ;-------------------------------------------------
  2. ; 簡單功能說明:一個顯示實時溫度的小系統,可以自行設
  3. ; 定高溫報警和低溫報警值,實現溫度控制電機帶動外圍器
  4. ; 件功能。
  5. ;
  6. ;-------------------------------------------------
  7.         DQ        EQU        P1.7        ;DS18B20控制口
  8.         RS          EQU         P2.4
  9.             RW          EQU         P2.5
  10.             E           EQU         P2.6
  11.             LCD         EQU         P0
  12.         FLAG        EQU        30H        
  13.              GEWEI        EQU        29H
  14.         SHI        EQU        28H
  15.         XIAOSHU        EQU        27H
  16.         TEMP_TL        EQU        20H  ;低溫限值
  17.         TEMP_TH        EQU        21H  ;高溫限值
  18.         TEMPH        EQU        22H  ;溫度高字節
  19.         TEMPL        EQU        23H  ;溫度低字節
  20.         TEMP        EQU        24H
  21.         K1        EQU        P3.0
  22.          K2        EQU        P3.1
  23.         K3        EQU        P3.2
  24.         K4        EQU        P3.3
  25. ;===============================================

  26. MAIN:        MOV        TEMP_TH,#25
  27.         MOV        TEMP_TL,#01
  28.         ACALL         INIT_LCD        ;初始化液晶
  29.         ACALL        WR_THL                ;寫入高溫限值和低溫限值寄存器
  30.         ACALL        WR_PROM
  31.         ACALL        RE_PROM         ;從EEPROM中返回高溫限值和低溫限值
  32.         ACALL        RESET                 ;初始化1820
  33.         JB        FLAG,LOOP        
  34.         ACALL        ERROR                ;報錯
  35.                
  36. LOOP:        ACALL        READ_T                ;1820讀取溫度
  37.         ACALL        DISP_TEMP        ;液晶顯示實時溫度
  38.         ACALL        KEYSCAN                ;鍵盤設定高溫限值和低溫限值
  39.         ACALL        TEMP_COMP
  40.         JMP        LOOP

  41. ;=============啟動1820讀取溫度====================

  42. READ_T:        SETB        DQ
  43.         ACALL        RESET
  44.         JB        FLAG,READ_T1
  45.         RET
  46. READ_T1:
  47.         MOV        A,#0CCH
  48.         ACALL        WR_1820
  49.         MOV        A,#44H
  50.         ACALL        WR_1820
  51.         ACALL        RESET
  52.         MOV        A,#0CCH
  53.         ACALL        WR_1820
  54.         MOV        A,#0BEH
  55.         ACALL        WR_1820
  56.         ACALL        READ_1820
  57.         RET

  58. ;=========把高溫和低溫限值寫入寄存器=================

  59. WR_THL:        JB        FLAG,WR_HL
  60.         RET
  61. WR_HL:        ACALL        RESET
  62.         MOV        A,#0CCH
  63.         ACALL        WR_1820
  64.         MOV        A,#4EH
  65.         ACALL        WR_1820
  66.         MOV        A,TEMP_TH
  67.         ACALL        WR_1820
  68.         MOV        A,TEMP_TL
  69.         ACALL        WR_1820
  70.         RET

  71. ;==========把高溫和低溫限值寫入EEPROM=================

  72. WR_PROM:ACALL        RESET
  73.         MOV        A,#0CCH
  74.         ACALL        WR_1820
  75.         MOV        A,#48H
  76.         ACALL        WR_1820
  77.         RET

  78. ;========把EEPROM的值返回到高溫和低溫限值寄存器========
  79. RE_PROM:
  80.         ACALL        RESET
  81.         MOV        A,#0CCH
  82.         ACALL        WR_1820
  83.         MOV        A,#0B8H
  84.         ACALL        WR_1820
  85.         RET
  86. ;===========初始化1820==================================

  87. RESET:        SETB         DQ
  88.         NOP
  89.         CLR        DQ
  90.         MOV        R5,#250
  91.         DJNZ        R5,$

  92.         SETB        DQ            
  93.         NOP
  94.         
  95.         MOV        R5,#25H
  96. RESET1:        JNB        DQ,FLAG1
  97.         DJNZ        R5,RESET1
  98.         JMP        NDQ


  99. FLAG1:        SETB        FLAG
  100.         MOV        R5,#100
  101.         DJNZ        R5,$
  102.         SETB        DQ
  103.         MOV        R5,#100
  104.         DJNZ        R5,$
  105.         JMP        RETU

  106. NDQ:        CLR        FLAG
  107.         ACALL        ERROR
  108. RETU:        SETB        DQ
  109.         RET

  110. ;=============1820寫字節========================

  111. WR_1820:
  112.         MOV        R6,#8
  113.         CLR        C
  114.         
  115. WR1:        CLR        DQ
  116.         MOV        R5,#7
  117.         DJNZ        R5,$
  118.         RRC        A
  119.         MOV        DQ,C
  120.         MOV        R5,#25
  121.         DJNZ        R5,$
  122.         SETB        DQ
  123.         NOP
  124.         NOP
  125.         DJNZ        R6,WR1
  126.         SETB        DQ
  127.         RET
  128. ;==============讀取1820數據======================

  129. READ_1820:
  130.         MOV        R2,#4
  131.         MOV        R1,#TEMPL
  132.         
  133. RE1:        MOV        R6,#8
  134. RE2:        SETB        DQ
  135.         NOP
  136.         CLR        DQ
  137.         CLR        C
  138.         NOP
  139.         NOP

  140.         SETB        DQ
  141.         MOV        R5,#9
  142.         DJNZ        R5,$

  143.         MOV        C,DQ
  144.         MOV        R5,#24
  145.         DJNZ        R5,$
  146.         RRC        A

  147.         DJNZ        R6,RE2
  148.         MOV        @R1,A
  149.         DEC        R1
  150.         DJNZ        R2,RE1
  151.         RET
  152. ;===========轉換數據=============================

  153. TURN:        MOV        XIAOSHU,TEMPL         ;保存TEMPL值,后面用于取低4位轉換小數部分
  154.         MOV        A,TEMPL
  155.         MOV        C,16                 ;22H的位尋址
  156.         RRC        A
  157.         MOV        C,17
  158.         RRC        A
  159.         MOV        C,18
  160.         RRC        A
  161.         MOV        C,19
  162.         RRC        A
  163.         MOV        TEMP,A
  164.         MOV        A,XIAOSHU
  165.         ANL        A,#00001111B
  166.         MOV        XIAOSHU,A

  167.             
  168.         RET
  169. ;========鍵盤掃描=============================

  170. KEYSCAN:
  171.         JB        K1,RETUN        ;按下K1,進入鍵盤掃描
  172.         ACALL        DELAY20               
  173.         JNB        K1,$
  174.         ACALL        CLR_LCD                ;清屏
  175.         ACALL        DISP_THL        ;顯示高溫限值和低溫限值
  176.         ACALL        SET_HL                ;設定限值
  177.         ACALL        WR_THL                ;把高溫限值和低溫限值寫入RAM
  178.         //.../ACALL        LED
  179.         ACALL  WR_PROM                ;限值復制到EEPROM中
  180. RETUN:        RET
  181. ;------------設定高低限值----------------------

  182. SET_HL:        //JNB        K4,EXIT
  183.         JB        K1,KEY4                  
  184.         ACALL        DELAY20
  185.         JNB        K1,$
  186.         CPL        20H.1                ;標志位,標志設定高溫限值或低溫限值
  187.         JB        20H.1,SET_H
  188.         JMP        SET_L
  189. ;-------------調高溫限值-------------------------        
  190. SET_H:        
  191.         ACALL        TH_SHAN                ;光標閃,進入設定
  192.         
  193. KEY2H:        JNB        K1,SET_L         ;高溫限值與低溫限值間設定轉換
  194.         JNB        K4,EXIT
  195.         JB        K2,KEY3H        ;按下K2,值加1

  196.         ACALL        DELAY20

  197.         JNB        K2,$
  198.              INC        TEMP_TH
  199.         MOV        A,TEMP_TH
  200.         CJNE        A,#99,A0
  201.         MOV        TEMP_TH,#00
  202. A0:        ACALL        DISP_THL     

  203. KEY3H:  
  204.         JB        K3,KEY2H         ;按下K3,值減1
  205.         ACALL        DELAY20
  206.         JNB        K3,$
  207.         DEC         TEMP_TH
  208.         MOV         A,TEMP_TH
  209.         CJNE        A,#0,A1
  210.         MOV        TEMP_TH,#99
  211. A1:        ACALL        DISP_THL
  212.         JMP        SET_H
  213. ;-------------調低溫限值------------------------------
  214. SET_L:        
  215.         ACALL        TL_SHAN
  216. KEY2L:        JNB        K1,SET_H        ;高溫限值與低溫限值間設定轉換
  217.         JNB        K4,EXIT
  218.         JB        K2,KEY3L        ;按下K2,值加1
  219.                
  220.         ACALL        DELAY20
  221.         JNB        K2,$
  222.         INC        TEMP_TL
  223.         MOV        A,TEMP_TL
  224.         CJNE        A,#99,A2
  225.         MOV        TEMP_TL,#00
  226. A2:        ACALL        DISP_THL   
  227. KEY3L:        JB        K3,KEY2L                 ;按下K3,值減1
  228.         ACALL        DELAY20
  229.         JNB        K3,$
  230.         DEC        TEMP_TL
  231.         MOV        A,TEMP_TL
  232.         CJNE        A,#0,A3
  233.         MOV        TEMP_TL,#99

  234. A3:        ACALL        DISP_THL
  235.         JMP        SET_L
  236.         
  237. ;----------------------
  238. KEY4:        JNB        K4,EXIT                  ;K4用于退出設定
  239.         JMP        SET_HL
  240.         //JMP        SET_HL
  241. EXIT:        ACALL        DELAY20
  242.         JNB        K4,$
  243.          MOV           LCD,#00001100B           ;設置液晶光標不顯示、不閃爍
  244.            ACALL         WR_COMM
  245.         ACALL        CLR_LCD
  246.         ACALL        DISP_TEMP        
  247.         RET        

  248. ;==============溫度比較======================================

  249. TEMP_COMP:
  250.         MOV        A,TEMP_TH
  251.         SUBB        A,TEMP
  252.         ACALL        DIANJI
  253.         MOV        A,TEMP
  254.         SUBB        A,TEMP_TL
  255.         ACALL        DIANJI
  256.         RET
  257. ;============================================
  258. /*MORE:        MOV        DPTR,#MORE0
  259.         MOV        LCD,#0CEH
  260.         ACALL        WR_COMM
  261.         ACALL        DISP0
  262.         RET
  263. MORE0:        DB        '>H',0H        
  264. */                        
  265. ;=============啟動電機========================

  266. ;電機接口是P1低4位,因為P1.7是溫度傳感器的控制口
  267. ;避免沖突,電機接口按位控制
  268. DIANJI:        JC        DIAN0
  269.         RET        
  270. DIAN0:        MOV        R0,#4
  271.         //ACALL        MORE
  272. DIAN1:        
  273.         SETB        P1.0
  274.         CLR        P1.1
  275.         CLR        P1.2
  276.         CLR        P1.3
  277.         ACALL        DELAY
  278.         CLR        P1.0
  279.         SETB        P1.1
  280.         ACALL        DELAY
  281.         CLR        P1.1
  282.         SETB        P1.2
  283.         ACALL        DELAY
  284.         CLR        P1.2
  285.         SETB        P1.3
  286.         ACALL        DELAY
  287.         //RL        A
  288.         DJNZ        R0,DIAN1
  289.         CLR        P1.0
  290.         CLR        P1.1
  291.         CLR        P1.2
  292.         CLR        P1.3
  293.         RET
  294. DELAY:        MOV        R5,#5
  295. DLY1:        MOV        R6,#10
  296. DLY2:        MOV        R7,#50
  297.         DJNZ        R7,$
  298.         DJNZ        R6,DLY2
  299.         DJNZ        R5,DLY1
  300.         RET
  301. ;============清屏=============================

  302. CLR_LCD:
  303.         MOV        LCD,#80H
  304.         ACALL        WR_COMM
  305.         MOV        R0,#16
  306. CLR1:        MOV        LCD,#' '
  307.         ACALL        WR_DATA
  308.         DJNZ        R0,CLR1

  309.         MOV        LCD,#0C0H
  310.         ACALL        WR_COMM
  311.         MOV        R0,#16
  312. CLR2:        MOV        LCD,#' '
  313.         ACALL        WR_DATA
  314.         DJNZ        R0,CLR2
  315.         RET
  316. ;===============報錯============================

  317. ERROR:        MOV        LCD,#80H
  318.         ACALL        WR_COMM
  319.         MOV        DPTR,#ERORTAB
  320.         ACALL        DISP0
  321.         RET
  322. ……………………

  323. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼

仿真程序和文檔下載:
基于51單片機的溫度控制系統.7z (252.45 KB, 下載次數: 144)

評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

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

使用道具 舉報

來自 2#
ID:262 發表于 2022-3-5 23:48 | 只看該作者
木子236Y 發表于 2022-3-5 20:46
仿真時實時溫度不正確呀,一直定在了85

我用Proteus8.8版本打開是正常的 你看圖

51hei.gif (108.36 KB, 下載次數: 54)

51hei.gif
回復

使用道具 舉報

板凳
ID:349895 發表于 2018-6-12 08:13 | 只看該作者
謝謝分享,
回復

使用道具 舉報

地板
ID:853197 發表于 2022-3-5 20:46 來自手機 | 只看該作者
仿真時實時溫度不正確呀,一直定在了85
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 人人做人人澡人人爽欧美 | 成人动漫视频网站 | 搞av.com | 欧美日本一区二区 | 久久婷婷麻豆国产91天堂 | 国产电影一区二区三区爱妃记 | 欧美精品在欧美一区二区少妇 | 一区在线视频 | 欧美中文字幕在线观看 | 日本高清视频在线播放 | 国产高清视频 | 美女黄频| 蜜桃视频在线观看免费视频网站www | 91精品国产综合久久久动漫日韩 | 一区二区三区电影在线观看 | 精品国产乱码久久久久久中文 | av黄色在线观看 | 这里只有精品99re | 国产高清免费视频 | 中文字幕在线观看 | 精品精品视频 | 国产一区不卡 | 91精品国产91久久综合桃花 | 日韩欧美国产一区二区三区 | 欧美日韩在线一区二区三区 | 亚洲成人福利视频 | 国产精品久久久久久久久污网站 | 综合久久99 | 精品av天堂毛片久久久借种 | 日韩欧美在线免费观看 | 中文字幕在线剧情 | 一级在线毛片 | 日韩精品一区二区三区老鸭窝 | 一级一级毛片免费看 | 91精品国产色综合久久不卡蜜臀 | 亚洲欧美一区二区三区国产精品 | 日韩中文字幕在线免费 | 国产日韩欧美在线播放 | 久久久精| 欧美在线播放一区 | 国产精品无码专区在线观看 |