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

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 6541|回復(fù): 3
收起左側(cè)

單片機(jī)匯編語(yǔ)言溫度控制系統(tǒng)設(shè)計(jì)程序仿真-智能儀器儀表綜合實(shí)訓(xùn)

[復(fù)制鏈接]
ID:312573 發(fā)表于 2018-5-7 09:53 | 顯示全部樓層 |閱讀模式
這是一個(gè)51單片機(jī)的溫度控制系統(tǒng),包括proteu仿真程序、代碼和文檔。

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

目錄
一、系統(tǒng)設(shè)計(jì)第 1 頁(yè)
系統(tǒng)總體設(shè)計(jì)方案第 1 頁(yè)                                                                                 
溫度信號(hào)采集電路選擇和數(shù)據(jù)處理第 3 頁(yè)
軟件設(shè)計(jì)第 3 頁(yè)
二、單元電路設(shè)計(jì)第 5 頁(yè)
溫度信號(hào)采集電路第 5 頁(yè)
步進(jìn)電機(jī)電路 第 5 頁(yè)
液晶顯示模塊 第 6 頁(yè)
晶振復(fù)位電路第 7 頁(yè)   
三、總結(jié)體會(huì)第 7 頁(yè)
四、參考文獻(xiàn)第 8 頁(yè)
附錄:程序清單第 8 頁(yè)

一、系統(tǒng)設(shè)計(jì)(一) 系統(tǒng)總體設(shè)計(jì)方案
設(shè)計(jì)框圖如下所示:
圖1  系統(tǒng)總體設(shè)計(jì)框圖





總電路圖如下:

圖2  系統(tǒng)總電路圖
簡(jiǎn)單功能說(shuō)明:
一個(gè)顯示實(shí)時(shí)溫度的小系統(tǒng),可以自行設(shè)定高溫報(bào)警和低溫報(bào)警值,實(shí)現(xiàn)溫度控制電機(jī)帶動(dòng)外圍器件功能。本系統(tǒng)通過(guò)溫度傳感器DS18B20實(shí)現(xiàn)對(duì)溫度數(shù)據(jù)的采集,數(shù)據(jù)處理后顯示到液晶屏上,通過(guò)數(shù)據(jù)處理,溫度值精確度為0.1。

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

圖3 主程序流程圖


二、單元電路設(shè)計(jì)(一) 溫度信號(hào)采集電路
圖4 溫度信號(hào)采集電路
(二) 步進(jìn)電機(jī)電路
圖5 步進(jìn)電機(jī)電路

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

三、總結(jié)體會(huì)

本次設(shè)計(jì)給我們提供了一個(gè)將自己所學(xué)的知識(shí)應(yīng)用于實(shí)踐的良機(jī),通過(guò)了兩個(gè)周的設(shè)計(jì)我學(xué)到了很多非常有價(jià)值的東西,懂得了如何將理論知識(shí)轉(zhuǎn)化成實(shí)際程序的設(shè)計(jì);掌握的單片機(jī)開(kāi)發(fā)與設(shè)計(jì)的思路與方案確定;學(xué)會(huì)了更有效的查找自己所需的資料;同時(shí)也意識(shí)到了團(tuán)隊(duì)協(xié)作的重要性;掌握了硬件與程序設(shè)計(jì)的一般步驟和方法。這對(duì)我們以后的學(xué)習(xí)和工作的是非常有幫助的。

設(shè)計(jì)是我們將來(lái)必需的技能,這次設(shè)計(jì)剛好給我們提供了一個(gè)應(yīng)用自己所學(xué)知識(shí)的機(jī)會(huì),從到圖書(shū)館和網(wǎng)上查找資料到對(duì)硬件與程序模塊的設(shè)計(jì)對(duì)各模塊的調(diào)試再到最后整體設(shè)計(jì)調(diào)試,都對(duì)我所學(xué)的知識(shí)進(jìn)行了檢驗(yàn),增強(qiáng)了自信心。

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

最后,我在這里衷心地感謝所有教給我知識(shí)和在設(shè)計(jì)中給予我?guī)椭睦蠋焸兒屯瑢W(xué)們,是他們給我們的知識(shí)才使我們得以順利完成此次設(shè)計(jì)。



單片機(jī)匯編語(yǔ)言源程序如下:
  1. ;-------------------------------------------------
  2. ; 簡(jiǎn)單功能說(shuō)明:一個(gè)顯示實(shí)時(shí)溫度的小系統(tǒng),可以自行設(shè)
  3. ; 定高溫報(bào)警和低溫報(bào)警值,實(shí)現(xiàn)溫度控制電機(jī)帶動(dòng)外圍器
  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  ;溫度高字節(jié)
  19.         TEMPL        EQU        23H  ;溫度低字節(jié)
  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                ;寫(xiě)入高溫限值和低溫限值寄存器
  30.         ACALL        WR_PROM
  31.         ACALL        RE_PROM         ;從EEPROM中返回高溫限值和低溫限值
  32.         ACALL        RESET                 ;初始化1820
  33.         JB        FLAG,LOOP        
  34.         ACALL        ERROR                ;報(bào)錯(cuò)
  35.                
  36. LOOP:        ACALL        READ_T                ;1820讀取溫度
  37.         ACALL        DISP_TEMP        ;液晶顯示實(shí)時(shí)溫度
  38.         ACALL        KEYSCAN                ;鍵盤(pán)設(shè)定高溫限值和低溫限值
  39.         ACALL        TEMP_COMP
  40.         JMP        LOOP

  41. ;=============啟動(dòng)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. ;=========把高溫和低溫限值寫(xiě)入寄存器=================

  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. ;==========把高溫和低溫限值寫(xiě)入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寫(xiě)字節(jié)========================

  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數(shù)據(jù)======================

  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. ;===========轉(zhuǎn)換數(shù)據(jù)=============================

  153. TURN:        MOV        XIAOSHU,TEMPL         ;保存TEMPL值,后面用于取低4位轉(zhuǎn)換小數(shù)部分
  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. ;========鍵盤(pán)掃描=============================

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

  182. SET_HL:        //JNB        K4,EXIT
  183.         JB        K1,KEY4                  
  184.         ACALL        DELAY20
  185.         JNB        K1,$
  186.         CPL        20H.1                ;標(biāo)志位,標(biāo)志設(shè)定高溫限值或低溫限值
  187.         JB        20H.1,SET_H
  188.         JMP        SET_L
  189. ;-------------調(diào)高溫限值-------------------------        
  190. SET_H:        
  191.         ACALL        TH_SHAN                ;光標(biāo)閃,進(jìn)入設(shè)定
  192.         
  193. KEY2H:        JNB        K1,SET_L         ;高溫限值與低溫限值間設(shè)定轉(zhuǎn)換
  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. ;-------------調(diào)低溫限值------------------------------
  214. SET_L:        
  215.         ACALL        TL_SHAN
  216. KEY2L:        JNB        K1,SET_H        ;高溫限值與低溫限值間設(shè)定轉(zhuǎn)換
  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用于退出設(shè)定
  239.         JMP        SET_HL
  240.         //JMP        SET_HL
  241. EXIT:        ACALL        DELAY20
  242.         JNB        K4,$
  243.          MOV           LCD,#00001100B           ;設(shè)置液晶光標(biāo)不顯示、不閃爍
  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. ;=============啟動(dòng)電機(jī)========================

  266. ;電機(jī)接口是P1低4位,因?yàn)镻1.7是溫度傳感器的控制口
  267. ;避免沖突,電機(jī)接口按位控制
  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. ;===============報(bào)錯(cuò)============================

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

  323. …………限于本文篇幅 余下代碼請(qǐng)從51黑下載附件…………
復(fù)制代碼

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

評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

ID:262 發(fā)表于 2022-3-5 23:48 | 顯示全部樓層
木子236Y 發(fā)表于 2022-3-5 20:46
仿真時(shí)實(shí)時(shí)溫度不正確呀,一直定在了85

我用Proteus8.8版本打開(kāi)是正常的 你看圖
51hei.gif
回復(fù)

使用道具 舉報(bào)

ID:349895 發(fā)表于 2018-6-12 08:13 | 顯示全部樓層
謝謝分享,
回復(fù)

使用道具 舉報(bào)

無(wú)效樓層,該帖已經(jīng)被刪除
ID:853197 發(fā)表于 2022-3-5 20:46 來(lái)自觸屏版 | 顯示全部樓層
仿真時(shí)實(shí)時(shí)溫度不正確呀,一直定在了85
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 久久久久久久久综合 | 国产一区二区三区在线免费观看 | 午夜影院在线观看 | 99草免费视频 | 在线黄| 精品视频一区二区在线观看 | 9191av| 欧美精品一区二区三区蜜臀 | 久久久久久国产精品久久 | 可以看黄的视频 | 丁香六月激情 | 在线免费观看视频你懂的 | 国产超碰人人爽人人做人人爱 | 国产精品久久久久久久午夜 | 亚洲一区二区av在线 | 国产精品色婷婷久久58 | 久久草在线视频 | 久草免费在线视频 | 日韩成人在线视频 | 91精品国产自产在线老师啪 | 日韩无| av在线亚洲天堂 | 国产片侵犯亲女视频播放 | 欧美日韩国产一区二区三区不卡 | 国产一级免费在线观看 | 一区精品视频在线观看 | 国产高清视频在线观看播放 | 国产精品一区二区三区免费观看 | 中日av | 羞视频在线观看 | 久久亚洲精品国产精品紫薇 | 男女爱爱福利视频 | 中文字幕av一区 | 一a一片一级一片啪啪 | 国产最好的av国产大片 | 欧美成人自拍 | 亚洲免费在线观看 | 国产精品一区二区不卡 | 91传媒在线观看 | 人人看人人干 | 亚洲欧美在线观看视频 |