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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

單片機溫度計制作及調試(超上下限報警)課程設計論文

[復制鏈接]
跳轉到指定樓層
樓主
本科生專業課程設計
     題目      數字溫度計            
       學    院 電子信息工程學院
       專    業 電氣工程及其自動化
學    號 2011448024         
       姓    名 田志興
            2014年 8月 5日
                     目錄
0、  前言………………………………………………………………2
  • 任務要求與效果呈現……………………………………………2
  • 任務分析…………………………………………………………2
  • 硬件與軟件設計…………………………………………………3
  • 仿真及調試………………………………………………………5
  • 總結………………………………………………………………6
6、  附錄………………………………………………………………6

前言
對于現代工業生產過程,溫度是一個非常重要的參數,例如,倉庫溫度,鍋爐熱水溫度等。對溫度的監測,需要滿足實時性,下面介紹一種簡易的溫度監控系統,其兼具良好的經濟和高效性。
1、任務要求與效果呈現
設計溫度監控系統,采用DS18B20作為測溫傳感器,用AT89C2051作處理器,用數碼管顯示,并用LED燈作報警器。當測量溫度高于100℃或低于-20℃時,發出警報。其效果如圖1所示。
(a)規定溫度范圍內的正溫度,數碼管顯示溫度,LED不亮即不報警
(b)規定溫度范圍內的負溫度,數碼管顯示溫度,LED不亮即不報警
(c)超出溫度上限(100℃),數碼管顯示溫度,LED亮即報警
(d)超出溫度下限(-20℃),數碼管顯示溫度,LED亮即報警
圖1
2、任務分析
DS18B20作為溫度傳感器,可以實現現場溫度的快速采集與反饋,并且其外部只有一個信號引腳,使用方便簡潔。使用AT89C2051作為處理器使得在不影響其處理效果的前提下,有效的精簡了系統結構。數碼管顯示經濟適用,簡單明了。
在實際工作中,溫度往往要有一定的變化范圍,避免出現安全故障。因而,在此處設置了溫度的上限,即100℃,溫度下限,即-20℃。當溫度超出規定范圍-20℃~100℃時,作為報警裝置的LED的被點亮,實現溫度報警,保障了生產過程的安全性。
3、硬件與軟件設計
3.1、硬件設計
3.1.1、硬件原理圖(Proteus)
圖2
說明:利用138譯碼器配合以反相器7404,實現了用三個IO口控制五個數碼管的通斷,節約了資源。
3.1.2、硬件PCB圖
                               圖3

3.1.3  硬件實物圖

   
                                圖4
說明:此處使用的電源是2節4V電池,即8V電源,所以采用7805穩壓芯片構成的簡易穩壓電路,將8V輸入轉換成5V輸出,給測溫系統供電。
3.2、軟件設計
3.2.1、其程序流程圖如圖5所示。
(見附錄)
3.2.2、程序(見附錄)
4、仿真及調試
4.1、HEX文件的生成
打開Keil ,新建建項目“tian”,編寫“tian.asm”程序代碼。經調試、編譯和鏈接,無誤后生成“ttian.hex”文件如圖6所示。
圖6
4.2、仿真調試
在已用Proteus畫好的電路圖中,雙擊單片機“AT89C2051”,加載“tian.hex”,再單擊開始,就可以看到圖7所示的設計效果了。
圖7
5、總結
   這次課程設計讓我切實體會到了用DS18B20測溫的便捷。通過動手焊接實際硬件電路,我也感覺到:相比51單片機,使用2051,在硬件電路上相當簡潔,因而也節省了整個電路板的空間,使得系統小型化。還有就是軟件方面,這次設計讓我溫習了keil和Proteus的使用,而且增加了對這兩個軟件的使用技能以及熟練程度。
6、附錄

單片機源程序如下:
  1.       ORG   0000H
  2.       LJMP  MAIN
  3.       ORG   0030H
  4. MAIN:LCALL  CSH0    ;DS18B20初始化
  5.      MOV    A,#0CCH ;單點測溫時執行跳過ROM命令節省訪問時間
  6.      LCALL  WRITE
  7.      MOV    A,#44H  ;發開始溫度轉換命令
  8.      LCALL  WRITE
  9.      LCALL  CSH0    ;DS18B20初始化                                
  10.      MOV    A,#0CCH ;單點測溫時執行跳過ROM命令節省訪問時間         
  11.      LCALL  WRITE                                                  
  12.      MOV  A,#0BEH ;讀存儲器命令(讀的字節暫存存儲器,此后讀操作)
  13.      LCALL  WRITE   
  14.      LCALL  READ   ;讀出已轉換的溫度值低字節
  15.      MOV    2BH,A
  16.      LCALL  READ   ;讀出已轉換的溫度值高字節
  17.      MOV    2CH,A
  18.      LCALL  ERSH    ;二進制轉化成十進制
  19.      LCALL  DISPL   ;調用動態顯示的子程序
  20.               LCALL  MAXorMIN;***判斷是否超出上下限***
  21.      LJMP   MAIN   
  22. ;******************第一個DS18B20初始化子程序*******************
  23. CSH0:CLR    P3.0         
  24.      MOV    R2,#250
  25. CSH1:DJNZ   R2, CSH1  ;主機發置位脈沖持續2μs*240=480μs
  26.      SETB   P3.0      ;主機釋放總線控制P3.2口改為輸入
  27.      MOV    R2,#30
  28. CSH4:DJNZ   R2, CSH4  ;DS18B20等待2μs*30=60μs
  29.      JB     P3.0,CSH0 ;DS18B20沒準備好,重來
  30.      MOV    R3,#120     ;DS18B20數據線變低
  31. CSH5:DJNZ   R3,CSH5   ;DS18B20數據線低電平狀態可持續2μs*120=240us
  32.      JB     P3.0,CSH3 ;18B20數據線變高,初始化成功
  33.      LJMP   CSH0       ;初始化失敗,重來
  34. CSH3:MOV   R2,#240
  35. CSH2:DJNZ  R2, CSH2;18B20應答過程最少2μs*240=480μs
  36.       RET
  37. ;******************寫DS18B20子程序**********************
  38. WRITE:MOV   R3,#8
  39. WR1: SETB   P3.0  ;保證連續寫2位間的間隙大于1μs
  40.       MOV   R4,#7

  41.       CLR   P3.0
  42.       RRC   A
  43. WR2: DJNZ   R4,WR2 ;18B20數據線變低后2μs*7+1=15μs開始采樣數據
  44.      MOV    P3.0,C ;將命令字從低位按位依次送18B20
  45.      MOV    R4,#22
  46. WR3: DJNZ   R4,WR3;保證整個寫過程持續2μs*22+1=45μS
  47.      DJNZ   R3,WR1;送完整個命令字
  48.      SETB   P3.0
  49.      RET
  50. ;********************讀DS18B20子程序*********************
  51. READ:MOV   R3,#8
  52. RE1: CLR   P3.0
  53.      MOV   R4,#4
  54.      NOP          ;低電平持續2μs
  55.      SETB  P3.0   ;P3.0口設為輸入口
  56. RE2: DJNZ  R4,RE2 ;等待2μs*4=8μs
  57.      MOV   C,P3.0  ;主機(從低位)按位讀入18B20數據
  58.      RRC   A       ;數據逐位(先低位后高位)送入A
  59.      MOV   R4,#30
  60. RE3: DJNZ  R4,RE3 ;保證讀數據過程持續2μs*30=60μs
  61.      DJNZ  R3,RE1 ;讀完整個轉換值(不含符號位)并存21H中
  62.      RET
  63. ;************判斷是否為負、溫度精度轉換********************
  64. ERSH: MOV   A,2CH  ;把溫度的高字節給了A
  65.       JB    ACC.7,BB ;溫度為負轉變補(BB)程序段
  66.                 SETB               F0 ;F0作為是否為負數的標志
  67.       MOV   R7,#0FFH ;溫度為正不點亮
  68. ZHCH: MOV   A,2BH   ;屏蔽溫度低字節的小數位      
  69.       ANL   A,#0F0H
  70.       SWAP  A   
  71.       MOV   2DH,A
  72.       MOV   A,2CH    ;屏蔽溫度高字節的符號位
  73.       ANL   A,#07H
  74.       SWAP  A
  75.       ADD   A,2DH         
  76. CFZH: MOV   B,#10
  77.       DIV   AB
  78.       MOV   41H,B    ;41H中為個位

  79.       MOV   B,#10
  80.       DIV   AB
  81.       MOV   42H,B    ;42H中存放十位

  82.       MOV   B,#10
  83.       DIV   AB
  84.       MOV   43H,B    ;43H中為百位

  85. ESHD: MOV   A,2BH    ;低精度二十進制轉換小數處理程序
  86.       JB    ACC.3,XS ;小數十分位為1,則跳轉到XS
  87.       MOV   40H,#00H      
  88.       RET
  89. XS:   MOV   40H,#05H ;43H中存放小數位
  90.       RET

  91. BB:   CLR F0
  92.       MOV   R7,#0BFH ;負數讓第1個數碼管顯示為"-"
  93.       MOV   A,2BH    ;負數補碼求補
  94.       CPL   A
  95.       ADD   A,#1
  96.       MOV   2BH,A   ;負溫度低字節求補后送2BH
  97.       MOV   A,2CH      
  98.       CPL   A            
  99.       ADDC  A,#0
  100.       MOV   2CH,A   ;負溫度高字節求補后送2CH      
  101.       LJMP  ZHCH    ;負數求補后轉到ZHCH
  102. ;*************************顯示子程序**************************
  103. DISPL:MOV   A,R7      ;取顯示的正負號
  104.       MOV    P1,A      ;發送字段代碼
  105.       CLR    P3.5      ;Y5=0, K5=1
  106.       ACALL  DL2MS     ;符號位
  107.       SETB   P3.5      ;138A腳置1,關閉所有位碼            
  108.       MOV    DPTR,#CSTAB;字段碼表首址送DPTR   
  109.       MOV    R1,#40H
  110.       MOV    A,@R1
  111.       MOVC   A,@A+DPTR
  112.       MOV    P1,A
  113.       CLR    P3.4
  114.       CLR    P3.7       ;Y2=0,K1=1
  115.       ACALL  DL2MS      ;小數
  116.       SETB   P3.4
  117.       SETB   P3.7   
  118.       INC    R1
  119.       MOV    A,@R1
  120.       MOVC   A,@A+DPTR
  121.       ANL    A,#7FH    ;個位小數點亮 數碼管的Dp段點亮,其他段跟隨A中的值

  122.       MOV    P1,A
  123.       CLR    P3.7     ;Y3=0,K2=1
  124.       ACALL  DL2MS    ;個位
  125.       SETB   P3.7      

  126.       INC    R1
  127.       MOV    A,@R1
  128.       MOVC   A,@A+DPTR   
  129.       MOV    P1,A
  130.       CLR    P3.4      ;Y3=0,K3=1
  131.       CLR    P3.5
  132.       ACALL  DL2MS     ;十位
  133.       SETB   P3.4
  134.       SETB   P3.5

  135.       INC    R1
  136.       MOV    A,@R1
  137.       MOVC   A,@A+DPTR  
  138.       MOV    P1,A   
  139.       CLR    P3.4      ;Y6=0,K4=1
  140.       ACALL  DL2MS     ;百位
  141.       SETB   P3.4      
  142.       RET
  143. ;*************************上下限判斷子程序**************************
  144. MAXorMIN: PUSH ACC
  145.           JNB F0,MIN                                         
  146.      MAX: MOV A,43H                            ;正溫度時,判斷是否超過上限100℃
  147. ……………………




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

所有資料51hei提供下載:
http://www.zg4o1577.cn/bbs/dpj-89441-1.html



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

使用道具 舉報

沙發
ID:521983 發表于 2019-4-26 10:41 | 只看該作者
感謝樓主,最近正好要用這個,頂一下
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 日日操网站 | 美国黄色毛片 | 在线播放国产一区二区三区 | 国产精品久久久久久久久久久新郎 | 精品不卡 | 国产专区在线 | 国产精品一级在线观看 | 亚洲精品久久久久久久久久久 | av日韩在线播放 | 亚洲在线一区 | 色吊丝2| 亚洲 欧美 综合 | 精品欧美一区二区三区免费观看 | av电影手机在线看 | 欧美 日韩 综合 | 中文字幕一区二区三区在线观看 | 成人av免费网站 | 国产91久久久久久久免费 | 日本一区二区三区视频在线 | 成人精品国产一区二区4080 | 国产精品久久久久久中文字 | 午夜国产在线 | 亚洲高清视频在线 | 国产精品久久久乱弄 | 久草.com | 久久精品亚洲精品国产欧美 | 精品国产31久久久久久 | 成人伊人 | 欧美一级免费观看 | 91视频网址| 亚洲国产精品视频一区 | 精品久久久久久久人人人人传媒 | 在线激情视频 | 国产成人久久精品一区二区三区 | 国产精品视频一区二区三区不卡 | 国产美女一区二区 | 羞羞视频在线观免费观看 | 日本手机看片 | 夜夜爽99久久国产综合精品女不卡 | 天天激情综合 | 国产精品永久 |