【導(dǎo)讀】基于AT89S51的溫度測量系統(tǒng)的設(shè)計。單片機AT89C51、溫度傳感器DS18B20、顯示譯碼器74LS47、晶振。、MAX232CPE、3位LED七段顯示器LN5361BS. 本單片機開發(fā)電路系統(tǒng)可實現(xiàn)溫度測量的顯示及與PC機的串行通信。電路中采用的溫度傳感器DS18B20是美國DALLS公司生產(chǎn)的單總線數(shù)字。溫度傳感器,可把溫度信號直接轉(zhuǎn)換成串行數(shù)字信號供微機處理。出或?qū)懭氲男畔H需要一根口線,讀寫及溫度變換功率來源于數(shù)據(jù)??偩€,總線本身也可以向所掛接的DS18B20供電,而無需額外電源。DS18B20的外引腳圖如下:。輸出腳DQ與單片機AT89C51的相連,實現(xiàn)將所測的溫度讀入CPU,經(jīng)系統(tǒng)。JNBF0,KEND;如果沒有應(yīng)答,返回主程序。MOVR0,#44H;發(fā)出溫度轉(zhuǎn)換命令。MOV48H,#1;延時75ms以上準(zhǔn)備讀。MOVR0,#0CCH;跳過ROM匹配。SEND_BYTE:MOVA,R0;發(fā)送一個字節(jié)程序。SEN2:DJNZR5,SEN3;循環(huán)8次,寫一個字節(jié)。MOVR6,#250;主機發(fā)復(fù)位脈沖持續(xù)2*300=600μS. SETBDAT;主機釋放總線,口線改為輸入。LCALLCHCK;調(diào)用應(yīng)答檢查程序。SETBF0;檢測到信號,置位F0. ;定時顯示子程序,采用循環(huán)掃描方式。MOVP0,40H;最后一位值送p0