久久99精品久久久久久琪琪,久久人人爽人人爽人人片亞洲,熟妇人妻无码中文字幕,亚洲精品无码久久久久久久

基于單片機的數字溫度計設計課程設計

2020-10-11 15:00:02下載本文作者:會員上傳
簡介:寫寫幫文庫小編為你整理了這篇《基于單片機的數字溫度計設計課程設計》,但愿對你工作學習有幫助,當然你在寫寫幫文庫還可以找到更多《基于單片機的數字溫度計設計課程設計》。

基于單片機的數字溫度計設計

引言

隨著現代信息技術的飛速發展和傳統工業改造的逐步實現.能夠獨立工作的溫度檢測和顯示系統應用于諸多領域。傳統的溫度檢測以熱敏電阻為溫度敏感元件。熱敏電阻的成本低,但需后續信號處理電路,而且可靠性相對較差,測溫準確度低,檢測系統也有一定的誤差。與傳統的溫度計相比,這里設計的數字溫度計具有讀數方便,測溫范圍廣,測溫精確,數字顯示,適用范圍寬等特點。選用AT89C51型單片機作為主控制器件,DSl8B20作為測溫傳感器通過4位共陽極LED數碼管串口傳送數據,實現溫度顯示。通過DSl8B20直接讀取被測溫度值,進行數據轉換,該器件的物理化學性能穩定,線性度較好,在0℃~100℃最大線性偏差小于0.1℃。該器件可直接向單片機傳輸數字信號,便于單片機處理及控制。另外,該溫度計還能直接采用測溫器件測量溫度,從而簡化數據傳輸與處理過程。

系統硬件設計方案

根據系統功能要求,構造圖1所示的系統原理結構框圖。

圖1

系統原理結構框圖

2.1

單片機的選擇

AT89C51作為溫度測試系統設計的核心器件。該器件是INTEL公司生產的MCS一5l系列單片機中的基礎產品,采用了可靠的CMOS工藝制造技術,具有高性能的8位單片機,屬于標準的MCS—51的CMOS產品。不僅結合了HMOS的高速和高密度技術及CHMOS的低功耗特征,而且繼承和擴展了MCS—48單片機的體系結構和指令系統。單片機小系統的電路圖如圖2所示。

圖2

單片機小系統電路

AT89C51單片機的主要特性:

(1)與MCS-51

兼容,4K字節可編程閃爍存儲器;

(2)靈活的在線系統編程,掉電標識和快速編程特性;

(3)壽命為1000次寫/擦周期,數據保留時間可10年以上;

(4)全靜態工作模式:0Hz-33Hz;

(5)三級程序存儲器鎖定;

(6)128*8位內部RAM,32可編程I/O線;

(7)兩個16位定時器/計數器,6個中斷源;

(8)全雙工串行UART通道,低功耗的閑置和掉電模式;

(9)看門狗(WDT)及雙數據指針;

(9)片內振蕩器和時鐘電路;

2.2

溫度傳感器介紹

DS18B20可以程序設定9~12位的分辨率,精度為±0.5°C??蛇x更小的封裝方式,更寬的電壓適用范圍。分辨率設定,及用戶設定的報警溫度存儲在EPROM中,掉電后依然保存。

溫度傳感器DS18B20引腳如圖3所示。

8引腳封裝

TO-92封裝

圖3

溫度傳感器

引腳功能說明:

NC

:空引腳,懸空不使用;

VDD

:可選電源腳,電源電壓范圍3~5.5V。當工作于寄生電源時,此引腳必須接地。

DQ

:數據輸入/輸出腳。漏極開路,常態下高電平。

GND

:為電源地

DS18B20內部結構主要由四部分組成:64位光刻ROM、溫度傳感器、非揮發的溫度報警觸發器TH和TL、配置寄存器。

光刻ROM中的64位序列號是出廠前被光刻好的,它可以看作是該DS18B20的地址序列碼。64位光刻ROM的排列是:開始8位(28H)是產品類型標號,接著的48位是該DS18B20自身的序列號,最后8位是前面56位的循環冗余校驗碼(CRC=X8+X5+X4+1)。光刻ROM的作用是使每一個DS18B20都各不相同,這樣就可以實現一根總線上掛接多個DS18B20的目的。

DS18B20中的溫度傳感器可完成對溫度的測量,以12位轉化為例:用16位符號擴展的二進制補碼讀數形式提供,以0.0625℃/LSB形式表達,其中S為符號位。

這是12位轉化后得到的12位數據,存儲在18B20的兩個8比特的RAM中,二進制中的前面5位是符號位,如果測得的溫度大于0,這5位為0,只要將測到的數值乘于0.0625即可得到實際溫度;如果溫度小于0,這5位為1,測到的數值需要取反加1再乘于0.0625即可得到實際溫度。

例如+125℃的數字輸出為07D0H,+25.0625℃的數字輸出為0191H,-25.0625℃的數字輸出為FF6FH,-55℃的數字輸出為FC90H。

DS18B20溫度傳感器的內部存儲器包括一個高速暫存RAM和一個非易失性的可電擦除的E2RAM,后者存放高溫度和低溫度觸發器TH、TL和結構寄存器。

暫存存儲器包含了8個連續字節,前兩個字節是測得的溫度信息,第一個字節的內容是溫度的低八位,第二個字節是溫度的高八位。第三個和第四個字節是TH、TL的易失性拷貝,第五個字節是結構寄存器的易失性拷貝,這三個字節的內容在每一次上電復位時被刷新。第六、七、八個字節用于內部計算。第九個字節是冗余檢驗字節。

該字節各位的意義如下:

TM

R1

R0

低五位一直都是1,TM是測試模式位,用于設置DS18B20在工作模式還是在測試模式。在DS18B20出廠時該位被設置為0,用戶不要去改動。R1和R0用來設置分辨率,如表1所示:(DS18B20出廠時被設置為12位)

表1

DS18B20溫度轉換時間表

R1

R0

分辨率/位

溫度最大轉向時間

0

0

93.75

0

187.5

0

375

750

根據DS18B20的通訊協議,主機控制DS18B20完成溫度轉換必須經過三個步驟:每一次讀寫之前都要對DS18B20進行復位,復位成功后發送一條ROM指令,最后發送RAM指令,這樣才能對DS18B20進行預定的操作。復位要求主CPU將數據線下拉500微秒,然后釋放,DS18B20收到信號后等待16~60微秒左右,后發出60~240微秒的存在低脈沖,主CPU收到此信號表示復位成功。

2.3

溫度傳感器與單片機的連接

溫度傳感器的單總線(1-Wire)與單片機的P2.0連接,P2.0是單片機的高位地址線A8。P2端口是一個帶內部上拉電阻的8位雙向I/O,其輸出緩沖級可驅動(吸收或輸出電流)4個TTL邏輯門電路。對該端口寫“1”,可通過內部上拉電阻將其端口拉至高電平,此時可作為輸入口使用,這是因為內部存在上拉電阻,某一引腳被外部信號拉低時會輸出一個電流。在訪問外部程序存儲器或16位地址的外部數據存儲器時。如執行MOVX

DPTR指令,則表示P2端口送出高8位的地址數據。在訪問8位地址的外部數據存儲器時,可執行MOVX

RI指令,P2端口內容即為特殊功能寄存器(SFR)區中R2寄存器內容,整個訪問期間不改變。在Flash編程和程序校驗時,P2端口也接收高位地址和其他控制信號。圖4為DSl8820內部結構。圖5為DSl8820與單片機的接口電路。

圖4

DS18B20內部結構圖

圖5

DS18B20和單片機的接口連接

2.4

復位信號及外部復位電路

單片機的P1.6端口是MAX813看門狗電路中喂狗信號的輸入端,即單片機每執行一次程序就設置一次喂狗信號,清零看門狗器件。若程序出現異常,單片機引腳RST將出現兩個機器周期以上的高電平,使其復位。該復位信號高電平有效,其有效時間應持續24個振蕩脈沖周期即兩個機器周期以上。若使用頻率為12

MHz的晶體振蕩器,則復位信號持續時間應超過2μs才完成復位操作。

2.5

單片機與報警電路

系統中的報警電路是由發光二極管和限流電阻組成,并與單片機的P1.2端口連接。P1端口的作用和接法與P2端口相同,不同的是在Flash編程和程序校驗期間,P1接收低8位地址數據。

2.6

電源電路

由于該系統需要穩定的5

V電源,因此設計時必須采用能滿足電壓、電流和穩定性要求的電源。該電源采用三端集成穩壓器LM7805。它僅有輸入端、輸出端及公共端3個引腳,其內部設有過流保護、過熱保護及調整管安全保護電路.由于所需外接元件少,使用方便、可靠,因此可作為穩壓電源。圖6為電源電路連接圖。

圖6

電源電路連接圖

2.7

顯示電路

采用技術成熟的74HCl64實現串并轉換。LED顯示分為靜態顯示和動態顯示。這里采用靜態顯示,系統通過單片機的串行口來實現靜態顯示。串行口為方式零狀態,即工作在移位寄存器方式,波特率為振蕩頻率的1/12。當器件執行任何一條將SBUF作為目的寄存器的命令時,數據便開始從RXD端發送。在寫信號有效時,相隔一個機器周期后發送控制端SEND有效,即允許RXD發送數據,同時允許從TXD端輸出移位脈沖。圖7為顯示電路的連接圖。

圖7

顯示電路的連接圖

2.8

看門狗電路

系統中把P1.6作為看門狗的“喂狗”信號;將MAX813的RESET與單片機的復位信號RST連接。由于單片機每執行一次程序,就會給看門狗器件一個復位信號,這樣也可以用手工方式實現復位。當按鍵按下時,SW—SPST就會在MAX813引腳產生一個超過200

ms的低電平,其實看門狗器件在1.6

s時間內沒有復位,使7引腳輸出一個復位信號的作用是相同的,其連接圖如圖8所示。

圖8

看門狗器件的MAX813的連接圖

軟件設計

DSl8820的主要數據元件有:64位激光Lasered

ROM,溫度靈敏元件和非易失性溫度告警觸發器TH和TL。DSBl820可以從單總線獲取電源,當信號線為高電平時,將能量貯存在內部電容器中;當單信號線為低電平時,將該電源斷開,直到信號線變為高電平重新接上寄生(電容)電源為止。此外,還可外接5

V電源,給DSl8820供電。DSl8820的供電方式靈活,利用外接電源還可增加系統的穩定性和可靠性。圖9為讀取數據流程圖。

開始

DS18B20的初始化

啟動溫度轉換

讀取溫度寄存器

跳過讀序列號的操作

跳過讀序列號的操作

DS18B20的初始化

RET

LOW-低八位

HIGH-高八位

圖9

讀取數據的流程圖

讀出溫度數據后,LOW的低四位為溫度的小數部分,可以精確到0.0625℃,LOW的高四位和HIGH的低四位為溫度的整數部分,HIGH的高四位全部為1表示負數,全為0表示正數。所以先將數據提取出來,分為三個部分:小數部分、整數部分和符號部分。小數部分進行四舍五入處理:大于0.5℃的話,向個位進1;小于0.5℃的時候,舍去不要。當數據是個負數的時候,顯示之前要進行數據轉換,將其整數部分取反加一。還因為DS18B20最低溫度只能為-55℃,所以可以將整數部分的最高位換成一個“-”,表示為負數。圖10為溫度數據處理程序的流程圖。

開始

提取整數部分存入HT

提取小數部分存入LT

LT右移三位,將精度降低到0.5攝氏度

HT++

將小數部分整數化

提取符號部分存入sign

LT是否大于5

Sign=?0XF0

RET

負數表示flag=1

HT=~HT+1

Y

N

N

Y

圖10

溫度數據處理流程圖

數據測試

將溫度傳感器與冰水混合物接觸,經過充分攪拌達到熱平衡后調節系統,使顯示讀數為0.00(標定0℃);利用氣壓計讀出當時當地的大氣壓強,并根據大氣壓強和當地重力加速度計算出當時的實際壓強;根據沸點與壓強的關系查出沸點溫度。把溫度傳感器放入沸水中,待顯示讀數穩定后重新調節,使顯示器顯示讀數等于當地當時沸點溫度后工作結束。該溫度計的量程為-50℃~150℃,讀數精度為0.1℃,實際使用一般在0℃~100℃。采用0℃~50℃和50℃~100℃的精密水銀溫度計作檢驗標準,對設計的溫度計進行測試,其結果表明能達到該精度要求。

總結與體會

作為一名電子信息工程的大四學生,我覺得做單片機課程設計是很有意義的,而且也是必要的。在做這次課程設計的過程中,我感觸最深的當屬查閱大量的設計資料了。為了讓自己的設計更加完善,查閱這方面的實際資料是十分必要的,也是必不可少的。

其次,在這次課程設計中,我們運用了以前學過的專業課知識,如:proteus仿真、匯編語言、模擬和數字電路知識等。雖然過去我從未獨立應用過他們,但在學習的過程中帶著問題去學我發現效率很高,這是我做這次課程設計的又一收獲。

最后,要做好一個課程設計,就必須做到:在設計程序之前,對所用單片機的內部結構有一個系統的了解,知道該單片機有哪些資源;要有一個清晰的思路和一個完整的軟件流程圖;在設計程序時,不能妄想一次將整個程序設計好,反復修改、不斷改進是程序設計的必經之路;要養成注釋程序的好習慣,這樣為資料的保留和交流提供了方便;在設計中遇到的問題要記錄,以免下次遇到同樣的問題。

在這次的課程設計中,我真正的意識到,在以后的學習中,要理論聯系實際,把我們所學的理論知識用到實際當中,學習單片機更是如此,程序只有在經常寫與讀的過程中才能提高,這就是這次課程設計的最大收獲。

附錄1

仿真圖

附錄2

程序源代碼

DATA_BUS

BIT

P3.3

FLAG

BIT

00H

;標志位

TEMP_L

EQU

30H

;溫度值低字節

TEMP_H

EQU

31H

;溫度值高字節

TEMP_DP

EQU

32H

;溫度小數

TEMP_INT

EQU

33H

;溫度值整數

TEMP_BAI

EQU

34H

;溫度百位數

TEMP_SHI

EQU

35H

;溫度十位數

TEMP_GE

EQU

36H

;溫度個位數

DIS_BAI

EQU

37H

;顯示百位數

DIS_SHI

EQU

38H

;顯示十位數

DIS_GE

EQU

39H

;顯示個位數

DIS_DP

EQU

3AH

;顯示小數位

DIS_ADD

EQU

3BH

;顯示地址

ORG

0000H

AJMP

START

ORG

0050H

;初始化

START:

MOV

SP,#40H

MAIN:

LCALL

READ_TEMP

;調讀溫度程序

LCALL

PROCESS

;調數據處理程序

AJMP

MAIN

;讀溫度程序

READ_TEMP:

LCALL

RESET_PULSE

;調用復位脈沖程序

MOV

A,#0CCH

;跳過ROM命令

LCALL

WRITE

MOV

A,#44H

;讀溫度

LCALL

WRITE

LCALL

DISPLAY

;顯示溫度

LCALL

RESET_PULSE

;調用復位脈沖程序

MOV

A,#0CCH

;跳過ROM命令

LCALL

WRITE

MOV

A,#0BEH

;讀緩存命令

LCALL

WRITE

LCALL

READ

RET

;復位脈沖程序

RESET_PULSE:

RESET:

SETB

DATA_BUS

NOP

NOP

CLR

DATA_BUS

MOV

R7,#255

DJNZ

R7,$

SETB

DATA_BUS

MOV

R7,#30

DJNZ

R7,$

JNB

DATA_BUS,SETB_FLAG

CLR

FLAG

AJMP

NEXT

SETB_FLAG:

SETB

FLAG

NEXT:

MOV

R7,#120

DJNZ

R7,$

SETB

DATA_BUS

JNB

FLAG,RESET

RET

;寫命令

WRITE:

SETB

DATA_BUS

MOV

R6,#8

CLR

C

WRITING:

CLR

DATA_BUS

MOV

R7,#5

DJNZ

R7,$

RRC

A

MOV

DATA_BUS,C

MOV

R7,#30H

DJNZ

R7,$

SETB

DATA_BUS

NOP

DJNZ

R6,WRITING

RET

;循環顯示段位

DISPLAY:

MOV

R4,#200

DIS_LOOP:

MOV

A,DIS_DP

MOV

P2,#0FFH

MOV

P0,A

CLR

P2.7

LCALL

DELAY2MS

MOV

A,DIS_GE

MOV

P2,#0FFH

MOV

P0,A

SETB

P0.7

CLR

P2.6

LCALL

DELAY2MS

MOV

A,DIS_SHI

MOV

P2,#0FFH

MOV

P0,A

CLR

P2.5

LCALL

DELAY2MS

MOV

A,DIS_BAI

MOV

P2,#0FFH

MOV

P0,A

MOV

A,TEMP_BAI

CJNE

A,#0,SKIP

AJMP

NEXTT

SKIP:

CLR

P2.4

LCALL

DELAY2MS

NEXTT:

NOP

DJNZ

R4,DIS_LOOP

RET

;讀命令

READ:

SETB

DATA_BUS

MOV

R0,#TEMP_L

MOV

R6,#8

MOV

R5,#2

CLR

C

READING:

CLR

DATA_BUS

NOP

NOP

SETB

DATA_BUS

NOP

NOP

NOP

NOP

MOV

C,DATA_BUS

RRC

A

MOV

R7,#30H

DJNZ

R7,$

SETB

DATA_BUS

DJNZ

R6,READING

MOV

@R0,A

INC

R0

MOV

R6,#8

SETB

DATA_BUS

DJNZ

R5,READING

RET

;數據處理

PROCESS:

MOV

R7,TEMP_L

MOV

A,#0FH

ANL

A,R7

MOV

TEMP_DP,A

MOV

R7,TEMP_L

MOV

A,#0F0H

ANL

A,R7

SWAP

A

MOV

TEMP_L,A

MOV

R7,TEMP_H

MOV

A,#0FH

ANL

A,R7

SWAP

A

ORL

A,TEMP_L

MOV

B,#64H

DIV

AB

MOV

TEMP_BAI,A

MOV

A,#0AH

XCH

A,B

DIV

AB

MOV

TEMP_SHI,A

MOV

TEMP_GE,B

MOV

A,TEMP_DP

MOV

DPTR,#TABLE_DP

MOVC

A,@A+DPTR

MOV

DPTR,#TABLE_INTER

MOVC

A,@A+DPTR

MOV

DIS_DP,A

MOV

A,TEMP_GE

MOV

DPTR,#TABLE_INTER

MOVC

A,@A+DPTR

MOV

DIS_GE,A

MOV

A,TEMP_SHI

MOV

DPTR,#TABLE_INTER

MOVC

A,@A+DPTR

MOV

DIS_SHI,A

MOV

A,TEMP_BAI

MOV

DPTR,#TABLE_INTER

MOVC

A,@A+DPTR

MOV

DIS_BAI,A

RET

DELAY2MS:

MOV

R6,#3

LOOP3:

MOV

R5,#250

DJNZ

R5,$

DJNZ

R6,LOOP3

RET

TABLE_DP:

DB

00H,01H,01H,02H,03H,03H,04H,04H,05H,06H

DB

06H,07H,08H,08H,09H,09H

TABLE_INTER:

DB

03FH,006H,05BH,04FH,066H

DB

06DH,07DH,07H,07FH,06FH

END

下載基于單片機的數字溫度計設計課程設計word格式文檔
下載基于單片機的數字溫度計設計課程設計.doc
將本文檔下載到自己電腦,方便修改和收藏,請勿使用迅雷等下載。
點此處下載文檔

文檔為doc格式


聲明:本文內容由互聯網用戶自發貢獻自行上傳,本網站不擁有所有權,未作人工編輯處理,也不承擔相關法律責任。如果您發現有涉嫌版權的內容,歡迎發送郵件至:645879355@qq.com 進行舉報,并提供相關證據,工作人員會在5個工作日內聯系你,一經查實,本站將立刻刪除涉嫌侵權內容。

相關范文推薦

    基于51單片機數字溫度計設計課程設計

    課題:基于51單片機數字溫度計設計專業:電子信息工程班級:班學號:姓名:指導教師:設計日期:成績:XX大學XX學院電氣學院基于51單片機數字溫度計設計一、設計目的1、掌握單片機電路的設......

    單片機數字萬用表課程設計

    《單片機》課程設計 題目:基于單片機的數字多用表設計專業:電力系統及其自動化班級:本自動化姓名: 學號:指導老師:小組成員:成績:摘要 本次設計采用單片機芯片AT89S51與ADC0809設計......

    單片機數字時鐘課程設計感想

    五.實驗總結及感想 在實驗的開始幾天,基本上沒有收獲,不知何從下手,不知所措。為了看得更遠,不妨站在前人的肩膀上,我在整體思路模糊的情況下,在網上大量招資糧,各種與電子時鐘相關......

    單片機課程設計設計項目

    09級通信專業《課程設計》方案 單片機應用系統設計項目介紹學生:09級通信1、2、3班指導教師:周秋茜一、16×16點陣LED電子顯示屏的設計1.功能要求設計一個室內用16×16點陣LED......

    單片機課程設計電子鐘設計

    單片機課程設計電子鐘設計目錄一、摘要二、設計任務三、基本原理數碼管顯示可以用靜態顯示或動態顯示方法。靜態顯示需要數據鎖存器等硬件,接口復雜,時鐘顯示用四個數碼管。動......

    單片機數字溫度計畢業設計提綱 大綱 參考(精選合集)

    畢業論文設計提綱 學生: 專業: 電子信息工程技術指導教師: 職稱: 高級電子工程師 【題目】《 單片機數字溫度計顯示設計 》 【摘要】(對設計進行評估) 【關鍵字】單片機 、 溫度......

    單片機課程設計(基于多路數字搶答器)(范文)

    一、概述 大學四年的學習生活中,會遇到各種各樣的競賽,搶答器便成為了主要的工具之一。而現在的搶答器智能化越來越強,這必然會提高搶答器的成本。本搶答器與其他搶答器電路相......

    單片機課程設計

    設計題目: 單片機課程設計 學生姓名:學院: 電氣與信息工程學院班級: 電子111班 指導教師:日 期: 2014年9月20日 一、課程設計目的: 了解電子元器件的功能與原理,掌握單片機的結構......

主站蜘蛛池模板: 东北老头嫖妓猛对白精彩| 亚洲精品久久国产高清小说| 久久99精品久久久久久琪琪| 国内精品无码一区二区三区| 色播亚洲视频在线观看| 国产精品自在拍一区二区不卡| 手机看片aⅴ永久免费无码| 人人入人人爱| 久久综合狠狠综合久久综合88| 亚洲精品无码久久久久app| 中文字幕久久久久人妻| 国产精品久久久午夜夜伦鲁鲁| 国模杨依粉嫩蝴蝶150p| 图片区 小说区 区 亚洲五月| 狠狠色综合7777久夜色撩人ⅰ| 久久精品国产亚洲av忘忧草18| 2012中文字幕在线视频| 亚洲妇熟xxxx妇色黄| 国产精品一区二区av片| 国产999精品2卡3卡4卡| 精品国产午夜福利精品推荐| 免费精品国产自产拍在线观看图片| 亚洲a片无码一区二区蜜桃| 日韩人妻ol丝袜av一二区| 欧美成人精品三级在线观看| 亚欧成人中文字幕一区| 无码人妻精品一区二区蜜桃网站| 377人体粉嫩噜噜噜| 人妻无码中文字幕免费视频蜜桃| 一本色道无码道dvd在线观看| 99精品免费久久久久久久久日本| 永久免费观看美女裸体的网站| 欧美丰满熟妇性xxxx| 国产毛多水多高潮高清| 中国农村熟妇性视频| 亚洲国产成人久久精品大牛影视| 欧美无遮挡很黄裸交视频| 国产真实野战在线视频| 国产成人无码va在线观看| 久久天天躁狠狠躁夜夜2020| 欧美丰满少妇xxxxx|