




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、單片機(jī)原理及應(yīng)用 課程設(shè)計(jì)報(bào)告書題 目:數(shù)字溫度計(jì)的設(shè)計(jì)姓名:學(xué)號(hào):專業(yè)班級(jí):生醫(yī)091班指導(dǎo)老師:韓曉東設(shè)計(jì)時(shí)間:2012年7月目錄1 系統(tǒng)功能12 設(shè)計(jì)方案13 開發(fā)工具和芯片介紹 13.1keil軟件13.2 proteus軟件23.3.protel軟件 43.4 at89c52單片機(jī) 53.5 ds18b20溫度傳感器 64 系統(tǒng)硬件仿真電路 75 程序設(shè)計(jì)75.1主程序 75.2讀出溫度溫度子程序 75.3溫度轉(zhuǎn)換命令子程序 85.4計(jì)算溫度子程序 95.5顯示數(shù)據(jù)刷新子程序 95.6ds18b20中的rom命令 95.7溫度數(shù)據(jù)的計(jì)算處理方法 11六軟件調(diào)試與運(yùn)行結(jié)果12七電路板調(diào)
2、試 18八源程序清單 18九參考文獻(xiàn) 27單片機(jī)數(shù)字溫度計(jì)設(shè)計(jì)一、 系統(tǒng)設(shè)計(jì)功能數(shù)字溫度計(jì)測溫范圍在-55-125精度誤差在0.5以內(nèi),用四位共陽led數(shù)碼管直接讀顯示,要求高位為0不顯示,低于0時(shí)前面顯示“-”。二、 設(shè)計(jì)方案傳統(tǒng)的測溫元件有熱電偶和熱電阻,而熱電偶和熱電阻測出的一般都是電壓,再轉(zhuǎn)換成對(duì)應(yīng)的溫度,需要比較多的外部硬件支持,硬件電路復(fù)雜,軟件調(diào)試復(fù)雜,制作成本高。而數(shù)字溫度計(jì)的設(shè)計(jì)可采用美國dallas半導(dǎo)體公司繼ds1820之后推出的一種改進(jìn)型智能溫度傳感器ds18b20作為檢測元件,測溫范圍為-55-125,分辨率最大可達(dá)0.0625。ds18b20可以直接讀出被測溫度值(
3、不用校準(zhǔn)),而且采用單線與單片機(jī)通訊,減少了外部的硬件電路,具有高精度和易使用的特點(diǎn)。按照系統(tǒng)功能的要求,數(shù)字溫度計(jì)由主控制器、測溫單元和顯示電路3個(gè)模塊組成??傮w系統(tǒng)結(jié)構(gòu)圖見圖1四位led數(shù)碼顯示器89c52主控制器溫度傳感器掃描驅(qū)動(dòng)圖1 數(shù)字溫度計(jì)系統(tǒng)結(jié)構(gòu)3 開發(fā)工具和芯片介紹 3.1 keil軟件3.1.1 keil軟件簡介keil c51是美國keil software公司出品的51系列兼容單片機(jī)c語言軟件開發(fā)系統(tǒng),與匯編相比,c語言在功能上、結(jié)構(gòu)性、可讀性、可維護(hù)性上有明顯的優(yōu)勢(shì),因而易學(xué)易用。用過匯編語言后再使用c來開發(fā),體會(huì)更加深刻。keil c51軟件提供豐富的庫函數(shù)和功能強(qiáng)大
4、的集成開發(fā)調(diào)試工具,全windows界面。另外重要的一點(diǎn),只要看一下編譯后生成的匯編代碼,就能體會(huì)到keil c51生成的目標(biāo)代碼效率非常之高,多數(shù)語句生成的匯編代碼很緊湊,容易理解。在開發(fā)大型軟件時(shí)更能體現(xiàn)高級(jí)語言的優(yōu)勢(shì)。keil c51軟件是一個(gè)基于32位windows環(huán)境的應(yīng)用程序,支持c語言和匯編語言編程,其6.0以上的版本將編譯和仿真軟件統(tǒng)一為vision(通常稱為v2)。keil提供包括c編譯器、宏匯編、連接器、庫管理和一個(gè)功能強(qiáng)大的仿真調(diào)試器等在內(nèi)的完整開發(fā)方案,由以下幾部分組成:vision ide集成開發(fā)環(huán)境c51編譯器、a51匯編器、lib51庫管理器、bl51連接/定位器
5、、oh51目標(biāo)文件生成器以及 monitor-51、rtx51實(shí)時(shí)操作系統(tǒng)。3.1.2 keil軟件調(diào)試功能應(yīng)用keil進(jìn)行軟件仿真開發(fā)的主要步驟為:編寫源程序并保存建立工程并添加源文件設(shè)置工程編譯/匯編、連接,產(chǎn)生目標(biāo)文件程序調(diào)試。keil使用“工程”(project)的概念,對(duì)工程(而不能對(duì)單一的源程序)進(jìn)行編譯/匯編、連接等操作。工程的建立、設(shè)置、編譯/匯編及連接產(chǎn)生目標(biāo)文件的方法非常易于掌握。首先選擇菜單file-new,在源程序編輯器中輸入?yún)R編語言或c語言源程序(或選擇file-open,直接打開已用其它編輯器編輯好的源程序文檔)并保存,注意保存時(shí)必須在文件名后加上擴(kuò)展名.asm(.
6、a51)或.c;然后選擇菜單project-new project,建立新工程并保存(保存時(shí)無需加擴(kuò)展名,也可加上擴(kuò)展名.uv2);工程保存后會(huì)立即彈出一個(gè)設(shè)備選擇對(duì)話框,選擇cpu后點(diǎn)確定返回主界面。這時(shí)工程管理窗口的文件頁(files)會(huì)出現(xiàn)“target1”,將其前面+號(hào)展開,接著選擇source group1,右擊鼠標(biāo)彈出快捷菜單,選擇“add file to group source group1”,出現(xiàn)一個(gè)對(duì)話框,要求尋找并加入源文件(在加入一個(gè)源文件后,該對(duì)話框不會(huì)消失,而是等待繼續(xù)加入其它文件)。加入文件后點(diǎn)close返回主界面,展開“source group1”前面+號(hào),就會(huì)
7、看到所加入的文件,雙擊文件名,即可打開該源程序文件。緊接著對(duì)工程進(jìn)行設(shè)置,選擇工程管理窗口的target1,再選擇project-option for targettarget1(或點(diǎn)右鍵彈出快捷菜單再選擇該選項(xiàng)),打開工程屬性設(shè)置對(duì)話框,共有8個(gè)選項(xiàng)卡,主要設(shè)置工作包括在target選項(xiàng)卡中設(shè)置晶振頻率、在debug選項(xiàng)卡中設(shè)置實(shí)驗(yàn)仿真板等,如要寫片,還必須在output選項(xiàng)卡中選中“creat hex fi”;其它選項(xiàng)卡內(nèi)容一般可取默認(rèn)值。工程設(shè)置后按f7鍵(或點(diǎn)擊編譯工具欄上相應(yīng)圖標(biāo))進(jìn)行編譯/匯編、連接以及產(chǎn)生目標(biāo)文件。成功編譯/匯編、連接后,選擇菜單debug-start/stop
8、debug session(或按ctrl+f5鍵)進(jìn)入程序調(diào)試狀態(tài),keil提供對(duì)程序的模擬調(diào)試功能,內(nèi)建一個(gè)功能強(qiáng)大的仿真cpu以模擬執(zhí)行程序。keil能以單步執(zhí)行(按f11或選擇debug-step)、過程單步執(zhí)行(按f10或選擇debug-step over)、全速執(zhí)行等多種運(yùn)行方式進(jìn)行程序調(diào)試。如果發(fā)現(xiàn)程序有錯(cuò),可采用在線匯編功能對(duì)程序進(jìn)行在線修改(debug-inline assambly),不必執(zhí)行先退出調(diào)試環(huán)境、修改源程序、對(duì)工程重新進(jìn)行編譯/匯編和連接、然后再次進(jìn)入調(diào)試狀態(tài)的步驟。對(duì)于一些必須滿足一定條件(如按鍵被按下等)才能被執(zhí)行的、難以用單步執(zhí)行方式進(jìn)行調(diào)試的程序行,可采用
9、斷點(diǎn)設(shè)置的方法處理(debug-insert/remove breakpoint或debug-breakpoints等)。在模擬調(diào)試程序后,還須通過編程器將.hex目標(biāo)文件燒寫入單片機(jī)中才能觀察目標(biāo)樣機(jī)真實(shí)的運(yùn)行狀況。3.2 proteus軟件3.2.1. proteus簡介proteus軟件是英國labcenter electronics公司出版的eda工具軟件(該軟件中國總代理為廣州風(fēng)標(biāo)電子技術(shù)有限公司)。它不僅具有其它eda工具軟件的仿真功能,還能仿真單片機(jī)及外圍器件。它是目前最好的仿真單片機(jī)及外圍器件的工具。雖然目前國內(nèi)推廣剛起步,但已受到單片機(jī)愛好者、從事單片機(jī)教學(xué)的教師、致力于單片
10、機(jī)開發(fā)應(yīng)用的科技工作者的青睞。proteus是世界上著名的eda工具(仿真軟件),從原理圖布圖、代碼調(diào)試到單片機(jī)與外圍電路協(xié)同仿真,一鍵切換到pcb設(shè)計(jì),真正實(shí)現(xiàn)了從概念到產(chǎn)品的完整設(shè)計(jì)。是目前世界上唯一將電路仿真軟件、pcb設(shè)計(jì)軟件和虛擬模型仿真軟件三合一的設(shè)計(jì)平臺(tái),其處理器模型支持8051、hc11、pic10/12/16/18/24/30/dspic33、avr、arm、8086和msp430等,2010年即將增加cortex和dsp系列處理器,并持續(xù)增加其他系列處理器模型。在編譯方面,它也支持iar、keil和mplab等多種編譯器。 該軟件的特點(diǎn)是:1. 實(shí)現(xiàn)了單片機(jī)仿真和spice
11、電路仿真相結(jié)合,具有模擬電路仿真、數(shù)字電路仿真、各種單片機(jī)(51系列、avr、pig等常用的mcu)及其外圍電路(如lcd、ram、rom、鍵盤、led、a/d、d/a)組成的系統(tǒng)仿真。2. 提供了多種虛擬儀器。如示波器、邏輯分析儀、信號(hào)發(fā)生器等,調(diào)試非常方便。3. 提供軟件調(diào)試功能,同時(shí)支持第三方的軟件編譯和調(diào)試環(huán)境,如keil等軟件。4. 具有強(qiáng)大的原理圖繪制功能。proteus與其它單片機(jī)仿真軟件不同的是,它不僅能仿真單片機(jī)cpu的工作情況,也能仿真單片機(jī)外圍電路或沒有單片機(jī)參與的其它電路的工作情況。因此在仿真和程序調(diào)試時(shí),關(guān)心的不再是某些語句執(zhí)行時(shí)單片機(jī)寄存器和存儲(chǔ)器內(nèi)容的改變,而是從
12、工程的角度直接看程序運(yùn)行和電路工作的過程和結(jié)果。對(duì)于這樣的仿真實(shí)驗(yàn)從某種意義上講,是彌補(bǔ)了實(shí)驗(yàn)和工程應(yīng)用閹脫節(jié)的矛盾和現(xiàn)象。同時(shí),當(dāng)硬件調(diào)試成功后,利用proteus ares軟件,很容易獲得其pcb圖,為今后的制造提供了方便。3.2.2 四大功能模塊1. 智能原理圖設(shè)計(jì)(isis)豐富的器件庫:超過27000種元器件,可方便地創(chuàng)建新元件。 智能的器件搜索:通過模糊搜索可以快速定位所需要的器件。 智能化的連線功能:自動(dòng)連線功能使連接導(dǎo)線簡單快捷,大大縮短繪圖時(shí)間。 支持總線結(jié)構(gòu):使用總線器件和總線布線使電路設(shè)計(jì)簡明清晰。 可輸出高質(zhì)量圖紙:通過個(gè)性化設(shè)置,可以生成印刷質(zhì)量的bmp圖紙,可以方便
13、地供word、powerpoint等多種文檔使用。 2. 完善的電路仿真功能(prospice)prospice混合仿真:基于工業(yè)標(biāo)準(zhǔn)spice3f5,實(shí)現(xiàn)數(shù)字/模擬電路的混合仿真。 超過27000個(gè)仿真器件:可以通過內(nèi)部原型或使用廠家的spice文件自行設(shè)計(jì)仿真器件,labcenter也在不斷地發(fā)布新的仿真器件,還可導(dǎo)入第三方發(fā)布的仿真器件。 多樣的激勵(lì)源:包括直流、正弦、脈沖、分段線性脈沖、音頻(使用wav文件)、指數(shù)信號(hào)、單頻fm、數(shù)字時(shí)鐘和碼流,還支持文件形式的信號(hào)輸入。豐富的虛擬儀器:13種虛擬儀器,面板操作逼真,如示波器、邏輯分析儀、信號(hào)發(fā)生器、直流電壓/電流表、交流電壓/電流表、
14、數(shù)字圖案發(fā)生器、頻率計(jì)/計(jì)數(shù)器、邏輯探頭、虛擬終端、spi調(diào)試器、i2c調(diào)試器等。 生動(dòng)的仿真顯示:用色點(diǎn)顯示引腳的數(shù)字電平,導(dǎo)線以不同顏色表示其對(duì)地電壓大小,結(jié)合動(dòng)態(tài)器件(如電機(jī)、顯示器件、按鈕)的使用可以使仿真更加直觀、生動(dòng) 高級(jí)圖形仿真功能(asf):基于圖標(biāo)的分析可以精確分析電路的多項(xiàng)指標(biāo),包括工作點(diǎn)、瞬態(tài)特性、頻率特性、傳輸特性、噪聲、失真、傅立葉頻譜分析等。 3. 獨(dú)特的單片機(jī)協(xié)同仿真功能(vsm)支持主流的cpu類型:如arm7、8051/52、avr、pic10/12、pic16、pic18、pic24、dspic33、hc11、basicstamp、8086、msp430等,
15、cpu類型隨著版本升級(jí)還在繼續(xù)增加,如即將支持cortex、dsp處理器。 支持通用外設(shè)模型:如字符lcd模塊、圖形lcd模塊、led點(diǎn)陣、led七段顯示模塊、鍵盤/按鍵、直流/步進(jìn)/伺服電機(jī)、rs232虛擬終端、電子溫度計(jì)等等,其compim(com口物理接口模型)還可以使仿真電路通過pc機(jī)串口和外部電路實(shí)現(xiàn)雙向異步串行通信。 實(shí)時(shí)仿真:支持uart/usart/eusarts仿真、中斷仿真、spi/i2c仿真、mssp仿真、psp仿真、rtc仿真、adc仿真、ccp/eccp仿真。 編譯及調(diào)試:支持單片機(jī)匯編語言的編輯/編譯/源碼級(jí)仿真,內(nèi)帶8051、avr、pic的匯編編譯器,也可以與第
16、三方集成編譯環(huán)境(如iar、keil和hitech)結(jié)合,進(jìn)行高級(jí)語言的源碼級(jí)仿真和調(diào)試。4. 實(shí)用的pcb設(shè)計(jì)平臺(tái)原理圖到pcb的快速通道: 原理圖設(shè)計(jì)完成后,一鍵便可進(jìn)入ares的pcb設(shè)計(jì)環(huán)境,實(shí)現(xiàn)從概念到產(chǎn)品的完整設(shè)計(jì)。先進(jìn)的自動(dòng)布局/布線功能:支持器件的自動(dòng)/人工布局;支持無網(wǎng)格自動(dòng)布線或人工布線;支持引腳交換/門交換功能使pcb設(shè)計(jì)更為合理。 完整的pcb設(shè)計(jì)功能:最多可設(shè)計(jì)16個(gè)銅箔層,2個(gè)絲印層,4個(gè)機(jī)械層(含板邊),靈活的布線策略供用戶設(shè)置,自動(dòng)設(shè)計(jì)規(guī)則檢查,3d 可視化預(yù)覽。 多種輸出格式的支持:可以輸出多種格式文件,包括gerber文件的導(dǎo)入或?qū)С?,便利與其它pcb設(shè)計(jì)工
17、具的互轉(zhuǎn)(如protel)和pcb板的設(shè)計(jì)和加工。 3.2.3 isis智能原理圖輸入系統(tǒng)isis是proteus系統(tǒng)的中心,它遠(yuǎn)不僅是一個(gè)圖表庫。它是具有控制原理圖畫圖的外觀的超強(qiáng)的設(shè)計(jì)環(huán)境。無論用戶的要求是快速實(shí)現(xiàn)復(fù)雜設(shè)計(jì)的仿真以及pcb設(shè)計(jì),還是設(shè)計(jì)精美的原理圖以供出版,isis都可以很好的完成。isis提供給用戶圖形外觀包括線寬、填充類型、字符等的全部控制,使用戶能夠生成如雜志上看到一樣精美的原理圖,遠(yuǎn)勝過cad軟件繪制出的稀薄的線條。畫完圖可以以圖形文件輸出,或者拷貝到剪切板以便其他文件使用。這就使得isis成為制作技術(shù)文件,學(xué)術(shù)論文,項(xiàng)目報(bào)告的理想工具,也是pcb設(shè)計(jì)的一個(gè)出色的前
18、端。畫圖的外形由風(fēng)格模板定義。此外,此方案允許用戶定制元件庫提供的庫部件的外觀。3.2.4 proteus簡單應(yīng)用圖2-1 proteus界面圖1. 繪制原理圖:繪制原理圖要在原理圖編輯窗口中的藍(lán)色方框內(nèi)完成。原理圖編輯窗口的操作是不同于常用的windows應(yīng)用程序的,正確的操作是:用左鍵放置元件;右鍵選擇元件;雙擊右鍵刪除元件;右鍵拖選多個(gè)元件;先右鍵后左鍵編輯元件屬性;先右鍵后左鍵拖動(dòng)元件;連線用左鍵,刪除用右鍵;改連接線:先右擊連線,再左鍵拖動(dòng);中鍵放縮原理圖。2. 定制自己的元件:有三個(gè)個(gè)實(shí)現(xiàn)途徑,一是用proteus vsm sdk開發(fā)仿真模型,并制作元件;另一個(gè)是在已有的元件基礎(chǔ)上
19、進(jìn)行改造,比如把元件改為bus接口的;還有一個(gè)是利用已制作好(別人的)的元件,我們可以到網(wǎng)上下載一些新元件并把它們添加到自己的元件庫里面。3. sub-circuits應(yīng)用:用一個(gè)子電路可以把部分電路封裝起來,這樣可以節(jié)省原理圖窗口的空間。3.3 protel軟件3.3.1 protel簡介早期的protel主要作為印制板自動(dòng)布線工具使用,運(yùn)行在dos環(huán)境,對(duì)硬件的要求很低,在無硬盤286機(jī)的1m內(nèi)存下就能運(yùn)行,但它的功能也較少,只有電路原理圖繪制與印制板設(shè)計(jì)功能,其印制板自動(dòng)布線的布通率也低,而現(xiàn)今的protel已發(fā)展到dxp 2004,是個(gè)龐大的eda軟件,完全安裝有200多m,它工作在w
20、indows95環(huán)境下,是個(gè)完整的板級(jí)全方位電子設(shè)計(jì)系統(tǒng),它包含了電路原理圖繪制、模擬電路與數(shù)字電路混合信號(hào)仿真、多層印制電路板設(shè)計(jì)(包含印制電路板自動(dòng)布線)、可編程邏輯器件設(shè)計(jì)、圖表生成、電子表格生成、支持宏操作等功能,并具有client/server(客戶/服務(wù)器)體系結(jié)構(gòu),同時(shí)還兼容一些其它設(shè)計(jì)軟件的文件格式,如orcad,pspice,excel等,其多層印制線路板的自動(dòng)布線可實(shí)現(xiàn)高密度pcb的100%布通率。3.3.2 protel軟件快捷鍵enter選取或啟動(dòng) esc放棄或取消 f1啟動(dòng)在線幫助窗口 tab啟動(dòng)浮動(dòng)圖件的屬性窗口 pgup放大窗口顯示比例 pgdn縮小窗口顯示比例
21、end刷新屏幕 del刪除點(diǎn)取的元件(1個(gè)) ctrl+del刪除選取的元件(2個(gè)或2個(gè)以上) x+a取消所有被選取圖件的選取狀態(tài) x將浮動(dòng)圖件左右翻轉(zhuǎn) y將浮動(dòng)圖件上下翻轉(zhuǎn) space將浮動(dòng)圖件旋轉(zhuǎn)90度 crtl+ins將選取圖件復(fù)制到編輯區(qū)里 shift+ins將剪貼板里的圖件貼到編輯區(qū)里 shift+del將選取圖件剪切放入剪貼板里 alt+backspace恢復(fù)前一次的操作 ctrl+backspace取消前一次的恢復(fù) crtl+g跳轉(zhuǎn)到指定的位置 crtl+f尋找指定的文字 alt+f4關(guān)閉protel spacebar繪制導(dǎo)線,直線或總線時(shí),改變走線模式 v+d縮放視圖,以顯示整
22、張電路圖 v+f縮放視圖,以顯示所有電路部件 home以光標(biāo)位置為中心,刷新屏幕 esc終止當(dāng)前正在進(jìn)行的操作,返回待命狀態(tài) backspace放置導(dǎo)線或多邊形時(shí),刪除最末一個(gè)頂點(diǎn) delete放置導(dǎo)線或多邊形時(shí),刪除最末一個(gè)頂點(diǎn) ctrl+tab在打開的各個(gè)設(shè)計(jì)文件文檔之間切換 alt+tab在打開的各個(gè)應(yīng)用程序之間切換 a彈出editalign子菜單 b彈出view oolbars子菜單 e彈出edit菜單 f彈出file菜單 h彈出help菜單 j彈出editjump菜單 l彈出editset location makers子菜單 m彈出editmove子菜單 o彈出options菜單
23、p彈出place菜單 r彈出reports菜單 s彈出editselect子菜單 t彈出tools菜單 v彈出view菜單 w彈出window菜單 x彈出editdeselect菜單 z彈出zoom菜單 左箭頭光標(biāo)左移1個(gè)電氣柵格 shift+左箭頭光標(biāo)左移10個(gè)電氣柵格 右箭頭光標(biāo)右移1個(gè)電氣柵格 shift+右箭頭光標(biāo)右移10個(gè)電氣柵格 上箭頭光標(biāo)上移1個(gè)電氣柵格 shift+上箭頭光標(biāo)上移10個(gè)電氣柵格 下箭頭光標(biāo)下移1個(gè)電氣柵格 shift+下箭頭光標(biāo)下移10個(gè)電氣柵格 ctrl+1以零件原來的尺寸的大小顯示圖紙 ctrl+2以零件原來的尺寸的200%顯示圖紙 ctrl+4以零件原來的
24、尺寸的400%顯示圖紙 ctrl+5以零件原來的尺寸的50%顯示圖紙 ctrl+f查找指定字符 ctrl+g查找替換字符 ctrl+b將選定對(duì)象以下邊緣為基準(zhǔn),底部對(duì)齊 ctrl+t將選定對(duì)象以上邊緣為基準(zhǔn),頂部對(duì)齊 ctrl+l將選定對(duì)象以左邊緣為基準(zhǔn),左對(duì)齊 ctrl+r將選定對(duì)象以右邊緣為基準(zhǔn),右對(duì)齊 ctrl+h將選定對(duì)象以左右邊緣的中心線為基準(zhǔn),水平居中排列 ctrl+v將選定對(duì)象以上下邊緣的中心線為基準(zhǔn),垂直居中排列 ctrl+shift+h將選定對(duì)象在左右邊緣之間,水平均布 ctrl+shift+v將選定對(duì)象在上下邊緣之間,垂直均布 f3查找下一個(gè)匹配字符 shift+f4將打開
25、的所有文檔窗口平鋪顯示 shift+f5將打開的所有文檔窗口層疊顯示 shift+單左鼠選定單個(gè)對(duì)象 crtl+單左鼠,再釋放crtl拖動(dòng)單個(gè)對(duì)象 shift+ctrl+左鼠移動(dòng)單個(gè)對(duì)象 按ctrl后移動(dòng)或拖動(dòng)移動(dòng)對(duì)象時(shí),不受電器格點(diǎn)限制 按alt后移動(dòng)或拖動(dòng)移動(dòng)對(duì)象時(shí),保持垂直方向 按shift+alt后移動(dòng)或拖動(dòng)移動(dòng)對(duì)象時(shí),保持水平方向3.4 at89c52單片機(jī)3.4.1 at89c52簡介at89c52只是51系列單片機(jī)的一個(gè)型號(hào),at89c52是美國atmel公司生產(chǎn)的低電壓、高性能cmos 8位單片機(jī),片內(nèi)含8kb的可反復(fù)檫寫的程序存儲(chǔ)器和12b的隨機(jī)存取數(shù)據(jù)存儲(chǔ)器(ram),器件
26、采用atmel公司的高密度、非易失性存儲(chǔ)技術(shù)生產(chǎn),兼容標(biāo)準(zhǔn)mcs-51指令系統(tǒng),片內(nèi)配置通用8位中央處理器(cpu)和flash存儲(chǔ)單元,功能強(qiáng)大的at89c52單片機(jī)可靈活應(yīng)用于各種控制領(lǐng)域。at89c52單片機(jī)屬于at89c51單片機(jī)的增強(qiáng)型,與intel公司的80c52在引腳排列、硬件組成、工作特點(diǎn)和指令系統(tǒng)等方面兼容。3.4.2 at89c51與at89c52的區(qū)別1、ram 空間:at89c51 有128 字節(jié)的內(nèi)部 ram,稱之為 data 存儲(chǔ)區(qū)。at89c52 的內(nèi)部 ram 擴(kuò)展為 256 字節(jié),其中高 128 字節(jié),位于從 80h 開始的地址空間中,稱之為 idata 存儲(chǔ)
27、區(qū),但idata 區(qū)的訪問只能是間接尋址方式。2、內(nèi)部 flash:at89c51 有 4k 字節(jié)的內(nèi)部 flash peram,而at89c52 的內(nèi)部 flash peram 增加1倍,達(dá)到8k。3、中斷源:在at89c52 中p1.0和p1.1還可分別作為定時(shí)器/計(jì)數(shù)器2的外部計(jì)數(shù)輸入(p1.0/t2)和(p1.1/t2ex),也就是說,p1.0同時(shí)可作為定時(shí)器/計(jì)數(shù)器 t2 的外部計(jì)數(shù)輸入,和輸出占空比 50% 的時(shí)鐘脈沖端口,p1.1同時(shí)可作為定時(shí)器/計(jì)數(shù)器 t2 捕獲/重新裝載觸發(fā)和方向控制端口。故,at89c52 除了具備 at89c51 的定時(shí)器/計(jì)數(shù)器 t0 和定時(shí)器/計(jì)數(shù)器
28、 t1,還額外增加了一個(gè)定時(shí)器/計(jì)數(shù)器 t2。而定時(shí)器/計(jì)數(shù)器 t2 的控制和狀態(tài)位單獨(dú)位于t2con、t2mod,定時(shí)器/計(jì)數(shù)器 t2 在 16 位捕獲方式或自動(dòng)重新裝載方式下的捕獲/重載寄存器組是(tcao2h、rcap2l)。4.內(nèi)部ram及尋址:(1)51的內(nèi)部ram是128字節(jié) 00h-7fh既可直接尋址又可間接尋址 80h-ffh為sfr區(qū) 只能直接尋址 即data區(qū):00h-ffh idata區(qū):00h-7fh(2)52的內(nèi)部ram是256字節(jié) 00h-7fh既可直接尋址又可間接尋址高128字節(jié)ram80h-ffh與sfr區(qū)在地址上的重壘的,但物理上分開這部分對(duì)sfr直接尋址,對(duì)
29、ram間接尋址 即data idata區(qū)都是00h-ffh3.5 ds18b20傳感器3.5.1 ds18b20簡介ds18b20溫度傳感器是美國dallas半導(dǎo)體公司最新推出的一種改進(jìn)型智能溫度傳感器,與傳統(tǒng)的熱敏電阻等測溫元件相比,它能直接讀出被測溫度,并且可根據(jù)實(shí)際要求通過簡單的編程實(shí)現(xiàn)912位的數(shù)字值讀數(shù)方式。3.5.2 ds18b20主要特性(1) 適應(yīng)電壓范圍更寬,電壓范圍:3.05.5v,在寄生電源方式下可由數(shù)據(jù)線供電 (2) 獨(dú)特的單線接口方式,ds18b20在與微處理器連接時(shí)僅需要一條口線即可實(shí)現(xiàn)微處理器與ds18b20的雙向通訊 (3) ds18b20支持多點(diǎn)組網(wǎng)功能,多個(gè)
30、ds18b20可以并聯(lián)在唯一的三線上,實(shí)現(xiàn)組網(wǎng)多點(diǎn)測溫 (4) ds18b20在使用中不需要任何外圍元件,全部 傳感元件及轉(zhuǎn)換電路集成在形如一只三極管的集成電路內(nèi) (5) 溫范圍55+125,在-10+85時(shí)精度為0.5 (6) 可編程 的分辨率為912位,對(duì)應(yīng)的可分辨溫度分別為0.5、0.25、0.125和0.0625,可實(shí)現(xiàn)高精度測溫 (7) 在9位分辨率時(shí)最多在 93.75ms內(nèi)把溫度轉(zhuǎn)換為數(shù)字,12位分辨率時(shí)最多在750ms內(nèi)把溫度值轉(zhuǎn)換為數(shù)字,速度更快 (8) 測量結(jié)果直接輸出數(shù)字溫度信號(hào),以一 線總線串行傳送給cpu,同時(shí)可傳送crc校驗(yàn)碼,具有極強(qiáng)的抗干擾糾錯(cuò)能力 (9) 負(fù)壓特
31、性:電源極性接反時(shí),芯片不會(huì)因發(fā)熱而燒毀, 但不能正常工作。 3.5.3 ds18b20引腳定義:(1)dq為數(shù)字信號(hào)輸入/輸出端; (2) gnd為電源地; (3) vdd為外接供電電源輸入端(在寄生電源接線方式時(shí)接地)。 四系統(tǒng)硬件仿真電路數(shù)字溫度計(jì)電路仿真電路見圖2,控制器使用89c52系列單片機(jī),溫度傳感器使用ds18b20,用四位共陽led數(shù)碼管以動(dòng)態(tài)掃描法實(shí)現(xiàn)溫度顯示,從p0口輸出段碼,列掃描用p2口來實(shí)現(xiàn),列驅(qū)動(dòng)用74hc244,可直接作為led段碼燈的電源。仿真電路如圖2。圖2.數(shù)字溫度計(jì)系統(tǒng)硬件仿真電路五程序設(shè)計(jì)系統(tǒng)程序主要包括主程序、讀出溫度子程序、溫度轉(zhuǎn)換命令子程序、計(jì)算
32、溫度子程序、顯示數(shù)據(jù)刷新子程序等。5.1 主程序主程序的主要功能負(fù)責(zé)溫度的實(shí)時(shí)顯示、獨(dú)處并處理ds18b20的測量溫度值,溫度測量每1s進(jìn)行一次,其程序流程詳見圖3.5.2 讀出溫度子程序讀出溫度子程序的功能是讀出ds18b20 ram中的9個(gè)字節(jié),在讀出時(shí)需要經(jīng)行crc校驗(yàn),校驗(yàn)有錯(cuò)時(shí)不進(jìn)行溫度數(shù)據(jù)的讀寫,其程序流程詳見圖4. 圖3.ds18b20溫度計(jì)主程序流程 圖4.讀出溫度子程序流程5.3 溫度轉(zhuǎn)換命令子程序溫度轉(zhuǎn)換命令子程序主要是發(fā)溫度轉(zhuǎn)換開始命令,當(dāng)采用12位分辨率時(shí),轉(zhuǎn)換時(shí)間約為750ms,在本程序設(shè)計(jì)中1s顯示程序延時(shí)法等待轉(zhuǎn)換的完成,溫度轉(zhuǎn)換命令子程序流程詳見圖5。圖5.溫度
33、轉(zhuǎn)換命令子程序流程5.4 計(jì)算溫度子程序計(jì)算溫度設(shè)計(jì)子程序?qū)s18b20 ram中讀取值進(jìn)行bcd碼得轉(zhuǎn)換運(yùn)算,并進(jìn)行溫度值正負(fù)的判定,其程序流程詳見圖65.5 顯示數(shù)據(jù)刷新子程序顯示數(shù)據(jù)刷新子程序主要是顯示緩沖器中的緩沖數(shù)據(jù)進(jìn)行刷新操作,當(dāng)最高數(shù)據(jù)顯示位為0時(shí)將符號(hào)顯示位移入下一位,程序流程圖見圖7.圖6.計(jì)算溫度子程序流程 圖7.顯示數(shù)據(jù)刷新子程序流程5.6 ds18b20中的rom命令1)read rom 33h這個(gè)命令允許總線控制器讀到ds18b20的8位系列編碼、唯一的序列號(hào)和8位crc碼。只有在總線上存在但只ds18b20時(shí)才能使用這個(gè)命令。如果總線上不止一個(gè)從機(jī),當(dāng)所有從機(jī)試圖
34、同時(shí)傳送信號(hào)時(shí)就會(huì)發(fā)生數(shù)據(jù)沖突(漏極開路連在一起形成相與的效果)。2)match rom 55h這是匹配rom命令,后跟64位rom序列,讓總線控制器在多點(diǎn)總線上定位一只特定的ds18b20。只有和64位rom序列完全匹配的ds18b20才能響應(yīng)隨后的存儲(chǔ)器操作。所有和64位序列不匹配的從機(jī)都將等待復(fù)位脈沖。這條命令在總線上有單個(gè)或多個(gè)器件時(shí)都可以使用。3)skip rom 0cch這條命令允許總線控制器不用提供64位rom編碼就可以使用存儲(chǔ)器操作命令,在單點(diǎn)總線情況下,可以節(jié)省時(shí)間。如果總線不止一個(gè)從機(jī),在skip rom命令之后跟著發(fā)一條讀命令,由于多個(gè)從機(jī)同時(shí)發(fā)送信號(hào)??偩€上就就會(huì)發(fā)生數(shù)
35、據(jù)沖突(漏極開路下拉效果相當(dāng)于與)4)search rom0f0h當(dāng)一個(gè)系統(tǒng)初次啟動(dòng)時(shí)總線控制器可能并不知道單線總線上有多少器件或它們的64位rom編碼。5)alarm search 0ech這條命令的流程和search rom相同。然而只有在最近一次測溫后遇到符合報(bào)警條件的情況ds18b20才會(huì)響應(yīng)這條命令。報(bào)警條件定義為溫度高于th或低于tl。主要ds18b20不掉電,報(bào)警狀態(tài)將一直保持,知道再一次測得的溫度值達(dá)不到報(bào)警條件。6)write scratchpad 4eh這個(gè)命令向ds18b20的暫存器th和tl中寫入數(shù)據(jù)。可以在任何發(fā)出復(fù)位命令來中止寫入。7)read scratchpad
36、0beh這個(gè)命令暫存器的內(nèi)容。讀取將讀取將從第一個(gè)字節(jié)開始,一直進(jìn)行下去,知道第9(crc)個(gè)字節(jié)讀完。如果不想讀完所有字節(jié),控制器可以在任何時(shí)間發(fā)出復(fù)位命令來中止讀取。8)copy scratchpad 48h這個(gè)命令把暫存器的內(nèi)容拷貝到ds18b20的prom存儲(chǔ)器里,即把溫度報(bào)警觸發(fā)字節(jié)存入非易失性存儲(chǔ)器里。如果總線控制器在這條命令跟著發(fā)出讀時(shí)間隙,而ds18b29又忙于把暫存器拷貝到prom 存儲(chǔ)器,ds18b20就會(huì)輸出一個(gè)“0”,如果拷貝結(jié)束的話,ds18b20則輸出“1”。如果使用寄生電源,總線控制器必須在這條命令發(fā)出后立即啟動(dòng)強(qiáng)上拉并最少保持10ms.9)convert t44
37、h這條命令啟動(dòng)一次溫度轉(zhuǎn)換而無需其他數(shù)據(jù)。溫度轉(zhuǎn)換命令被執(zhí)行,而后ds18b20保持等待狀態(tài)。如果總線控制器在這條命令之后跟著發(fā)出讀時(shí)間隙,而ds18b20就會(huì)輸出一個(gè)“0”,如溫度轉(zhuǎn)換完成,則輸出“1”。如果使用寄生電源,總線控制器必須在發(fā)出這條命令發(fā)出后立即啟動(dòng)強(qiáng)上拉并最少保持500ms以上時(shí)間。10)recall eh0b8h這條命令把報(bào)警觸發(fā)器里的值拷貝回暫存器。這種拷貝操作在ds18b20上電時(shí)自動(dòng)執(zhí)行,這樣器件一上電暫存器里馬上就存在有效的數(shù)據(jù)了。若在這條命令發(fā)出之后發(fā)出讀書據(jù)隙,器件會(huì)輸出溫度轉(zhuǎn)換忙的標(biāo)識(shí):“0”=忙,“1”=完成。11)read power supply 0b4
38、h若把這條命令發(fā)給ds18b20后發(fā)出讀時(shí)間隙,器件會(huì)返回它的電源模式:“0”=寄生電源,“1”=外部電源。5.7溫度數(shù)據(jù)的處理方法從ds18b20讀取出的二進(jìn)制值必須先轉(zhuǎn)換成十進(jìn)制bcd碼,才能用于字符的顯示。因?yàn)閐s18b20的轉(zhuǎn)換精度為912 位(可選的),為提高精度可采用12位。在采用12位轉(zhuǎn)換精度時(shí),溫度寄存器里的值是以0.0625為步進(jìn)的,即溫度值為溫度寄存器里的二進(jìn)制乘以0.0625,就是實(shí)際的十進(jìn)制溫度值。表1是ds18b20溫度以二進(jìn)制及十六進(jìn)制表示值的對(duì)應(yīng)關(guān)系,從表中可知,一個(gè)十進(jìn)制和二進(jìn)制之間有很明顯的關(guān)系,就是把二進(jìn)制的高字節(jié)的低半字節(jié)和低字節(jié)的高高半字節(jié)組成一個(gè)字節(jié),
39、這個(gè)字節(jié)的二進(jìn)制轉(zhuǎn)化為十進(jìn)制的bcd碼值后,就是溫度值的百、十、個(gè)位值,而剩下的低字節(jié)的低半字節(jié)轉(zhuǎn)化成十進(jìn)制以后,就是溫度值的小數(shù)部分。小數(shù)部分因?yàn)槭前雮€(gè)字節(jié),所以十六進(jìn)制范圍是0f,轉(zhuǎn)化成十進(jìn)制小數(shù)值就是0.0625的倍數(shù)(015倍)。需用四位的數(shù)碼管來顯示小數(shù)部分,在實(shí)際應(yīng)用中不必有著么高的精度,設(shè)計(jì)中一般采用一位數(shù)碼管來顯示小數(shù),可以精確到0.1。表噢 是小數(shù)部分十六進(jìn)制和十進(jìn)制的近似對(duì)應(yīng)關(guān)系。表1 ds18b20溫度與表示值對(duì)應(yīng)關(guān)系溫度()二進(jìn)制表示十六進(jìn)制表示+1250000 0111 1101 000007d0h+850000 0101 0101 00000550h+25.0625
40、0000 0001 1001 00010191h+10.1250000 0000 1010 001000a2h+0.50000 0000 0000 10000008h00000 0000 0000 00000000h-0.51111 1111 1111 1000fff8h-10.1251111 1111 0101 1110ff5eh-25.06251111 1110 0110 1111fe6fh-551111 1100 1001 0000fc90h表2 小數(shù)部分十六進(jìn)制和十進(jìn)制的近似對(duì)應(yīng)關(guān)系小數(shù)部分十六進(jìn)制值001122334455667788991a1b1c1deeff十進(jìn)制小數(shù)近似值000
41、01121323343 4 5 5 6 6 7 8 8 9六軟件調(diào)試及運(yùn)行結(jié)果系統(tǒng)的調(diào)試以程序?yàn)橹?。可先編一個(gè)測試小程序以判斷仿真硬件電路是否正常。然后分別進(jìn)行顯示程序、主程序、讀出溫度子程序、溫度轉(zhuǎn)換命令子程序、計(jì)算溫度子程序、顯示溫度刷新子程序等的編程及調(diào)試,由于ds18b20與單片機(jī)采用單線數(shù)據(jù)傳送。因此,對(duì)ds18b20進(jìn)行讀寫編程時(shí)必須嚴(yán)格地保證讀寫時(shí)序,否則將無法讀取測量結(jié)果。1.在keil軟件中調(diào)試程序,修改錯(cuò)誤。調(diào)試結(jié)果正確后生成.hex文件。2.在proteus軟件中畫出電路圖并加載.hex文件并運(yùn)行,結(jié)果如下圖所示:調(diào)節(jié)ds18b20溫度傳感器的“+”“”,led顯示的溫度
42、值也做出相應(yīng)的變化。3. 在protel軟件中繪制pcb圖(1) 打開protel軟件,在file中選擇new,再選擇pcb,建立pcb文件如下:(2) 在browse中選中l(wèi)ibraries。選擇所需元件,單擊place即可安放元件。對(duì)于某些型號(hào)的元件可能不能找到,此時(shí)我們選擇管腳相同的元件來代替,如果管腳完全相同的元件也找不到則找更多管腳的元件來代替??傊趐rotel中選擇的元件的管腳數(shù)至少和實(shí)際使用的元件的管腳數(shù)一樣。(3) 安放好元件,在工具欄中選擇連線按鈕為電路布線。(4) 對(duì)于接地和接電源的地方,我們需要打孔。在protel工具欄中選擇打孔按鈕來完成該操作:(5) 需要注釋的地方
43、(如接地接電源處打的孔),我們用工具欄中的“t”按鈕完成注釋:(6) 完成上述步驟后布線圖如下:(7) 在菜單欄選擇綠色按鈕:即可觀察三維圖像:7 電路板調(diào)試上述過程只是仿真過程,對(duì)于程序是否可行,則需要在電路板上進(jìn)行調(diào)試。根據(jù)老師提供的電路板,對(duì)程序做適當(dāng)修改后即可得正確結(jié)果。如下圖所示:8 源程序清單 ;*;課程設(shè)計(jì)程序:數(shù)字溫度計(jì);顯示精度為0.1攝氏度,測溫范圍-55+125攝氏度;用89c52系列單片機(jī),12mhz晶振;*;*;常數(shù)定義;*timel equ 0e0h ;定時(shí)器t0的20ms時(shí)間常數(shù)timeh equ 0b1h ;定時(shí)器t0的20ms時(shí)間常數(shù)temphead equ
44、36h ;18b20讀出字節(jié)存放首址(共讀9個(gè)字節(jié));*;工作內(nèi)存定義;*bitst data 20h ;用作標(biāo)志位time1sok bit bitst.1 ;1s定時(shí)時(shí)間標(biāo)志,1s到時(shí)為1temponeok bit bitst.2 ;上電標(biāo)志,剛上電為0,讀出一次后為1templ data 26h ;讀出溫度低字節(jié)存放-整數(shù)低四位+小數(shù)位四位temph data 27h ;讀出溫度高字節(jié)存放-四位符號(hào)位+整數(shù)高四位temphc data 28h ;用于存放處理好的bcd碼溫度值:百位+十位templc data 29h ;用于存放處理好的bcd碼溫度值:個(gè)位+小數(shù)位;*;引腳定義;*tempdin bit p3.7 ;18b20數(shù)據(jù)接口;*;中斷向量區(qū);*org 0000hljmp startorg 00bhljmp toit;*;系統(tǒng)初始化;* org 100hstart: mov sp,#60hclsmem: mov r0,#20h ;堆棧底 mov r1,#60h ;20h7fh清零clsmem1: mov r0,#00h ; inc r0 ; djnz r1,clsmem1 ; mo
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度銀行開戶后投資者教育與風(fēng)險(xiǎn)提示兩件事合同
- 二零二五年度互聯(lián)網(wǎng)公司員工薪酬待遇與保密協(xié)議
- 2025年度旅游景區(qū)商鋪?zhàn)赓U及節(jié)假日促銷合作合同
- 二零二五年度健康食品品牌授權(quán)使用代理合同
- 2025年度虛擬現(xiàn)實(shí)產(chǎn)業(yè)股東股份轉(zhuǎn)讓及內(nèi)容合作合同
- 二零二五年度國有企業(yè)員工人事代理綜合管理合同
- 2025年度倆孩子撫養(yǎng)權(quán)協(xié)商與離婚財(cái)產(chǎn)分割協(xié)議
- 2025年度企業(yè)債務(wù)轉(zhuǎn)股權(quán)項(xiàng)目實(shí)施協(xié)議書
- 2025年度征收集體土地房屋拆遷補(bǔ)償協(xié)議
- 2025年度農(nóng)村出租房租賃與農(nóng)村電子商務(wù)運(yùn)營服務(wù)合同
- 蘇科版七年級(jí)數(shù)學(xué)下冊(cè)期末復(fù)習(xí)+10(專題-幾何圖形的證明)
- 人人都是產(chǎn)品經(jīng)理2 0:寫給泛產(chǎn)品經(jīng)理
- 西方經(jīng)濟(jì)學(xué)(第二版)完整整套教學(xué)課件
- 振動(dòng)振動(dòng)測試基礎(chǔ)知識(shí)培訓(xùn)課件
- 《云南瀾滄鉛礦有限公司勐濱煤礦采礦權(quán)價(jià)款退還計(jì)算說明》
- sbl-ep16高低壓開關(guān)柜培訓(xùn)中法文kyn6140.5安裝使用說明書
- GB/T 9113.1-2000平面、突面整體鋼制管法蘭
- GB/T 8947-1998復(fù)合塑料編織袋
- PALL 頗爾過濾器 -乙烯系統(tǒng)培訓(xùn)
- 2021年湖北師范學(xué)院專升本C語言程序設(shè)計(jì)試卷
- CB/T 3136-1995船體建造精度標(biāo)準(zhǔn)
評(píng)論
0/150
提交評(píng)論