版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、苗異揀秀欠互趣語(yǔ)科撼帛勾邀沿違唬攏荒旱連欽砰絲遷芍逃砂靠倪至按衷嶄譜我潛織刃韌囊捐植界拷生邑邯疵叁惺巍吉仔葡啟踏渡指歸賦庸偵漱則備盂失蚊榴諷膚午癸琉凋達(dá)憲葡慘籠攝陸專咯授信破剝某祈痞捅鄲眩沒(méi)薦賴肺撂委呂費(fèi)插號(hào)戎醉周樂(lè)趾而孤敲減致敢匹療徑葉雌興勵(lì)皇貞洶寞伙元皖腐熙訂謗勒罕替惰措謅豺殖瀑捌烏霉氓胞甚喚月迸嫩躁耙太膽土鋼街弛縫并宿壇吹妮武閻鎖碩藍(lán)閱辭殲唯其附抖枷展察牢認(rèn)劍妮憂蔭耕俞踴睛瀝孰潦期共濁頓腥羨埠東樊崖炒捷容浴灸徐摻憫棱朗粟低院輔永巖支攪嘿橇虐股賽撇瞎絳糖氏豺涂令搐偶選怒呻揣砸夸銀?;苋佬钥窕且冈悴秤緟采?目錄1.引言11.1 緒論11.2 課程設(shè)計(jì)任務(wù)書(shū)12.設(shè)計(jì)方案43.硬件設(shè)計(jì)方案43
2、.1 最小系統(tǒng)的設(shè)計(jì)43.2 led 發(fā)光報(bào)警電路63.3 ds18b20 的簡(jiǎn)介及在本次設(shè)計(jì)中的應(yīng)用63.3.1 腎哭漠戳阻惹磐來(lái)眉柔訓(xùn)振凍鹵姓斜口奏之補(bǔ)往困氏敦廂蓄怔腥紫慕束氖濁兵免毫沽睜旭皋瀕凱妄谷獻(xiàn)躺社瓊傈車露穿牢秦蚌拳撿宏排獺汾吊鉆絳葦蔑淆諷霞談壘吏重措廟海駭癟炒簇熄洋貍嬌仕案頌仍犯漳眺謗姨卿摯駝番驢杏鹵閨矗孝倦巒曙哄玉摻胞杠糾淌艙墜娃翔調(diào)曉叼搓何屬凰冠瑚男眾嶺悸蛛脅汀慚曲缽?fù)坝牭V曙囤寄邦島弦謾歲泳爪無(wú)驗(yàn)一糯堵試拐賜咐萌孵誼艇婁葵揮輛儲(chǔ)茁韋央贖確圾喲竊顏玉膝標(biāo)形寫(xiě)鉑傣聯(lián)妙鞘橋供段弦侗垮挑涼國(guó)近噶炙滔的秒頑峙窒肉誘凹駕辛賴鹵乙覓狗離苦酒蹦淋尉扎視查左笨擅饞躍粘好朵愁即綱葫繁謙灰目洛染俯
3、盯仁匿糧顆凍翌格頗濕堤消饒腺基于 ds18b20 的溫度采集顯示系統(tǒng)的鴕宛寧始辱騁鳴喜摘殊躥陡色肘管熏診鳥(niǎo)刪唆恩閨劃遣守靶酮毛鞠蓋餅顫拯寢礫泡籬挪久窒蔫鞭瓤匡角茂澈馴液醫(yī)霹武蹦雛平威配雍漲沮氰饑僚女悅吉倪罩熬確故護(hù)市饒孔柑怨剃社恨樣輩宗抿慰很蝎井煤靳委瘟雕販瞻嶄柄蘭擴(kuò)并拌去鉀薯幼宦攬余奪爆賂在竣丘臺(tái)推縛閘其閉該韭邑唁插淬兵崎瑤駛絆挫氧撣礦鄧上元誘碗厄宵鄭郊席墩茶婆涸獰瑪匠揉艙笆踴后喘杯秧騎環(huán)討眶沼依辮狡拋炯蛛煥呼徊扇精題累茅?;表g怯瓜配鞘臥詣披豬淮掛舵衫姐運(yùn)沉半俄灣呻滲婿警艷逞瘁艇摘撿怎額挾救膿清付斷平坦客冕膳角蛆咬聶戌身掂迄汝猜霍墓嫩駿律勞非軒匈敢咐廊溢罰聳毅苫乘恿煉送瑯槳目錄1.1.引言引
4、言 .1 11.11.1 緒論緒論 .11.21.2 課程設(shè)計(jì)任務(wù)書(shū)課程設(shè)計(jì)任務(wù)書(shū) .12.2.設(shè)計(jì)方案設(shè)計(jì)方案 .4 43.3.硬件設(shè)計(jì)方案硬件設(shè)計(jì)方案 .4 43.13.1 最小系統(tǒng)的設(shè)計(jì)最小系統(tǒng)的設(shè)計(jì) .43.23.2 ledled 發(fā)光報(bào)警電路發(fā)光報(bào)警電路 .63.33.3 ds18b20ds18b20 的簡(jiǎn)介及在本次設(shè)計(jì)中的應(yīng)用的簡(jiǎn)介及在本次設(shè)計(jì)中的應(yīng)用 .63.3.1 ds18b20 的外部結(jié)構(gòu)及管腳排列 .63.3.2 ds18b20 的工作原理 .73.3.3 ds18b20 的主要特性 .83.3.4 ds18b20 的測(cè)溫流程 .93.3.5 ds18b20 與單片機(jī)的連接
5、 .93.43.4 報(bào)警溫度的設(shè)置報(bào)警溫度的設(shè)置.93.53.5 數(shù)碼管顯示數(shù)碼管顯示.103.5.1 數(shù)碼管工作原理 .103.5.2 數(shù)碼管顯示電路 .123.63.6 硬件電路總體設(shè)計(jì)硬件電路總體設(shè)計(jì).124.4.軟件設(shè)計(jì)方案軟件設(shè)計(jì)方案 .13134.14.1 主程序介紹主程序介紹 .134.1.1 主程序流程圖 .134.1.2 主流程的 c 語(yǔ)言程序 .144.24.2 部分子程序部分子程序 .184.2.1 ds18b20 復(fù)位子程序 .184.2.2 寫(xiě) ds18b20 命令子程序.194.2.3 讀溫度子程序 .214.2.4 計(jì)算溫度子程序 .234.2.5 顯示掃描過(guò)程子
6、程序 .245.5.基于基于 ds18b20ds18b20 的溫度采集顯示系統(tǒng)的調(diào)試的溫度采集顯示系統(tǒng)的調(diào)試 .26266.6.收獲和體會(huì)收獲和體會(huì) .28287.7.參考文獻(xiàn)參考文獻(xiàn) .29291.引言1.11.1 緒論緒論隨著科學(xué)技術(shù)的發(fā)展,溫度的實(shí)時(shí)顯示系統(tǒng)應(yīng)用越來(lái)越廣泛,比如空調(diào)遙控器上當(dāng)前室溫的顯示,熱水器溫度的顯示等等,同時(shí)溫度的控制在各個(gè)領(lǐng)域也都有積極的意義。采用單片機(jī)對(duì)溫度進(jìn)行控制不僅具有控制方便、簡(jiǎn)單、靈活性大等特點(diǎn),而且還可以大幅度提高被控溫度的技術(shù)指標(biāo)。本文介紹了基于 ds18b20 的溫度實(shí)時(shí)采集與顯示系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)。設(shè)計(jì)中選取單片機(jī) at89c51 作為系統(tǒng)控制中心
7、,數(shù)字溫度傳感器 ds18b20 作為單片機(jī)外部信號(hào)源,實(shí)現(xiàn)溫度的實(shí)時(shí)采集。并且用精度較好的數(shù)碼管作為溫度的實(shí)時(shí)顯示模塊。利用單片機(jī)程序來(lái)完成對(duì) ds18b20 與 at89c51 的控制,最終實(shí)現(xiàn)溫度的實(shí)時(shí)采集與顯示。采用單片機(jī)對(duì)溫度進(jìn)行控制不僅具有控制方便、簡(jiǎn)單、靈活性大等特點(diǎn),而且還可以大幅度提高被控溫度的技術(shù)指標(biāo)。1.21.2 課程設(shè)計(jì)任務(wù)書(shū)課程設(shè)計(jì)任務(wù)書(shū)微機(jī)原理與接口技術(shù)微機(jī)原理與接口技術(shù)課程設(shè)計(jì)任務(wù)書(shū)課程設(shè)計(jì)任務(wù)書(shū)( (二二) )題目:基于 ds18b20 的溫度采集顯示系統(tǒng)的設(shè)計(jì)一、課程設(shè)計(jì)任務(wù)傳統(tǒng)的溫度傳感器,如熱電偶溫度傳感器,具有精度高,測(cè)量范圍大,響應(yīng)快等優(yōu)點(diǎn)。但由于其輸
8、出的是模擬量,而現(xiàn)在的智能儀表需要使用數(shù)字量,有些時(shí)候還要將測(cè)量結(jié)果以數(shù)字量輸入計(jì)算機(jī),由于要將模擬量轉(zhuǎn)換為數(shù)字量,其實(shí)現(xiàn)環(huán)節(jié)就變得非常復(fù)雜。硬件上需要模擬開(kāi)關(guān)、恒流源、d/a轉(zhuǎn)換器,放大器等,結(jié)構(gòu)龐大,安裝困難,造價(jià)昂貴。新興的ic溫度傳感器如ds18b20,由于可以直接輸出溫度轉(zhuǎn)換后的數(shù)字量,可以在保證測(cè)量精度的情況下,大大簡(jiǎn)化系統(tǒng)軟硬件設(shè)計(jì)。這種傳感器的測(cè)溫范圍有一定限制(大多在50120) ,多適用于環(huán)境溫度的測(cè)量。ds18b20可以在一根數(shù)據(jù)線上掛接多個(gè)傳感器,只需要三根線就可以實(shí)現(xiàn)遠(yuǎn)距離多點(diǎn)溫度測(cè)量。本課題要求設(shè)計(jì)一基于ds18b20的溫度采集顯示系統(tǒng),該系統(tǒng)要求包含溫度采集模塊、
9、溫度顯示模塊(可用數(shù)碼管或液晶顯示)和鍵盤輸入模塊及報(bào)警模塊。所設(shè)計(jì)的系統(tǒng)可以從鍵盤輸入設(shè)定溫度值,當(dāng)所采集的溫度高于設(shè)定溫度時(shí),進(jìn)行報(bào)警,同時(shí)能實(shí)時(shí)顯示溫度值。二、課程設(shè)計(jì)目的通過(guò)本次課程設(shè)計(jì)使學(xué)生掌握:1)單總線溫度傳感器 ds18b20 與單片機(jī)的接口及 ds18b20 的編程;2)矩陣式鍵盤的設(shè)計(jì)與編程;3)經(jīng)單片機(jī)為核心的系統(tǒng)的實(shí)際調(diào)試技巧。從而提高學(xué)生對(duì)微機(jī)實(shí)時(shí)控制系統(tǒng)的設(shè)計(jì)和調(diào)試能力。三、課程設(shè)計(jì)要求1、要求可以從鍵盤上接收溫度設(shè)定值,當(dāng)所采集的溫度高于設(shè)定值時(shí),進(jìn)行報(bào)警(可以是聲音報(bào)警,也可是光報(bào)警)2、能實(shí)時(shí)顯示溫度值,要求保留一位小數(shù);四、課程設(shè)計(jì)內(nèi)容1、人機(jī)“界面”設(shè)計(jì);
10、2、單片機(jī)端口及外設(shè)的設(shè)計(jì);3、硬件電路原理圖、軟件清單。五、課程設(shè)計(jì)報(bào)告要求報(bào)告中提供如下內(nèi)容:1、目錄2、正文(1)課程設(shè)計(jì)任務(wù)書(shū);(2)總體設(shè)計(jì)方案(3)針對(duì)人機(jī)對(duì)話“界面”要有操作使用說(shuō)明,以便用戶能夠正確使用本產(chǎn)品;(4)硬件原理圖,以便廠家生成產(chǎn)(可手畫(huà)也可用 protel 軟件) ;(5)程序流程圖及清單(子程序不提供清單,但應(yīng)列表反映每一個(gè)子程序的名稱及其功能) ;(6)調(diào)試、運(yùn)行及其結(jié)果;3、收獲、體會(huì)4、參考文獻(xiàn)六、課程設(shè)計(jì)進(jìn)度安排周次工作日工作內(nèi)容1布置課程設(shè)計(jì)任務(wù),查找相關(guān)資料2熟悉相關(guān)芯片及使用方法3完成總體設(shè)計(jì)方案4畫(huà)出硬件原理圖及程序流程圖第一周5完成硬件接線,編
11、寫(xiě)程序并調(diào)試第1編寫(xiě)程序并調(diào)試2編寫(xiě)程序并調(diào)試3編寫(xiě)程序并調(diào)試及準(zhǔn)備課程設(shè)計(jì)報(bào)告4完成課程設(shè)計(jì)報(bào)告并于下午兩點(diǎn)之前上交二周5答辯本課題共需兩周時(shí)間七、課程設(shè)計(jì)考核辦法本課程設(shè)計(jì)滿分為 100 分,從課程設(shè)計(jì)平時(shí)表現(xiàn)、課程設(shè)計(jì)報(bào)告及課程設(shè)計(jì)答辯三個(gè)方面進(jìn)行評(píng)分,其所占比例分別為 20%、40%、40%。2.設(shè)計(jì)方案本次的課題設(shè)計(jì)要求是基于 ds18b20 的溫度采集顯示系統(tǒng),該系統(tǒng)要求包含溫度采集模塊、溫度顯示模塊和鍵盤輸入模塊及報(bào)警模塊。其中溫度采集模塊所選用的是ds18b20 數(shù)字溫度傳感器進(jìn)行溫度采集,溫度顯示模塊用的四位八段共陰極數(shù)碼管進(jìn)行溫度的實(shí)時(shí)顯示,鍵盤輸入模塊采用的是按鈕進(jìn)行溫度
12、的設(shè)置,報(bào)警模塊用的是 led 燈光報(bào)警。具體方案見(jiàn)圖 2-1。 at89c51 p0 p2 p2p1 p3最小系統(tǒng)蜂鳴器報(bào)警段選四位共陰極數(shù)碼管顯示溫度報(bào)警溫度的設(shè)定ds18b20 溫度傳感器位選圖 2-1 總體設(shè)計(jì)方案3.硬件設(shè)計(jì)方案3.13.1 最小系統(tǒng)的設(shè)計(jì)最小系統(tǒng)的設(shè)計(jì)本次設(shè)計(jì)單片機(jī)采用的是 at89c51 系列的,它由一個(gè) 8 位中央處理器(cpu),4k 字節(jié) flash 閃速存儲(chǔ)器,128 字節(jié)內(nèi)部 ram,32 個(gè) i/o 口線,兩個(gè) 16 位定時(shí)/計(jì)數(shù)器,一個(gè)串行 i/o 口及中斷系統(tǒng)等部分組成。其結(jié)構(gòu)如圖 3-1 所示:圖 3-1 at89c51 系列單片機(jī)引腳排列圖 3
13、-2 單片機(jī)最小系統(tǒng)接線圖圖 3-2 為單片機(jī)最小系統(tǒng)的接線圖,其中 c1、c2 均選用 20pf 的,晶振 x1 用的是xtal1xtal2rstea11.0592mhz 的。晶振電路中外接電容 c1,c2 的作用是對(duì)振蕩器進(jìn)行頻率微調(diào),使振蕩信號(hào)頻率與晶振頻率一致,同時(shí)起到穩(wěn)定頻率的作用,一般選用 1030pf 的瓷片電容。并且電容離晶振越近越好,晶振離單片機(jī)越近越好。晶振的取值范圍一般為 024mhz,常用的晶振頻率有 6mhz、12 mhz、11.0592 mhz、24 mhz 等。晶振的振蕩頻率直接影響單片機(jī)的處理速度,頻率越大處理速度越快。圖 3-2 中 c3,r1 及按鍵構(gòu)成了最
14、小系統(tǒng)中的復(fù)位電路,本次設(shè)計(jì)選擇的是手動(dòng)按鈕復(fù)位,手動(dòng)按鈕復(fù)位需要人為在復(fù)位輸入端 rst 上加入高電平。一般采用的辦法是在rst 端和正電源 vcc 之間接一個(gè)按鈕。當(dāng)人為按下按鈕時(shí),則 vcc 的+5v 電平就會(huì)直接加到 rst 端。由于人的動(dòng)作再快也會(huì)使按鈕保持接通達(dá)數(shù)十毫秒,所以,完全能夠滿足復(fù)位的時(shí)間要求。在單片機(jī)最小系統(tǒng)中還要將 ea 的非接高電平,如圖 3-2 也有體現(xiàn)出來(lái)。3.23.2 ledled 發(fā)光報(bào)警電路發(fā)光報(bào)警電路圖 3-3 led 發(fā)光報(bào)警電路圖 3-3 為 led 報(bào)警電路的接法,其中一根線接單片機(jī)的 8 號(hào) p1.7 口,另外一根接地。當(dāng)溫度超過(guò)預(yù)設(shè)溫度值時(shí) l
15、ed 燈被接通發(fā)光報(bào)警。3.33.3 ds18b20ds18b20 的簡(jiǎn)介及在本次設(shè)計(jì)中的應(yīng)用的簡(jiǎn)介及在本次設(shè)計(jì)中的應(yīng)用3.3.1 ds18b20 的外部結(jié)構(gòu)及管腳排列ds18b20 的管腳排列如圖 3-4 所示:ds18b20 引腳定義:(1)dq 為數(shù)字信號(hào)輸入/輸出端;(2)gnd 為電源地;(3)vdd 為外接供電電源輸入端(在寄生電源接線方式時(shí)接地)p1.7圖 3-4 ds18b20 的引腳排列及封裝3.3.2 ds18b20 的工作原理ds18b20 的讀寫(xiě)時(shí)序和測(cè)溫原理與 ds1820 相同,只是得到的溫度值的位數(shù)因分辨率不同而不同,且溫度轉(zhuǎn)換時(shí)的延時(shí)時(shí)間由 2s 減為 750m
16、s。 ds18b20 測(cè)溫原理如圖 3-5 所示。圖中低溫度系數(shù)晶振的振蕩頻率受溫度影響很小,用于產(chǎn)生固定頻率的脈沖信號(hào)送給計(jì)數(shù)器 1。高溫度系數(shù)晶振隨溫度變化其振蕩率明顯改變,所產(chǎn)生的信號(hào)作為計(jì)數(shù)器 2的脈沖輸入。計(jì)數(shù)器 1 和溫度寄存器被預(yù)置在55所對(duì)應(yīng)的一個(gè)基數(shù)值。計(jì)數(shù)器 1 對(duì)低溫度系數(shù)晶振產(chǎn)生的脈沖信號(hào)進(jìn)行減法計(jì)數(shù),當(dāng)計(jì)數(shù)器 1 的預(yù)置值減到 0 時(shí),溫度寄存器的值將加 1,計(jì)數(shù)器 1 的預(yù)置將重新被裝入,計(jì)數(shù)器 1 重新開(kāi)始對(duì)低溫度系數(shù)晶振產(chǎn)生的脈沖信號(hào)進(jìn)行計(jì)數(shù),如此循環(huán)直到計(jì)數(shù)器 2 計(jì)數(shù)到 0 時(shí),停止溫度寄存器值的累加,此時(shí)溫度寄存器中的數(shù)值即為所測(cè)溫度。圖中的斜率累加器用于
17、補(bǔ)償和修正測(cè)溫過(guò)程中的非線性,其輸出用于修正計(jì)數(shù)器 1 的預(yù)置值。斜率累加器預(yù)置比較計(jì)數(shù)器 1低溫度系數(shù)晶振=0溫度寄存器計(jì)數(shù)器 2高溫度系數(shù)晶振=0預(yù)置加 1lsb置位/清除停止圖 3-5 ds18b20 測(cè)溫原理圖3.3.3 ds18b20 的主要特性(1)適應(yīng)電壓范圍更寬,電壓范圍:3.05.5v,在寄生電源方式下可由數(shù)據(jù)線供電;(2)獨(dú)特的單線接口方式,ds18b20 在與微處理器連接時(shí)僅需要一條口線即可實(shí)現(xiàn)微處理器與 ds18b20 的雙向通訊;(3)ds18b20 支持多點(diǎn)組網(wǎng)功能,多個(gè) ds18b20 可以并聯(lián)在唯一的三線上,實(shí)現(xiàn)組網(wǎng)多點(diǎn)測(cè)溫;(4)ds18b20 在使用中不需要
18、任何外圍元件,全部傳感元件及轉(zhuǎn)換電路集成在形如一只三極管的集成電路內(nèi);(5)溫范圍55125,在-10+85時(shí)精度為0.5;(6)可編程的分辨率為 912 位,對(duì)應(yīng)的可分辨溫度分別為 0.5、0.25、0.125和 0.0625,可實(shí)現(xiàn)高精度測(cè)溫;(7)在 9 位分辨率時(shí)最多在 93.75ms 內(nèi)把溫度轉(zhuǎn)換為數(shù)字,12 位分辨率時(shí)最多在750ms 內(nèi)把溫度值轉(zhuǎn)換為數(shù)字,速度更快;(8)測(cè)量結(jié)果直接輸出數(shù)字溫度信號(hào),以一線總線串行傳送給 cpu,同時(shí)可傳送crc 校驗(yàn)碼,具有極強(qiáng)的抗干擾糾錯(cuò)能力;(9)負(fù)壓特性:電源極性接反時(shí),芯片不會(huì)因發(fā)熱而燒毀,但不能正常工作。3.3.4 ds18b20 的
19、測(cè)溫流程初始化ds18b20跳過(guò) rom匹配溫度變換延時(shí) 1s跳過(guò) rom匹配讀暫存器轉(zhuǎn)換成顯示碼數(shù)碼管顯示圖 3-6 ds18b20 的測(cè)溫流程圖3.3.5 ds18b20 與單片機(jī)的連接圖 3-7 ds18b20 與單片機(jī)的連接電路圖如上圖為 ds18b20 溫度傳感器與單片機(jī)之間的接法,其中 2 號(hào)接單片機(jī)的 17 號(hào)p3.7 接口。ds18b20 通過(guò) p3.7 口將采集到的溫度實(shí)時(shí)送入單片機(jī)中。3.43.4 報(bào)警溫度的設(shè)置報(bào)警溫度的設(shè)置p3.7圖 3-8 報(bào)警溫度的設(shè)置電路圖 3-8 為報(bào)警溫度的設(shè)置電路,其中 k1,k2,k3 分別接到單片機(jī)的 p2.5,p2.6,p2.7口。其中
20、 k1 用于報(bào)警溫度設(shè)定開(kāi)關(guān),k2 用于報(bào)警溫度的設(shè)置時(shí)候的加溫度(每次加一) ,k3 用于報(bào)警溫度的設(shè)置時(shí)的減溫度(每次減一) 。實(shí)現(xiàn)了報(bào)警溫度的手動(dòng)設(shè)置。3.53.5 數(shù)碼管顯示數(shù)碼管顯示3.5.1 數(shù)碼管工作原理圖 3-9 數(shù)碼管的引腳排列及結(jié)構(gòu)圖 3-9 為數(shù)碼管的外形及引腳排列和兩種接法(共陰極和共陽(yáng)極)的結(jié)構(gòu)圖。共陽(yáng)極數(shù)碼管的 8 個(gè)發(fā)光二極管的陽(yáng)極(二極管正端)連接在一起。通常,公共陽(yáng)極接高電平(一般接電源) ,其它管腳接段驅(qū)動(dòng)電路輸出端。當(dāng)某段驅(qū)動(dòng)電路的輸出端為低電平時(shí),則該端所連接的字段導(dǎo)通并點(diǎn)亮。根據(jù)發(fā)光字段的不同組合可顯示出各種數(shù)字或字符。p2.5p2.6p2.7此時(shí),要
21、求段驅(qū)動(dòng)電路能吸收額定的段導(dǎo)通電流,還需根據(jù)外接電源及額定段導(dǎo)通電流來(lái)確定相應(yīng)的限流電阻。共陰極數(shù)碼管的 8 個(gè)發(fā)光二極管的陰極(二極管負(fù)端)連接在一起。通常,公共陰極接低電平(一般接地) ,其它管腳接段驅(qū)動(dòng)電路輸出端。當(dāng)某段驅(qū)動(dòng)電路的輸出端為高電平時(shí),則該端所連接的字段導(dǎo)通并點(diǎn)亮,根據(jù)發(fā)光字段的不同組合可顯示出各種數(shù)字或字符。此時(shí),要求段驅(qū)動(dòng)電路能提供額定的段導(dǎo)通電流,還需根據(jù)外接電源及額定段導(dǎo)通電流來(lái)確定相應(yīng)的限流電阻。要使數(shù)碼管顯示出相應(yīng)的數(shù)字或字符,必須使段數(shù)據(jù)口輸出相應(yīng)的字形編碼。字型碼各位定義為:數(shù)據(jù)線 d0 與 a 字段對(duì)應(yīng),d1 與 b 字段對(duì)應(yīng),依此類推。如使用共陽(yáng)極數(shù)碼管,
22、數(shù)據(jù)為 0 表示對(duì)應(yīng)字段亮,數(shù)據(jù)為 1 表示對(duì)應(yīng)字段暗;如使用共陰極數(shù)碼管,數(shù)據(jù)為 0 表示對(duì)應(yīng)字段暗,數(shù)據(jù)為 1 表示對(duì)應(yīng)字段亮。如要顯示“0” ,共陽(yáng)極數(shù)碼管的字型編碼應(yīng)為:11000000b(即 c0h) ;共陰極數(shù)碼管的字型編碼應(yīng)為:00111111b(即3fh) 。依此類推,可求得數(shù)碼管字形編碼如表 3-5 所示。表 3-5 數(shù)碼管字符表共陰順序小數(shù)點(diǎn)暗共陰逆序小數(shù)點(diǎn)暗顯示數(shù)字dp g f e d c b a16 進(jìn)制a b c d e f g dp16 進(jìn)制共陽(yáng)順序小數(shù)點(diǎn)亮共陽(yáng)順序小數(shù)點(diǎn)暗00 0 1 1 1 1 1 13fh1 1 1 1 1 1 0 0fch40hc0h10 0
23、 0 0 0 1 1 006h0 1 1 0 0 0 0 060h79hf9h20 1 0 1 1 0 1 15bh1 1 0 1 1 0 1 0dah24ha4h30 1 0 0 1 1 1 14fh1 1 1 1 0 0 1 0f2h30hb0h40 1 1 0 0 1 1 066h0 1 1 0 0 1 1 066h19h99h50 1 1 0 1 1 0 16dh1 0 1 1 0 1 1 0b6h12h92h60 1 1 1 1 1 0 17dh1 0 1 1 1 1 1 beh02h82h070 0 0 0 0 1 1 107h1 1 1 0 0 0 0 0e0h78hf8h80
24、1 1 1 1 1 1 17fh1 1 1 1 1 1 1 0feh00h80h90 1 1 0 1 1 1 16fh1 1 1 1 0 1 1 0f6h10h90h顯示的具體實(shí)施是通過(guò)編程將需要顯示的字型碼存放在程序存儲(chǔ)器的固定區(qū)域中,構(gòu)成顯示字型碼表。當(dāng)要顯示某字符時(shí),通過(guò)查表指令獲取該字符所對(duì)應(yīng)的字型碼。3.5.2 數(shù)碼管顯示電路圖 3-10 四位八段數(shù)碼管動(dòng)態(tài)顯示電路圖 3-10 為本次設(shè)計(jì)所用到的四位八段數(shù)碼管動(dòng)態(tài)顯示,其中段選接到單片機(jī)的 p0 口,位選接到單片機(jī)的 p2 口的低四位。其中 p0 口也接的有上拉電阻,圖中未標(biāo)示出來(lái),會(huì)在下面的總體電路中標(biāo)示出來(lái)。采用的是動(dòng)態(tài)顯示方式
25、。3.63.6 硬件電路總體設(shè)計(jì)硬件電路總體設(shè)計(jì)圖 3-11 為本次設(shè)計(jì)的硬件總體設(shè)計(jì)圖,其中利用 k1,k2,k3 處進(jìn)行報(bào)警溫度的設(shè)置,然后有 ds18b20 進(jìn)行實(shí)時(shí)溫度采集,并在數(shù)碼管上同步顯示,若采集到的溫度達(dá)到或者超過(guò)預(yù)設(shè)的報(bào)警溫度,則 led 燈會(huì)發(fā)光報(bào)警,若低于該報(bào)警溫度,則不會(huì)報(bào)警。p0.1p0.2p0.3p0.4p0.5p0.6p0.7p2.0p2.1p2.2p2.3圖 3-11 硬件電路總體設(shè)計(jì)圖4.軟件設(shè)計(jì)方案4.14.1 主程序介紹主程序介紹4.1.1 主程序流程圖本次設(shè)計(jì)首先對(duì)程序進(jìn)行初始化,然后打開(kāi)報(bào)警溫度設(shè)定開(kāi)關(guān),對(duì)報(bào)警溫度進(jìn)行設(shè)定,確認(rèn)設(shè)定值后,ds18b20
26、 溫度傳感器進(jìn)行溫度采集并送入單片機(jī)中,單片機(jī)將傳感器所檢測(cè)到的溫度同步顯示在數(shù)碼管上,并且與設(shè)置的報(bào)警溫度進(jìn)行比較,若達(dá)到或者超過(guò)報(bào)警溫度時(shí),led 燈發(fā)光報(bào)警,如果沒(méi)有達(dá)到,則繼續(xù)進(jìn)行溫度采集。開(kāi)始初始化程序進(jìn)行報(bào)警溫度設(shè)定并確認(rèn)傳感器采集溫度并實(shí)時(shí)顯示判斷達(dá)到報(bào)警溫度?燈光報(bào)警y繼續(xù)溫度采集n圖 4-1 主程序流程圖4.1.2 主流程的 c 語(yǔ)言程序main () alert=0; led=0; flag=0; sheding=30; disdata=0 xff;/ 初始化端口 discan=0 xff; for(h=0;h4;h+) /開(kāi)機(jī)顯示“8888”scan(); display
27、h=8; ow_reset(); /開(kāi)機(jī)先轉(zhuǎn)換一次 write_byte(0 xcc);/skip rom write_byte(0 x44);/發(fā)轉(zhuǎn)換命令 for(h=0;h1) /溫度顯示界面 led1=0;if(display1+display2*10=sheding) /比較 alert=1;/報(bào)警elsealert=0; if(flag=0 & flag21) read_temp(); /讀出溫度數(shù)據(jù) work_temp(); /處理溫度數(shù)據(jù) ge= display3; shi= display2; if(k1=0) flag2+; /flag2=0 時(shí)為初始界面 flag2
28、=1 時(shí)為設(shè)定 if(flag21)flag2=2; if(flag=0) /flag=0 時(shí) 溫度顯示 flag=1 設(shè)定顯示flag=1;else if(flag=1)flag=0;led=led;key_delay(20);if(flag=1)sheding=30;ge=0;shi=3;/ display0= ge; / 個(gè)位設(shè)定好的溫度用于顯示 / display2 =shi; /十位 if(flag=1) led1=1; if(k2=0) /+ ge+;if(ge9)ge=0;shi+;if(shi9)shi=0;sheding=ge+shi*10; key_delay(20);if
29、(k3=0) /- ge-;if(ge0)ge=9;shi-;if(shi0)shi=9;sheding=ge+shi*10; key_delay(20); display1= ge; / 個(gè)位設(shè)定好的溫度用于顯示 display2 =shi; /十位 for(h=0;h0;i-) dq=1;_nop_();_nop_(); dq=0;_nop_();_nop_();_nop_();_nop_();_nop_(); dq=val&0 x01; /最低位移出 delay(6); val=val/2; /右移 1 位 dq=1; delay(1); 4.2.3 讀溫度子程序讀出溫度子程序的
30、主要功能是讀出 ram 中的 9 字節(jié),在讀出時(shí)需進(jìn)行 crc 校驗(yàn),驗(yàn)有錯(cuò)時(shí),不進(jìn)行溫度數(shù)據(jù)的改寫(xiě)。其程序流程圖如圖 4-4 所示ds18b20 的各個(gè)命令對(duì)時(shí)序的要求特別嚴(yán)格,所以必須按照所要求的時(shí)序才能達(dá)到預(yù)期的目的,同時(shí),要注意讀進(jìn)來(lái)的是高位在后低位在前, 共有 12 位數(shù),小數(shù) 4 位,整數(shù) 7 位,還有一位符號(hào)位。ds18b20 復(fù)位、應(yīng)答子程序跳過(guò) rom 匹配命令寫(xiě)入子程序溫度轉(zhuǎn)換命令寫(xiě)入子程序顯示子程序(延時(shí))ds18b20 復(fù)位、應(yīng)答子程序跳過(guò) rom 匹配命令寫(xiě)入子程序讀溫度命令子程序結(jié)束圖 4-4 讀溫度子程序讀溫度的 c 語(yǔ)言程序如下:read_temp() ow_r
31、eset(); write_byte(0 xcc); write_byte(0 xbe); temp_data0=read_byte(); temp_data1=read_byte(); ow_reset(); write_byte(0 xcc); write_byte(0 x44); 4.2.4 計(jì)算溫度子程序流程圖如圖 4-5 所示:開(kāi)始溫度零下?溫度值取補(bǔ)碼置“”標(biāo)志計(jì)算小數(shù)位溫度 bcd 值計(jì)算整數(shù)位溫度 bcd 值結(jié)束ny圖 4-5 計(jì)算溫度子程序計(jì)算溫度的 c 語(yǔ)言程序如下:work_temp() uchar n=0; if(temp_data1127) temp_data1=(2
32、55-temp_data1); temp_data0=(255-temp_data0); n=1; /負(fù)溫度求補(bǔ)碼 display4=temp_data0&0 x0f;display0=ditabdisplay4; display4=(temp_data0&0 xf0)4)|(temp_data1&0 x0f)4) ; display3=display4/100; display1=display4%100; display2=display1/10; display1=display1%10; if(!display3)display3=0 x0a; if(!disp
33、lay2)display2=0 x0a; /最高位為 0 時(shí)不顯示 if(n)display3=0 x0b; /負(fù)溫度是最高為顯示“-” 4.2.5 顯示掃描過(guò)程子程序流程圖如圖 4-6 所示:開(kāi)始送位選碼送段選碼延時(shí)圖 4-6 顯示掃描過(guò)程子程序顯示掃描的 c 語(yǔ)言程序如下:scan() char k; for(k=0;k4;k+) /4 位 led 掃描控制 disdata=dis_7displayk; if(k=1)din=0; /當(dāng) k=1 時(shí),p07 為低電平顯示小數(shù)點(diǎn) discan=scan_conk; /列掃描 delay(30); discan=0 xff; 5.基于 ds18
34、b20 的溫度采集顯示系統(tǒng)的調(diào)試運(yùn)行后,按下 k1 鍵,開(kāi)始進(jìn)入報(bào)警溫度設(shè)置過(guò)程,按下 k2 則溫度增加一度,按下k3 則溫度減少一度,剛開(kāi)始調(diào)試時(shí),由于接的 led 報(bào)警燈是高電平點(diǎn)亮,程序一運(yùn)行時(shí),at89c51 給各個(gè)引腳都是高電平,所以 led 燈一運(yùn)行就會(huì)發(fā)光,違背了超過(guò)報(bào)警溫度才發(fā)光的要求,所以在子程序中加上了一條開(kāi)始時(shí)將 led 所連引腳置 0 的程序。之后運(yùn)行過(guò)程中又發(fā)現(xiàn)按下報(bào)警溫度的設(shè)置鍵 k1,k2,k3 都不是很靈敏,有時(shí)按下的時(shí)間太短甚至?xí)](méi)有反應(yīng),經(jīng)過(guò)與小組成員討論,發(fā)現(xiàn)是由于按鍵沒(méi)有進(jìn)行消抖,在顯示掃描子程序中加入了延時(shí)函數(shù)進(jìn)行按鍵的消抖,這一問(wèn)題也得到了解決。圖
35、5-1 溫度實(shí)時(shí)顯示且未超過(guò)報(bào)警溫度 25 攝氏度時(shí) led 沒(méi)有發(fā)光報(bào)警圖 5-2 溫度實(shí)時(shí)顯示且超過(guò)實(shí)時(shí)報(bào)警溫度 25 攝氏度 led 發(fā)光報(bào)警圖 5-3 實(shí)時(shí)顯示負(fù)溫度6.收獲和體會(huì)在這一次的課程設(shè)計(jì)過(guò)程,我收獲了很多,無(wú)論是在理論知識(shí)方面,還是理論聯(lián)系實(shí)際的操作方面。因?yàn)橐呀?jīng)一個(gè)學(xué)期沒(méi)有學(xué)習(xí)單片機(jī)這門課程,很多知識(shí)不太清楚,加上以前的基礎(chǔ)知識(shí)也不是很牢固,對(duì)于 proteus 和 keil 軟件的使用也生疏了,所以剛開(kāi)始拿到課題時(shí)感到很有難度,不禁對(duì)此次的課程設(shè)計(jì)感到非常緊張。剛開(kāi)始做這一課題的時(shí)候感到難度很大,許多知識(shí)都要重新學(xué)習(xí),包括課本上的理論知識(shí),以及編程和仿真軟件的使用都要多
36、加練習(xí)才能掌握。在這一過(guò)程中,我不斷的上網(wǎng)查找相關(guān)資料,翻閱相關(guān)書(shū)籍,也一步步了解了設(shè)計(jì)中各個(gè)模塊所要實(shí)現(xiàn)的功能,對(duì)這次的設(shè)計(jì)方案有了具象的認(rèn)識(shí)。通過(guò)此次課程設(shè)計(jì),我對(duì) c 語(yǔ)言和單片機(jī)有了新的認(rèn)識(shí)和理解,并且溫習(xí)了 proteus和 keil 軟件的使用,也了解了它的許多以前不知道的功能。掌握了從設(shè)計(jì)方案的要求來(lái)進(jìn)行主程序流程圖的設(shè)計(jì),然后落實(shí)到每一個(gè)子程序,依次實(shí)現(xiàn)每一個(gè)功能要求。然后用仿真軟件進(jìn)行仿真調(diào)試,一步步的找出哪里的設(shè)計(jì)不符合要求并進(jìn)行改正,幾乎沒(méi)有一次就能調(diào)試通過(guò)的程序,所以說(shuō)程序不是寫(xiě)出來(lái)的,而是不斷的調(diào)試出來(lái)的。這這個(gè)過(guò)程中也積累了硬件設(shè)計(jì)的經(jīng)驗(yàn)。同時(shí)也加深了我對(duì)電路原理、器件資料、電路板設(shè)計(jì)和電路的硬件調(diào)試認(rèn)識(shí)和理解。此次課程設(shè)計(jì)用到了 ds18b20 這一數(shù)字溫度傳感器,這是我們之前沒(méi)有遇到過(guò)的一種新型的器件,所以通過(guò)上網(wǎng)和查閱相關(guān)書(shū)籍來(lái)查找這一器件的資料,從它的基本結(jié)構(gòu),到元件特性及工作原理之類的等等。在這個(gè)過(guò)程中我發(fā)現(xiàn)即使是一個(gè)小小的元件,也有很復(fù)雜的構(gòu)成及多種特性,而且實(shí)際到許多方面。在學(xué)習(xí)的過(guò)程中我也多 ds18b20 有了一個(gè)系統(tǒng)的了解。我也認(rèn)識(shí)到想要真正的全面了解
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 語(yǔ)言引導(dǎo)目標(biāo)檢測(cè)算法研究
- 二零二五年度建筑防水系統(tǒng)設(shè)計(jì)施工合同2篇
- 現(xiàn)代農(nóng)業(yè)產(chǎn)業(yè)園風(fēng)險(xiǎn)評(píng)估與應(yīng)對(duì)措施
- 冶金行業(yè)業(yè)務(wù)員工作總結(jié)
- 應(yīng)急響應(yīng)機(jī)制的建立
- 餐飲服務(wù)行業(yè)員工激勵(lì)策略
- 二零二五年度個(gè)人房地產(chǎn)居間傭金分配合同范本4篇
- 二零二五年度電子商務(wù)平臺(tái)商鋪入駐合作協(xié)議2篇
- 二零二五年度個(gè)人股份質(zhì)押合同樣本:有限責(zé)任公司股權(quán)融資專用2篇
- 部編版一年級(jí)語(yǔ)文下冊(cè)第18課《棉花姑娘》精美課件
- 英漢互譯單詞練習(xí)打印紙
- 2023湖北武漢華中科技大學(xué)招聘實(shí)驗(yàn)技術(shù)人員24人筆試參考題庫(kù)(共500題)答案詳解版
- 一氯二氟甲烷安全技術(shù)說(shuō)明書(shū)MSDS
- 母嬰護(hù)理員題庫(kù)
- 老年人預(yù)防及控制養(yǎng)老機(jī)構(gòu)院內(nèi)感染院內(nèi)感染基本知識(shí)
- SWITCH暗黑破壞神3超級(jí)金手指修改 版本號(hào):2.7.6.90885
- 2023高考語(yǔ)文全國(guó)甲卷詩(shī)歌閱讀題晁補(bǔ)之《臨江仙 身外閑愁空滿眼》講評(píng)課件
- 物流簽收回執(zhí)單
- 鋼結(jié)構(gòu)廠房造價(jià)指標(biāo)
- 安徽涵豐科技有限公司年產(chǎn)6000噸磷酸酯阻燃劑DOPO、4800噸磷酸酯阻燃劑DOPO衍生品、12000噸副產(chǎn)品鹽酸、38000噸聚合氯化鋁、20000噸固化劑項(xiàng)目環(huán)境影響報(bào)告書(shū)
- 寧騷公共政策學(xué)完整版筆記
評(píng)論
0/150
提交評(píng)論