微控制器報告 數字溫度計

2021-07-27 05:11:45 字數 3955 閱讀 2031

微控制器原理與應用

課程考試製作報告

作品名稱: 數字溫度計

專業班級

學號姓名

目錄一、作品(功能)說明

二、硬體設計

三、軟體設計

四、例項測試

五、經驗總結

主要內容

一、功能說明:

使用單線數字溫度感測器ds18b20,把溫度訊號直接轉換成數碼訊號輸入微控制器,經微控制器處理後,將實時溫度顯示在兩個7段led數碼管上。

二、硬體設計:

電路設計圖

單線數字溫度感測器ds18b20的引腳2接微控制器p2.5埠,用於序列資料通訊。引腳3接電源+5v,引腳3與電源+5v之間接有乙個4.7kω的上拉電阻,感測器引腳1接地。

微控制器的p0埠連線兩個7段led數碼管,顯示溫度值。

三、程式設計:

程式開始首先對溫度感測器ds18b20進行復位,檢測是否正常工作;接著讀取溫度資料,主機發出cch指令與**的ds18b20聯絡,接著向ds18b20發出溫度a/d轉換44h指令,再發出讀取溫度暫存器的溫度值be指令,並反覆呼叫復位、寫入及讀取資料字子程式,之後再繼續資料轉換,由數碼管顯示出來,不斷迴圈。

1、流程圖

2、組合語言編寫的數字溫度計源程式ad14-4asm**如下:

01 a_bit equ 20h ;存放個位數變數

02 b_bit equ 21h ;存放十位數變數

03 flag equ 38h ;ds18b20是否存在標誌

04 dq equ p2.5 ;dq引腳由p2.5控制

05 main

06 acall re_temp ;呼叫讀取溫度子程式

07 acall turn資料轉化子程式

08 acall display ;顯示子程式

09 jmp main迴圈主程式

10 11 re_temp初始化及讀取溫度值

12 setb dq

13 acall reset_1820 ;呼叫復位子程式

14 jb flag, st ;判斷ds1820是否存在?

15 ret

16 stds18b20存在

17 mov a,#0cch ;跳過rom匹配

18 acall write_1820 ;呼叫寫入資料子程式

19 mov a,#44h ;發出溫度轉換命令

20 acall write_1820 ;呼叫寫入資料子程式

21 acall reset_1820 ;準備讀溫度前先復位

22 mov a,#0cch ;跳過rom匹配

23 acall write_1820 ;呼叫寫入資料子程式

24 mov a,#0beh ;發出讀溫度命令

25 acall write_1820 ;呼叫寫入資料子程式

26 acall read_1820 ;呼叫讀取資料子程式設定感測器

27 ret讀取溫度資料

2829 reset_1820: ;復位(有具體的時序要求

30 setb dq

31 nop

32 clr dq

3334 ;主機發出復位低脈衝

35 mov r1,#3

36 dly: mov r0,#107

37 djnz r0,$

38 djnz r1,dly

3940 ;然後拉高資料線

41 setb dq

42 nop

43 nop

44 nop

4546 ;等待ds18b20回應

47 mov r0,#25h

48 t2: jnb dq ,t3

49 djnz r0, t2

50 jmp t4

5152 ;標誌位flag=1,表示ds1820存在

53 t3: setb flag

54 jmp t5

5556;標誌位flag=0,表示ds1820不存在

57 t4: clr flag

58 jmp t7

5960 ;時序要求延時一段時間

61 t5: mov r0,#117

62 t6: djnz r0,t6

6364 t7: setb dq

65 ret復位子程式

6667 write_1820: ;寫入ds18b20(有具體的時序要求)

68 mov r2,#8一共8位資料

69 clr cc=0

70 wr1:

71 clr dq匯流排低位,開始寫入

72 mov r3,#7

73 djnz r3保持16微秒以上

74 rrc a ;把位元組data分成8個bit環移給c

75 mov dq, c寫入乙個bit

76 mov r3,#23

77 djnz r3等待

78 setb dq重新釋放匯流排

79 nop

80 djnz r2,wr1寫入下乙個bit

81 setb dq

82 ret寫入子程式

8384 read_1820將溫度高位和低位讀出

85 mov r4,#2讀出兩個位元組的資料

86 mov r1,#29h ;低位存入29h,高位存入28h

87 re0:

88 mov r2,#8資料一共有8位

89 re1

90 clr c

91 setb dq

92 nop

93 nop

94 clr dq讀前匯流排保持為低

95 nop

96 nop

97 nop

98 setb dq開始讀匯流排釋放

99 mov r3,#9

100 re2:

101 djnz r3,re2延時18微妙

102 mov c, dq從匯流排讀到乙個bit

103 mov r3,#23

104 re3

105 djnz r3,re3等待50微妙

106 rrc a把讀得的位值環移給a

107 djnz r2,re1讀下乙個bit

108 mov @r1,a

109 dec r1

110 djnz r4,re0

111 ret讀取子程式

112113 turn:

114 mov a,29h

115 mov c,40h將28中的最低位移入c

116 rrc a

117 mov c,41h

118 rrc a

數字溫度計報告

課程設計 設計題目 溫度報警系統的設計與製作 專業班級 應用電子技術2009級 1 班 學號 200930210133 姓名馮立業 指導教師 李玉平王海華 設計時間 2011 6 13 2011 6 24 設計地點k2 微控制器實驗室 課程設計任務書 1 第一章 緒論 2 1.1 課題名稱 2 1....

數字溫度計

數字溫度計 0 100 目錄1.摘要 2.方案設計與論證 2.1數字溫度計設計方論證 2.2方案二的總體設計框圖 2.3 ds18b20溫度感測器與微控制器的介面電路 2.4 系統整體硬體電路 3.系統軟體演算法分析 3.1主程式 3.2讀出溫度子程式 3.3溫度轉換命令子程式 3.4 計算溫度子程...

數字溫度計設計實驗報告

題目 數字溫度計 學院 電氣工程與自動化 班級姓名 學號指導教師 一 實驗任務 溫度計是工農業生產及科學研究中最常用的測量儀表。本課題要求用中小規模整合晶元設計並製作一數字式溫度計,即用數字顯示被測溫度。具體要求如下 1 測量範圍 20 150度。2 測量精度0.5度。3 4位led數碼管顯示。通過...