生產(chǎn)過(guò)程自動(dòng)化技術(shù)專業(yè)畢業(yè)論文20438_第1頁(yè)
生產(chǎn)過(guò)程自動(dòng)化技術(shù)專業(yè)畢業(yè)論文20438_第2頁(yè)
生產(chǎn)過(guò)程自動(dòng)化技術(shù)專業(yè)畢業(yè)論文20438_第3頁(yè)
生產(chǎn)過(guò)程自動(dòng)化技術(shù)專業(yè)畢業(yè)論文20438_第4頁(yè)
生產(chǎn)過(guò)程自動(dòng)化技術(shù)專業(yè)畢業(yè)論文20438_第5頁(yè)
已閱讀5頁(yè),還剩43頁(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、 畢 業(yè) 設(shè) 計(jì) 基于單片機(jī)的溫度顯示 專 業(yè): 生產(chǎn)過(guò)程自動(dòng)化技術(shù) 目錄目錄2摘 要3設(shè)計(jì)要求4第一章 緒 論51.1 溫度遠(yuǎn)程控制系統(tǒng)的意義5第二章 方案論證與系統(tǒng)結(jié)構(gòu)72.1 方案論證72.1.1 單片機(jī)系統(tǒng)方面72.1.2 溫度傳感器72.1.3 顯示模塊8第三章 硬件模塊介紹93.1 at89s52單片機(jī)介紹93.1.1 at89s52主要功能93.1.2 at89s52各引腳功能介紹:103.1.3 中斷源143.2 ds18b20溫度傳感器介紹203.2.1 ds18b20的主要特征:203.2.2 ds18b20引腳結(jié)構(gòu)圖及其功能描述213.2.3 ds18b20內(nèi)部結(jié)構(gòu)213

2、.2.4 ds18b20接口電路和工作時(shí)序25第四章 流程圖334.1 系統(tǒng)溫度采集流程圖33第五章 軟件模塊介紹345.1 keil 軟件345.1.1 keil軟件使用方法簡(jiǎn)介:34參考文獻(xiàn)41附錄1 系統(tǒng)c語(yǔ)言程序42摘 要隨著信息技術(shù)的飛速發(fā)展,嵌入式智能電子技術(shù)已滲透到社會(huì)生產(chǎn)、工業(yè)控制以及人們?nèi)粘I畹母鱾€(gè)方面。單片機(jī)又稱為嵌入式微型控制器,在智能儀表、工業(yè)控制、智能終端、通信設(shè)備、醫(yī)療器械、汽車(chē)電器、導(dǎo)航系統(tǒng)和家用電器等很多領(lǐng)域都有著廣泛的應(yīng)用,已成為當(dāng)今電子信息領(lǐng)域應(yīng)用最廣泛的技術(shù)之一 本論文是采用單片機(jī)來(lái)實(shí)現(xiàn)溫度遠(yuǎn)程顯示。以at89s52單片機(jī)為核心的處理芯片,采用美國(guó)最新研

3、發(fā)的ds18b20溫度傳感器來(lái)測(cè)量溫度,led數(shù)碼管來(lái)顯示檢測(cè)到的溫度,蜂鳴器做報(bào)警信號(hào)。它結(jié)構(gòu)簡(jiǎn)單、成本低廉、精度高、使用性強(qiáng)。解決了以前的誤差大、精度低、危險(xiǎn)場(chǎng)所、操作復(fù)雜等各種問(wèn)題。以下詳細(xì)介紹這簡(jiǎn)單又實(shí)用基于單片機(jī)的遠(yuǎn)程溫度顯示系統(tǒng)。關(guān)鍵詞:at89s52單片機(jī)、蜂鳴器、bs18b20溫度傳感、1602lcd顯示 設(shè)計(jì)要求1、 題目:基于ds18b20溫度顯示系統(tǒng)設(shè)計(jì)二、基本要求: 利用單片機(jī)設(shè)計(jì)多功能數(shù)字溫度計(jì),顯示環(huán)境溫度,當(dāng)溫度超過(guò)30度或低于20度時(shí)報(bào)警。三、設(shè)計(jì)任務(wù):1. 畫(huà)出系統(tǒng)結(jié)構(gòu)框圖。2. 畫(huà)出電路圖,編寫(xiě)程序。3. 寫(xiě)出詳細(xì)說(shuō)明書(shū)(10000字以上),要求字跡工整,原

4、理敘述正確,會(huì)計(jì)算主要元器件的一些參數(shù),并選擇元器件。文字部分計(jì)算機(jī)排版打印。4. 畫(huà)圖要求:畫(huà)圖規(guī)范化,圖形清晰,用計(jì)算機(jī)畫(huà)圖。四、參考資料:1. 教材;2單片機(jī)實(shí)驗(yàn)指導(dǎo)書(shū), 河南工業(yè)職業(yè)技術(shù)學(xué)院351系列單片機(jī)設(shè)計(jì)實(shí)例,樓然苗、李光飛編著,北京航空航天出版社;4.單片機(jī)基本原理及應(yīng)用系統(tǒng),盧艷軍,機(jī)械工業(yè)出版社;指導(dǎo)教師:焦欣欣第一章 緒 論1.1 溫度遠(yuǎn)程控制系統(tǒng)的意義隨著科技的不斷發(fā)展,現(xiàn)代社會(huì)對(duì)各種信息參數(shù)的準(zhǔn)確度和精確度的要求都有了幾何級(jí)的增長(zhǎng),而如何準(zhǔn)確而又迅速的獲得這些參數(shù)就需要受制于現(xiàn)代信息基礎(chǔ)的發(fā)展水平。在我國(guó)各領(lǐng)域已經(jīng)引用的非常廣泛,可以說(shuō)是滲透到社會(huì)的每一個(gè)領(lǐng)域,人民的

5、生活與環(huán)境的溫度息息相關(guān),在工業(yè)生產(chǎn)過(guò)程中需要實(shí)時(shí)測(cè)量溫度,在農(nóng)業(yè)生產(chǎn)中也離不開(kāi)溫度的測(cè)量,因此研究溫度的測(cè)量方法和裝置具有重要的意義。測(cè)量溫度的關(guān)鍵是溫度傳感器,溫度傳感器的發(fā)展經(jīng)歷了三個(gè)發(fā)展階段:傳統(tǒng)的分立式溫度傳感器、模擬集成溫度傳感器、智能集成溫度傳感器。目前的智能溫度傳感器(亦稱數(shù)字溫度傳感器)是在20世紀(jì)90年代中期問(wèn)世的,它是微電子技術(shù)、計(jì)算機(jī)技術(shù)和自動(dòng)測(cè)試技術(shù)(ate)的結(jié)晶,特點(diǎn)是能輸出溫度數(shù)據(jù)及相關(guān)的溫度控制量,適配各種微控制器(mcu)。社會(huì)的發(fā)展使人們對(duì)傳感器的要求也越來(lái)越高,現(xiàn)在的溫度傳感器正在基于單片機(jī)的基礎(chǔ)上從模擬式向數(shù)字式,從集成化向智能化、網(wǎng)絡(luò)化的方向飛速發(fā)展

6、,并朝著高精度、多功能、總線標(biāo)準(zhǔn)化、高可靠性及安全性、開(kāi)發(fā)虛擬傳感器和網(wǎng)絡(luò)傳感器、研制單片測(cè)溫系統(tǒng)等高科技的方向迅速發(fā)展,在工業(yè)生產(chǎn)中需要時(shí)時(shí)檢測(cè)溫度,其在農(nóng)業(yè)及人們的日常生活中扮演著一個(gè)越來(lái)越重要的角色,它對(duì)人們的生活具有很大的影響,生活也日趨于數(shù)字化,而溫度是科學(xué)技術(shù)中最基本的物理量之一,物理、化學(xué)、生物等學(xué)科都離不開(kāi)溫度。在工業(yè)生產(chǎn)和實(shí)驗(yàn)研究中,像電力、化工、石油、冶金、航空航天、機(jī)械制造、糧食存儲(chǔ)、酒類生產(chǎn)等領(lǐng)域內(nèi),溫度常常是表征對(duì)象和過(guò)程狀態(tài)的最重要的參數(shù)之一。比如,發(fā)電廠鍋爐的溫度必須控制在一定的范圍之內(nèi);許多化學(xué)反應(yīng)的工藝過(guò)程必須在適當(dāng)?shù)臏囟认虏拍苷_M(jìn)行;煉油過(guò)程中,原油必須在

7、不同的溫度和壓力條件下進(jìn)行分餾才能得到汽油、柴油、煤油等產(chǎn)品。沒(méi)有合適的溫度環(huán)境,許多電子設(shè)備就不能正常工作,糧倉(cāng)的儲(chǔ)糧就會(huì)變質(zhì)霉?fàn)€,酒類的品質(zhì)就沒(méi)有保障。因此,各行各業(yè)對(duì)溫度控制的要求都越來(lái)越高??梢?jiàn),溫度的測(cè)量和控制是非常重要的。第二章 方案論證與系統(tǒng)結(jié)構(gòu)2.1 方案論證2.1.1 單片機(jī)系統(tǒng)方面世界上不同的國(guó)家的很多芯片廠商都生產(chǎn)不同的單片機(jī),如生產(chǎn)的at89c51、at89s51、52等,philips(飛利浦)公司的p80c54、p87c528等,intel(英特爾)公司的i87c58、i87c51fc等,siemens(西門(mén)子)公司的c501-1r、c513a-h等,stc公司的s

8、tc89c51rc、stc89s52rc等等。從成本角度和對(duì)芯片的熟悉角度來(lái)考慮,本次設(shè)計(jì)選擇atmel公司的at89s52作為本次的單片機(jī)芯片。2.1.2 溫度傳感器方案一:采用熱敏電阻可滿足測(cè)溫要求,但熱敏電阻精度低,重復(fù)性和可靠性較差,對(duì)于精度要求較高的測(cè)溫不適用,而且采用熱敏電阻要求復(fù)雜的電路和算法,增加了設(shè)計(jì)復(fù)雜度。方案二:采用專用的集成溫度傳感器(如ad590、lm35/lm45)和數(shù)字化溫度傳感器如ds18b20、測(cè)溫,數(shù)字化溫度傳感器具有接口簡(jiǎn)單、直接數(shù)字量輸出、精確度高等優(yōu)點(diǎn)。ds18b20是dallas公司的最新單線數(shù)字溫度傳感器,它是世界上第一片支持“一線總線”接口的溫度

9、傳感器。一線總線獨(dú)特而且經(jīng)濟(jì)的特點(diǎn),使用戶可輕松地組建傳感器網(wǎng)絡(luò),它的測(cè)量溫度范圍為55125,在1085范圍內(nèi),精度為0.5,現(xiàn)場(chǎng)溫度直接以“一線總線”的數(shù)字方式傳輸,大大提高了系統(tǒng)的抗干擾性,適合于惡劣環(huán)境的現(xiàn)場(chǎng)溫度測(cè)量,如:環(huán)境控制、設(shè)備或過(guò)程控制、測(cè)溫類消費(fèi)電子產(chǎn)品等,ds18b20支持35.5v的電壓范圍,使系統(tǒng)設(shè)計(jì)更靈活、更方便、更便宜、體積更小。ds18b20可以程序設(shè)定912位的分辨率,精度為0.5,分辨率設(shè)定及用戶設(shè)定的報(bào)警溫度存儲(chǔ)在e2prom中,掉電后依然保存。因此,本方案選用ds18b20作為溫度測(cè)量傳感器。從精度方面和計(jì)算方面來(lái)考慮本次選擇ds18b20作為本次的溫度

10、采集芯片。2.1.3 顯示模塊液晶顯示采用每行顯示16個(gè)字符,一共可以顯示兩行的jm1602c,能顯示ascii碼字符,如數(shù)字、大小寫(xiě)字母、各種符號(hào)等,液晶體積小、功耗低、顯示操作簡(jiǎn)單 第三章 硬件模塊介紹3.1 at89s52單片機(jī)介紹at89s52為 atmel 所生產(chǎn)的一種低功耗、高性能cmos8位微控制器,具有8k在系統(tǒng)可編程flsah存儲(chǔ)器。3.1.1 at89s52主要功能1、擁有靈巧的8位cpu和在系統(tǒng)可編程flash2、晶片內(nèi)部具時(shí)鐘振蕩器(傳統(tǒng)最高工作頻率可至 12mhz)3、內(nèi)部程序存儲(chǔ)器(rom)為 8kb4、內(nèi)部數(shù)據(jù)存儲(chǔ)器(ram)為 256字節(jié)5、32 個(gè)可編程i/o

11、 口線6、8 個(gè)中斷向量源7、三個(gè) 16 位定時(shí)器/計(jì)數(shù)器8、三級(jí)加密程序存儲(chǔ)器9、全雙工uart串行通道3.1.2 at89s52各引腳功能介紹: 1)主電源引腳vss和vccvcc(40腳):at89s52電源正端輸入,接+5v。vss(20腳):電源地端。2)外部晶振引腳xtal1和xtal2xtal1(18腳):?jiǎn)涡酒到y(tǒng)時(shí)鐘的反相放大器輸入端。xtal2(19腳):系統(tǒng)時(shí)鐘的反相放大器輸出端。at89s52內(nèi)部有一個(gè)時(shí)鐘振蕩電路,一般在設(shè)計(jì)上只要在 xtal1 和 xtal2 上接上一只石英振蕩晶振和電容組成并聯(lián)諧振回路,與內(nèi)部振蕩電路就產(chǎn)生自激振蕩。如下圖所示,晶振可以再1.2-1

12、2mhz之間選擇,此外在兩引腳與地之間加入電容值可以在5-30pf之間選擇。電容的大小可起到頻率微調(diào),使系統(tǒng)更穩(wěn)定,避免噪聲干擾而死機(jī)的作用。xtal1xtal2c1c2晶振3)復(fù)位引腳rst/vpdreset/vpd(9腳):at89s52的重置引腳,高電平動(dòng)作,當(dāng)要對(duì)晶片重置時(shí),只要對(duì)此引腳電平提升至高電平并保持兩個(gè)機(jī)器周期以上的時(shí)間,at89s52便能完成系統(tǒng)重置的各項(xiàng)動(dòng)作,使得內(nèi)部特殊功能寄存器之內(nèi)容均被設(shè)成已知狀態(tài),并且至地址0000h處開(kāi)始讀入程序代碼而執(zhí)行程序。在vcc掉電期間,此引腳可接上備用電源,由vpd向內(nèi)部提供備用電源,以保持內(nèi)部ram中的數(shù)據(jù)。常用的復(fù)位電路如下圖所示。

13、rstsm22u10k104+vcc4)ea/vppea/vpp(31腳):ea為英文external access的縮寫(xiě),表示存取外部程序代碼之意,低電平動(dòng)作,也就是說(shuō)當(dāng)此引腳接低電平后,系統(tǒng)會(huì)取用外部的程序代碼(存于外部eprom中)來(lái)執(zhí)行程序。當(dāng)ea/vpp為高電平時(shí),訪問(wèn)內(nèi)部程序存儲(chǔ)器。5)ale/progale/prog(30腳):ale是英文address latch enable的縮寫(xiě),表示地址鎖存器啟用信號(hào)。at89s52可以利用這支引腳來(lái)觸發(fā)外部的8位鎖存器(如74ls373),將端口0的地址總線(a0a7)鎖進(jìn)鎖存器中,因?yàn)閍t89s52是以多工的方式送出地址及數(shù)據(jù)。平時(shí)在

14、程序執(zhí)行時(shí)ale引腳的輸出頻率約是系統(tǒng)工作頻率的1/6,因此可以用來(lái)驅(qū)動(dòng)其他周邊晶片的時(shí)基輸入。此外在燒錄8751程序代碼時(shí),此引腳會(huì)被當(dāng)成程序規(guī)劃的特殊功能來(lái)使用。6)/psen/psen(29腳):此為program store enable的縮寫(xiě),其意為程序儲(chǔ)存啟用,當(dāng)8051被設(shè)成為讀取外部程序代碼工作模式時(shí)(ea=0),會(huì)送出此信號(hào)以便取得程序代碼,通常這支腳是接到eprom的oe腳。at89s52可以利用psen及rd引腳分別啟用存在外部的ram與eprom,使得數(shù)據(jù)存儲(chǔ)器與程序存儲(chǔ)器可以合并在一起而共用64k的定址范圍。7)port0(p0.0p0.7)port0(p0.0p0.

15、7)(32-39腳):端口0是一個(gè)8位寬的開(kāi)路汲極(open drain)雙向輸出入端口,共有8個(gè)位,p0.0表示位0,p0.1表示位1,依此類推。其他三個(gè)i/o端口(p1、p2、p3)則不具有此電路組態(tài),而是內(nèi)部有一提升電路,p0在當(dāng)做i/o用時(shí)可以推動(dòng)8個(gè)ls的ttl負(fù)載。如果當(dāng)ea引腳為低電平時(shí)(即取用外部程序代碼或數(shù)據(jù)存儲(chǔ)器),p0就以多工方式提供地址總線(a0a7)及數(shù)據(jù)總線(d0d7)。設(shè)計(jì)者必須外加一鎖存器將端口0送出的地址栓鎖住成為a0a7,再配合端口2所送出的a8a15合成一完整的16位地址總線,而定址到64k的外部存儲(chǔ)器空間。8)port2(p2.0p2.7)port2(p

16、2.0p2.7)(21-28腳):端口2是具有內(nèi)部提升電路的雙向i/o端口,每一個(gè)引腳可以推動(dòng)4個(gè)ls的ttl負(fù)載,若將端口2的輸出設(shè)為高電平時(shí),此端口便能當(dāng)成輸入端口來(lái)使用。p2除了當(dāng)做一般i/o端口使用外,若是在at89s52擴(kuò)充外接程序存儲(chǔ)器或數(shù)據(jù)存儲(chǔ)器時(shí),也提供地址總線的高字節(jié)a8a15,這個(gè)時(shí)候p2便不能當(dāng)做i/o來(lái)使用了。9)port1(p1.0p1.7)port1(p1.0p1.7)(1-8腳):端口1也是具有內(nèi)部提升電路的雙向i/o端口,其輸出緩沖器可以推動(dòng)4個(gè)ls ttl負(fù)載,同樣地若將端口1的輸出設(shè)為高電平,便是由此端口來(lái)輸入數(shù)據(jù)。如果是使用8052或是8032的話,p1.

17、0又當(dāng)做定時(shí)器2的外部脈沖輸入腳,而p1.1可以有t2ex功能,可以做外部中斷輸入的觸發(fā)腳位。10)port3(p3.0p3.7)port3(p3.0p3.7)(10-17腳):端口3也具有內(nèi)部提升電路的雙向i/o端口,其輸出緩沖器可以推動(dòng)4個(gè)ttl負(fù)載,同時(shí)還多工具有其他的額外特殊功能,包括串行通信、外部中斷控制、計(jì)時(shí)計(jì)數(shù)控制及外部數(shù)據(jù)存儲(chǔ)器內(nèi)容的讀取或?qū)懭肟刂频裙δ?。其引腳分配如下:p3.0:rxd,串行通信輸入。p3.1:txd,串行通信輸出。p3.2:int0,外部中斷0輸入。p3.3:int1,外部中斷1輸入。p3.4:t0,計(jì)時(shí)計(jì)數(shù)器0輸入。p3.5:t1,計(jì)時(shí)計(jì)數(shù)器1輸入。p3.

18、6:wr:外部數(shù)據(jù)存儲(chǔ)器的寫(xiě)入信號(hào)。p3.7:rd,外部數(shù)據(jù)存儲(chǔ)器的讀取信號(hào)。3.1.3 中斷源 中斷時(shí)為使用單片機(jī)具有對(duì)外部或內(nèi)部隨機(jī)發(fā)生的時(shí)間實(shí)時(shí)處理而設(shè)置的,中斷功能的存在,很大程度上提高了單片機(jī)的處理外部或內(nèi)部時(shí)間的能力。at89s52單片機(jī)有6個(gè)中斷源,它們的符號(hào)、名稱及產(chǎn)生的條件分別解釋如下:int0:外部中斷0,由p3.2端口線引入,低電平或下降沿引起。int1:外部中斷1,由p3.3端口線引入,低電平或下降沿引起。t0:定時(shí)器/計(jì)數(shù)器0中斷,由t0計(jì)數(shù)器計(jì)滿回零引起。t1:定時(shí)器/計(jì)數(shù)器1中斷,由t1計(jì)數(shù)器計(jì)滿回零引起。t2:定時(shí)器/計(jì)數(shù)器2中斷,由t2計(jì)數(shù)器計(jì)滿回零引起。ti

19、/ri:串行口中斷,串行端口完成一幀字符發(fā)送/接收后引起。以上6個(gè)中斷源中,t2是52單片機(jī)特有的,它們默認(rèn)中斷級(jí)別如下:中斷源中斷級(jí)別序號(hào)(c語(yǔ)言用)入口地址(匯編)int0外部中斷0最高00003ht0定時(shí)器/計(jì)數(shù)器0中斷第21000bhint1外部中斷1第320013ht1定時(shí)器/計(jì)數(shù)器1中斷第43001bhti/ri串行口中斷第540023ht2定時(shí)器/計(jì)數(shù)器2中斷最低5002bh 表3.1.1 52單片機(jī)中斷級(jí)別 1)中斷允許寄存器ie 中斷允許寄存器用來(lái)設(shè)定各個(gè)中斷源的打開(kāi)和關(guān)閉,ie在特殊功能寄存器中,字節(jié)地址為a8h,位地址(由地位到高位)分別是a8hafh,該寄存器可進(jìn)行位尋

20、址,即可對(duì)該寄存器的每位進(jìn)行單獨(dú)操作。單片機(jī)復(fù)位時(shí)ie全部被清0.各定義見(jiàn)下表3.1.2:表3.1.2 中斷允許寄存器ie位序號(hào)d7d6d5d4d3d2d1d0位符號(hào)ea-et2eset1ex1et0ex0位地址afh-adhachabhaaha9ha8hea全局中斷允許位ea=1,打開(kāi)全局中斷控制,在此條件下,由各個(gè)中斷控制位確定相應(yīng)中斷打開(kāi)和關(guān)閉。ea=0,關(guān)閉全部中斷。 - ,無(wú)效位et2定時(shí)器/計(jì)數(shù)器2中斷允許位et2=1,打開(kāi)t2中斷。et2=0,關(guān)閉t2中斷。es串行口中斷允許位es=1,打開(kāi)串行口中斷es=0,關(guān)閉串行口中斷et1定時(shí)器/計(jì)數(shù)器1中斷允許位et1=1,打開(kāi)t1中斷

21、。et1=0,關(guān)閉t1中斷。ex1外部中斷1中斷允許位ex1=1,打開(kāi)外部中斷1中斷ex1=0,關(guān)閉外部中斷1中斷et0定時(shí)器/計(jì)數(shù)器0中斷允許位et0=1,打開(kāi)t0中斷。et0=0,關(guān)閉t0中斷。ex0外部中斷0中斷允許位ex0=1,打開(kāi)外部中斷0中斷ex0=0,關(guān)閉外部中斷0中斷2)中斷優(yōu)先級(jí)寄存器ip中斷優(yōu)先級(jí)寄存器在特殊功能寄存器中,字節(jié)地址為b8h,位地址(由低位到高位)分別是b8h-bfh,ip用來(lái)設(shè)定各個(gè)中斷源屬于兩級(jí)中斷中哪一級(jí)。該寄存器可進(jìn)行位尋址,即可對(duì)該寄存器的每一位進(jìn)行單獨(dú)操作。單片機(jī)復(fù)位時(shí)ip全部被清0,各位定義見(jiàn)表3.1.3:表3.1.3中斷優(yōu)先級(jí)寄存器ip位序號(hào)d

22、7d6d5d4d3d2d1d0位符號(hào)-pspt1px1pt0px0位地址-bchbbhbahb9hb8h- 無(wú)效位ps串行口中斷優(yōu)先級(jí)控制位ps=1,串行口中斷定義為高優(yōu)先級(jí)中斷。ps=0,串行口中斷定義為低優(yōu)先級(jí)中斷。pt1定時(shí)器/計(jì)數(shù)器1中斷優(yōu)先級(jí)控制位pt1=1,定時(shí)器/計(jì)數(shù)器1中斷定義為高優(yōu)先級(jí)中斷。pt1=0,定時(shí)器/計(jì)數(shù)器1中斷定義為低優(yōu)先級(jí)中斷。px1外部中斷1中斷優(yōu)先級(jí)控制位px1=1,外部中斷1定義為高優(yōu)先級(jí)中斷。px1=0,外部中斷1定義為低優(yōu)先級(jí)中斷。pt0定時(shí)器/計(jì)數(shù)器0中斷優(yōu)先級(jí)控制位pt0=1,定時(shí)器/計(jì)數(shù)器0中斷定義為高優(yōu)先級(jí)中斷。pt0=0,定時(shí)器/計(jì)數(shù)器0中斷

23、定義為低優(yōu)先級(jí)中斷。px0外部中斷0中斷優(yōu)先級(jí)控制位px0=1,外部中斷0定義為高優(yōu)先級(jí)中斷。px0=0,外部中斷0定義為低優(yōu)先級(jí)中斷。3)定時(shí)器/計(jì)數(shù)器工作方式寄存器tmod 定時(shí)器/計(jì)數(shù)器工作方式寄存器在特殊功能寄存器中,字節(jié)地址為89h,不能位尋址,tmod用來(lái)確定定時(shí)器的工作方式及功能選擇。單片機(jī)復(fù)位時(shí)tmod全部被清0。其各位的定義如表3.1.4:表3.1.4 定時(shí)器/計(jì)數(shù)器工作方式寄存器tmod位序號(hào)d7d6d5d4d3d2d1d0位符號(hào)gatec/tm1m0gatec/tm1m0定時(shí)器1定時(shí)器0由表3.1.4可知,tmod的高4位用于設(shè)置定時(shí)器1,低4位用來(lái)設(shè)置定時(shí)器0。對(duì)應(yīng)4位

24、的含義如下:gate門(mén)控制位gate=0,定時(shí)器/計(jì)數(shù)器啟動(dòng)與停止僅受tcon寄存器中trx(x=0,1)來(lái)控制。gate=1,定時(shí)器/計(jì)數(shù)器啟動(dòng)與停止由tcon寄存器中trx(x=0,1)和外部中斷引腳(int0和int1)上的電平狀態(tài)來(lái)共同控制。c/t定時(shí)器模式和計(jì)數(shù)器模式選擇位c/t=1,為計(jì)數(shù)器模式;c/t=0,為定時(shí)器模式。m1m0工作方式選擇位每個(gè)定時(shí)器/計(jì)數(shù)器都有4種工作方式,它們由m1m0設(shè)定,對(duì)應(yīng)關(guān)系表3.1.5:表3.1.5 定時(shí)器/計(jì)數(shù)器的4種工作方式m1m0 工作方式00方式0,為13位定時(shí)器/計(jì)數(shù)器01方式1,為16位定時(shí)器/計(jì)數(shù)器10方式2,8位初值自動(dòng)重裝的8位定

25、時(shí)器/計(jì)數(shù)器11方式3,僅適用于t0,分成兩個(gè)8位計(jì)數(shù)器,t1停止計(jì)數(shù)4) 定時(shí)器/計(jì)數(shù)器控制寄存器tcon定時(shí)器/計(jì)數(shù)器控制寄存器在特殊功能寄存器中,字節(jié)地址為88h,位地址(由低位到高位)分別是88h-8fh,該寄存器可進(jìn)行位尋址。tcon寄存器用來(lái)控制定時(shí)器的啟、停,標(biāo)志定時(shí)器溢出和中斷情況。單片機(jī)復(fù)位時(shí)tcon全部被清0。其各位定義如表3.1.6.其中tf1、tr1、tf0和tr0位用于定時(shí)器/計(jì)數(shù)器;ie1、it1、ie0和it0用于外部中斷。表3.1.6 定時(shí)器/計(jì)數(shù)器控制寄存器tcon位序號(hào)d7d6d5d4d3d2d1d0位符號(hào)tf1tr1tf0tr0ie1it1ie0it0位地

26、址8fh8eh8dh8ch8bh8ah89h88htf1定時(shí)器1溢出標(biāo)志位當(dāng)定時(shí)器1計(jì)滿溢出時(shí),由硬件使tf1置1,并且申請(qǐng)中斷。進(jìn)入中斷服務(wù)程序后,由硬件自動(dòng)清0。需要注意的是,如果使用定時(shí)器的中斷,那么該位完全不用人為去操作但是如果使用軟件查詢方式的話,當(dāng)查詢到該位置1后,就需要用軟件清0。tr1定時(shí)器1運(yùn)行控制位由軟件清0關(guān)閉定時(shí)器1。當(dāng)gate=1,且int1為高電平時(shí),tr1置1啟動(dòng)定時(shí)器1;當(dāng)gate=0,tr1置1啟動(dòng)定時(shí)器1;tf0定時(shí)器0溢出標(biāo)志其功能及操作方法同tf1。tr0定時(shí)器0運(yùn)行控制位其功能及操作方法同tr1。ie1外部中斷1請(qǐng)求標(biāo)志當(dāng)it1=0時(shí),位電平觸發(fā)方式,

27、每個(gè)機(jī)器周期的s5p2采樣int1引腳,若int1腳位低電平,則置1,否則ie1清0.當(dāng)it1=1時(shí),int1位跳變沿觸發(fā)方式,當(dāng)?shù)谝粋€(gè)機(jī)械周期采樣到int1位低電平時(shí),則ie1=1,表示外部中斷1正在向cpu申請(qǐng)中斷。當(dāng)cpu響應(yīng)中斷,轉(zhuǎn)向中斷服務(wù)程序時(shí),該位由硬件清0。it1外部中斷1觸發(fā)方式位it1=0,為電平觸發(fā)方式,引腳int1上低電平有效。it1=1,為跳變沿觸發(fā)方式,應(yīng)繳int1上的電平從高到低的負(fù)跳變有效。ie0外部中斷0請(qǐng)求標(biāo)志其功能及操作方法同ie1。it0外部中斷0觸發(fā)方式選擇位。 其功能及操作方法同it1。3.2 ds18b20溫度傳感器介紹溫度傳感器的種類眾多,在應(yīng)用

28、與高精度、高可靠性的場(chǎng)合時(shí)dallas(達(dá)拉斯)公司生產(chǎn)的ds18b20溫度傳感器當(dāng)仁不讓。超小的體積,超低的硬件開(kāi)消,抗干擾能力強(qiáng),精度高,附加功能強(qiáng),與傳統(tǒng)的熱敏電阻等測(cè)溫元件相比,它能直接讀出被測(cè)溫度,并且可根據(jù)實(shí)際要求通過(guò)簡(jiǎn)單的編程實(shí)現(xiàn)位的數(shù)字值讀數(shù)方式。使得ds18b20更受歡迎。對(duì)于我們普通的電子愛(ài)好者來(lái)說(shuō),ds18b20的優(yōu)勢(shì)更是我們學(xué)習(xí)單片機(jī)技術(shù)和開(kāi)發(fā)溫度相關(guān)的小產(chǎn)品的不二選擇。了解其工作原理和應(yīng)用可以拓寬您對(duì)單片機(jī)開(kāi)發(fā)的思路。3.2.1 ds18b20的主要特征: 獨(dú)特的單線接口僅需要一個(gè)端口引腳進(jìn)行通信;多個(gè)ds18b20可以并聯(lián)在惟一的三線上,實(shí)現(xiàn)多點(diǎn)組網(wǎng)功能;無(wú)須外部器

29、件;可通過(guò)數(shù)據(jù)線供電,電壓范圍為3.05.5;零待機(jī)功耗;溫度以或位數(shù)字;用戶可定義報(bào)警設(shè)置;報(bào)警搜索命令識(shí)別并標(biāo)志超過(guò)程序限定溫度(溫度報(bào)警條件)的器件;負(fù)電壓特性,電源極性接反時(shí),溫度計(jì)不會(huì)因發(fā)熱而燒毀,但不能正常工作; 3.2.2 ds18b20引腳結(jié)構(gòu)圖及其功能描述to92封裝的ds18b20的引腳排列見(jiàn)下圖,其引腳功能描述見(jiàn)表3.2.1。 圖3.2.1 ds18b20實(shí)物圖及封裝表3.2.1ds18b20詳細(xì)引腳功能描述序號(hào)名稱引腳功能描述1gnd地信號(hào)2dq數(shù)據(jù)輸入/輸出引腳。開(kāi)漏單總線接口引腳。當(dāng)被用著在寄生電源下,也可以向器件提供電源。3vdd可選擇的vdd引腳。當(dāng)工作于寄生電

30、源時(shí),此引腳必須接地。c64 位rom和單線接口高速緩存存儲(chǔ)器與控制邏輯溫度傳感器高溫觸發(fā)器th低溫觸發(fā)器tl配置寄存器8位crc發(fā)生器vdd3.2.3 ds18b20內(nèi)部結(jié)構(gòu)i/o 圖3.2.2 ds18b20內(nèi)部結(jié)構(gòu)ds18b20采用腳pr35封裝或腳soic封裝,其內(nèi)部結(jié)構(gòu)框圖如圖3.2.2所示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è)非易失性的可電擦除的ee

31、ram。高速暫存ram的結(jié)構(gòu)為字節(jié)的存儲(chǔ)器,結(jié)構(gòu)如表3.2.2所示。表3.2.2表高速暫存ram寄存器內(nèi)存字節(jié)地址溫度值低位(lsb)0溫度值高位(msb)1高溫限制(th)2低溫限制(tl)3配置寄存器4保留5保留6保留7crc校驗(yàn)位8高速暫存器ram由9個(gè)字節(jié)的存儲(chǔ)器組成。第0-1個(gè)字節(jié)是溫度的顯示位;第2和第3個(gè)字節(jié)是復(fù)的th和tl,同時(shí)第2和第3個(gè)字節(jié)的數(shù)字可以更新;第4個(gè)字節(jié)是配置寄存器,同時(shí)第4個(gè)字節(jié)的數(shù)字可以更新;第5、6、7三個(gè)字節(jié)是保留的??呻姴脸齟2porom又包括溫度觸發(fā)器th和tl,以及一個(gè)配置寄存器。表3.2.3列出了溫度數(shù)據(jù)在高速暫存器ram的第0和第1個(gè)字節(jié)中的存

32、儲(chǔ)格式。表3.2.3 溫度數(shù)據(jù)存儲(chǔ)格式位7位6位5位4位3位2位1位0232221202-12-22-32-4位15位14位13位12位11位10位9位8sssss262524表3.2.4 ds18b20溫度轉(zhuǎn)換的時(shí)間比較長(zhǎng),而且分辨率越高,所需要的溫度數(shù)據(jù)轉(zhuǎn)換時(shí)間越長(zhǎng)。因此,在實(shí)際應(yīng)用中要將分辨率和轉(zhuǎn)換時(shí)間權(quán)衡考慮。高速暫存的第、字節(jié)保留未用,表現(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ò)單線接口讀

33、出該數(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ù)值。表2是一部分溫度值對(duì)應(yīng)的二進(jìn)制溫度數(shù)據(jù)。表3.2.4 ds18b20溫度轉(zhuǎn)換時(shí)間表 ds18b20完成溫度轉(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的前5

34、6位來(lái)計(jì)算crc值,并和存入ds18b20的crc值作比較,以判斷主機(jī)收到的rom數(shù)據(jù)是否正確。ds18b20的測(cè)溫原理是這這樣的,器件中低溫度系數(shù)晶振的振蕩頻率受溫度的影響很小,用于產(chǎn)生固定頻率的脈沖信號(hào)送給減法計(jì)數(shù)器;高溫度系數(shù)晶振隨溫度變化其振蕩頻率明顯改變,所產(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ì)低溫度系

35、數(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ù)值就是所測(cè)溫度值。其輸出用于修正減法計(jì)數(shù)器的預(yù)置值,只要計(jì)數(shù)器門(mén)仍未關(guān)閉就重復(fù)上述過(guò)程,直到溫度寄存器值大致被測(cè)溫度值。另外,由于ds18b20單線通信功能是分時(shí)完成的,它有嚴(yán)格的時(shí)隙概念,因此讀寫(xiě)時(shí)序很重要。系統(tǒng)對(duì)ds18b20的各種操作按協(xié)議進(jìn)行。操作協(xié)議為:初使化ds18b20(發(fā)復(fù)位脈沖)發(fā)rom功能命令發(fā)存儲(chǔ)器操作命令處理數(shù)據(jù)。3.2.4 ds

36、18b20接口電路和工作時(shí)序ds18b20可以采用兩種方式供電,一種是采用電源供電方式,此時(shí)ds18b20的1腳接地,2腳作為信號(hào)線,3腳接電源。另一種是寄生電源供電方式,如圖3.2.3 所示單片機(jī)端口接單線總線,為保證在有效的ds18b20時(shí)鐘周期內(nèi)提供足夠的電流,可用一個(gè)mosfet管來(lái)完成對(duì)總線的上拉。圖3.2.3 ds18b20的接口電路當(dāng)ds18b20處于寫(xiě)存儲(chǔ)器操作和溫度a/d轉(zhuǎn)換操作時(shí),總線上必須有強(qiáng)的上拉,上拉開(kāi)啟時(shí)間最大為10us。采用寄生電源供電方式時(shí)vdd端接地。由于單線制只有一根線,因此發(fā)送接口必須是三態(tài)的。由于ds18b20是在一根i/o線上讀寫(xiě)數(shù)據(jù),因此,對(duì)讀寫(xiě)的數(shù)

37、據(jù)位有著嚴(yán)格的時(shí)序要求。ds18b20有嚴(yán)格的通信協(xié)議來(lái)保證各位數(shù)據(jù)傳輸?shù)恼_性和完整性。該協(xié)議定義了幾種信號(hào)的時(shí)序:初始化時(shí)序、寫(xiě)數(shù)據(jù)、讀數(shù)據(jù)。所有時(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ù)和命令的傳輸都是低位在先。(1)ds18b20的初始化時(shí)序1) 先將數(shù)據(jù)線置高電平12) 延時(shí)(該時(shí)間要求不是很?chē)?yán)格,但盡可能短一點(diǎn))3) 數(shù)據(jù)線拉到低電平04) 延時(shí)750us(該時(shí)間范圍可以再480-960us)5) 數(shù)據(jù)線拉到高電平16) 延時(shí)等待。如果初始化成功

38、則在15-60ms內(nèi)產(chǎn)生一個(gè)由ds18b20返回的低電平0,據(jù)該狀態(tài)可以確定它的存在。但應(yīng)注意,不能無(wú)限等待,不然會(huì)是程序進(jìn)入死循環(huán),所以要進(jìn)行超時(shí)判斷7) 若cpu讀到數(shù)據(jù)線上的低電平0后,還要進(jìn)行延時(shí),其延時(shí)的時(shí)間從發(fā)出高電平算起最少480us8) 將數(shù)據(jù)線再次拉到高電平1后結(jié)束(2)ds18b20的寫(xiě)數(shù)據(jù) ) 數(shù)據(jù)線先置低電平0) 延時(shí)確定的時(shí)間為15us) 按從低位到高位的順序發(fā)送數(shù)據(jù)(一次只發(fā)送一位) 延時(shí)時(shí)間為45us) 將數(shù)據(jù)線拉到高電平1) 重復(fù)1)-5)步驟,直到發(fā)送完整個(gè)字節(jié)) 最后將數(shù)據(jù)線拉到(2)ds18b20的讀數(shù)據(jù)) 將數(shù)據(jù)線拉高到) 延時(shí)us) 將數(shù)據(jù)線拉低到0)

39、 延時(shí)6us) 將數(shù)據(jù)線拉高到1) 延時(shí)4us) 讀數(shù)據(jù)線的狀態(tài)得到一個(gè)狀態(tài)位,并進(jìn)行數(shù)據(jù)處理) 重復(fù)1)-7)步驟,直到讀取完一個(gè)字節(jié)3.4 1602字符型液晶3.4.1 1602字符型液晶簡(jiǎn)介工業(yè)字符型液晶,能夠同時(shí)顯示16x02即32個(gè)字符。(16列2行)注:為了表示的方便 ,后文皆以1表示高電平,0表示低電平。1602液晶也叫1602字符型液晶,它是一種專門(mén)用來(lái)顯示字母、數(shù)字、符號(hào)等的點(diǎn)陣型液晶模塊。它由若干個(gè)5x7或者5x11等點(diǎn)陣字符位組成,每個(gè)點(diǎn)陣字符位都可以顯示一個(gè)字符,每位之間有一個(gè)點(diǎn)距的間隔,每行之間也有間隔,起到了字符間距和行間距的作用,正因?yàn)槿绱怂运荒芎芎玫仫@示圖形

40、(用自定義cgram,顯示效果也不好)。 1602lcd是指顯示的內(nèi)容為16x2,即可以顯示兩行,每行16個(gè)字符液晶模塊(顯示字符和數(shù)字)。 目前市面上字符液晶絕大多數(shù)是基于hd44780液晶芯片的,控制原理是完全相同的,因此基于hd44780寫(xiě)的控制程序可以很方便地應(yīng)用于市面上大部分的字符型液晶。管腳功能 lcd1602引腳圖1602采用標(biāo)準(zhǔn)的16腳接口,其中:第1腳:vss為電源地第2腳:vcc接5v電源正極第3腳:v0為液晶顯示器對(duì)比度調(diào)整端,接正電源時(shí)對(duì)比度最弱,接地電源時(shí)對(duì)比度最高(對(duì)比度過(guò)高時(shí)會(huì) 產(chǎn)生“鬼影”,使用時(shí)可以通過(guò)一個(gè)10k的電位器調(diào)整對(duì)比度)。待添加的隱藏文字內(nèi)容1第4

41、腳:rs為寄存器選擇,高電平1時(shí)選擇數(shù)據(jù)寄存器、低電平0時(shí)選擇指令寄存器。第5腳:rw為讀寫(xiě)信號(hào)線,高電平(1)時(shí)進(jìn)行讀操作,低電平(0)時(shí)進(jìn)行寫(xiě)操作。第6腳:e(或en)端為使能(enable)端。第714腳:d0d7為8位雙向數(shù)據(jù)端。第1516腳:空腳或背燈電源。15腳背光正極,16腳背光負(fù)極。 1602lcd的特性+3.3v電壓,對(duì)比度可調(diào) 內(nèi)含復(fù)位電路 提供各種控制命令,如:清屏、字符閃爍、光標(biāo)閃爍、顯示移位等多種功能 有80字節(jié)顯示數(shù)據(jù)存儲(chǔ)器ddram 內(nèi)建有192個(gè)5x7點(diǎn)陣的字型的字符發(fā)生器cgrom8個(gè)可由用戶自定義的5x7的字符發(fā)生器cgram1602lcd特征及應(yīng)用微功耗、

42、體積小、顯示內(nèi)容豐富、超薄輕巧,常用在袖珍式儀表和低功耗應(yīng)用系統(tǒng)中。 操作控制注:關(guān)于e=h脈沖開(kāi)始時(shí)初始化e為0,然后置e為1。字符集1602液晶模塊內(nèi)部的字符發(fā)生存儲(chǔ)器(cgrom)已經(jīng)存儲(chǔ)了160個(gè)不同的點(diǎn)陣字符圖形,這些字符有:阿拉伯?dāng)?shù)字、英文字母的大小寫(xiě)、常用的符號(hào)、和日文假名等,每一個(gè)字符都有一個(gè)固定的代碼,比如大寫(xiě)的英文字母“a”的代碼是01000001b(41h),顯示時(shí)模塊把地址41h中的點(diǎn)陣字符圖形顯示出來(lái),我們就能看到字母“a”。因?yàn)?602識(shí)別的是ascii碼,試驗(yàn)可以用ascii碼直接賦值,在單片機(jī)編程中還可以用字符型常量或變量賦值,如a。以下是1602的16進(jìn)制as

43、cii碼表地址:讀的時(shí)候,先讀左邊那列,再讀上面那行,如:感嘆號(hào)!的ascii為0x21,字母b的ascii為0x42(前面加0x表示十六進(jìn)制)指令集1602通過(guò)d0d7的8位數(shù)據(jù)端傳輸數(shù)據(jù)和指令。顯示模式設(shè)置: (初始化)0011 1000 0x38 設(shè)置162顯示,57點(diǎn)陣,8位數(shù)據(jù)接口;顯示開(kāi)關(guān)及光標(biāo)設(shè)置: (初始化)0000 1dcb d顯示(1有效)、c光標(biāo)顯示(1有效)、b光標(biāo)閃爍(1有效)0000 01ns n=1(讀或?qū)懸粋€(gè)字符后地址指針加1 &光標(biāo)加1),n=0(讀或?qū)懸粋€(gè)字符后地址指針減1 &光標(biāo)減1),s=1 且 n=1 (當(dāng)寫(xiě)一個(gè)字符后,整屏顯示左移)s=0 當(dāng)寫(xiě)一個(gè)字

44、符后,整屏顯示不移動(dòng)數(shù)據(jù)指針設(shè)置:數(shù)據(jù)首地址為80h,所以數(shù)據(jù)地址為80h+地址碼(0-27h,40-67h)其他設(shè)置:01h(顯示清屏,數(shù)據(jù)指針=0,所有顯示=0);02h(顯示回車(chē),數(shù)據(jù)指針=0)。 第四章 流程圖根據(jù)硬件電路圖,綜合自己的設(shè)計(jì)思路,先畫(huà)出各子程序流程圖,再根據(jù)流程圖編好程序,最后組成系統(tǒng)的整體程序。4.1 系統(tǒng)溫度采集流程圖本文的溫度采集流程圖,如圖4.1所示:寫(xiě)0xcc(跳過(guò)rom指令)寫(xiě)0x44(啟動(dòng)溫度轉(zhuǎn)換命令)寫(xiě)0xbe(讀ram溫度存儲(chǔ)數(shù)據(jù))temp_l=讀ram低位temp_h=讀ram高位dis=(temp_h*256+temp_l)/16將溫度轉(zhuǎn)換成十進(jìn)制

45、初始化延時(shí)1ms1602lcd顯示圖4.1 溫度采集流程圖第五章 軟件模塊介紹5.1 keil 軟件 5.1.1 keil軟件使用方法簡(jiǎn)介:keil c51 軟件是眾多單片機(jī)應(yīng)用開(kāi)發(fā)的優(yōu)秀軟件之一,它集編輯,編譯,仿真于一體,支持匯編,匯編語(yǔ)言和 c 語(yǔ)言的程序設(shè)計(jì),界面友好,易學(xué)易用。 下面介紹keil c51軟件的使用方法 進(jìn)入 keil c51 后,屏幕如5.1.1圖所示。幾秒鐘后出現(xiàn)編輯界簡(jiǎn)單程序的調(diào)試 圖5.1.1 進(jìn)入keil c51后的編輯界面學(xué)習(xí)程序設(shè)計(jì)語(yǔ)言、學(xué)習(xí)某種程序軟件,最好的方法是直接操作實(shí)踐。下面通過(guò)簡(jiǎn)單的編程、調(diào)試,引導(dǎo)大家學(xué)習(xí)keil c51軟件的基本使用方法和基

46、本的調(diào)試技巧。 (1)新建工程單擊project菜單,如圖5.1.2所示,在彈出的下拉菜單中選中new project選項(xiàng) 圖5.1.2 新建工程然后選擇你要保存的路徑,輸入工程文件的名字,比如保存到d盤(pán)的cmj51文件夾里,工程文件的名字為cmj1如圖5.1.3所示,然后點(diǎn)擊保存. 圖5.1.3 保存工程這時(shí)會(huì)彈出一個(gè)對(duì)話框,要求你選擇單片機(jī)的型號(hào),你可以根據(jù)你使用的單片機(jī)來(lái)選擇,keil c51幾乎支持所有的51核的單片機(jī),我這里還是以大家用的比較多的atmel 的89c51來(lái)說(shuō)明,如下圖所示,選擇89c51之后,右邊欄是對(duì)這個(gè)單片機(jī)的基本的說(shuō)明,然后點(diǎn)擊確定. 圖5.1.4 選擇單片機(jī)型

47、號(hào)完成上一步驟后,屏幕如下圖所示圖5.1.5 添加完單片機(jī)后的窗口界面到現(xiàn)在為止,我們還沒(méi)有編寫(xiě)一句程序,下面開(kāi)始編寫(xiě)我們的第一個(gè)程序。(2)新建文件在圖4.1.6中,單擊“file”菜單,再下拉菜單中單擊“new”選項(xiàng) 圖5.1.6 添加文件新建文件后屏幕如下圖所示圖5.1.7 添加完文件后的窗口界面此時(shí)光標(biāo)在編輯窗口里閃爍,這時(shí)可以鍵入用戶的應(yīng)用程序了。鍵入程序后界面如圖4.1.8:圖5.1.8 鍵入程序后界面單擊file菜單下的save,出現(xiàn)一個(gè)對(duì)話框,鍵入文件名,后綴名為 asm或 . c,進(jìn)行保存到d盤(pán)cmj51文件夾下。界面如下:圖5.1.9 保存界面(3)添加文件回到編輯界面后,

48、單擊“target 1”前面的“”號(hào),然后在“source group 1”上單擊右鍵,彈出如下菜單圖5.1.10 將文件加入工程的菜單然后單擊“add file to group source group 1” 屏幕如圖5.1.11所示圖5.1.11 選中文件后的對(duì)話框選中cmj1.asm,然后單擊“add ”屏幕好下圖所示圖5.1.12 將文件加入工程后的窗口(4)匯編連接單擊如圖4.1.13所示的圖標(biāo)(rebuilt all target files)圖5.1.13 編譯全部文件界面出現(xiàn)如5.1.14界面:圖5.1.14 編譯后的界面(5)運(yùn)行看結(jié)果單擊圖標(biāo)(start/stop deb

49、ug session),進(jìn)入運(yùn)行狀態(tài)出現(xiàn)如圖5.1.15界面:圖5.1.15 調(diào)試界面單擊一次的圖標(biāo)(step into),程序就能運(yùn)行一條,一直到程序的結(jié)束(ret)。運(yùn)行結(jié)束后,直接可以在如圖5.1.16界面中看結(jié)果。圖5.1.16 特殊功能寄存器特殊功能寄存器中的內(nèi)容可以在界面中直接看到,存儲(chǔ)單元的內(nèi)容在memory #1中輸入如上圖所示的地址,即可看到該單元的內(nèi)容為66h。參考文獻(xiàn) 1.51單片機(jī)c語(yǔ)言教程 郭天祥.2單片機(jī)實(shí)驗(yàn)指導(dǎo)書(shū), 河南工業(yè)職業(yè)技術(shù)學(xué)院351系列單片機(jī)設(shè)計(jì)實(shí)例,樓然苗、李光飛編著,北京航空航天出版社;4.單片機(jī)基本原理及應(yīng)用系統(tǒng),盧艷軍,機(jī)械工業(yè)出版社;附錄1 系統(tǒng)c語(yǔ)言程序/*讀取ds18b20溫度,通過(guò)lcd1602顯示出來(lái)第一行: 實(shí)時(shí)溫度值第二行: 最大值和最小值*/ /*頭文件*/#include #include #define uint unsigned i

溫馨提示

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