導航:首頁 > 操作系統 > 電子溫度計單片機

電子溫度計單片機

發布時間:2023-06-27 16:28:22

『壹』 單片機溫度計上電顯示溫度怎麼設置

1、首先通過DS18B20檢測溫度,若溫度高於設定最大閾值,紅燈亮,若溫度低於設定最小閾值,黃燈亮。
2、其次通過ADC0832配合電壓檢測電路檢測當前電壓,通過蜂鳴器提供按鍵音。
3、最後通過顯示屏顯示數字溫度計的溫度下限閾值,當前溫度值,電壓表的電壓值,通過按鍵切換界面,設置上下限閾值。

『貳』 51單片機數字溫度計常見故障及解決辦法

用51做處理器,外圍電路如圖,一片雙積分轉換晶元ICL7135做AD,它的時鍾需要125K,用51的ALE經過一片CD4024分頻得到。1403提供基準源。另外,一片7660提供7135工作所需要的負壓。
為了省電,把所有模擬電路部分電源用一個晶體管管理起來,由P1.0來控制。(上圖為示意圖,省去了電阻沒畫)P1.0為地的時候,模擬系統才上電
現在怪現象如下:
模擬機正常運行,燒寫晶元後無反應。
模擬正常,說明外圍晶元完全正常,電路也沒有錯誤。
經過檢查,晶體正常,復位可靠,EA高,程序堆棧都沒有溢出,並排除其它一切低級錯誤的可能。
再編寫一程序,
main()
{
while(1) {P1.1=0;}
}
P1.1和VCC間接有一發光管,開機無反應。
後來,發現更奇怪的現象:
拔除CD4024,MC1403,ICL7135,ICL7660中的任何一個,系統就可以正常運行!
百思不得其解,茶飯不思,郁悶了N久
更換全部晶元,如故。
更換ATMEL/PHILIPS/WINBOND的N款單片機,如故。
檢查,排除電路故障的可能,
後來又發現,只要上電之前把P1.0對地短路,(也就是模擬部分強加電源),上電,系統正常運行。
但是,如果開機前P1.0不對地短路,上電一定不能運行,此後即使再把P1.0對地接,也不行。
順這個思路,應該是和模擬部分有關……
又是郁悶N久,之後,無意間翻看CD4024內部圖,茅塞頓開……
CD4024等TTL/CMOS邏輯晶元,為了防止靜電或錯誤的IO電平,內部都有保護電路

51單片機故障分析一個 - cryinrain_cug - cryinrain_cug的博客
如圖2,每個IO口都有如圖的2個二極體,集成在晶元內部。保證IO口電壓在-0.6~5.6V之間
復位的過程中,全部IO為高,P1.0和ALE當然也是高。這樣模擬部分不上電。
那麼,ALE的輸出角就等效於通過一個二極體向這四塊模擬晶元供電!!!(如圖)
ALE的輸出能力不強,自然,ALE就被拉低了。
在查看51的手冊,ALE和/PROG腳是復用的!!
在復位過程中,ALE如果為低,晶元進入編程狀態!!!
也就是說,我的系統在上電復位的過程中就進入了PROG編程模式,難怪一條語句都不能執行
那麼,也很好解釋為什麼四個晶元中拔掉一個就能正常工作了,因為負載輕了,ALE可能還沒有被拉到2.5V以下,所以正常復位進入程序。
解決的辦法:ALE接2K的上拉,再通過47K電阻接到Cd4024上,上電,一切正常!
結論:單片機編程模式/ISP模式是通過用戶很不容易出現的一個時序來啟動的,在一些特殊應用時要小心避開這些非用戶代碼模式。

『叄』 單片機的應用領域

四個領域:

1、醫用設備

單片機在中豎戚低端領域有呼吸機、分析儀等設備,電子溫度計在日常生活中比較常用。設計的產品廣泛。

4、計算機網路通信

帶通信介面的設備,單片機可直接與計算機數據通信。比如無線對講機、遠程監控交換機、手機等設備都能實現智能控制。

除了以上涉及到的幾種領域外,還有其他領域也有設計,比如在教育、國防、工商等領域都有應用到,隨著64位單片機和32位單片機的不斷發展,未來單片機的應用領域將繼續擴大。

『肆』 單片機數字溫度計的源程序

//DS18B20的讀寫程序,數據腳P2.7 // //溫度感測器18B20匯編程序,採用器件默認的12位轉化 // //最大轉化時間750微秒,顯示溫度-55到+125度,顯示精度 // //為0.1度,顯示採用4位LED共陽顯示測溫值 // //P0口為段碼輸入,P34~P37為位選 // /***************************************************/ #include "reg51.h" #include "intrins.h" //_nop_();延時函數用 #define Disdata P0 //段碼輸出口 #define discan P2 //掃描口 #define uchar unsigned char #define uint unsigned int sbit DQ=P1^2; //溫度輸入口 sbit DIN=P0^7; //LED小數點控制 uint h; uint temp; // // //**************溫度小數部分用查表法***********// uchar code ditab[16]= {0x00,0x01,0x01,0x02,0x03,0x03,0x04,0x04,0x05,0x06,0x06,0x07,0x08,0x08,0x09,0x09}; // uchar code dis_7[12]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff,0xbf}; //共陽LED段碼表 "0" "1" "2" "3" "4" "5" "6" "7" "8" "9" "不亮" "-" uchar code scan_con[4]={0xfe,0xfd,0xfb,0xf7}; //列掃描控制字 uchar data temp_data[2]={0x00,0x00}; //讀出溫度暫放 uchar data display[5]={0x00,0x00,0x00,0x00,0x00}; //顯示單元數據,共4個數據和一個運算暫用 // // // /*****************11us延時函數*************************/ // void delay(uint t) { for (;t>0;t--); } // /****************顯示掃描函數***************************/ scan() { char k; for(k=0;k<4;k++) //4位LED掃描控制 { Disdata=dis_7[display[k]]; //數據顯示 if (k==1){DIN=0;} //小數點顯示 discan=scan_con[k]; //位選 delay(300); P2=0xff; } }

『伍』 單片機數字溫度計的上電溫度為30

最低溫度。單片機數字溫度計的上電溫度為30是最低溫度,溫度控制范圍為30度道100度之間,可鍵盤設置控制溫度值,並顯示。溫度感測器採用18B20。18b20採用單匯流排方式與單片機相連,把採集到得溫度信息傳給單片機。

『陸』 單片機數字溫度計設計

;調試成功,還能湊合用
;有什麼具體的設計要求請說明,現場改。protues電路圖,聯系[email protected]
DATA_BUS BIT P1.2
FLAG BIT 00H
NEG BIT 01H
TURN BIT 02H
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
T_UP EQU 37H
T_DOWN EQU 38H
MARK EQU 39H
DIS_DP EQU 3AH
DIS_ADD EQU 3BH
KEY_HUAN BIT P3.0
KEY_A BIT P3.1
KEY_D BIT P3.2

ORG 0000H
AJMP START

ORG 0040H
START:
MOV SP, #50H
MOV P2,#00H; 先關閉所有數碼管 共陰則 MOV P2, #0FFH
CLR FLAG
CLR NEG
CLR TURN ;按鍵轉換標志,只有轉換按鍵按過,再按其他的鍵才能調整溫度。
MOV T_UP,#60H ;初始化溫度上限
MOV T_DOWN,#30H ;初始化溫度下限
MOV MARK,#00H ;當前顯示數值的標志。0顯示當前溫度,1顯示並調節最高溫度,2顯示並調節最低溫度。
MOV TEMP_DP, #08H
MOV TEMP_BAI, #08H
MOV TEMP_SHI, #08H
MOV TEMP_GE, #08H
LCALL DISPLAY
MAIN:
LCALL READ_TEMP
LCALL PROCESS
LCALL KEYSCAN
LJMP MAIN

;讀溫度程序
READ_TEMP:
LCALL RESET_PULSE ;18B20初始化,對18B20的每一個讀寫操作都是從初始化開始的。
MOV A, #0CCH ;指令0CCH 跳過讀ROM,至於為什麼看看DS18B20的中文資料就知道了。
LCALL WRITE ;往18B20寫指令
MOV A, #44H ;指令44H 溫度變換。
LCALL WRITE
LCALL DISPLAY ;調用顯示
LCALL RESET_PULSE ;18B20初始化
MOV A, #0CCH
LCALL WRITE
MOV A, #0BEH ;0BEH 讀暫存存儲器
LCALL WRITE ;先寫「讀溫度」指令
LCALL READ ;再讀溫度值
RET

;復位脈沖程序

;/*--------------------------------------------------------------------------------------------------------------------
; 時序:初始化時序、讀時序、寫時序。
;
;初始化:檢測匯流排控制器發出的復位脈沖
;
;和ds18b20的任何通訊都要從初始化開始
;
;初始化序列包括一個由匯流排控制器發出的復位脈沖
;
;和跟在其後由從機發出的存在脈沖。
;
;始化:復位脈沖+存在脈沖
;
;具體操作:
;
;匯流排控制器發出(TX)一個復位脈沖 (一個最少保持480μs 的低電平信號),然後釋放匯流排,
;
;進入接收狀態(RX)。單線匯流排由5K 上拉電阻拉到高電平。探測到I/O 引腳上的上升沿後
;
;DS1820 等待15~60μs,然後發出存在脈沖(一個60~240μs 的低電平信號)。
;
;具體看" 18b20"文檔里的 " 單線復位脈沖時序和1-wire presence detect "的時序圖
;對著18B20的復位時序圖就看明白了
;--------------------------------------------------------------------------------------------------------------------*/
;
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 ;數據線置1
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

;讀命令

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

;循環顯示段位
DISPLAY:
MOV R4, #50

DIS_LOOP:
MOV P2,#00H
MOV A, TEMP_DP
MOV DPTR, #TABLE_DP ;真不知這TABLE_DP能幹什麼,不顯示負號時加上後還會顯示255.9.
MOVC A, @A+DPTR ;現在看來必須得加上他,否則添加了負號處理並顯示後會間歇性的顯示-01.8. 很奇怪這是為什麼
MOV DPTR, #TABLE_INTER
MOVC A, @A+DPTR
MOV P0, A
SETB P2.3
LCALL D1MS
CLR P2.3

MOV A, TEMP_GE
MOV DPTR, #TABLE_INTER
MOVC A, @A+DPTR
MOV P0, A
CLR P0.7
SETB P2.2
LCALL D1MS
CLR P2.2

MOV A, TEMP_SHI
MOV DPTR, #TABLE_INTER
MOVC A, @A+DPTR
MOV P0, A
SETB P2.1
LCALL D1MS
CLR P2.1

JNB NEG,BAI
MOV A,#0BFH
MOV P0,A
SETB P2.0
LCALL D1MS
CLR P2.0
;AJMP NEXTT

BAI: MOV A, TEMP_BAI
CJNE A, #0, SKIP
AJMP NEXTT
SKIP: MOV A, TEMP_BAI
MOV DPTR, #TABLE_INTER
MOVC A, @A+DPTR
MOV P0, A
SETB P2.0
LCALL D1MS
CLR P2.0
NEXTT: NOP
DJNZ R4, DIS_LOOP
RET

KEYSCAN:
JB KEY_HUAN,KEY2
LCALL D2MS
JB KEY_HUAN,KEY2
CPL TURN
INC MARK
MOV A,MARK
CJNE A,#03H,KEY2
MOV MARK,#00H

KEY2: JNB TURN, OVER

JB KEY_A,KEY3
LCALL D2MS
JB KEY_A,KEY3
MOV A,MARK
CJNE A,#01H,N1
INC T_UP
N1: MOV A,MARK
CJNE A,#02H,OVER
INC T_DOWN

KEY3: JB KEY_D,OVER
LCALL D2MS
JB KEY_D,OVER
MOV A,MARK
CJNE A,#01,N2
DEC T_UP
N2: MOV A,MARK
CJNE A,#2,OVER
DEC T_DOWN
OVER:
RET

/* ------------------------------------------------------------------------------------------
當溫度轉換命令發布後,經轉換所得的溫度值以二位元組補碼的形式存放在高速暫存存儲器的第0、1個位元組。
;單片機可通過單線介面讀到該數據,讀取時低位在前,高位在後。
;對應的溫度計算:當符號位S=0時,直接將二進制位轉換為十進制;當S=1時,先將補碼變為原碼,再計算十進制值。
;數據處理
--------------------------------------------------------------------------------------------*/
PROCESS:
MOV A,MARK
CJNE A,#01H,TP1
MOV A,T_UP
AJMP SEP
TP1:MOV A,MARK
CJNE A,#02H,TP2
MOV A,T_DOWN
AJMP SEP
TP2: MOV R7, TEMP_L ;取二進制溫度最低四位,即溫度的小數位。
MOV A, #0FH
ANL A, R7
MOV TEMP_DP,A ;小數位存到TEMP-DP中。

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 ;溫度的整數位在A,
MOV TEMP_L,A ;暫存當前溫度值

;比較溫度是否超過報警溫度。
CJNE A,T_UP,NEQ1
NEQ1: JC NUP
CLR P3.3
AJMP TP
NUP:SETB P3.3
MOV A,TEMP_L
CJNE A,T_DOWN,NEQ2
NEQ2: JNC NDOWN
CLR P3.4
AJMP TP
NDOWN:SETB P3.4

TP: MOV A,TEMP_L
MOV R7, #80H ;判斷是否為負數。即溫度是否為零下
ANL A, R7
CJNE A, #00H,NG
CLR NEG
MOV A,TEMP_L
AJMP SEP
NG: SETB NEG
MOV A,TEMP_L
CPL A
INC A

SEP:
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

RET

D1MS:
MOV R7,#250
DJNZ R7,$
RET

D2MS:
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 0C0H,0F9H,0A4H,0B0H,099H,092H,082H,0F8H,080H,090H

END

閱讀全文

與電子溫度計單片機相關的資料

熱點內容
怎麼下載掃描二維碼的手機app 瀏覽:725
雲伺服器創建私有鏡像的時候一定要關機嗎 瀏覽:112
php開發學習門戶 瀏覽:385
傳奇游戲伺服器怎麼設置 瀏覽:823
敲擊東西解壓完整版 瀏覽:401
刺絡學pdf 瀏覽:868
怎麼給手機文件夾設置封面 瀏覽:931
汽車保養app怎麼用 瀏覽:62
線程javalock 瀏覽:896
c語言編譯運行結果查看器 瀏覽:112
androidpx轉dip 瀏覽:841
西藏編譯局是什麼級別 瀏覽:1001
php提交代碼 瀏覽:597
如何用命令查找並刪除代碼塊 瀏覽:582
python初學路線圖 瀏覽:534
matlab遺傳演算法旅行商問題 瀏覽:304
將辦公軟體加入加密軟體的進程 瀏覽:724
聯想小新pro14編譯器 瀏覽:462
為什麼伺服器要關掉icmp協議 瀏覽:855
源碼編輯器如何設置難度 瀏覽:357