大學(xué)課程設(shè)計(jì)-PLC課程設(shè)計(jì).doc_第1頁(yè)
大學(xué)課程設(shè)計(jì)-PLC課程設(shè)計(jì).doc_第2頁(yè)
大學(xué)課程設(shè)計(jì)-PLC課程設(shè)計(jì).doc_第3頁(yè)
大學(xué)課程設(shè)計(jì)-PLC課程設(shè)計(jì).doc_第4頁(yè)
大學(xué)課程設(shè)計(jì)-PLC課程設(shè)計(jì).doc_第5頁(yè)
已閱讀5頁(yè),還剩29頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

此文檔收集于網(wǎng)絡(luò),如有侵權(quán),請(qǐng)聯(lián)系網(wǎng)站刪除摘要隨著計(jì)算機(jī)科學(xué)的發(fā)展,計(jì)算機(jī)已深入地滲透到我們的生活中,要想學(xué)好溫度測(cè)控,由于溫度測(cè)控是基于單片機(jī)知識(shí)的,因此我們只有扎扎實(shí)實(shí)的把單片機(jī)知識(shí)學(xué)好?,F(xiàn)今,我們的生活環(huán)境和工作環(huán)境中,由單片機(jī)構(gòu)成的微型系統(tǒng)在為我們服務(wù)。單片機(jī)在工業(yè)控制,尖端武器,通信設(shè)備,信息處理,家用電器等各測(cè),控領(lǐng)域的應(yīng)用中獨(dú)占鰲頭。時(shí)下,家用電器和辦公設(shè)備的智能化,遙控化,模糊控制化已成為世界潮流,而這些高性能無(wú)一不是靠單片機(jī)來(lái)實(shí)現(xiàn)的,同時(shí)在使用單片機(jī)的前提下我們也還要用到A/D數(shù)模轉(zhuǎn)換。我們作為21世紀(jì)的大學(xué)生必須具備單片機(jī)知識(shí)?,F(xiàn)在隨著社會(huì)對(duì)人才素質(zhì)要求的不斷提高,我們也要不斷的充實(shí)自己,以適應(yīng)社會(huì)的發(fā)展。溫度傳感器及有關(guān)電路將溫度轉(zhuǎn)化為電脈沖的脈寬,單片機(jī)將測(cè)得的脈沖寬度的值轉(zhuǎn)化為與之對(duì)應(yīng)的溫度值。DS-18B20數(shù)字溫度傳感器就是我設(shè)計(jì)的其中的一個(gè)電源器件。本設(shè)計(jì)所介紹的數(shù)字溫度計(jì)與傳統(tǒng)的溫度計(jì)相比,具有讀數(shù)方便,測(cè)溫范圍廣,測(cè)溫準(zhǔn)確,其輸出溫度采用數(shù)字顯示,主要用于對(duì)測(cè)溫比較準(zhǔn)確的場(chǎng)所,或科研實(shí)驗(yàn)室使用,測(cè)溫傳感器使用DS18B20,用4位共陽(yáng)極LED數(shù)碼管以串口傳送數(shù)據(jù),實(shí)現(xiàn)溫度顯示,能準(zhǔn)確達(dá)到以上要求。目錄一 概述-23二 整體方案-232.1設(shè)計(jì)任務(wù)-4三.硬件電路設(shè)計(jì)-43.1單片機(jī)控制電路-43.2溫度采集模塊-63.3顯示模塊-103.4報(bào)警模塊-11 3.5串口通訊電路上位機(jī)模塊-11123.6硬件制作圖解-1213四軟件系統(tǒng)設(shè)計(jì)-13144.1程序流程圖-13144.2基本顯示原理-14154.3 DS18B20匯編程序-1415五.系統(tǒng)調(diào)試-1617六.總結(jié)-1617七.致謝-1718八.附件-1819九.參考文獻(xiàn)-27291、概述TS-18B20數(shù)字溫度傳感器,該產(chǎn)品采用美國(guó)DALLAS公司生產(chǎn)的 DS18B20可組網(wǎng)數(shù)字溫度傳感器芯片封裝而成,具有耐磨耐碰,體積小,使用方便,封裝形式多樣,適用于各種狹小空間設(shè)備數(shù)字測(cè)溫和控制領(lǐng)域。 溫度傳感器可編程的分辨率為912位 溫度轉(zhuǎn)換為12位數(shù)字格式最大值為750毫秒 用戶可定義的非易失性溫度報(bào)警設(shè)置 應(yīng)用范圍包括恒溫控制,工業(yè)系統(tǒng),消費(fèi)電子產(chǎn)品溫度計(jì),或任何熱敏感系統(tǒng)。在做這個(gè)設(shè)計(jì)之前,我查了許多的資料,其中TS-18B20數(shù)字溫度傳感器的卓越性能深深的吸引了我,所以我決定這次的設(shè)計(jì)就用它來(lái)實(shí)現(xiàn)測(cè)溫的功能。2、整體方案 TS-18B20數(shù)字溫度傳感器,該產(chǎn)品采用美國(guó)DALLAS公司生產(chǎn)的DS18B20可組網(wǎng)數(shù)字溫度傳感器芯片封裝而成,具有耐磨耐碰,體積小,使用方便,封裝形式多樣,適用于各種狹小空間設(shè)備數(shù)字測(cè)溫和控制領(lǐng)域。作為一種數(shù)字化溫度傳感器,DS18B20測(cè)溫時(shí)無(wú)需任何外部元件,可直接輸出912位(含符號(hào)位)的被測(cè)溫度值,測(cè)溫范圍為一55 +125;在一1O+85 范圍內(nèi)測(cè)量精度為05 ,輸出測(cè)量分辨率可調(diào),最高可達(dá)0062 5,圖2.1是整體框圖。 圖2.1 整體框圖21設(shè)計(jì)任務(wù)以單片機(jī)為核心,設(shè)計(jì)單片機(jī)最小系統(tǒng),構(gòu)成數(shù)字式溫度計(jì),能夠?qū)崿F(xiàn)實(shí)時(shí)溫度的顯示。1、 實(shí)現(xiàn)1路實(shí)時(shí)溫度的顯示,顯示位數(shù)為3位,顯示精度0.1;2、 利用DS18B20作為集成溫度傳感器,選擇相應(yīng)變送電路;3、 設(shè)計(jì)單片機(jī)主程序、溫度變換程序、顯示程序等;4、 盡可能降低設(shè)計(jì)的成本;3、硬件電路設(shè)計(jì)3.1單片機(jī)控制電路表1 DS18B20詳細(xì)引腳功能描述序號(hào)名稱引腳功能描述1GND地信號(hào)2DQ數(shù)據(jù)輸入/輸出引腳。開(kāi)漏單總線接口引腳。當(dāng)被用著在寄生電源下,也可以向器件提供電源。3VDD可選擇的VDD引腳。當(dāng)工作于寄生電源時(shí),此引腳必須接地。 AT89s51的特點(diǎn)及特性:40個(gè)引腳,4k bytes flash片內(nèi)程序存儲(chǔ)器,128 bytes的隨機(jī)存取數(shù)據(jù)存儲(chǔ)器(ram),32個(gè)外部雙向輸入/輸出(i/o)口,5個(gè)中斷優(yōu)先級(jí)2層中斷嵌套中斷,2個(gè)16位可編程定時(shí)計(jì)數(shù)器,2個(gè)全雙工串行通信口,看門(mén)狗(wdt)電路,片內(nèi)時(shí)鐘振蕩器。 此外,at89s51設(shè)計(jì)和配置了振蕩頻率可為0hz并可通過(guò)軟件設(shè)置省電模式??臻e模式下,cpu暫停工作,而ram定時(shí)計(jì)數(shù)器,串行口,外中斷系統(tǒng)可繼續(xù)工作,掉電模式凍結(jié)振蕩器而保存ram的數(shù)據(jù),停止芯片其它功能直至外中斷激活或硬件復(fù)位。同時(shí)該芯片還具有pdip、tqfp和plcc等三種封裝形式,以適應(yīng)不同產(chǎn)品的需求。主要功能特性: 兼容mcs-51指令系統(tǒng) 4k可反復(fù)擦寫(xiě)(1000次)isp flash rom 32個(gè)雙向i/o口 4.5-5.5v工作電壓 2個(gè)16位可編程定時(shí)/計(jì)數(shù)器 時(shí)鐘頻率0-33mhz 全雙工uart串行中斷口線 128x8bit內(nèi)部ram 2個(gè)外部中斷源 低功耗空閑和省電模式 中斷喚醒省電模式 3級(jí)加密位 看門(mén)狗(wdt)電路 軟件設(shè)置空閑和省電功能 靈活的isp字節(jié)和分頁(yè)編程 雙數(shù)據(jù)寄存器指針由于DS18B20采用的是1Wire總線協(xié)議方式,即在一根數(shù)據(jù)線實(shí)現(xiàn)數(shù)據(jù)的雙向傳輸,而對(duì)AT89S51單片機(jī)來(lái)說(shuō),硬件上并不支持單總線協(xié)議,因此,我們必須采用軟件的方法來(lái)模擬單總線的協(xié)議時(shí)序來(lái)完成對(duì)DS18B20芯片的訪問(wèn)。由于DS18B20是在一根I/O線上讀寫(xiě)數(shù)據(jù),因此,對(duì)讀寫(xiě)的數(shù)據(jù)位有著嚴(yán)格的時(shí)序要求。DS18B20有嚴(yán)格的通信協(xié)議來(lái)保證各位數(shù)據(jù)傳輸?shù)恼_性和完整性。該協(xié)議定義了幾種信號(hào)的時(shí)序:初始化時(shí)序、讀時(shí)序、寫(xiě)時(shí)序。所有時(shí)序都是將主機(jī)作為主設(shè)備,單總線器件作為從設(shè)備。而每一次命令和數(shù)據(jù)的傳輸都是從主機(jī)主動(dòng)啟動(dòng)寫(xiě)時(shí)序開(kāi)始,如果要求單總線器件回送數(shù)據(jù),在進(jìn)行寫(xiě)命令后,主機(jī)需啟動(dòng)讀時(shí)序完成數(shù)據(jù)接收。數(shù)據(jù)和命令的傳輸都是低位在先。DS18B20的初始化 (1) 先將數(shù)據(jù)線置高電平“1”。 (2) 延時(shí)(該時(shí)間要求的不是很嚴(yán)格,但是盡可能的短一點(diǎn)) (3) 數(shù)據(jù)線拉到低電平“0”。 (4) 延時(shí)750微秒(該時(shí)間的時(shí)間范圍可以從480到960微秒)。 (5) 數(shù)據(jù)線拉到高電平“1”。 (6) 延時(shí)等待(如果初始化成功則在15到60毫秒時(shí)間之內(nèi)產(chǎn)生一個(gè)由DS18B20所返回的低電平“0”。據(jù)該狀態(tài)可以來(lái)確定它的存在,但是應(yīng)注意不能無(wú)限的進(jìn)行等待,不然會(huì)使程序進(jìn)入死循環(huán),所以要進(jìn)行超時(shí)控制)。 (7) 若CPU讀到了數(shù)據(jù)線上的低電平“0”后,還要做延時(shí),其延時(shí)的時(shí)間從發(fā)出的高電平算起(第(5)步的時(shí)間算起)最少要480微秒。 (8) 將數(shù)據(jù)線再次拉高到高電平“1”后結(jié)束。 DS18B20的寫(xiě)操作 (1) 數(shù)據(jù)線先置低電平“0”。 (2) 延時(shí)確定的時(shí)間為15微秒。 (3) 按從低位到高位的順序發(fā)送字節(jié)(一次只發(fā)送一位)。 (4) 延時(shí)時(shí)間為45微秒。 (5) 將數(shù)據(jù)線拉到高電平。 (6) 重復(fù)上(1)到(6)的操作直到所有的字節(jié)全部發(fā)送完為止。 (7) 最后將數(shù)據(jù)線拉高。 DS18B20的讀操作 (1)將數(shù)據(jù)線拉高“1”。 (2)延時(shí)2微秒。 (3)將數(shù)據(jù)線拉低“0”。 (4)延時(shí)15微秒。 (5)將數(shù)據(jù)線拉高“1”。 (6)延時(shí)15微秒。 (7)讀數(shù)據(jù)線的狀態(tài)得到1個(gè)狀態(tài)位,并進(jìn)行數(shù)據(jù)處理。 (8)延時(shí)30微秒。3.2溫度采集模塊溫度采集模塊采用Dallas公司的DS18B20溫度傳感器,該溫度傳感器是1-Wire通信,輸出形式是開(kāi)漏輸出,所以要接10K的上拉電阻,才能保證通信正常,數(shù)據(jù)線接單片機(jī)P3口。溫度采集精度采用默認(rèn)的12位精度,最小分辨率可以達(dá)到0.0625。圖3.2.1是Dallas公司的DS18B20溫度傳感器的內(nèi)部結(jié)構(gòu)圖,。圖3.2.1 DS18B20內(nèi)部結(jié)構(gòu)圖DS18B20的讀寫(xiě)時(shí)序和測(cè)溫原理與DS1820相同,只是得到的溫度值的位數(shù)因分辨率不同而不同,且溫度轉(zhuǎn)換時(shí)的延時(shí)時(shí)間由2s 減為750ms。 DS18B20測(cè)溫原理如圖3.2.2所示。圖3.2.2 DS18B20測(cè)溫原理 DS18B20的初始化 (1) 先將數(shù)據(jù)線置高電平“1”。 (2) 延時(shí)(該時(shí)間要求的不是很嚴(yán)格,但是盡可能的短一點(diǎn)) (3) 數(shù)據(jù)線拉到低電平“0”。 (4) 延時(shí)750微秒(該時(shí)間的時(shí)間范圍可以從480到960微秒)。 (5) 數(shù)據(jù)線拉到高電平“1”。 (6) 延時(shí)等待(如果初始化成功則在15到60毫秒時(shí)間之內(nèi)產(chǎn)生一個(gè)由DS18B20所返回的低電平“0”。據(jù)該狀態(tài)可以來(lái)確定它的存在,但是應(yīng)注意不能無(wú)限的進(jìn)行等待,不然會(huì)使程序進(jìn)入死循環(huán),所以要進(jìn)行超時(shí)控制)。 (7) 若CPU讀到了數(shù)據(jù)線上的低電平“0”后,還要做延時(shí),其延時(shí)的時(shí)間從發(fā)出的高電平算起(第(5)步的時(shí)間算起)最少要480微秒。 (8) 將數(shù)據(jù)線再次拉高到高電平“1”后結(jié)束。 DS18B20的寫(xiě)操作 (1) 數(shù)據(jù)線先置低電平“0”。 (2) 延時(shí)確定的時(shí)間為15微秒。 (3) 按從低位到高位的順序發(fā)送字節(jié)(一次只發(fā)送一位)。 (4) 延時(shí)時(shí)間為45微秒。 (5) 將數(shù)據(jù)線拉到高電平。 (6) 重復(fù)上(1)到(6)的操作直到所有的字節(jié)全部發(fā)送完為止。 (7) 最后將數(shù)據(jù)線拉高。 DS18B20的讀操作 (1)將數(shù)據(jù)線拉高“1”。 (2)延時(shí)2微秒。 (3)將數(shù)據(jù)線拉低“0”。 (4)延時(shí)15微秒。 (5)將數(shù)據(jù)線拉高“1”。 (6)延時(shí)15微秒。 (7)讀數(shù)據(jù)線的狀態(tài)得到1個(gè)狀態(tài)位,并進(jìn)行數(shù)據(jù)處理。 (8)延時(shí)30微秒。把DS18B2連接上單片機(jī)后,其發(fā)揮的作用就是:采集外部的溫度數(shù)據(jù),并溫度轉(zhuǎn)化為電脈沖的脈寬,單片機(jī)將測(cè)得的脈沖寬度的值轉(zhuǎn)化為與之對(duì)應(yīng)的溫度值。圖3.2.3是其測(cè)量溫度的流程圖;圖3.2.4是DS18B20在電路中的連接圖。圖3.2.3 測(cè)量溫度的流程圖圖3.2.4 DS18B20電路圖附:*溫度轉(zhuǎn)換程序*TEMPER_COV: MOV A,#0F0H ANL A,TEMPER_L ; 舍去溫度低位中小數(shù)點(diǎn)后的四位溫度數(shù)值SWAP AMOV TEMPER_NUM,AMOV A,TEMPER_LJNB ACC.3,TEMPER_COV1 ; 四舍五入去溫度值,INC TEMPER_NUM ;D3為1則加1,為0則舍去TEMPER_COV1: MOV A,TEMPER_H ; 高位ANL A,#07H ;溫度寄存器的高字節(jié)只有后3位有效SWAP AORL A,TEMPER_NUM ; 拼裝MOV TEMPER_NUM,A ; 保存變換后的溫度數(shù)據(jù)CALL BIN_BCDRET表1 DS18B20詳細(xì)引腳功能描述序號(hào)名稱引腳功能描述1GND地信號(hào)2DQ數(shù)據(jù)輸入/輸出引腳。開(kāi)漏單總線接口引腳。當(dāng)被用著在寄生電源下,也可以向器件提供電源。3VDD可選擇的VDD引腳。當(dāng)工作于寄生電源時(shí),此引腳必須接地。由于DS18B20采用的是1Wire總線協(xié)議方式,即在一根數(shù)據(jù)線實(shí)現(xiàn)數(shù)據(jù)的雙向傳輸,而對(duì)AT89S51單片機(jī)來(lái)說(shuō),硬件上并不支持單總線協(xié)議,因此,我們必須采用軟件的方法來(lái)模擬單總線的協(xié)議時(shí)序來(lái)完成對(duì)DS18B20芯片的訪問(wèn)。由于DS18B20是在一根I/O線上讀寫(xiě)數(shù)據(jù),因此,對(duì)讀寫(xiě)的數(shù)據(jù)位有著嚴(yán)格的時(shí)序要求。DS18B20有嚴(yán)格的通信協(xié)議來(lái)保證各位數(shù)據(jù)傳輸?shù)恼_性和完整性。該協(xié)議定義了幾種信號(hào)的時(shí)序:初始化時(shí)序、讀時(shí)序、寫(xiě)時(shí)序。所有時(shí)序都是將主機(jī)作為主設(shè)備,單總線器件作為從設(shè)備。而每一次命令和數(shù)據(jù)的傳輸都是從主機(jī)主動(dòng)啟動(dòng)寫(xiě)時(shí)序開(kāi)始,如果要求單總線器件回送數(shù)據(jù),在進(jìn)行寫(xiě)命令后,主機(jī)需啟動(dòng)讀時(shí)序完成數(shù)據(jù)接收,數(shù)據(jù)和命令的傳輸都是低位在先。3.3顯示模塊溫度顯示模塊采用4位共陽(yáng)數(shù)碼管,段選接P0口,位選接P1.0P1.3,第一位顯示R,前面三位顯示溫度值,精確到0.1。如圖3.3.1所示圖3.3.1 4位共陰數(shù)碼管附:*顯示子程序*DISP: MOV A,R0 ;轉(zhuǎn)換結(jié)果低位ANL A,#0FHACALL DSEND ;顯示MOV A,R0SWAP AANL A,#0FH ;轉(zhuǎn)換結(jié)果高位ACALL DSEND ;顯示RETDSEND: MOV DPTR,#SGTB1MOVC A,A+DPTR ;取字符MOV SBUF,AJNB TI,$CLR TI RET3.4報(bào)警模塊報(bào)警模塊采用最簡(jiǎn)單的蜂鳴器電路部分,如圖3.4所示本設(shè)計(jì)采軟件處理報(bào)警,利用有源蜂鳴器進(jìn)行報(bào)警輸出,采用直流供電。當(dāng)所測(cè)溫度超過(guò)獲低于所預(yù)設(shè)的溫度時(shí),數(shù)據(jù)口相應(yīng)拉高電平,報(bào)警輸出。(也可采用發(fā)光二級(jí)管報(bào)警電路,如過(guò)需要報(bào)警,則只需將相應(yīng)位置1,當(dāng)參數(shù)判斷完畢后,再看報(bào)警模型單元ALARM 的內(nèi)容是否與預(yù)設(shè)一樣,如不一樣,則發(fā)光報(bào)警)報(bào)警電路硬件連接如圖3.4所示: 開(kāi)始初始化示化獲取溫度值與溫度上限比較報(bào)警轉(zhuǎn)換并顯示YES? 圖 3.4.1 硬件電路圖圖3.4.2 報(bào)警流程圖3.5串口通訊電路AT89C51有一個(gè)全雙工的串行通訊口,所以單片機(jī)和電腦之間可以方便地進(jìn)行串口通訊。進(jìn)行串行通訊時(shí)要滿足一定的條件,比如電腦的串口是RS232電平的,而單片機(jī)的串口是TTL電平的,兩者之間必須有一個(gè)電平轉(zhuǎn)換電路,我們采用了專用芯片MAX232進(jìn)行轉(zhuǎn)換。采用了三線制連接串口,也就是說(shuō)和電腦的9針串口只連接其中的3根線:第5腳的GND、第2腳的RXD、第3腳的TXD。這是最簡(jiǎn)單的連接方法,但是對(duì)本設(shè)計(jì)來(lái)說(shuō)已經(jīng)足夠使用了,電路如下圖所示:程序界面:運(yùn)行界面:3.56硬件制作圖解制作過(guò)程要求有足夠的細(xì)心和耐心,千萬(wàn)不要急于求成,每天花點(diǎn)時(shí)間做,這樣可以保證自己不會(huì)因疲倦而導(dǎo)致頻繁出錯(cuò)。盡量做到零錯(cuò)誤,否則檢查起來(lái)會(huì)很麻煩。一直追求美觀和制作工藝,雖然焊接較麻煩,但仍然沒(méi)有采用“飛線一團(tuán)糟”的焊接方式,較好地利用了細(xì)金屬導(dǎo)線和質(zhì)量較好的漆包線。圖3.56.1是溫度傳感的面板部分;圖3.56.2是背面焊接部分。 圖3.56.1 溫度傳感器設(shè)計(jì)面板 圖3.56.2 背面焊接4、 軟件系統(tǒng)設(shè)計(jì)4.1 程序流程圖初始化DS18B20匹配ROM命令發(fā)一個(gè)DS18B20序列號(hào)等待1us讀當(dāng)前DS18B20溫度開(kāi)始所有DS18B20都訪問(wèn)完畢?存在一個(gè)DS18B20?發(fā)搜索ROM命令讀并存儲(chǔ)當(dāng)前DS18B20序列號(hào)跳過(guò)ROM命令初始化DS18B20溫度轉(zhuǎn)換命令初始化DS18B20YNYN初始化DS18B20匹配ROM命令發(fā)一個(gè)DS18B20序列號(hào)等待1ms轉(zhuǎn)換結(jié)束讀當(dāng)前DS18B20溫度開(kāi)始所有DS18B20都訪問(wèn)完畢?存在一個(gè)DS18B20?發(fā)搜索ROM命令讀并存儲(chǔ)當(dāng)前DS18B20序列號(hào)跳過(guò)ROM命令初始化DS18B20初始化DS18B20YNYN4.2基本顯示原理單片機(jī)中經(jīng)常使用7 段LED 來(lái)顯示數(shù)字,也就是用7 個(gè)LED 構(gòu)成字型“8”,并另外用一個(gè)圓點(diǎn)LED 來(lái)顯示小數(shù)點(diǎn),也就是說(shuō)一共有8 個(gè)LED,構(gòu)成了“8.”的字型。7 段LED 分共陰級(jí)和共陽(yáng)極兩種,共陰級(jí)7 段LED 的原理圖和管腳配置,共陽(yáng)級(jí)7 段LED 的原理圖和管腳配置。實(shí)際中,各個(gè)型號(hào)的7 段LED 的管腳配置可能不會(huì)是一樣的,在實(shí)際應(yīng)用中要先測(cè)試一下各個(gè)管腳的配置,再進(jìn)行電路原理圖的設(shè)計(jì)。共陽(yáng)極7 段LED 是指發(fā)光二極管的陽(yáng)極連接在一起為公共端的7 段LED,而共陰極7 段LED 是指發(fā)光二極管的陰極連接在一起為公共端的7 段LED。一個(gè)7段LED 由8 個(gè)發(fā)光二極管組成,其中7 個(gè)發(fā)光二極管構(gòu)成字型“8”的各個(gè)筆劃(ag),另一個(gè)發(fā)光二極管為小數(shù)點(diǎn)(dp)。當(dāng)在某一段發(fā)光二極管上施加一定的正向電壓時(shí),該段LED 即被點(diǎn)亮;不加電壓則為暗。以共陽(yáng)極7 段LED 為例,若是要顯示“5.”,則需要在VCC 上加上電壓,向dp、g、f、e、a 送出00010010 的信號(hào),就能顯示出來(lái)。4.3 DS18B20匯編程序單總線讀寫(xiě)操作;溫度傳感器DS1820 的匯編程序;一次數(shù)據(jù)傳輸為四步:初始化、傳送ROM命令、傳送RAM命令、數(shù)據(jù)交換;當(dāng)命令者檢測(cè)到器件存在時(shí)首先發(fā)送1個(gè)ROM命令;總線信號(hào):初始化、寫(xiě)1、寫(xiě)0、讀信號(hào)TEMPER_L DATA 36H ;溫度寄存器的低位TEMPER_H DATA 35H ;溫度寄存器的高位TEMPER_NUM DATA 60H ;保存溫度值FLAG BIT 00H ;器件是否存在的標(biāo)志位,器件存在由軟件置1,否則清0DQ BIT P1.0 ORG 0000HAJMP START; /*主程序*/ *ORG 0030HSTART: MOV SP,#70HCALL GET_TEMPER ;讀取溫度值CALL TEMPER_COV ;讀取轉(zhuǎn)換后的溫度值MOV R0,ACALL DISPCALL DELAYAJMP START5、系統(tǒng)調(diào)試DS1820雖然具有測(cè)溫系統(tǒng)簡(jiǎn)單、測(cè)溫精度高、連接方便、占用口線少等優(yōu)點(diǎn),但在實(shí)際應(yīng)用中也應(yīng)注意以下幾方面的問(wèn)題: 1、較小的硬件開(kāi)銷需要相對(duì)復(fù)雜的軟件進(jìn)行補(bǔ)償,由于DS1820與微處理器間采用串行數(shù)據(jù)傳送,因此 ,在對(duì)DS1820進(jìn)行讀寫(xiě)編程時(shí),必須嚴(yán)格的保證讀寫(xiě)時(shí)序,否則將無(wú)法讀取測(cè)溫結(jié)果。2、在DS1820的有關(guān)資料中均未提及單總線上所掛DS1820數(shù)量問(wèn)題,容易使人誤認(rèn)為可以掛任意多個(gè) DS1820,在實(shí)際應(yīng)用中并非如此。當(dāng)單總線上所掛DS1820超過(guò)8個(gè)時(shí),就需要解決微處理器的總線驅(qū)動(dòng)問(wèn)題,這一點(diǎn)在進(jìn)行多點(diǎn)測(cè)溫系統(tǒng)設(shè)計(jì)時(shí)要加以注意。3、連接DS1820的總線電纜是有長(zhǎng)度限制的。當(dāng)將總線電纜改為雙絞線帶屏蔽電纜時(shí),正常通訊距離可達(dá)150m,當(dāng)采用每米絞合次數(shù)更多的雙絞線帶屏蔽電纜時(shí),正常通訊距離進(jìn)一步加長(zhǎng)。這種情況主要是由總線分布電容使信號(hào)波形產(chǎn)生畸變?cè)斐傻?。因此,在用DS1820進(jìn)行長(zhǎng)距離測(cè)溫系統(tǒng)設(shè)計(jì)時(shí)要充分考 慮總線分布電容和阻抗匹配問(wèn)題。4、在DS1820測(cè)溫程序設(shè)計(jì)中,向DS1820發(fā)出溫度轉(zhuǎn)換命令后,程序總要等待DS1820的返回信號(hào),一旦某個(gè)DS1820接觸不好或斷線,當(dāng)程序讀該DS1820時(shí),將沒(méi)有返回信號(hào),程序進(jìn)入死循環(huán)。這一點(diǎn)在進(jìn)行DS1820硬件連接和軟件設(shè)計(jì)時(shí)也要給予一定的重視。6、總結(jié) 每次實(shí)踐設(shè)計(jì),只要有一點(diǎn)點(diǎn)的突破,只要能夠?qū)W到一點(diǎn)的新鮮知識(shí),都讓我感覺(jué)學(xué)習(xí)單片機(jī)是多么的有樂(lè)趣。就是這樣,我才能在學(xué)習(xí)單片機(jī)的道路上走的歡快、持久。 通過(guò)這次培訓(xùn)及此次設(shè)計(jì),進(jìn)一步提高在實(shí)踐中研究問(wèn)題、發(fā)現(xiàn)問(wèn)題、解決問(wèn)題的能力,但也存在不足之處,對(duì)知識(shí)涉及不廣、積累不夠、研究不深,還需要持之以恒的努力。 在這次設(shè)計(jì)中通過(guò)查閱大量的相關(guān)資料,詳細(xì)了解了DS18B20的工作原理、led的顯示原理,在不斷地實(shí)踐與理論中運(yùn)用這些知識(shí),明確的研究目標(biāo)。同時(shí)使我明白了實(shí)踐是學(xué)習(xí)收獲的唯一途徑。致謝此次培訓(xùn)設(shè)計(jì)中,又認(rèn)識(shí)很多有志的同學(xué),和他們交流讓我領(lǐng)略了不一樣的思維,不一樣的為人處世的方式,和他們交流讓我歡喜雀躍。雖然短暫得培訓(xùn)只有一個(gè)月,而且一個(gè)月后我們可能不在聯(lián)系,但感謝他們的幫助。最辛苦的當(dāng)屬老師們了,謝謝賀老師那么認(rèn)真的講課,都忘記了下課的時(shí)間,讓我每次聽(tīng)課的時(shí)候都感覺(jué)到有新的血液注入我體內(nèi),感謝王老師對(duì)我們的認(rèn)真負(fù)責(zé),每天按時(shí)點(diǎn)名簽到,沒(méi)來(lái)的還打電話問(wèn)候,是這樣的老師讓我每天都堅(jiān)持早起。我會(huì)記得在這一個(gè)月里培訓(xùn)的點(diǎn)點(diǎn)滴滴。8.附件;*; /*取得溫度子程序*/ *;*;GET_TEMPER: SETB DQ CALL CHECK ; MOV A,#0CCH ; 跳過(guò)ROM匹配(當(dāng)總線上只有一個(gè)器件時(shí)可跳過(guò)讀ROM命令)CALL DSWRITE ; 寫(xiě)入命令MOV A,#44H ; 發(fā)出溫度轉(zhuǎn)換命令CALL DSWRITENOPCALL DELAYCALL DELAYCALL CHECK MOV A,#0CCH ; 跳過(guò)ROM匹配CALL DSWRITE MOV A,#0BEH ; 發(fā)出讀溫度命令CALL DSWRITECALL DSREAD ;讀取溫度的低位MOV R0,#TEMPER_LMOV R0,A ;存入TEMPER_LCALL DSREAD ;讀取溫度的低位DEC R0 ;存入TEMPER_HMOV R0,ARET;*; /*讀DS18B20的程序,從DS18B20中讀出一個(gè)字節(jié)的數(shù)據(jù)*/ *;*;DSREAD: MOV R2,#8READ1: CLR CSETB DQNOPNOPCLR DQNOPNOPNOPSETB DQMOV R3,#01DJNZ R3, $MOV C, DQMOV R3, #23DJNZ R3, $RRC ADJNZ R2, READ1RET;*; /*寫(xiě)DS18B20序子程序*/ *;* ; DSWRITE: MOV R2,#8CLR CWRITE1: CLR DQMOV R3,#6 ;延時(shí)12USDJNZ R3,$RRC AMOV DQ,CMOV R3,#23 ;46USDJNZ R3,$SETB DQNOPDJNZ R2,WRITE1SETB DQRET;*; /*檢查器件是否存在子程序*/ *;*; CHECK: CALL DSINIT; 初始化JB FLAG,CHECK1 ; 檢查標(biāo)志位判斷器件是否存在AJMP CHECK ; 若DS18B20不存在則繼續(xù)檢測(cè)CHECK1: CALL DELAY1RET ;*; /*BCD碼轉(zhuǎn)換子程序*/ *;* ; BIN_BCD: MOV DPTR,#TEMP_TABMOV A,TEMPER_NUMMOVC A,A+DPTRMOV TEMPER_NUM,ARET ;*; /*初始化子程序程序*/;初始化時(shí)序是由總線發(fā)出一個(gè)復(fù)位信號(hào),然后由器件發(fā) *;出一個(gè)應(yīng)答信號(hào),表示該器件存在,并準(zhǔn)備好開(kāi)始工作;* DSINIT: SETB DQNOPCLR DQ ;總線發(fā)一個(gè)復(fù)位信號(hào)MOV R0,#80HDJNZ R0,$ ; 延時(shí)SETB DQ ;拉高總線準(zhǔn)備檢測(cè)MOV R0,#25H ;延時(shí)DJNZ R0,$JNB DQ,INIT2 ;檢測(cè)是否有應(yīng)答信號(hào),有應(yīng)答信號(hào)跳轉(zhuǎn)AJMP INIT3 ; 延時(shí)INIT2: SETB FLAG ; 置標(biāo)志位,表示DS1820存在AJMP INIT4INIT3: CLR FLAG ; 清標(biāo)志位,表示DS1820不存在AJMP INIT5INIT4: MOV R0, #6BH DJNZ R0, $ ; 延時(shí)INIT5: SETB DQ ;拉高總線RET; ;*; /*配置程序*/ *;* ; RE_CONFIG: JB FLAG,RE_CONFIG1 ; 若DS18B20存在,轉(zhuǎn)RE_CONFIG1

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論