單片機(jī)實(shí)現(xiàn)數(shù)碼管顯示亮度的按鍵控制和溫度檢測(cè)_第1頁
單片機(jī)實(shí)現(xiàn)數(shù)碼管顯示亮度的按鍵控制和溫度檢測(cè)_第2頁
單片機(jī)實(shí)現(xiàn)數(shù)碼管顯示亮度的按鍵控制和溫度檢測(cè)_第3頁
單片機(jī)實(shí)現(xiàn)數(shù)碼管顯示亮度的按鍵控制和溫度檢測(cè)_第4頁
單片機(jī)實(shí)現(xiàn)數(shù)碼管顯示亮度的按鍵控制和溫度檢測(cè)_第5頁
已閱讀5頁,還剩16頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

學(xué)號(hào)1607080221天津城建大學(xué)單片機(jī)原理及接口技術(shù)課程設(shè)計(jì)設(shè)計(jì)說明書數(shù)碼管顯示亮度的按鍵控制設(shè)計(jì)起止日期:2019年1月2_日至2019年1月J1_日學(xué)生姓名 韓徐班級(jí) 16電信科2班成績指導(dǎo)教師(簽字)計(jì)算機(jī)與信息工程學(xué)院2019年1月11日天津城建大學(xué)課程設(shè)計(jì)任務(wù)書2018—2019學(xué)年第1學(xué)期計(jì)算機(jī)與信息工程學(xué)院電子信息科學(xué)與技術(shù)專業(yè)班級(jí)2班學(xué)號(hào)1607080221課程設(shè)計(jì)名稱:?jiǎn)纹瑱C(jī)原理及應(yīng)用A課程設(shè)計(jì)設(shè)計(jì)題目: 數(shù)碼管顯示亮度的按鍵控制設(shè)計(jì)完成期限:自2019年1月2日至2019年1月11日共2周設(shè)計(jì)依據(jù)、要求及主要內(nèi)容:設(shè)計(jì)的目的進(jìn)一步熟悉和掌握單片機(jī)系統(tǒng)設(shè)計(jì)和編程原理。掌握單片機(jī)的接口技術(shù)及相關(guān)外圍芯片的外特性、控制方法。通過設(shè)計(jì),掌握以單片機(jī)核心的電路設(shè)計(jì)的基本方法和技術(shù)。通過實(shí)際程序設(shè)計(jì)和調(diào)試,掌握模塊化程序設(shè)計(jì)方法和調(diào)試技術(shù)。通過完成一個(gè)包括電路設(shè)計(jì)和程序開發(fā)的完整過程,了解開發(fā)單片機(jī)應(yīng)用系統(tǒng)的全過程,為今后從事相應(yīng)開發(fā)打下基礎(chǔ)。設(shè)計(jì)的基本要求認(rèn)識(shí)設(shè)計(jì)的意義,掌握設(shè)計(jì)工作程序,學(xué)會(huì)使用工具書和技術(shù)參考資料,并培養(yǎng)科學(xué)的設(shè)計(jì)思想和良好的設(shè)計(jì)作風(fēng)。提高模型建立和設(shè)計(jì)能力,學(xué)會(huì)應(yīng)用相關(guān)設(shè)計(jì)資料進(jìn)行設(shè)計(jì)計(jì)算的方法。提高獨(dú)立分析、解決問題的能力,逐步增強(qiáng)實(shí)際應(yīng)用訓(xùn)練。設(shè)計(jì)的說明書要求簡(jiǎn)潔、通順,電路圖內(nèi)容完整、清楚、規(guī)范。設(shè)計(jì)主要內(nèi)容a) 設(shè)計(jì)實(shí)現(xiàn)功能STC12C5A60S2(引腳排序及基本功能同AT89S51)作為主控芯片,設(shè)計(jì)利用按鍵實(shí)現(xiàn)數(shù)碼管亮度的調(diào)整。一是擴(kuò)展DS18B20溫度檢測(cè)電路,并由數(shù)碼管顯示;二是擴(kuò)展按鍵電路;三是利用按鍵調(diào)整數(shù)碼管的亮度。b) 原理圖設(shè)計(jì)原理圖設(shè)計(jì)要符合項(xiàng)目的工作原理,連線要正確。圖中所使用的元器件要合理選用,電阻、電容等器件的參數(shù)要正確標(biāo)明。原理圖要完整,CPU、外圍器件、外擴(kuò)接口、輸入/輸出裝置要一應(yīng)俱全。c) 程序調(diào)計(jì)根據(jù)要求,將總體功能分解成若干個(gè)子功能模塊,每個(gè)功能模塊完成一個(gè)特定的功能。根據(jù)總體要求及分解的功能模塊,確定各功能模塊之間的關(guān)系,設(shè)計(jì)出完整的程序流程圖。d) 程序調(diào)試編寫相關(guān)程序,并進(jìn)行仿真。將程序下載到單片機(jī),進(jìn)行運(yùn)行調(diào)試。e) 設(shè)計(jì)說明書原理圖設(shè)計(jì)說明簡(jiǎn)要說明設(shè)計(jì)目的,原理圖中所使用的元器件功能及在圖中的作用,各器件的工作過程及順序。程序設(shè)計(jì)說明對(duì)程序設(shè)計(jì)總體功能及結(jié)構(gòu)進(jìn)行說明,對(duì)各子模塊的功能以及各子模塊之間的關(guān)系作較詳細(xì)的描述。畫出工作原理圖,程序流程圖并給出相應(yīng)的程序清單。指導(dǎo)教師(簽字): 教研室主任(簽字):批準(zhǔn)日期:2019年1月2日TOC\o"1-5"\h\z\o"CurrentDocument"第1章 設(shè)計(jì)任務(wù)及要求 1\o"CurrentDocument"1.1設(shè)計(jì)目的 11.2設(shè)計(jì)要求 11.3設(shè)計(jì)思路 1\o"CurrentDocument"第2章設(shè)計(jì)原理 22.1原理概括 22.2原理框圖 2\o"CurrentDocument"第3章硬件電路設(shè)計(jì) 33.1 STC12C5A60S2主控芯片 33.1.1單片機(jī)簡(jiǎn)介 33.1.2STC系列單片機(jī)主要性能及特點(diǎn) 33.1.3外部引腳介紹 33.2數(shù)碼管 43.3鍵盤 63.4溫度傳感器DS18B20 6\o"CurrentDocument"第4章 軟件程序設(shè)計(jì)及調(diào)試 7\o"CurrentDocument"4.1程序流程圖 7\o"CurrentDocument"4.2程序設(shè)計(jì) 74.3調(diào)試結(jié)果 8\o"CurrentDocument"第5章總結(jié) 9\o"CurrentDocument"參考文獻(xiàn) 10\o"CurrentDocument"附錄 11附錄I設(shè)計(jì)原理圖 11附錄II元器件清單 12附錄III源程序 12第1章設(shè)計(jì)任務(wù)及要求1.1設(shè)計(jì)目的本學(xué)期開設(shè)了單片機(jī)原理的相關(guān)課程,我們初步接觸和掌握了單片機(jī)的一些知識(shí),了解了單片機(jī)的起源、發(fā)展和應(yīng)用,并且在平時(shí)的單片機(jī)實(shí)驗(yàn)當(dāng)中進(jìn)一步鞏固了課堂上所學(xué)的知識(shí)。為了進(jìn)一步加深對(duì)單片機(jī)原理的了解,對(duì)單片機(jī)應(yīng)用的熟悉,本次課程設(shè)計(jì),通過編程實(shí)現(xiàn)與單片機(jī)硬件設(shè)計(jì)深化單片機(jī)運(yùn)行原理,2熟設(shè)單計(jì)要求流程,對(duì)于開發(fā)過程中遇到的問題進(jìn)行分析并解決。以學(xué)院發(fā)放的單片機(jī)開發(fā)板為基礎(chǔ),設(shè)計(jì)電路,該電路使用到的器件有:DS18B20溫度傳感器、四位數(shù)碼管、4x4矩陣按鍵以及主控芯片STC12C5A60S2。要求使用DS18B20測(cè)量當(dāng)前溫度,并由數(shù)碼管來顯示測(cè)量的溫計(jì),使用按鍵去控制數(shù)碼管顯示的亮度。當(dāng)我看到我的這個(gè)題目以后,我開始去思考怎么實(shí)現(xiàn)相應(yīng)功能。我的題目可以分成兩部分來完成,第一部分就是先利用數(shù)碼管顯示出來溫度。測(cè)量溫度的實(shí)驗(yàn)我們已經(jīng)做過,當(dāng)時(shí)是在液晶屏幕上顯示溫度,我可以把那個(gè)程序拿過來加以改造,使之能在數(shù)碼管上顯示,這樣第一部分就可以實(shí)現(xiàn)。第二部分就是利用按鍵控制數(shù)碼管顯示的亮度,按鍵分為獨(dú)立按鍵和矩陣按鍵,對(duì)于矩陣按鍵可以采用線反轉(zhuǎn)法來檢測(cè)具體按下的按鍵。數(shù)碼管的顯示有靜態(tài)和動(dòng)態(tài)兩種方法。在學(xué)習(xí)動(dòng)態(tài)數(shù)碼管顯示的時(shí)候,我知道了改變延時(shí)的長短數(shù)碼管顯示的情況是不一樣的,可以通過控制延時(shí)這個(gè)變量來控制數(shù)碼管顯示的亮度。兩部分結(jié)合在一起就能實(shí)現(xiàn)我的題目。第2章設(shè)計(jì)原理72.17DS18B20芯片可以測(cè)量溫度,并且把外界溫度以數(shù)字信號(hào)方式輸出,對(duì)于數(shù)字信號(hào)可以用單片機(jī)很方便地處理,單片機(jī)處理了來自DS18B20的溫度信號(hào)后,可以把相應(yīng)的溫度值以數(shù)字信號(hào)方式輸出。單片機(jī)輸出的溫度值信號(hào)給數(shù)碼管,加上三極管驅(qū)動(dòng)電路以后,數(shù)碼管可以把表示數(shù)值的數(shù)字信號(hào)顯示出來。由于題目要求改變其亮度,所以使用數(shù)碼管動(dòng)態(tài)顯示,通過改變顯示的數(shù)碼管之間的延時(shí)來控制亮度。另方面,單片機(jī)還可以同時(shí)檢測(cè)來自按鍵的輸入信號(hào),按下不同的按鍵,單片機(jī)做出不同的響應(yīng)。本次設(shè)計(jì)當(dāng)中感理框數(shù)碼管之間的延時(shí)作為單片機(jī)對(duì)于按下不同按鍵的響應(yīng)。大體的設(shè)計(jì)流程與想法如圖1所示:圖1圖1原理框圖第3章硬件電路設(shè)計(jì)3.1STC12C5A60S2主控芯片3.1.1單片機(jī)簡(jiǎn)介單片機(jī)就是在一片半導(dǎo)體硅片上,集成了中央處理單元CPU)、存儲(chǔ)器(RAM、ROM)、中斷系統(tǒng)、定時(shí)器/計(jì)數(shù)器、并行1/0、串行I/O、時(shí)鐘電路及系統(tǒng)總線,用于測(cè)控領(lǐng)域的單片微型計(jì)算機(jī),簡(jiǎn)稱單片機(jī)。單片機(jī)的問世,是計(jì)算機(jī)技術(shù)發(fā)展史上的一個(gè)重要里程碑,它標(biāo)志著計(jì)算機(jī)正式形成了通用計(jì)算機(jī)和嵌入式計(jì)算機(jī)兩大分支。單片機(jī)芯片體積小、成本低,可廣泛地嵌入到工業(yè)控制單元、智能儀器儀表、機(jī)器人、武器系統(tǒng)、家用電器、辦公自動(dòng)化設(shè)備、金融電子系統(tǒng)、汽車電子系統(tǒng)、玩具、個(gè)人信息終端以及通信產(chǎn)品中。20世紀(jì)80年代以來,單片機(jī)的發(fā)展非常迅速,其中Intel公司推出的MCS-51系列單片機(jī)是一款設(shè)計(jì)成功、易掌握并在世界范圍得到廣泛普及應(yīng)用的機(jī)型,這是最早進(jìn)入我國并在我國得到廣泛應(yīng)用的機(jī)型。其中包括8051等產(chǎn)品。在這以后Intel公司把精力放在高檔CPU的研發(fā)上,以專利轉(zhuǎn)讓或技術(shù)交換的形式把8051內(nèi)核技術(shù)轉(zhuǎn)讓給了許多芯片廠家。STC系列單片機(jī)是我國具有獨(dú)立自主知識(shí)產(chǎn)權(quán),功能與抗干擾性強(qiáng)的增強(qiáng)型8051單片機(jī)?!猼『3.1.2STC系列單片機(jī)主要性能及特點(diǎn)高速:比普通的8051快8?12倍寬工作電壓:3.8?5.5V、2.4?3.8V12KB/10KB/8KB/6KB/4KB片內(nèi)flash程序存儲(chǔ)器,擦寫次數(shù)10萬次以上512B片內(nèi)的RAM數(shù)據(jù)存儲(chǔ)器可在線編程,無需編程器或仿真器8通道的10位ADC,4路PWM輸出4個(gè)定時(shí)器或4個(gè)外部中斷2個(gè)硬件16位定時(shí)器,兼容普通8051的定時(shí)器硬件看門狗(WDT)高速SPI串口全雙工異步串行口(UART),兼容普通8051串口通用I/O口中的每個(gè)I/O口驅(qū)動(dòng)能力均可達(dá)到20mA,但整個(gè)芯片最大不可超過55mA超強(qiáng)抗干擾能力與高可靠性(名叫蜘介紹51單片機(jī)各引腳可以按照功能將其分成三類:電源和時(shí)鐘引腳:Vcc、Vss、XTAL1、XTAL2編程控制引腳:RST、PSEN、ALE/PROG、EA/Vpp4組8位I/O口引腳:P0、P1、P2、P3下面對(duì)一些引腳簡(jiǎn)略介紹:Vcc,Vss是單片機(jī)電源引腳,外接對(duì)應(yīng)的電壓源,為單片機(jī)供電。XTAL1,XTAL2是外接時(shí)鐘引腳,分別是片內(nèi)振蕩電路的輸入端和輸出端。RST是單片機(jī)的復(fù)位引腳,用來完成單片機(jī)的復(fù)位初始化操作。PSEN是程序存儲(chǔ)器允許輸出控制端,低電平有效,實(shí)現(xiàn)外部程序存儲(chǔ)器單元的讀操作。P0口是雙向8位三態(tài)I/O口,每個(gè)口可獨(dú)立控制。51單片機(jī)P0口內(nèi)部沒有上拉電阻,為高阻狀態(tài),所以不能正常地輸出

高/低電平,該組I/O口使用時(shí)需要外接上拉電阻。P1口是準(zhǔn)雙向8位I/O口,每個(gè)口可獨(dú)立控制,內(nèi)帶上拉電阻,這種接口輸出沒有高阻狀態(tài),輸入也不能鎖存,不是真正的雙向I/O口,該口在作為輸入使用前,要先向該口進(jìn)行寫1操作,單片機(jī)內(nèi)部才可正確讀出外部信號(hào)。P2口是準(zhǔn)雙向8位I/O口,與P1口類似。P3口是準(zhǔn)雙向8位I/O口,作為第一功能即普通I/O口使用時(shí)與P1口類似,作為第二功能使用時(shí)各引腳定義如下:P3.0串行輸入口,P3.1串行輸出口,P3.2外部中斷0,P3.3外部中斷1,P3.4定時(shí)器/計(jì)數(shù)器0外部輸入端,P3.5定時(shí)器/計(jì)數(shù)器1外部輸入端,P3.6外部數(shù)據(jù)存儲(chǔ)器寫脈沖,P3.7外部數(shù)據(jù)存儲(chǔ)器讀脈沖。51單片機(jī)的PDIP封裝如圖1所示:P1.0仁1U403Vcc RST1 20VccP1.1匚2 393P0.0 P3.0/RXD2 19 P1.7P1.2仁3 383P0.1 P3.1/TXD3 18 P1.6P1.3匚4 37P0.2 XTAL24117 P1.5P1.4仁5 3623P0.3 XTAL15016 P1.4P1.5仁6 353P0.4 P3.2/INT0 6215 P1.3P1.6仁7 1 343P0.5 P3.3/INT1 7914 P1.2P1.7°8 5 33=■P0.6 P3.4/T0 88 13 P1.1/AIN1RST/Vpd仁9 9 32°P0.7 P3.5/T1 9 12P1.0/AINCP3.0/RXD匚10/ 31=■EA/V_ GND10 11 P3.7P3.1/TXD匚11 1 30=*ale/progP3.2/INT0匚12C293PSENP3.3/INT1仁138 283P2.7 注:類似的還有Philips公司的P3.4/T0仁14 8 27°P2.6 87LPC64,20引腳P3.5/T1匚15 263P2.5 8XC748/750/(751),24引腳P3.6/WRc16 253P2.4 8X749(752),28引腳P3.7/RD匚17 243P2.3 8XC754,28引腳XTAL2匚18 23=>P2.2 等等XTAL1匚19 223P2.1Vss仁20 21°P2.0圖2PDIP封裝引腳圖本次課程設(shè)計(jì),我用到了單片機(jī)的P1口作為按鍵的數(shù)據(jù)輸入輸出控制口,P2口作為數(shù)碼管段選控制管位選控制口。LED數(shù)碼管是常見的顯示器件,在家電領(lǐng)域應(yīng)用極為廣泛。LED數(shù)碼管為“8”字型的,共計(jì)8段(包括小數(shù)點(diǎn))或7段(無小數(shù)點(diǎn)),每一段對(duì)應(yīng)一個(gè)發(fā)光二極管,有共陽極和共陰極兩種。共陽極數(shù)碼管的陽極連接在一起,公共陽極接到+5V上;共陰極數(shù)碼管的陰極連接在一起,通常此公共陰極接地。我的開發(fā)板上的數(shù)碼管屬于共陽極數(shù)碼管,其內(nèi)部結(jié)構(gòu)如圖2所示。對(duì)于共陽極數(shù)碼管,當(dāng)某個(gè)發(fā)光二極管的陰極接低電平時(shí),該發(fā)光二極管被點(diǎn)亮,相應(yīng)的段被顯示。圖3共陽極數(shù)碼管結(jié)構(gòu)

為了使數(shù)碼管顯示不同的字符,要把某些段點(diǎn)亮,就要為數(shù)碼管的各段提供一個(gè)字節(jié)的二進(jìn)制代碼,即段碼,習(xí)慣上以“a”段對(duì)應(yīng)段碼字節(jié)的最低位,共陽極數(shù)碼管的段碼如表1所示,如要在數(shù)碼管上顯示某一字符,只需將顯示該字符的段碼加到各段上即可。表1共陽極數(shù)碼管段碼顯示字符字型碼顯示字符字型碼00xc0C0xc610xf9d0xa120xa4E0x8630xb0F0x8e40x99P0x8c50x92U0xc160x82y0x9170xf8H0x8980x80L0xc790x90—0xbfA0x88全滅0xffb0x83全亮0x00數(shù)碼管的顯示方式有靜態(tài)和動(dòng)態(tài)兩種,多位數(shù)碼管工作于靜態(tài)顯示方式時(shí),各位的共陰極(或共陽極)連接在一起并接地(或接+5V),每位數(shù)碼管的段碼線分別與一個(gè)單片機(jī)控制的8位I/O口鎖存器輸出相連,由單片機(jī)送出顯示信號(hào)供數(shù)碼管顯示。靜態(tài)顯示方式無閃爍,亮度較高,軟件控制比較容易,但是占用單片機(jī)I/O口資源較多,如果顯示位數(shù)較少,可采用靜態(tài)顯示方式。顯示位數(shù)較多時(shí),為節(jié)省I/O口與驅(qū)動(dòng)電路的數(shù)目,常采用動(dòng)態(tài)顯示方式。這種方式是將所有數(shù)碼管的段碼線的相應(yīng)段并聯(lián)在一起,由一個(gè)8位I/O端口控制,而各顯示位的公共端分別由另一單獨(dú)的I/O端口控制,每一時(shí)刻,只有1位位選線有效,即只有一位數(shù)碼管被點(diǎn)亮,每隔一定時(shí)間逐位地輪流點(diǎn)亮各數(shù)碼管,由于數(shù)碼管的余輝和人眼的“視覺暫留”作用,只要控制好數(shù)碼管之間的點(diǎn)亮?xí)r間間隔,就可以造成“多位同時(shí)亮”的假象。這個(gè)時(shí)間間隔如果很短會(huì)造成發(fā)光很弱,時(shí)間間隔很長雖然亮度足夠但是會(huì)有閃爍現(xiàn)象。本次課設(shè)的要求之一控制亮度,我就是利用數(shù)碼管之間的延時(shí)來控制的,合理地調(diào)整延時(shí)長短,就可以讓數(shù)碼管亮度很暗但能看清,亮度很亮但不閃爍。開發(fā)板上使用的是一組四位LED數(shù)碼管(如圖4所示),段選端通過一個(gè)74HC573芯片連接到單片機(jī)的P0口,4個(gè)位選線經(jīng)過三極管接到了Vcc上,三極管的基極以排針引出,可用杜邦線連接單片機(jī)實(shí)現(xiàn)位選。

3.3鍵盤圖5輕觸開關(guān)鍵盤具有向單片機(jī)輸入數(shù)據(jù)、命令等功能,是人機(jī)對(duì)話的主要手段。鍵盤由若干按鍵按照一定規(guī)則組成,每一個(gè)按鍵實(shí)質(zhì)就是一個(gè)開關(guān)。鍵盤有很多種類,最常見的是按鍵式鍵盤。鍵盤分編碼鍵盤和非編碼鍵盤,在單片機(jī)組成的各種系統(tǒng)中,用的最多的是非編碼鍵盤。常見的非編碼鍵盤有獨(dú)立式鍵盤和矩陣式鍵盤兩種結(jié)構(gòu),獨(dú)立式鍵盤各按鍵相互獨(dú)立,每個(gè)按鍵各接一條I/O口線,通過檢測(cè)I/O口輸入線的電平狀態(tài),能夠判斷哪個(gè)按鍵被按下。當(dāng)按鍵數(shù)目較多時(shí),獨(dú)立式鍵盤占用單片機(jī)I/O口資源較多,這種情況下為了節(jié)省I/O口適合采用矩陣式鍵盤。矩陣式鍵盤由行線和列線組成,按鍵位于行、列的交叉點(diǎn)上,一個(gè)4x4的行列結(jié)構(gòu)可構(gòu)成16個(gè)按鍵,只需要一個(gè)8位的并行I/O口。開發(fā)板上使用的是一組4x4矩陣鍵盤,由16個(gè)輕觸開關(guān)(又叫按鍵開關(guān),使用時(shí)以滿足操作力的條件向開關(guān)操作方向施壓使開關(guān)閉合接通,當(dāng)撤銷壓力時(shí)開關(guān)斷開,其內(nèi)部結(jié)構(gòu)是靠金屬彈片受力變化來實(shí)現(xiàn)通斷的,如圖5所示)組成。每一行開關(guān)的相同端接在一根線上,每一列開關(guān)的相同端接在一根線上,總共引出行線和列線各4根,通過排針和跳線帽接到單片機(jī)的P1圖5輕觸開關(guān)3.4溫度傳感器DS18B20DS18B20芯片(如圖6所示)屬于單總線接口的數(shù)字溫度傳感器,溫度測(cè)量范圍是-55?+128°C,DS18B20芯片體積小、功耗低,對(duì)于實(shí)時(shí)溫度的測(cè)量結(jié)果可通過單總線以數(shù)字信號(hào)方式傳輸,省去了信號(hào)放大、A/D轉(zhuǎn)換等外圍電路。DS18B20有3個(gè)引腳,分別是Vcc、DQ和GND。單片機(jī)對(duì)每個(gè)DS18B20芯片通過總線DQ尋址,DQ為漏極開路,須加上拉電阻。每個(gè)芯片內(nèi)都有64位ROM,其中存有16位序列號(hào),它是器件的地址編號(hào),能使器件被唯一地確定。常用的控制DS18B20的有下面幾條指令:0x33(讀DS18B20中ROM的編碼)、0xcc(忽略64位ROM地址,直接向DS18B20發(fā)溫度變換命令)、0x44(啟動(dòng)DS18B20進(jìn)行溫度轉(zhuǎn)換)、0xbe(讀內(nèi)部RAM中溫度數(shù)據(jù))、0x4e(發(fā)出向內(nèi)部RAM的第2,3字節(jié)寫上,下限溫度數(shù)據(jù)命令)。開發(fā)板上使用單片機(jī)的P1.7口與DS18B20進(jìn)行數(shù)據(jù)交換,P1.7、Vcc和GND已由排針引出,只要給開發(fā)板上DS18B20旁邊的排針插上跳線帽即可。圖6DS18B20芯片第4章軟件程序設(shè)計(jì)及調(diào)試4.1程序流程圖綜合了以上所介紹的設(shè)計(jì)思路以及原理之后,整個(gè)題目的設(shè)計(jì)流程如圖7所示:否溫度值大于0結(jié)束開始/外界溫度模./擬信號(hào)輸入/數(shù)字信號(hào)溫//度值輸出,???.'’圖7程序流程圖/按鍵信號(hào)/輸入否溫度值大于0結(jié)束開始/外界溫度模./擬信號(hào)輸入/數(shù)字信號(hào)溫//度值輸出,???.'’圖7程序流程圖/按鍵信號(hào)/輸入.是實(shí)際溫度=十進(jìn)制數(shù)據(jù)位除以169數(shù)碼管顯示與亮度調(diào)節(jié)延時(shí)增加或減少實(shí)際溫度=十進(jìn)制數(shù)據(jù)位取反加1再除以16DS18B20處理單片機(jī)4.2程序設(shè)計(jì)本次課設(shè)的難點(diǎn)在于DS18B20溫度傳感器的使用,如何用單片機(jī)控制DS18B20芯片進(jìn)行溫度讀寫是完成題目的關(guān)鍵,因此有必要了解DS18B20的工作時(shí)序:(1)初始化,包括①先將數(shù)據(jù)線置高電平1。②延時(shí)。③數(shù)據(jù)線拉到低電平0。④延時(shí)480到960微秒。⑤數(shù)據(jù)線拉到高電平1。⑥延時(shí)等待。⑦若CPU讀到數(shù)據(jù)線上的低電平0后,還要進(jìn)行延時(shí)。⑧將數(shù)據(jù)線再次拉到高電平1后結(jié)束°(2)DS18B20寫數(shù)據(jù),包括①數(shù)據(jù)線先置低電平0。②延時(shí)確定的時(shí)間為15微秒。③按從低位到高位的順序發(fā)送數(shù)據(jù)。④延時(shí)45微秒。⑤將數(shù)據(jù)線拉到高電平1。⑥重復(fù)①到⑤步驟,直到發(fā)送完整個(gè)字節(jié)。⑦將數(shù)據(jù)線拉高到1。(3)DS18B20讀數(shù)據(jù),包括①將數(shù)據(jù)線拉高到1。②延時(shí)2微秒。③將數(shù)據(jù)線拉低到0。④延時(shí)6微秒。⑤將數(shù)據(jù)線拉高到1。⑥延時(shí)4微秒。⑦讀數(shù)據(jù)線的狀態(tài)得到一個(gè)狀態(tài)位,并進(jìn)行數(shù)據(jù)處理。⑧延時(shí)30微秒。⑨重復(fù)①到⑦步驟,直到讀取完一個(gè)字節(jié)。按照以上時(shí)序?qū)S18B20進(jìn)行程序編寫,我參考了做實(shí)驗(yàn)時(shí)

所用到的DS18B20顯示溫度的代碼,加以更改使之能夠正確使用。對(duì)于按鍵的檢測(cè)就運(yùn)用了線反轉(zhuǎn)法,先檢測(cè)行線再檢測(cè)列線,行列交叉的位置就是按下按鍵的位置,由此計(jì)算出每一個(gè)按鍵的鍵值。單片機(jī)把溫度值信號(hào)給數(shù)碼管,數(shù)碼管顯示溫度,使用含參數(shù)的延時(shí)函數(shù)控制數(shù)碼管的動(dòng)態(tài)顯示,把得到的鍵值賦同的按鍵改變不同的參數(shù),進(jìn)而改變數(shù)碼管顯示亮度。具體的C語言代碼見附錄。如圖8所示是將程序下載進(jìn)開發(fā)板上以后的效果:圖8調(diào)試結(jié)果可以看到,板子的右上角的四位數(shù)碼管顯示的是當(dāng)前環(huán)境溫度,用杜邦線將數(shù)碼管與單片機(jī)連接起來,右下角是矩陣鍵盤,按下其中不同的按鍵,數(shù)碼管的亮度是不一樣的,從最暗到最亮,有16級(jí)調(diào)節(jié),對(duì)應(yīng)16個(gè)按鍵。這個(gè)效果,完成了題目的要求。第5章總結(jié)本次課程設(shè)計(jì),綜合了本學(xué)期學(xué)到的單片機(jī)的有關(guān)知識(shí)。課上,老師講解了單片機(jī)的構(gòu)造、原理和應(yīng)用,通過對(duì)這門課程的學(xué)習(xí),我逐漸地了解了我們身邊的一些電子設(shè)備的工作原理以及方式,其實(shí)大都可以使用單片機(jī)來實(shí)現(xiàn)。單片機(jī)從誕生到現(xiàn)在,發(fā)展了這么多年,已經(jīng)變得相當(dāng)完善與強(qiáng)大,許許多多的電子產(chǎn)品里面,其實(shí)都能看到單片機(jī)的影子,單片機(jī)作為控制中心,應(yīng)用的極為廣泛。能夠使用單片機(jī)和其他外圍電路設(shè)計(jì)出符合要求的產(chǎn)品,也是我們這個(gè)專業(yè)需要掌握的技能之一,這次的課程設(shè)計(jì),就模擬了這個(gè)過程,每個(gè)人都拿到了一份要求和一個(gè)開發(fā)板,我們就利用所學(xué)來設(shè)計(jì)出符合要求的作品,這個(gè)過程鍛煉了我們對(duì)于使用單片機(jī)開發(fā)各種電路的能力。我們所學(xué)到的知識(shí)應(yīng)該是能夠用來在實(shí)踐中利用的,否則將毫無意義,為了避免紙上談兵,我們需要加強(qiáng)動(dòng)手能力。經(jīng)過了單片機(jī)這門課程的學(xué)習(xí),我對(duì)單片機(jī)充滿了興趣,課后自己找資料深入學(xué)習(xí)其應(yīng)用,這次課程設(shè)計(jì)的順利實(shí)現(xiàn),與我平時(shí)在業(yè)余時(shí)間里學(xué)習(xí)單片機(jī)密不可分,由此也可看出,興趣果然是最好的老師。參考文獻(xiàn)郭天祥.51單片機(jī)C語言教程.北京:電子工業(yè)出版社,2008:342—354張毅剛,趙光權(quán),劉旺.單片機(jī)原理及應(yīng)用.北京:高等教育出版社,2015:292—296何立民.單片機(jī)應(yīng)用技術(shù)選編.北京:北京航空航天大學(xué)出版社,1993:232—245譚浩強(qiáng).C程序設(shè)計(jì).北京:清華大學(xué)出版社,1991:143—275徐君毅.單片微型計(jì)算機(jī)原理及應(yīng)用.上海:上海科學(xué)技術(shù)出版社,1988:195—385附錄1設(shè)計(jì)原理圖附錄數(shù)碼管顯示電踏圖9數(shù)碼管及其驅(qū)動(dòng)部分圖10按鍵部分R4ES1俱K)DS18B20測(cè)溫電路圖11DS18B20部分單片機(jī)FJI2pU-45FJ5Pkh7P17gELKTU'T]TOJ4WC31XI19X21HKST事附錄附錄11元器件清單序號(hào)名稱型號(hào)數(shù)量說明1單片機(jī)STC12C5A60S212溫度傳感器DS18B2013瓷片電容10114瓷片電容10215電解電容4.7uf/16V16電阻8.2k17電阻4.7k18晶振11.0592MHz1附錄血源程序關(guān)—STJF200R16圖12主控芯片部分#include<reg51.h>#include<absacc.h>#include<math.h>#defineucharunsignedchar#defineuintunsignedint#defineKEYP1ucharCjianzhi(void);ucharah,al;uinttens,units,decile;chartemperature[2];floatwen_val;sbitDS1820_DQ=P1A7;voidDS18B20_Init();bitDS1820_Reset();voidDS1820_WriteData(ucharwData);ucharDS1820_ReadData();voidread_wendu();ucharcodeduanma[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};voidDigitalDisplay(tens,units,decile);voiddelayXus(uintn);voiddelayms(ttt);voiddelay10ms();voiddelayXus(uintn){while(--n);}uintttt;voiddelayms(ttt){uinti,j;for(i=ttt;i>0;i--)for(j=2;j>0;j--);}voiddelay10ms(){uchara,b,c;for(c=5;c>0;c--)for(b=4;b>0;b--)for(a=248;a>0;a--);}voidDS18B20_Init(){DS1820_Reset();DS1820_WriteData(0xCC);DS1820_WriteData(0x4E);DS1820_WriteData(0x20);DS1820_WriteData(0x00);DS1820_WriteData(0x7F);DS1820_Reset();}bitDS1820_Reset(){bitflag;DS1820_DQ=0;delayXus(480);DS1820_DQ=1;delayXus(80);flag=DS1820_DQ;delayXus(400);return(flag);}voidDS1820_WriteData(ucharwData){uchari;for(i=8;i>0;i--){DS1820_DQ=0;delayXus(4);DS1820_DQ=wData&0x01;delayXus(60);DS1820_DQ=1;wData>>=1;}}ucharDS1820_ReadData(){uchari,TmepData;for(i=8;i>0;i--){TmepData>>=1;DS1820_DQ=0;delayXus(4);DS1820_DQ=1;delayXus(8);if(DS1820_DQ==1){TmepData|=0x80;}delayXus(60);DS1820_DQ=1;}return(TmepData);}voidread_wendu(){uchari;DS1820_Reset();DS1820_WriteData(0xcc);DS1820_WriteData(0x44);DS1820_Reset();DS1820_WriteData(0xcc);DS1820_WriteData(0xbe);for(i=0;i<2;i++){temperature[i]=DS1820_ReadData();}DS1820_Reset();}voidDigitalDisplay(tens,units,decile){read_wendu();ah=temperature[1]<<4;ah&=0xf0;al=temperature[0]>>4;al&=0x0f;ah=ah|al;al=temperature[0]&0x0

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論