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

正文內(nèi)容

基于51單片機(jī)的數(shù)字溫度計(jì)設(shè)計(jì)(編輯修改稿)

2024-09-30 20:06 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 單片機(jī)訪問(wèn) DS18B20 DS18B20 充當(dāng)從機(jī),單片機(jī)是主機(jī),而單片機(jī)作為主機(jī)通過(guò)一線總線訪問(wèn)DS18B20需要經(jīng)過(guò)以下步驟: 1. DS18B20復(fù)位指令; 2.執(zhí)行 ROM指令; 3.執(zhí)行 DS18B20功能指令( RAM指令)。 11 設(shè)計(jì)程序中需要用到的 DS18B20功能指令有: 1. 0xcc:跳過(guò)讀序號(hào)列; 2. 0x44:啟動(dòng)溫度轉(zhuǎn)換; 3. 0xbe:讀取溫度寄存器。 DS18B20程序設(shè)計(jì) 圖 18 DS18B20程序測(cè)溫流程 DS18B20 可以精確到 ,對(duì)于正的溫度直接將高八位和低八位進(jìn)行整合,即可求出溫度;對(duì)于負(fù)的溫度,讀出的高 8位的最高 4位代表了溫度的符號(hào)位( 0000則代表溫度為正, 1111 代表了溫度為負(fù)),可以對(duì)這 4位進(jìn)行判斷,如果為 1111,說(shuō)明溫度為負(fù),則需要將 temp 取反再補(bǔ) 1,圖 18 為 DS18B20 程序測(cè)溫流程圖。 秒表程序設(shè)計(jì) 秒表程序?qū)崿F(xiàn)的是計(jì)時(shí)功能,分為 4位顯示:分十位,分個(gè)位,秒十位,秒個(gè)位。 把定時(shí)器的定時(shí)時(shí)間定為 50ms, 這樣,計(jì)數(shù)溢出 20次即可得到時(shí)鐘的最小計(jì)時(shí)單位 秒 (若計(jì)數(shù) 2 次則得到的秒表精度為 ); 秒計(jì)時(shí)是采用中斷方式進(jìn)行溢出次數(shù)的累積,計(jì)滿 20 次,即得到秒計(jì)時(shí)。 當(dāng)秒計(jì)時(shí)到“ 59”時(shí),秒清零,分個(gè)位加“ 1”。圖 19為秒表計(jì)時(shí)程序流程圖。 12 圖 19 秒表計(jì)時(shí)程序流程圖 按鍵功能 設(shè)計(jì)中共有 5 個(gè)按鍵,其中一個(gè)用于對(duì) AT89C51 的復(fù)位,當(dāng)按鍵按下時(shí)復(fù)位成功;另外四個(gè)按鍵分別定義為 KEY1—— 測(cè)溫, KEY2—— 秒表, KEY3——秒表暫停 /開(kāi)始, KEY4—— 秒表清零;圖 20為按鍵處理流程圖。 圖 20 按鍵處理流程 程序開(kāi)始: KEY1按下:測(cè)溫功能,顯 示溫度為 (正溫度)或 (負(fù)溫度); KEY2按下:開(kāi)始秒表計(jì)時(shí),顯示當(dāng)前計(jì)時(shí) xx分, xx秒; KEY3按下:定時(shí)器 0的定時(shí)控制位 TR0=~TR0,開(kāi)始時(shí) TR0=1,第一次按下時(shí),秒表暫停,以后每次按下, TR0取反,即第二次按下, TR0=1,則實(shí)現(xiàn)秒 13 表開(kāi)始計(jì)時(shí); KEY4按下:關(guān)定時(shí)器中斷,使定時(shí)器定時(shí)控制位置 0,令 min和 sec為零,即實(shí)現(xiàn)清零。 3 系統(tǒng)測(cè)試 測(cè)試方案 1.硬件測(cè)試 把系統(tǒng)板分為幾個(gè)部分,分別單獨(dú)測(cè)試,然后再整體測(cè)試。 2.軟件仿真測(cè)試 利用軟件仿真,分別 實(shí)現(xiàn)溫度測(cè)試,秒表測(cè)試,按鍵測(cè)試。 3. 軟件硬件聯(lián)合測(cè)試 把程序下載到 C51單片機(jī)上,進(jìn)行系統(tǒng)測(cè)試。 具體操作:將寫(xiě)好的 C程序通過(guò)單片機(jī)開(kāi)發(fā)板下載到 AT89C51上,再將單片機(jī)安裝在系統(tǒng)板上,供 5v直流電,操作按鍵看是否能進(jìn)行測(cè)溫和秒表功能。 測(cè)試條件與儀器 測(cè)試條件:檢查多次,仿真電路和硬件電路必須與系統(tǒng)原理圖完全相同,并且檢查無(wú)誤,硬件電路保證無(wú)虛焊。 硬件測(cè)試儀器:萬(wàn)用表,直流穩(wěn)壓電源、示波器 、單片機(jī)開(kāi)發(fā)板 ; 測(cè)試結(jié)果及分析 Protus 仿真測(cè)試(見(jiàn)附頁(yè)): 綜合測(cè)試(如圖 21) : 分別顯示:溫度為 ; 秒表計(jì)時(shí)到 146秒。 14 測(cè)空氣中的溫度 秒表計(jì)時(shí) 圖 21 綜合測(cè)試 圖 剛開(kāi)始測(cè)試的時(shí)候,發(fā)現(xiàn)數(shù)碼管不夠亮,后來(lái)自己查找了許多資料,找到了原因:三級(jí)管驅(qū)動(dòng)沒(méi)有工作,后來(lái)我自己用面包板焊接了一個(gè)三極管驅(qū)動(dòng),再修改了程序進(jìn)行檢測(cè),最后數(shù)碼管能很好的顯示溫度;結(jié)合自己的系統(tǒng)板,我將單片機(jī)的 P2口作為數(shù)碼管的位選端,重新設(shè)計(jì)了一下原有的驅(qū)動(dòng),采用 1k電阻和S9012 PNP型三級(jí)管。 最后我在系統(tǒng)的供電端加入了迷你 usb接口,這樣整個(gè)系統(tǒng)就能采用 usb接口與電腦連接和手機(jī)充電器供電。 結(jié)合軟件和硬件的測(cè)試結(jié)果看,該溫度計(jì)能實(shí)現(xiàn)對(duì)溫度的測(cè)量,并且能隨接觸物的溫度改變而改變。 4 系統(tǒng)特色 系統(tǒng)的特色主要有:采用多種供電方式,采用迷你 USB 接口能實(shí)現(xiàn)多種方式的使用,如:手機(jī)充電器,電腦,手機(jī)等;采用數(shù)字溫度傳感器 DS18B20 更精確的獲得溫度值;在測(cè)量溫度功能的基礎(chǔ)上加入了秒表計(jì)時(shí)的功能,秒表可用于長(zhǎng)時(shí)間的計(jì)時(shí),并且用戶(hù)可以通過(guò)按鍵實(shí)現(xiàn)功能之間的相互轉(zhuǎn)換。 5 心得和體會(huì) 通過(guò)這次 對(duì)數(shù)字溫度計(jì)的設(shè)計(jì),我發(fā)現(xiàn)自己還有許多需要加強(qiáng)的地方,比如:畫(huà) PCB板和畫(huà)原理圖;缺少對(duì)以前許多學(xué)過(guò)的 C語(yǔ)言、模電等課程的溫習(xí);過(guò) 15 程中我也查找了許多資料,同時(shí)我也學(xué)到了許多東西,在調(diào)適過(guò)程中,動(dòng)手寫(xiě)程序和改程序,一步步將結(jié)果調(diào)適出來(lái),在動(dòng)手能力和解決問(wèn)題能力的有所提高。更重要的是團(tuán)隊(duì)的協(xié)作,有這樣一句話: 如果我用個(gè)人的能力,可以賺一個(gè)億,可能 100%是我的;但我用十個(gè)人的時(shí)候,我們可能賺到十個(gè)億,可能我只有 10%,我同樣是一個(gè)億,但我們的事業(yè)變大了 。在做這次課題的過(guò)程中,我明白了一個(gè)人的力量是有限的,只有協(xié) 調(diào)好團(tuán)隊(duì)才能獲得最多的成就。 6 參考文獻(xiàn) 1.電子技術(shù)基礎(chǔ)模擬部分 /康華光主編 2.單片微機(jī)原理、匯編與 C51及接口技術(shù) 清華大學(xué)出版社 3. C程序設(shè)計(jì)(第三版) 譚浩強(qiáng)(著) 清華大學(xué)出版社 16 附錄 1:電路原理圖 附錄 2:實(shí)物圖 17 附錄 3:仿真測(cè)試圖 溫度仿真測(cè)試:顯示 秒表仿真測(cè)試: 18 附錄 4:源程序 /******************************************************************* 程序說(shuō)明: 主要兩大功能: DS18B20測(cè)溫,秒表計(jì)時(shí)(精確到秒); 顯示:測(cè)溫顯示為 () 溫度為正,最后一位顯示字母 C; 溫度 為負(fù),最后一位顯示字母 E; 秒表顯示為 xx分 xx秒;當(dāng)秒增加到 59時(shí),秒清零,分 +1;精度為秒; 按鍵說(shuō)明:按鍵 1— KEY1 選擇測(cè)溫功能 。 按鍵 2— KEY2 選擇秒表功能; 按鍵 3— KEY3 按下秒表暫停,再次按下秒表開(kāi)始; 按鍵 4— KEY4 按下秒表清零; ********************************************************************/ include include define uchar unsigned char define uint unsigned int /*******************變量定義 ***********************/ sbit KEY1 = P1^0。 //按鍵,低有效; KEY1—— 測(cè)溫, KEY2—— 秒表; sbit KEY2 = P1^1。 sbit KEY3 = P1^2。 //秒表模式暫停 sbit KEY4 = P1^3。 //秒表開(kāi)始 sbit DQ = P3^3。 //原理圖中 ds18b20接 INT1, INT1為 ; sbit wei4 = P2^7。 //位選口 sbit wei3 = P2^6。 sbit wei2 = P2^5。 sbit wei1 = P2^4。 19 uchar flagnum。 //按鍵標(biāo)志 uchar wenbiao。 //溫度標(biāo)志,溫度為負(fù) wenbiao=0。溫度為正 wenbiao=1。 uchar min,sec。 //秒表分、秒 uchar k。 //定時(shí) 50ms uint temp。 //溫度變量 /**********共陽(yáng)極數(shù)碼管 不含小數(shù)點(diǎn) 編碼 *************/ uchar code Tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}。 /**********共陽(yáng)極數(shù)碼管 不含小數(shù)點(diǎn) 編碼 *************/ uchar code Tab1[]={0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10}。 /*******************函數(shù)聲明 ***********************/ void Delay_ms(uint n)。 //毫秒延時(shí) void Delay_us(uchar n)。 //微秒延時(shí) void Display2()。 //分、秒顯示 void System_Ini()。 //定時(shí)器 0初始化 void timer0 ()。 //定時(shí)器 0中斷 1 void DS18b20_Reset()。 //DS18b20復(fù)位 bit Read_bit()。 //讀 1位 uchar DS18b20_Read()。 //讀 1個(gè)字節(jié) void Write_bit(bit bitval)。 //寫(xiě) 1位 void DS18b20_Write(uchar byte)。 //寫(xiě) 1個(gè)字節(jié) void Changtemp()。 //開(kāi)啟溫度轉(zhuǎn)換 uchar Readtemp()。 //讀取溫度 void Display1(uint z)。 //溫度顯示 void Wenduji()。 //溫度計(jì) uchar Keycheck()。 //按鍵檢測(cè) void Key_ser(uchar num)。 //按鍵實(shí)現(xiàn)功能轉(zhuǎn)換 /********************************************* 函數(shù)名稱(chēng): void main()
點(diǎn)擊復(fù)制文檔內(nèi)容
試題試卷相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1