單片機(jī)課程設(shè)計(jì)基于proteus仿真軟件的數(shù)字溫度計(jì)的設(shè)計(jì)_第1頁(yè)
單片機(jī)課程設(shè)計(jì)基于proteus仿真軟件的數(shù)字溫度計(jì)的設(shè)計(jì)_第2頁(yè)
單片機(jī)課程設(shè)計(jì)基于proteus仿真軟件的數(shù)字溫度計(jì)的設(shè)計(jì)_第3頁(yè)
單片機(jī)課程設(shè)計(jì)基于proteus仿真軟件的數(shù)字溫度計(jì)的設(shè)計(jì)_第4頁(yè)
單片機(jī)課程設(shè)計(jì)基于proteus仿真軟件的數(shù)字溫度計(jì)的設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩15頁(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)介

1、單片機(jī)課程設(shè)計(jì)設(shè)計(jì)題目基于proteus仿真軟件的數(shù)字溫度計(jì)的設(shè)計(jì)專業(yè)名稱班級(jí)學(xué)號(hào)學(xué)生姓名指導(dǎo)教師設(shè)計(jì)時(shí)間2009.12.282010.01.03目錄實(shí)驗(yàn)條件及任務(wù)要求1.設(shè)計(jì)實(shí)驗(yàn)條件32.設(shè)計(jì)任務(wù)及要求3設(shè)計(jì)報(bào)告內(nèi)容1. 緒論緒論32. 總體設(shè)計(jì)方案2.1 數(shù)字溫度計(jì)的設(shè)計(jì)方案論證32.2 方案二的總體設(shè)計(jì)框圖32.3 主控器及部分電路分析42.4 系統(tǒng)整體硬件電路93. 系統(tǒng)軟件設(shè)計(jì)3.1 主程序103.2 讀出溫度子程序103.3 計(jì)算溫度子程序124. 總結(jié)體會(huì)總結(jié)體會(huì)145. 參考文獻(xiàn)文獻(xiàn)目錄14附錄:實(shí)驗(yàn)完整程序15實(shí)驗(yàn)條件及任務(wù)要求1.設(shè)計(jì)實(shí)驗(yàn)條件keil c和proteus仿真

2、軟件2.設(shè)計(jì)任務(wù)及要求2.1總體功能設(shè)計(jì)2.2硬件電路設(shè)計(jì)2.3軟件設(shè)計(jì)2.4工作總結(jié)設(shè)計(jì)題目:基于proteus仿真軟件的數(shù)字溫度計(jì)設(shè)計(jì)1 緒論隨著人們生活水平的不斷提高,單片機(jī)控制無(wú)疑是人們追求的目標(biāo)之一,它所給人帶來(lái)的方便也是不可否定的,其中數(shù)字溫度計(jì)就是一個(gè)典型的例子,但人們對(duì)它的要求越來(lái)越高,要為現(xiàn)代人工作、科研、生活、提供更好的更方便的設(shè)施就需要從數(shù)單片機(jī)技術(shù)入手,一切向著數(shù)字化控制,智能化控制方向發(fā)展。本設(shè)計(jì)所介紹的數(shù)字溫度計(jì)與傳統(tǒng)的溫度計(jì)相比,具有讀數(shù)方便,測(cè)溫范圍廣,測(cè)溫準(zhǔn)確,其輸出溫度采用數(shù)字顯示,主要用于對(duì)測(cè)溫比較準(zhǔn)確的場(chǎng)所,或科研實(shí)驗(yàn)室使用,該設(shè)計(jì)控制器使用單片機(jī)at8

3、9c51,測(cè)溫傳感器使用ds18b20,用lm016l液晶模塊顯示輸出,能準(zhǔn)確達(dá)到以上要求。2 總體設(shè)計(jì)方案2.1數(shù)字溫度計(jì)設(shè)計(jì)方案論證2.1.1方案一由于本設(shè)計(jì)是測(cè)溫電路,可以使用熱敏電阻之類的器件利用其感溫效應(yīng),在將隨被測(cè)溫度變化的電壓或電流采集過(guò)來(lái),進(jìn)行a/d轉(zhuǎn)換后,就可以用單片機(jī)進(jìn)行數(shù)據(jù)的處理,在顯示電路上,就可以將被測(cè)溫度顯示出來(lái),這種設(shè)計(jì)需要用到a/d轉(zhuǎn)換電路,感溫電路比較麻煩。2.1.2 方案二 進(jìn)而考慮到用溫度傳感器,在單片機(jī)電路設(shè)計(jì)中,大多都是使用傳感器,所以這是非常容易想到的,所以可以采用一只溫度傳感器ds18b20,此傳感器,可以很容易直接讀取被測(cè)溫度值,進(jìn)行轉(zhuǎn)換,就可以

4、滿足設(shè)計(jì)要求。從以上兩種方案,很容易看出,采用方案二,電路比較簡(jiǎn)單,軟件設(shè)計(jì)也比較簡(jiǎn)單,故采用了方案二。2.2方案二的總體設(shè)計(jì)框圖溫度計(jì)電路設(shè)計(jì)總體設(shè)計(jì)方框圖如圖1所示,控制器采用單片機(jī)at89c51,溫度傳感器采用ds18b20,用lm016l液晶顯示模塊傳送數(shù)據(jù)實(shí)現(xiàn)溫度顯示。圖1.總體模塊設(shè)計(jì)2.3主控器及部分電路分析2.3.1 主控制器單片機(jī)at89s51具有低電壓供電和體積小等特點(diǎn),四個(gè)端口只需要兩個(gè)口就能滿足電路系統(tǒng)的設(shè)計(jì)需要,很適合便攜手持式產(chǎn)品的設(shè)計(jì)使用系統(tǒng)可用二節(jié)電池供電。2.3.2 顯示電路lm016l 液晶模塊采用hd44780 控制器。hd44780 具有簡(jiǎn)單而功能較強(qiáng)的

5、指令集,可以實(shí)現(xiàn)字符移動(dòng)、閃爍等功能。lm016l 與單片機(jī)mcu(microcontroller unit)通訊可采用8 位或者4 位并行傳輸兩種方式。hd44780 控制器由兩個(gè)8 位寄存器、指令寄存器(ir)和數(shù)據(jù)寄存器(dr)、忙標(biāo)志(bf)、顯示數(shù)據(jù)ram(ddram)、字符發(fā)生器rom(cgrom)、字符發(fā)生器ram(cgram)、地址計(jì)數(shù)器(ac)。ir 用于寄存指令碼,只能寫(xiě)入不能讀出;dr 用于寄存數(shù)據(jù),數(shù)據(jù)由內(nèi)部操作自動(dòng)寫(xiě)入ddram和cgram,或者暫存從ddram和cgram 讀出的數(shù)據(jù)。bf 為1 時(shí),液晶模塊處于內(nèi)部處理模式,不響應(yīng)外部操作指令和接受數(shù)據(jù)。ddram

6、 用來(lái)存儲(chǔ)顯示的字符,能存儲(chǔ)80 個(gè)字符碼。cgrom 由8 位字符碼生成5*7 點(diǎn)陣字符160 種和5*10 點(diǎn)陣字符32 種,8 位字符編碼和字符的對(duì)應(yīng)關(guān)系,可以查看參考文獻(xiàn)3中的表4。cgram 是為用戶編寫(xiě)特殊字符留用的,它的容量?jī)H64 字節(jié)??梢宰远x8 個(gè)5*7 點(diǎn)陣字符或者4 個(gè)5*10 點(diǎn)陣字符。ac 可以存儲(chǔ)ddram 和cgram的地址,如果地址碼隨指令寫(xiě)入ir,則ir 自動(dòng)把地址碼裝入ac,同時(shí)選擇ddram 或者cgram 單元。lm016l 液晶模塊的引腳功能見(jiàn)表1。表1.lm016l引腳功能管腳號(hào)名稱電平功能描述1vss0v2vdd5.0v3vee4rsh/lh:數(shù)

7、據(jù)線上為數(shù)據(jù)信號(hào);l:數(shù)據(jù)線上為指令信號(hào)5rwh/lh:讀數(shù)據(jù)模式;l:寫(xiě)數(shù)據(jù)模式6eh/l使能信號(hào)端714d0d7h/l數(shù)據(jù)線lm016l電路接法如圖2:圖2.lm016l接法電路lm016l在使用前必須經(jīng)過(guò)初始化,初始化程序如下:void lcdint()wrc(0x38);/寫(xiě)指令38h:顯示模式設(shè)置wrc(0x01);/寫(xiě)指令01h:顯示清屏wrc(0x06);/寫(xiě)指令06h:顯示光標(biāo)移動(dòng)設(shè)置wrc(0x0c);/寫(xiě)指令0ch:顯示開(kāi)及光標(biāo)設(shè)置void wrc(unsigned char wcon)busy();reg0=wcon;2.3.3溫度傳感器ds18b20溫度傳感器是美國(guó)da

8、llas半導(dǎo)體公司最新推出的一種改進(jìn)型智能溫度傳感器,與傳統(tǒng)的熱敏電阻等測(cè)溫元件相比,它能直接讀出被測(cè)溫度,并且可根據(jù)實(shí)際要求通過(guò)簡(jiǎn)單的編程實(shí)現(xiàn)位的數(shù)字值讀數(shù)方式。ds18b20的性能特點(diǎn)如下:獨(dú)特的單線接口僅需要一個(gè)端口引腳進(jìn)行通信;多個(gè)ds18b20可以并聯(lián)在惟一的三線上,實(shí)現(xiàn)多點(diǎn)組網(wǎng)功能;無(wú)須外部器件;可通過(guò)數(shù)據(jù)線供電,電壓范圍為3.05.5;零待機(jī)功耗;溫度以或位數(shù)字;用戶可定義報(bào)警設(shè)置;報(bào)警搜索命令識(shí)別并標(biāo)志超過(guò)程序限定溫度(溫度報(bào)警條件)的器件;負(fù)電壓特性,電源極性接反時(shí),溫度計(jì)不會(huì)因發(fā)熱而燒毀,但不能正常工作; ds18b20采用腳pr35封裝或腳soic封裝,其內(nèi)部結(jié)構(gòu)框圖如圖

9、3示:c64 位rom和單線接口高速緩存存儲(chǔ)器與控制邏輯溫度傳感器高溫觸發(fā)器th低溫觸發(fā)器tl配置寄存器8位crc發(fā)生器vdd i/o圖3. ds18b20內(nèi)部結(jié)構(gòu)64位rom的結(jié)構(gòu)開(kāi)始位是產(chǎn)品類型的編號(hào),接著是每個(gè)器件的惟一的序號(hào),共有48位,最后位是前面56位的crc檢驗(yàn)碼,這也是多個(gè)ds18b20可以采用一線進(jìn)行通信的原因。溫度報(bào)警觸發(fā)器和,可通過(guò)軟件寫(xiě)入戶報(bào)警上下限。ds18b20溫度傳感器的內(nèi)部存儲(chǔ)器還包括一個(gè)高速暫存和一個(gè)非易失性的可電擦除的eeram。高速暫存ram的結(jié)構(gòu)為字節(jié)的存儲(chǔ)器,結(jié)構(gòu)如圖4所示。頭個(gè)字節(jié)包含測(cè)得的溫度信息,第和第字節(jié)和的拷貝,是易失的,每次上電復(fù)位時(shí)被刷新

10、。第個(gè)字節(jié),為配置寄存器,它的內(nèi)容用于確定溫度值的數(shù)字轉(zhuǎn)換分辨率。ds18b20工作時(shí)寄存器中的分辨率轉(zhuǎn)換為相應(yīng)精度的溫度數(shù)值。該字節(jié)各位的定義如圖4所示。低位一直為,是工作模式位,用于設(shè)置ds18b20在工作模式還是在測(cè)試模式,ds18b20出廠時(shí)該位被設(shè)置為,用戶要去改動(dòng),r1和0決定溫度轉(zhuǎn)換的精度位數(shù),來(lái)設(shè)置分辨率。溫度 lsb溫度 msbth用戶字節(jié)1tl用戶字節(jié)2配置寄存器保留保留保留crc圖4. ds18b20字節(jié)定義由表2可見(jiàn),ds18b20溫度轉(zhuǎn)換的時(shí)間比較長(zhǎng),而且分辨率越高,所需要的溫度數(shù)據(jù)轉(zhuǎn)換時(shí)間越長(zhǎng)。因此,在實(shí)際應(yīng)用中要將分辨率和轉(zhuǎn)換時(shí)間權(quán)衡考慮。高速暫存的第、字節(jié)保留未

11、用,表現(xiàn)為全邏輯。第字節(jié)讀出前面所有字節(jié)的crc碼,可用來(lái)檢驗(yàn)數(shù)據(jù),從而保證通信數(shù)據(jù)的正確性。當(dāng)ds18b20接收到溫度轉(zhuǎn)換命令后,開(kāi)始啟動(dòng)轉(zhuǎn)換。轉(zhuǎn)換完成后的溫度值就以16位帶符號(hào)擴(kuò)展的二進(jìn)制補(bǔ)碼形式存儲(chǔ)在高速暫存存儲(chǔ)器的第、字節(jié)。單片機(jī)可以通過(guò)單線接口讀出該數(shù)據(jù),讀數(shù)據(jù)時(shí)低位在先,高位在后,數(shù)據(jù)格式以0.0625lsb形式表示。當(dāng)符號(hào)位時(shí),表示測(cè)得的溫度值為正值,可以直接將二進(jìn)制位轉(zhuǎn)換為十進(jìn)制;當(dāng)符號(hào)位時(shí),表示測(cè)得的溫度值為負(fù)值,要先將補(bǔ)碼變成原碼,再計(jì)算十進(jìn)制數(shù)值。表3是一部分溫度值對(duì)應(yīng)的二進(jìn)制溫度數(shù)據(jù)。表2.ds18b20溫度轉(zhuǎn)換時(shí)間表 r1r0分辨率/位溫度最大轉(zhuǎn)向時(shí)間/ms00993

12、.750110187.510113751112750ds18b20完成溫度轉(zhuǎn)換后,就把測(cè)得的溫度值與ram中的th、t字節(jié)內(nèi)容作比較。若th或ttl,則將該器件內(nèi)的報(bào)警標(biāo)志位置位,并對(duì)主機(jī)發(fā)出的報(bào)警搜索命令作出響應(yīng)。因此,可用多只ds18b20同時(shí)測(cè)量溫度并進(jìn)行報(bào)警搜索。在64位rom的最高有效字節(jié)中存儲(chǔ)有循環(huán)冗余檢驗(yàn)碼(crc)。主機(jī)rom的前56位來(lái)計(jì)算crc值,并和存入ds18b20的crc值作比較,以判斷主機(jī)收到的rom數(shù)據(jù)是否正確。ds18b20的測(cè)溫原理是這這樣的,器件中低溫度系數(shù)晶振的振蕩頻率受溫度的影響很小,用于產(chǎn)生固定頻率的脈沖信號(hào)送給減法計(jì)數(shù)器;高溫度系數(shù)晶振隨溫度變化其振

13、蕩頻率明顯改變,所產(chǎn)生的信號(hào)作為減法計(jì)數(shù)器的脈沖輸入。器件中還有一個(gè)計(jì)數(shù)門(mén),當(dāng)計(jì)數(shù)門(mén)打開(kāi)時(shí),ds18b20就對(duì)低溫度系數(shù)振蕩器產(chǎn)生的時(shí)鐘脈沖進(jìn)行計(jì)數(shù)進(jìn)而完成溫度測(cè)量。計(jì)數(shù)門(mén)的開(kāi)啟時(shí)間由高溫度系數(shù)振蕩器來(lái)決定,每次測(cè)量前,首先將55所對(duì)應(yīng)的一個(gè)基數(shù)分別置入減法計(jì)數(shù)器、溫度寄存器中,計(jì)數(shù)器和溫度寄存器被預(yù)置在55所對(duì)應(yīng)的一個(gè)基數(shù)值。減法計(jì)數(shù)器對(duì)低溫度系數(shù)晶振產(chǎn)生的脈沖信號(hào)進(jìn)行減法計(jì)數(shù),當(dāng)減法計(jì)數(shù)器的預(yù)置值減到時(shí),溫度寄存器的值將加,減法計(jì)數(shù)器的預(yù)置將重新被裝入,減法計(jì)數(shù)器重新開(kāi)始對(duì)低溫度系數(shù)晶振產(chǎn)生的脈沖信號(hào)進(jìn)行計(jì)數(shù),如此循環(huán)直到減法計(jì)數(shù)器計(jì)數(shù)到時(shí),停止溫度寄存器的累加,此時(shí)溫度寄存器中的數(shù)值就是

14、所測(cè)溫度值。其輸出用于修正減法計(jì)數(shù)器的預(yù)置值,只要計(jì)數(shù)器門(mén)仍未關(guān)閉就重復(fù)上述過(guò)程,直到溫度寄存器值大致被測(cè)溫度值。表3一部分溫度對(duì)應(yīng)值表溫度/二進(jìn)制表示十六進(jìn)制表示+1250000 0111 1101 000007d0h+850000 0101 0101 00000550h+25.06250000 0001 1001 00000191h+10.1250000 0000 1010 000100a2h+0.50000 0000 0000 00100008h00000 0000 0000 10000000h-0.51111 1111 1111 0000fff8h-10.1251111 1111 01

15、01 1110ff5eh-25.06251111 1110 0110 1111fe6fh-551111 1100 1001 0000fc90h另外,由于ds18b20單線通信功能是分時(shí)完成的,它有嚴(yán)格的時(shí)隙概念,因此讀寫(xiě)時(shí)序很重要。系統(tǒng)對(duì)ds18b20的各種操作按協(xié)議進(jìn)行。操作協(xié)議為:初使化ds18b20(發(fā)復(fù)位脈沖)發(fā)rom功能命令發(fā)存儲(chǔ)器操作命令處理數(shù)據(jù)。其初始化程序如下:void init_ds18b20(void)unsigned char x=0;dq=1;/dq復(fù)位delay(8);/稍做延時(shí) dq=0;/單片機(jī)將dq拉低 delay(80);/精確延時(shí),大于480usdq=1;/

16、拉高總線 delay(14);x=dq;/稍做延時(shí)后,如果x=0則初始化成功,x=1則初始化失敗 delay(20);void delay(unsigned int i)/延時(shí)函數(shù) while(i-);2.3.4 ds18b20溫度傳感器與單片機(jī)的接口電路ds18b20可以采用兩種方式供電,一種是寄生電源供電方式。另一種是采用電源供電方式,此時(shí)ds18b20的1腳接地,2腳作為信號(hào)線,3腳接電源,如圖5 所示:圖5.ds18b20的電路接法2.4 系統(tǒng)整體硬件電路系統(tǒng)整體硬件電路包括,傳感器數(shù)據(jù)采集電路,顯示器控制電路,溫度顯示電路,單片機(jī)主板電路等,如圖6所示。首先,通過(guò)ds18b20溫度傳

17、感器收集外部溫度,并在芯片內(nèi)部轉(zhuǎn)化成8位2進(jìn)制碼,傳送至at89c51的p3.3口。在at89c52的內(nèi)部轉(zhuǎn)化為十進(jìn)制碼,通過(guò)單片機(jī)的數(shù)據(jù)/地址線(p0.0p0.7)傳送給lm016l的數(shù)據(jù)輸入和74ls373的數(shù)據(jù)輸入口。當(dāng)要對(duì)液晶顯示器進(jìn)行操作時(shí),wr和rd通過(guò)與非門(mén)和74ls373共同作用,確定液晶顯示器讀寫(xiě)指令和讀寫(xiě)數(shù)據(jù)。從而在lm016l液晶模塊上顯示出外部的溫度。圖6.整體電路3系統(tǒng)軟件算法分析系統(tǒng)程序主要包括主程序,讀出溫度子程序,溫度轉(zhuǎn)換命令子程序,初始化子程序,顯示數(shù)據(jù)子程序等。3.1主程序主程序的主要功能是負(fù)責(zé)溫度的實(shí)時(shí)顯示、讀出并處理ds18b20的測(cè)量的當(dāng)前溫度值,溫度

18、測(cè)量每1s進(jìn)行一次。這樣可以在一秒之內(nèi)測(cè)量一次被測(cè)溫度,程序段如下void main()lcdint();/初始化液晶 wrc(0x80);wrc(0xc0);while(1)readtemperature();/讀溫度tempprocess();/溫度轉(zhuǎn)換wrc(0x80);/寫(xiě)指令wrn(word1);/寫(xiě)數(shù)據(jù)wrc(0xc0);/寫(xiě)指令wrn(word2);/寫(xiě)數(shù)據(jù)3.2讀出溫度子程序讀出溫度子程序的主要功能是讀出ram中的9字節(jié),在讀出時(shí)需進(jìn)行crc校驗(yàn),校驗(yàn)有錯(cuò)時(shí)不進(jìn)行溫度數(shù)據(jù)的改寫(xiě)。其程序段如下:void readtemperature(void)init_ds18b20();wr

19、iteonechar(0xcc);/跳過(guò)讀序號(hào)列號(hào)的操作 writeonechar(0x44);/啟動(dòng)溫度轉(zhuǎn)換init_ds18b20();writeonechar(0xcc);/ 跳過(guò)讀序號(hào)列號(hào)的操作 writeonechar(0xbe);/讀取溫度寄存器等(共可讀9個(gè)寄存器),前兩個(gè)就是溫度 readdata0=readonechar();readdata1=readonechar();unsigned char readonechar(void)/讀一個(gè)字節(jié) unsigned char i=0;unsigned char dat=0;for(i=8;i0;i-) dq=0; dat=1;

20、 dq=1; if(dq) dat|=0x80; delay(4);return(dat);void writeonechar(unsigned char dat)/寫(xiě)一個(gè)字節(jié) unsigned char i=0;for(i=8;i0;i-)dq=0;dq=dat&0x01;delay(5);dq=1;dat=1;delay(4);3.3 計(jì)算溫度子程序計(jì)算溫度子程序?qū)am中讀取值進(jìn)行bcd碼的轉(zhuǎn)換運(yùn)算,并進(jìn)行溫度值正負(fù)的判定,其程序流程圖如圖10所示。其子程序如下: 開(kāi)始溫度零下?溫度值取補(bǔ)碼置“”標(biāo)志計(jì)算整數(shù)位溫度bcd值 計(jì)算小數(shù)位溫度bcd值 結(jié)束置“+”標(biāo)志ny 圖10計(jì)算溫度流程

21、圖 具體程序如下:void tempprocess()/溫度轉(zhuǎn)換,轉(zhuǎn)換為相應(yīng)的bcd碼unsigned int t;float tt;unsigned char temp;if(readdata1&0x80)!=0) /判斷最高為是否為1,為1則為負(fù)數(shù)word13=-;t=readdata1;t=4;word14=t/100+48;word15=(t/10)%10)+48;word16=t%10+48; temp=readdata0;temp=temp-1;temp=temp;temp=temp&0x0f;tt=temp*0.0625;word17=.;word18=(unsigned cha

22、r) (tt*10);word19=(unsigned char)(tt*100-word18*10);word18+=48;word19+=48;word110=0xdf;word111=c;elseword13=+;t=readdata1;t=4;word14=t/100+48;word15=(t/10)%10)+48;word16=t%10+48;temp=readdata0;temp=temp&0x0f;tt=temp*0.0625;word17=.;word18=(unsigned char) (tt*10);word19=(unsigned char)(tt*100-word18*

23、10);word18+=48;word19+=48;word110=0xdf;word111=c;4總結(jié)體會(huì)我們小組一共4個(gè)人,人多,分工就顯得很重要,在我們的集體的討論之下,我得到了收集資料的任務(wù)。因此一回來(lái)我就去圖書(shū)館查閱的大量的單片機(jī)和數(shù)字芯片的資料,之后又在網(wǎng)上搜索了大量的有關(guān)資料。由于資料比較分散,所以整理有用的資料就顯得很重要,有些東西實(shí)在是不懂我就把資料帶回來(lái)請(qǐng)教同學(xué),讓我受益匪淺。這次課程設(shè)計(jì)使伙鞏固了課本所學(xué)的知識(shí),真正實(shí)現(xiàn)了學(xué)以致用的目的。更重要的一點(diǎn)是,我學(xué)會(huì)了團(tuán)隊(duì)精神,經(jīng)過(guò)我們四個(gè)人的團(tuán)結(jié)拼搏,最后完成了此次課程設(shè)計(jì)的要求。同時(shí)也使我對(duì)單片機(jī)更感興趣了,這點(diǎn)我覺(jué)得很重要

24、,因?yàn)榕d趣是最好的老師,相信在以后的單片機(jī)相關(guān)的學(xué)習(xí)中會(huì)表現(xiàn)的更好。5.參考文獻(xiàn)1馬淑華、王鳳文等單片機(jī)原理與接口技術(shù)北京:北京郵電大學(xué)出版社 20052李學(xué)禮 基于proteus的8051單片機(jī)實(shí)例教程北京:電子工業(yè)出版社20033譚浩強(qiáng) c語(yǔ)言程序設(shè)計(jì) 北京:清華大學(xué)出版社20064閻石 數(shù)字電子技術(shù)基礎(chǔ) 北京:高等教育出版社1998附錄:完整實(shí)驗(yàn)程序#include#include#includeunsigned char readdata2;sbit dq=p33;#define reg0 xbyte0x0000#define reg1 xbyte0x0001#define reg2

25、xbyte0x0002unsigned char bdata busyflag;unsigned char dat;unsigned char word116=t=;code unsigned char word216=by 50711;sbit busyflag_7=busyflag7;/延時(shí)函數(shù) void delay(unsigned int i)while(i-);/初始化函數(shù) void init_ds18b20(void)unsigned char x=0;dq=1;/dq復(fù)位delay(8);/稍做延時(shí) dq=0;/單片機(jī)將dq拉低 delay(80);/精確延時(shí),大于480usdq

26、=1;/拉高總線 delay(14);x=dq;/稍做延時(shí)后,如果x=0則初始化成功,x=1則初始化失敗 delay(20);/讀一個(gè)字節(jié) unsigned char readonechar(void)unsigned char i=0;unsigned char dat=0;for(i=8;i0;i-) dq=0; dat=1; dq=1; if(dq) dat|=0x80; delay(4); return(dat);/寫(xiě)一個(gè)字節(jié) void writeonechar(unsigned char dat)unsigned char i=0;for(i=8;i0;i-)dq=0;dq=dat&

27、0x01;delay(5);dq=1;dat=1;delay(4);/讀取溫度 void readtemperature(void)init_ds18b20();writeonechar(0xcc);/跳過(guò)讀序號(hào)列號(hào)的操作 writeonechar(0x44);/啟動(dòng)溫度轉(zhuǎn)換init_ds18b20();writeonechar(0xcc);/ 跳過(guò)讀序號(hào)列號(hào)的操作 writeonechar(0xbe);/讀取溫度寄存器等(共可讀9個(gè)寄存器),前兩個(gè)就是溫度 readdata0=readonechar();readdata1=readonechar();void tempprocess()/溫

28、度轉(zhuǎn)換,轉(zhuǎn)換為相應(yīng)的bcd碼 unsigned int t;float tt;unsigned char temp;if(readdata1&0x80)!=0) /判斷最高為是否為1,為1則為負(fù)數(shù) word13=-;t=readdata1;t=4;word14=t/100+48;word15=(t/10)%10)+48;word16=t%10+48;temp=readdata0;temp=temp-1;temp=temp;temp=temp&0x0f;tt=temp*0.0625;word17=.;word18=(unsigned char) (tt*10);word19=(unsigned

29、char)(tt*100-word18*10);word18+=48;word19+=48;word110=0xdf;word111=c;elseword13=+;t=readdata1;t=4;word14=t/100+48;word15=(t/10)%10)+48;word16=t%10+48;temp=readdata0;temp=temp&0x0f;tt=temp*0.0625;word17=.;word18=(unsigned char) (tt*10);word19=(unsigned char)(tt*100-word18*10);word18+=48;word19+=48;wo

30、rd110=0xdf;word111=c;/end of ds18b20/start of lm016l/void busy()dobusyflag=reg1;while(busyflag_7);void wrc(unsigned char wcon)busy();reg0=wcon;void wrd(unsigned char wdat)busy();reg2=wdat;void lcdint()wrc(0x38); /寫(xiě)指令38h:顯示模式設(shè)置 wrc(0x01); /寫(xiě)指令01h:顯示清屏 wrc(0x06); /寫(xiě)指令06h:顯示光標(biāo)移動(dòng)設(shè)置 wrc(0x0c); /寫(xiě)指令0ch:顯示

31、開(kāi)及光標(biāo)設(shè)置 void wrn(unsigned char word)unsigned char i;for(i=0;i16;i+)wrd(wordi);/end of lcd 1602/void main()lcdint();/初始化液晶 wrc(0x80);wrc(0xc0);while(1)readtemperature();/讀溫度 tempprocess();/溫度轉(zhuǎn)換 wrc(0x80);/寫(xiě)指令 wrn(word1);/寫(xiě)數(shù)據(jù) wrc(0xc0);/寫(xiě)指令 wrn(word2);/寫(xiě)數(shù)據(jù) 附錄:外文翻譯in wang zuoliangs translation practices

32、, he translated many poems, especially the poems written by robert burns. his translation of burns “a red, red rose” brought him fame as a verse translator. at the same time, he published about ten papers on the translation of poems. some argue that poems cannot be translated. frost stresses that po

33、etry might get lost in translation. according to wang, verse translation is possible and necessary, for “the poet-translator brings over some exciting work from another culture and in doing so is also writing his own best work, thereby adding something to his culture. in this transmission and exchan

34、ge, a richer, more colorful world emerges. ”(wang, 1991:112). then how can we translate poems? according to wangs understanding, the translation of poems is related to three aspects: a poems meaning, poetic art and language. (1)a poems meaning “socio-cultural differences are formidable enough, but t

35、he matter is made much more complex when one realizes that meaning does not consist in the meaning of words only, but also in syntactical structures, speech rhythms, levels of style.” (wang, 1991:93).(2)poetic art according to wang, “blys point about the marvelous translation being made possible in the united states only after whitman, pound and williams carlos williams composed poetry in speech rhythms shows what may be gained when there is a genuine revolution in poetic art.” (wang, 1991:93).(3)language “sometimes language stays static and sometimes language

溫馨提示

  • 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)論