freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于ds18b20數(shù)字式溫度儀的設(shè)計(jì)畢業(yè)論文(編輯修改稿)

2024-07-24 17:16 本頁面
 

【文章內(nèi)容簡介】 能 端口功能第二功能端口引腳第二功能RXD()串行輸入口T0()定時/計(jì)數(shù)器0外部輸入TXD()串行輸出口T1()定時/計(jì)數(shù)器1外部輸入INT0()外中斷0WR()外部數(shù)據(jù)存儲器寫選通INT1()外中斷1RD()外部數(shù)據(jù)存儲器讀選通RST:復(fù)位輸入。當(dāng)振蕩工作時,RST引腳出現(xiàn)兩個機(jī)器周期上高電平將使單片機(jī)復(fù)位。WDT益出將使該引腳輸出高電平,設(shè)置SFR AUXR 的 DISRTO 位(地址8EH)可打開或關(guān)閉該功能。DISRTO 位缺省為RESET輸出高電平打開狀態(tài)。ALE/PROG:當(dāng)訪問外部程序存儲器或數(shù)據(jù)存儲器時,ALE(地址鎖存允許)輸出脈沖用于鎖存地址的低8位字節(jié)。即使不訪問外部存儲器,ALE仍以時鐘振蕩頻率的1/6輸出的正脈沖信號,因此它可對外輸出時鐘或用于定時目地,要注意的是:第當(dāng)訪問外部數(shù)據(jù)存儲器時將跳過一個ALE脈沖。如有必要,可通過對特殊功能寄存器(SFR)區(qū)中的8EH單元的D0位置位,可禁止ALE操作。該位禁位后,只有一條MOVX 和MOVC指令A(yù)LE才會被激活。此外,該引腳伎被微弱拉高,單片機(jī)執(zhí)行外部程序時,應(yīng)設(shè)置ALE無效。PSEN:程序儲存允許(PSEN)輸出是外部程序存儲器的讀選通信號,當(dāng)AT89S51由外部程序存儲器取指令(或數(shù)據(jù))時,每個機(jī)器周期兩次PSEN有效,即輸出兩個脈沖。當(dāng)訪問外部數(shù)據(jù)存儲器,高有兩次有效的PSEN信號。EA/VPP:外部訪問允許。欲使CPU公訪問外部程序存儲器(地址0000H-FFFFH),EA端必須保持低電平(接地)。需注意的是:如果加密位LB1被編程,復(fù)位時內(nèi)部會鎖存EA端狀態(tài)。如EA端為高電平(接Vcc端),CPU則執(zhí)行內(nèi)部程序存儲器中的指令。Flas存儲器編程時,該引腳加上+12V的編程電壓Vpp。XTAL1:振蕩器反相放大器及內(nèi)部時鐘發(fā)生器的輸入端。XTAL2:振蕩器反相放大器的輸出端。AT89S51單片機(jī)內(nèi)部構(gòu)造及功能:特殊功能寄存器:特殊功能寄存器的片內(nèi)空間分存如下圖32所示。這些地址并沒有全部占用,沒有占用的地址不可使用,讀這些地址將得到一個隨意的數(shù)值。而寫這些地址單元將不能得到預(yù)期的結(jié)果。中斷寄存器:各中斷允許控制位于IE寄存器,5個中斷源的中斷優(yōu)先級控制位于IP寄存器。圖42為AUXR輔助寄存器。圖32 AUXR輔助寄存器雙時鐘指針寄存器:為方便地訪問內(nèi)部和外部數(shù)據(jù)存儲器,提供了兩個16位數(shù)據(jù)指針寄存儲器:PD0位于SFR區(qū)塊中的地址82H、83H和DP1位于地址84H、85H,當(dāng)SFR中的位DPS=0時選擇DP0,而DPS=1時選擇DP1。在使用前初始化DPS。雙時鐘指針寄存器AUXR1 地址 = A2H 不可尋址位DPS76543210 保留今后擴(kuò)展用途DPS 數(shù)據(jù)指針選擇位 DPS 0 選擇DPTR寄存器 DPOL,DP0H 1 選擇DPTR寄存器 DP1L,DP1H電源空閑標(biāo)志:電源空閑標(biāo)志(POF)在特殊功能寄存儲器SFR中PCON的第4位(),電源打開時POF置“1”,它可由軟件設(shè)置睡眠狀態(tài)并不為復(fù)位所影響。存儲器結(jié)構(gòu):MCS51單片機(jī)內(nèi)核采用程序存儲器和數(shù)據(jù)存儲器空間分開的結(jié)構(gòu),均具有64KB外部程序和數(shù)據(jù)的尋址空間。程序存儲器:如果EA引腳接地(GND),全部程序均執(zhí)行外部存儲器。在AT89S51,假如接至Vcc(電源+),程序首先執(zhí)行從地址0000H-0FFFH(4KB)內(nèi)部程序存儲器,再執(zhí)行地址為1000H-FFFFH(60KB)的外部程序存儲器。數(shù)據(jù)存儲器:在AT89S51的具有128字節(jié)的內(nèi)部RAM,這128字節(jié)可利用直接或間接尋址方式訪問,堆棧操作可利用間接尋址方式進(jìn)行,128字節(jié)均可設(shè)置為堆棧區(qū)空間??撮T狗定時器(WDT):WDT是為了解決CPU程序運(yùn)行時可能進(jìn)入混亂或死循環(huán)而設(shè)置,它由一個14bit計(jì)數(shù)器和看狗復(fù)位SFR(WDTRST)構(gòu)成。外部復(fù)位時,WDT默認(rèn)為關(guān)閉狀態(tài),要打開WDT,必按順序?qū)?1H和0E1H寫到WDTRST寄存器,當(dāng)啟動了WDT,它會隨晶體振蕩器在每個機(jī)器周期計(jì)數(shù),除硬件復(fù)位或WDT溢出復(fù)位外沒有其它方法關(guān)閉WDT,當(dāng)WDT溢出,將使RST引腳輸出高電平的復(fù)位脈沖。引腳圖詳見圖34圖34 AT89S51單片機(jī)引腳圖 、溫度檢測電路DS18B20 最大的特點(diǎn)是單總線數(shù)據(jù)傳輸方式,DS18B20 的數(shù)據(jù)I/O 均由同一條線來完成。DS18B20 的電源供電方式有2 種: 外部供電方式和寄生電源方式。工作于寄生電源方式時, VDD 和GND 均接地, 他在需要遠(yuǎn)程溫度探測和空間受限的場合特別有用, 原理是當(dāng)1 W ire 總線的信號線DQ 為高電平時, 竊取信號能量給DS18B20 供電, 同時一部分能量給內(nèi)部電容充電, 當(dāng)DQ為低電平時釋放能量為DS18B20 供電。但寄生電源方式需要強(qiáng)上拉電路, 軟件控制變得復(fù)雜(特別是在完成溫度轉(zhuǎn)換和拷貝數(shù)據(jù)到E2PROM 時) , 同時芯片的性能也有所降低。外部電源供電方式是DS18B20最佳的工作方式,工作穩(wěn)定可靠,抗干擾能力強(qiáng),而且電路也比較簡單,可以開發(fā)出穩(wěn)定可靠的多點(diǎn)溫度監(jiān)控系統(tǒng)。因此本設(shè)計(jì)采用外部供電方式。如下圖所示:溫度傳感器DS18B20的測量范圍為55℃~+125℃,在10℃~+85℃時精度為177。℃。、顯示電路 本設(shè)計(jì)顯示電路采用兩位共陽極LED數(shù)碼管來顯示測量得到的溫度值。LED數(shù)碼管能在低電壓下工作,而且體積小、重量輕、使用壽命長,因次本設(shè)計(jì)選用此數(shù)碼管作為顯示器件。 一個LED數(shù)碼管只能顯示一位的字符,如果字符位數(shù)不止一位,可以用幾個數(shù)碼管組成,但要控制多位的顯示電路需要有字段控制和字位控制,字段控制是指控制所要顯示的字符是什么,控制電路應(yīng)將字符的七段碼通過輸出口連接到LED的a~g引腳,是某些段點(diǎn)亮,某些段處于熄滅狀態(tài)。字位控制是指控制在多位顯示器中,哪幾位發(fā)光或那幾位不發(fā)光,字位控制則需要通過字位碼作用于LED數(shù)碼管的公共引腳,是某一位或某幾位的數(shù)碼管可以發(fā)光。數(shù)碼管顯示電路分為動態(tài)顯示和靜態(tài)顯示。 靜態(tài)顯示方式是指每一個數(shù)碼管的字段控制是獨(dú)立的,每一個數(shù)碼管都需要配置一個8位輸出口來輸出該字位的七段碼。因此需要顯示多位時需要多個輸出口,通常片內(nèi)并口不夠用,需要在片外擴(kuò)展。 動態(tài)顯示又稱為掃描顯示方式,也就是在某一時刻只能讓一個字位處于選通狀態(tài),其他字位一律斷開,同時在字段線上發(fā)出該位要顯示的字段碼,這樣在某一時刻某一位數(shù)碼管就會被點(diǎn)亮,并顯示出相應(yīng)的字符。下一時刻改變所顯示的字位和字段碼,點(diǎn)亮另一個數(shù)碼管,顯示另一個字符。繞后一次掃描輪流點(diǎn)亮其他數(shù)碼管,只要掃描速度快,利用人眼的視覺殘留效應(yīng),會使人感覺到幾位數(shù)碼管都在穩(wěn)定的顯示。 數(shù)碼管顯示電路 時鐘脈沖電路 時鐘脈沖電路的主要作用是對外發(fā)出時序控制信號,在AT89S51芯片上XTAL1和XTAL2分別為反向放大器的輸入和輸出,期中當(dāng)本實(shí)驗(yàn)線路相同時,即使用內(nèi)部時鐘方式時,XTAL1和XTAL2必須外接石英體和微調(diào)電容,其中電容C1,C2對震蕩頻率起穩(wěn)定作用。時鐘脈沖信號有兩種形式:,分別為內(nèi)部時鐘方式和外部時鐘方式。 內(nèi)部時鐘電路本章主要基于硬件電路的設(shè)計(jì)進(jìn)行了分析討論。劃分了系統(tǒng)電路,AT89S51和各部分電路圖及電路工作原理分析。同時說明了各部分電路工作原理。4 軟件設(shè)計(jì) Keil51編程軟件KEIL IDE(u Vision2)集成開發(fā)環(huán)境是 Keil Softwaren Inc/Keil Elektronik GmbH開發(fā)的基于MCS8051內(nèi)核的微處理器軟件平臺,內(nèi)嵌多種符合當(dāng)前工業(yè)標(biāo)準(zhǔn)的的開發(fā)工具,可以完成從工程的建立和管理,編譯,鏈接,目標(biāo)代碼的生成到軟件仿真,硬件仿真等完整的開發(fā)流程。尤其是C語言的編譯工具在產(chǎn)生代碼的準(zhǔn)確性和效率方面達(dá)到了較高水平,而且可以附加靈活的控制選項(xiàng),在開發(fā)大型項(xiàng)目時是非常理想的工具。Keil 本身是一個純軟件工具不能直接進(jìn)行硬件仿真,必須掛接類似TKS系列仿真器的硬件才可以進(jìn)行仿真。本畢業(yè)設(shè)計(jì)的主要工作就是軟件的設(shè)計(jì),及程序的編寫與調(diào)試。流程圖如下所示。主程序的主要功能是負(fù)責(zé)溫度的實(shí)時顯示、讀出并處理DS18B20的測量的當(dāng)前溫度值,溫度測量每1s進(jìn)行一次。這樣可以在一秒之內(nèi)測量一次被測溫度,其程序流程見圖1所示。Y發(fā)DS18B20復(fù)位命令發(fā)跳過ROM命令發(fā)讀取溫度命令讀取操作,CRC校驗(yàn)9字節(jié)完?CRC校驗(yàn)正?確?移入溫度暫存器結(jié)束 NNY初始化調(diào)用顯示子程序1S到?初次上電讀出溫度值溫度計(jì)算處理顯示數(shù)據(jù)刷新發(fā)溫度轉(zhuǎn)換開始命令NYNY 圖1 主程序流程圖 圖2讀溫度流程圖 讀出溫度子程序讀出溫度子程序的主要功能是讀出RAM中的9字節(jié),在讀出時需進(jìn)行CRC校驗(yàn),校驗(yàn)有錯時不進(jìn)行溫度數(shù)據(jù)的改寫。其程序流程圖如圖2示發(fā)DS18B20復(fù)位命令發(fā)跳過ROM命令發(fā)溫度轉(zhuǎn)換開始命令 結(jié)束圖3 溫度轉(zhuǎn)換流程圖溫度轉(zhuǎn)換命令子程序主要是發(fā)溫度轉(zhuǎn)換開始命令,當(dāng)采用12位分辨率時轉(zhuǎn)換時間約為750ms,在本程序設(shè)計(jì)中采用1s顯示程序延時法等待轉(zhuǎn)換的完成。溫度轉(zhuǎn)換命令子程序流程圖如上圖,圖3所示 計(jì)算溫度子程序計(jì)算溫度子程序?qū)AM中讀取值進(jìn)行BCD碼的轉(zhuǎn)換運(yùn)算,并進(jìn)行溫度值正負(fù)的判定,其程序流程圖如圖4所示。 開始溫度零下?溫度值取補(bǔ)碼置“—”標(biāo)志計(jì)算小數(shù)位溫度BCD值 計(jì)算整數(shù)位溫度BCD值 結(jié)束置“+”標(biāo)志NY 溫度數(shù)據(jù)移入顯示寄存器十位數(shù)0?百位數(shù)0?十位數(shù)顯示符號百位數(shù)不顯示百位數(shù)顯示數(shù)據(jù)(不顯示符號) 結(jié)束NNYY 圖4 計(jì)算溫度流程圖    圖5 顯示數(shù)據(jù)刷新流程圖 顯示數(shù)據(jù)刷新子程序顯示數(shù)據(jù)刷新子程序主要是對顯示緩沖器中的顯示數(shù)據(jù)進(jìn)行刷新操作,當(dāng)最高顯示位為0時將符號顯示位移入下一位。程序流程圖如圖5。*****************************************************************************DS18B20溫度程序采用4位LED共陽極數(shù)碼管顯示溫度,℃,測溫范圍55℃+125℃采用AT89S51單片機(jī),12MHz晶振。程序采用單片機(jī)匯編語言編寫程序如下。******定義常數(shù)********TIMEL EQU 0E0H ;延時20msTIMEH EQU 0B1HTEMPHEAD EQU 36H*******定義工作內(nèi)存******BITST DATA 20HTIME1SOK BIT TIMPONEOK BIT TEMPL DATA 26HTEMPH DATA 27HTEMPHC DATA 28HTEMPLC DATA 29H*****DS18B20數(shù)據(jù)輸入端口定義*****TEMPDIN BIT ORG 0000H LJMP START ORG 00BH LJMP T0IT********初始化*** ORG 100HSTART: MOV SP,06HCLSMEM: MOV R0,20H MOV R1,60HCLSMEM1: MOV @R0,00H INC R0 DJNZ R1,CLSMEM1 MOV TMOD,00100001B。 定義定時器0工作方式(16位); MOV TH0,TIMEL MOV TL0,TIMEH SJMP INITERROR: NOP LJMP START NOPINIT: NOP SETB ET0 SETB TR0 SETB EA MOV PSW,00HCLR TEMPONEOKLLJMP MNIN。****************定時器0中斷程序***********TOIT: PUSH PSW MOV PSW,10H MOV TH0,TIMEH MOV TL0,TIMEL INC R7 CJNE R7,32H,T0IT1 MOV R7,00H
點(diǎn)擊復(fù)制文檔內(nèi)容
數(shù)學(xué)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1