版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
目錄TOC\o"1-3"\u1前言12總體方案設(shè)計(jì)22.1方案比較22.2方案論證和方案選擇33硬件接口設(shè)計(jì)43.1各硬件功能介紹及電路設(shè)計(jì)43.1.1DS18B20溫度傳感器43.1.2串口通信電路43.1.3按鍵電路53.1.4LED顯示電路63.1.5單片機(jī)STC89C52 63.1.6IIC的存儲(chǔ)電路73.2電路參數(shù)的計(jì)算及元器件的選擇83.3特殊器件的介紹83.3.1DS18B20芯片介紹83.3.2STC89C52單片機(jī)介紹93.3.324C02存儲(chǔ)器介紹104軟件設(shè)計(jì)124.1軟件設(shè)計(jì)原理及設(shè)計(jì)所用工具124.2軟件設(shè)計(jì)流程圖124.3keilc與protel簡(jiǎn)介135系統(tǒng)調(diào)試145.1系統(tǒng)硬件調(diào)試145.2系統(tǒng)軟件調(diào)試146系統(tǒng)功能、指標(biāo)參數(shù)157結(jié)論188總結(jié)與體會(huì)199參考文獻(xiàn)20附錄一21附錄二241前言本次課程設(shè)計(jì)是為了鍛煉我們的動(dòng)手能力,加強(qiáng)對(duì)硬件電路的設(shè)計(jì)、制作能力,鞏固以往所學(xué)的模電、數(shù)電等電路理論知識(shí),從實(shí)踐操作中,掌握電子產(chǎn)品的常規(guī)設(shè)計(jì)開(kāi)發(fā)流程,提升對(duì)電子產(chǎn)品系統(tǒng)規(guī)劃的整體認(rèn)知,由實(shí)驗(yàn)室課題制作的理解轉(zhuǎn)化為公司化產(chǎn)品開(kāi)發(fā)流程的實(shí)際操作。本設(shè)計(jì)為帶溫度的數(shù)字鐘,在日常生產(chǎn)生活中應(yīng)用廣泛,作為基礎(chǔ)性功能產(chǎn)品,帶溫度的數(shù)字鐘在農(nóng)業(yè)大棚、工業(yè)流水線、環(huán)境監(jiān)測(cè)設(shè)備、倉(cāng)儲(chǔ)等方面發(fā)揮著重要作用,國(guó)外帶溫度檢測(cè)報(bào)警的智能化系統(tǒng)具備相當(dāng)先進(jìn)的發(fā)展水平,我國(guó)的同類系統(tǒng)也在飛速發(fā)展中,并逐漸深入各行各業(yè),滲透到各種產(chǎn)品體系中,為電子工業(yè)發(fā)展提供重要助力?,F(xiàn)在是一個(gè)知識(shí)爆炸的新時(shí)代,在這快速發(fā)展的年代,時(shí)間對(duì)人們來(lái)說(shuō)是越來(lái)越寶貴,在快節(jié)奏的生活時(shí),人們往往忘記了時(shí)間,一旦遇到重要的事情而忘記了時(shí)間,這將會(huì)帶來(lái)很大的損失。因此我們需要一個(gè)定時(shí)系統(tǒng)來(lái)提醒這些忙碌的人。數(shù)字化的鐘表給人們帶來(lái)了極大的方便。單片機(jī)在多功能數(shù)字鐘中的應(yīng)用已是非常普遍的,人們對(duì)數(shù)字鐘的功能及工作順序都非常熟悉。但是卻很少知道它的內(nèi)部結(jié)構(gòu)以及工作原理。由單片機(jī)作為數(shù)字鐘的核心控制器,可以通過(guò)它的時(shí)鐘信號(hào)進(jìn)行計(jì)時(shí)實(shí)現(xiàn)計(jì)時(shí)功能,將其時(shí)間數(shù)據(jù)經(jīng)單片機(jī)輸出,利用顯示器顯示出來(lái)。通過(guò)鍵盤(pán)可以進(jìn)行定時(shí)、校時(shí)功能。輸出設(shè)備顯示器可以用液晶顯示技術(shù)和數(shù)碼管顯示技術(shù)。高精度的計(jì)時(shí)工具大多數(shù)都使用了石英晶體振蕩器,由于電子鐘,石英表,石英鐘都采用了石英晶振技術(shù),因此走時(shí)精度高,穩(wěn)定性好,使用方便,不需要經(jīng)常調(diào)校。數(shù)字式電子鐘用集成電路計(jì)時(shí)和譯碼,代替了傳統(tǒng)時(shí)鐘的“機(jī)械式傳動(dòng)”裝置,用LED數(shù)碼管或液晶顯示器代替?zhèn)鹘y(tǒng)的指針式顯示器,減小了計(jì)時(shí)誤差,這種表具有時(shí),分,秒顯示時(shí)間的功能,還可以進(jìn)行時(shí)和分的校對(duì),具有簡(jiǎn)單、方便的校時(shí)功能。近年來(lái),隨著科技的發(fā)展和社會(huì)的進(jìn)步,人們對(duì)計(jì)時(shí)器的要求也越來(lái)越高,多功能計(jì)時(shí)器不論在性能還是在樣式上都發(fā)生了質(zhì)的變化,為人們的生活帶來(lái)便利。2總體方案設(shè)計(jì)2.1方案比較方案一:圖2.1基于LCD的設(shè)計(jì)框圖該方案是用LCD進(jìn)行顯示的,內(nèi)部包括了時(shí)鐘電路,電源電路,溫度檢測(cè)等,核心是單片機(jī),運(yùn)用keilc進(jìn)行編程。報(bào)警電路用的是二極管代替的,按鍵設(shè)置能夠自由的設(shè)計(jì)門(mén)限值。方案二:圖2.2基于LED的設(shè)計(jì)框圖方案二運(yùn)用的LED燈作為顯示部分,其他的和方案一相同。2.2方案論證和方案選擇LED是發(fā)光二極管屬于二極管的一種,lcd是液晶顯示屏,兩者相差太多.但是用LED的點(diǎn)陣也能組成顯示器,適用于戶外大屏幕顯示,分辨率較低。LED顯示器與LCD顯示器相比,LED在亮度、功耗、可視角度和刷新速率等方面,都更具優(yōu)勢(shì)。LED與LCD的功耗比大約為1:10,而且更高的刷新速率使得LED在視頻方面有更好的性能表現(xiàn),能提供寬達(dá)160°的視角,可以顯示各種文字、數(shù)字、彩色圖像及動(dòng)畫(huà)信息,也可以播放電視、錄像、VCD、DVD等彩色視頻信號(hào),多幅顯示屏還可以進(jìn)行聯(lián)網(wǎng)播出。有機(jī)LED顯示屏的單個(gè)元素反應(yīng)速度是LCD液晶屏的1000倍,在強(qiáng)光下也可以照看不誤,并且適應(yīng)零下40度的低溫。利用LED技術(shù),可以制造出比LCD更薄、更亮、更清晰的顯示器,擁有廣泛的應(yīng)用前景。所以綜合考慮,我們選擇用基于LED的方案一更為合適。設(shè)計(jì)直接用單片機(jī)編程,用硬件電路搭建方便,通過(guò)STC89C52單片機(jī)編寫(xiě)程序,將預(yù)定功能一一實(shí)現(xiàn)。這樣可以大大簡(jiǎn)化系統(tǒng)結(jié)構(gòu),降低材料的成本。提高系統(tǒng)的先進(jìn)性和可靠性,能實(shí)現(xiàn)控制器的系統(tǒng)編程。3硬件接口設(shè)計(jì)3.1各硬件功能介紹及電路設(shè)計(jì)3.1.1DS18B20溫度傳感器DS18B20的核心功能是它的直接讀數(shù)字的溫度傳感器,溫度傳感器的精度為用戶的可編程的9,10,12位,分別為0.5,0.25,0.125和0.0625度增量遞增,,在上電狀態(tài)下默認(rèn)的精度為12位。DS18B20上電后保持低電耗的默認(rèn)狀態(tài)。圖3.1溫度傳感器電路圖3.1.2串口通信電路RS232串口通信通過(guò)CPU發(fā)送控制信號(hào)控制RS232的發(fā)送和接受。串口的工作方式有:方式0(00):同步移位寄存器方式(用于擴(kuò)展I/O)方式1(01):8位異步收發(fā),波特率可變(由定時(shí)器控制)方式2(10):9位異步收發(fā),波特率為Fosc/64或Fosc/32方式3(11):9位異步收發(fā),波特率可變(由定時(shí)器控制)RS-232下載電路主要有串口和MAX232構(gòu)成。J1_1為串口接口,一端連接MAX232,另一端通過(guò)串口線和電腦連接。J1為下載接口,通過(guò)杜邦線可以與單片機(jī)的TXD和RXD相連接。圖3.2串口通信電路3.1.3按鍵電路鍵盤(pán)分為編碼鍵盤(pán)和非編碼鍵盤(pán)。鍵盤(pán)上閉合鍵的識(shí)別由專用的硬件編碼器實(shí)現(xiàn),并產(chǎn)生鍵編碼號(hào)或鍵值的稱為編碼鍵盤(pán),如計(jì)算機(jī)鍵盤(pán)。而靠軟件編程來(lái)識(shí)別的鍵盤(pán)稱為非編碼鍵盤(pán),在單片機(jī)組成的各種系統(tǒng)中,用得較多的是非編碼鍵盤(pán)。非編碼鍵盤(pán)又分為獨(dú)立鍵盤(pán)和行列式鍵盤(pán)。在本設(shè)計(jì)中定義了8個(gè)按鍵,其功能如下:S2:確定S6:設(shè)置當(dāng)前時(shí)間S3:設(shè)置鬧鐘S7:設(shè)置報(bào)警溫度S4:加S8:減S5:左移S9:右移圖3.3按鍵電路圖3.1.4LED顯示電路對(duì)于數(shù)碼顯示管單元,我們選用的是七段數(shù)碼顯示管,七段數(shù)碼顯示管有共陰極和共陽(yáng)極兩種,顯示器接口按驅(qū)動(dòng)方式可分為靜態(tài)顯示和動(dòng)態(tài)顯示兩種方式。靜態(tài)顯示的優(yōu)點(diǎn)是顯示穩(wěn)定,亮度高;缺點(diǎn)是占用硬件電路(如I/O口、驅(qū)動(dòng)器等)多。動(dòng)態(tài)顯示的優(yōu)點(diǎn)是節(jié)省硬件電路;缺點(diǎn)是采用軟件掃描時(shí)占用CPU時(shí)間多,當(dāng)顯示位數(shù)較多時(shí),顯示器亮度將受到影響。此系統(tǒng)我們采用的是7段共陽(yáng)數(shù)碼顯示管、動(dòng)態(tài)顯示的工作情況。在該電路中,P0口作為8個(gè)數(shù)碼管的使能端,P2口作為8個(gè)數(shù)碼管的數(shù)據(jù)端,通過(guò)動(dòng)態(tài)掃描,讓數(shù)碼管顯示我們需要的內(nèi)容。圖3.4LED顯示電路圖3.1.5單片機(jī)STC89C52STC89C52是一種帶8K字節(jié)閃爍可編程可檫除只讀存儲(chǔ)器(FPEROM-FlashProgramableandErasableReadOnlyMemory)的低電壓,高性能COMOS8的微處理器,俗稱單片機(jī)。該器件采用ATMEL搞密度非易失存儲(chǔ)器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的MCS-51指令集和輸出管腳相兼容。圖3.5單片機(jī)最小系統(tǒng)圖在本設(shè)計(jì)中,單片機(jī)是核心,通過(guò)軟件編程,讓單片機(jī)控制下面的子模塊,從而實(shí)現(xiàn)預(yù)定功能。P0口用作數(shù)碼管的使能端,P2口用作數(shù)碼管的數(shù)據(jù)端,P1口與P3口的一部分用作按鍵掃描與24C02的端口。在本設(shè)計(jì)中還使用了中斷。3.1.6IIC的存儲(chǔ)電路I2C串行總線一般有兩根信號(hào)線,一根是雙向的數(shù)據(jù)線SDA,另一根是時(shí)鐘線SCL。所有接到I2C總線設(shè)備上的串行數(shù)據(jù)SDA都接到總線的SDA上,各設(shè)備的時(shí)鐘線SCL接到總線的SCL上。IIC總線的特點(diǎn)有:二線制,支持多主控,位速率100Kbit/s到3.4Mkbit/s。連接到相同數(shù)量的IIC上面。在本設(shè)計(jì)中,24C02用于存儲(chǔ)鬧鐘時(shí)間與報(bào)警溫度。圖3.6IIC的電路圖3.2電路參數(shù)的計(jì)算及元器件的選擇本次設(shè)計(jì)用到了的元件有STC89C52單片機(jī),DS18B20溫度傳感器,LED數(shù)碼管,24C02存儲(chǔ)器,RS232串口以及各種按鈕,電阻,電容。電路的參數(shù)在買元件之前預(yù)先計(jì)算好。3.3特殊器件的介紹3.3.1DS18B20芯片介紹DS18B20數(shù)字溫度計(jì)是DALLAS公司生產(chǎn)的1-Wire,即單總線器件,具有線路簡(jiǎn)單,體積小的特點(diǎn)。因此用它來(lái)組成一個(gè)測(cè)溫系統(tǒng),具有線路簡(jiǎn)單,在一根通信線,可以掛很多這樣的數(shù)字溫度計(jì),十分方便。DS18B20的溫度值的位數(shù)因分辨率不同而不同,且溫度轉(zhuǎn)換時(shí)的延時(shí)時(shí)間由2s減為750ms。低溫度系數(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è)溫度。斜率累加器用于補(bǔ)償和修正測(cè)溫過(guò)程中的非線性,其輸出用于修正計(jì)數(shù)器1圖3.7DS18B20的實(shí)物圖圖3.8DS18B20內(nèi)部結(jié)構(gòu)圖3.3.2STC89C52單片機(jī)介紹C52是由宏晶公司推出的新一代高速,低功耗,超強(qiáng)抗干擾的單片機(jī),指令代碼完全兼容傳統(tǒng)的8051單片機(jī),12個(gè)時(shí)鐘/機(jī)器周期和6時(shí)鐘/機(jī)器周期可任意選擇。其主要特性如下:
·與MCS-51兼容
·8K字節(jié)可編程閃爍存儲(chǔ)器
·壽命:1000寫(xiě)/擦循環(huán)
·數(shù)據(jù)保留時(shí)間:10年
·全靜態(tài)工作:0Hz-24Hz
·三級(jí)程序存儲(chǔ)器鎖定
·512內(nèi)部RAM
·32可編程I/O線
·兩個(gè)16位定時(shí)器/計(jì)數(shù)器
·5個(gè)中斷源
·可編程串行通道
·低功耗的閑置和掉電模式
·片內(nèi)振蕩器和時(shí)鐘電路圖3.9C52單片機(jī)實(shí)物圖圖3.10C52單片機(jī)引腳圖3.3.324C02存儲(chǔ)器介紹24C02是串行E2PROM存儲(chǔ)器,是基于I2C-BUS的存儲(chǔ)器件,遵循二線制協(xié)議,由于其具有接口方便,體積小,數(shù)據(jù)掉電不丟失等特點(diǎn),在儀器儀表及工業(yè)自動(dòng)化控制中得到大量的應(yīng)用。(1).寬范圍的工作電壓1.8v~5.5v(2).低電壓技術(shù):(3).儲(chǔ)存器組織結(jié)構(gòu)(4).2線串行接口,完全兼容I2C總線(5).施密特觸發(fā)輸入噪聲抑制(6).硬件數(shù)據(jù)寫(xiě)保護(hù)(7).內(nèi)部與周期(最大5ms)(8).自動(dòng)遞增地址(9).可按照字節(jié)寫(xiě)(10).esd保護(hù)大于2.5kV(11).高可靠性:擦寫(xiě)壽命:100萬(wàn)次數(shù)據(jù)保持時(shí)間:100年(12).無(wú)鉛工藝,符合RoHS標(biāo)準(zhǔn)圖3.1124C02引腳圖4軟件設(shè)計(jì)4.1軟件設(shè)計(jì)原理及設(shè)計(jì)所用工具本次設(shè)計(jì)利用protel的特點(diǎn)畫(huà)出原理圖和PCB圖,并用電氣規(guī)則檢查無(wú)誤以后,就可以直接買元器件,焊板子。本設(shè)計(jì)所用的程序設(shè)計(jì)軟件為keilc,在此軟件上逐句的寫(xiě)出本設(shè)計(jì)所要實(shí)現(xiàn)的功能的程序代碼。4.2軟件設(shè)計(jì)流程圖圖4.1系統(tǒng)軟件設(shè)計(jì)的流程圖本設(shè)計(jì)主要流程:初始化后正常顯示時(shí)間與溫度,同時(shí)將存在24C02中的鬧鐘值、報(bào)警溫度與當(dāng)前時(shí)間,溫度比較,滿足條件就報(bào)警。同時(shí)判斷是否有按鍵按下,如果有按鍵按下,便實(shí)現(xiàn)相應(yīng)的按鍵功能,按鍵結(jié)束后返回主程序。如果沒(méi)有按鍵按下,直接返回主程序。4.3keilc與protel簡(jiǎn)介KeilC51是美國(guó)KeilSoftware公司出品的51系列兼容單片機(jī)C語(yǔ)言軟件開(kāi)發(fā)系統(tǒng),與匯編相比,C語(yǔ)言在功能上、結(jié)構(gòu)性、可讀性、可維護(hù)性上有明顯的優(yōu)勢(shì),因而易學(xué)易用。用過(guò)匯編語(yǔ)言后再使用C來(lái)開(kāi)發(fā),體會(huì)更加深刻。KeilC51軟件提供豐富的庫(kù)函數(shù)和功能強(qiáng)大的集成開(kāi)發(fā)調(diào)試工具,全Windows界面。另外重要的一點(diǎn),只要看一下編譯后生成的匯編代碼,就能體會(huì)到KeilC51生成的目標(biāo)代碼效率非常之高,多數(shù)語(yǔ)句生成的匯編代碼很緊湊,容易理解。在開(kāi)發(fā)大型軟件時(shí)更能體現(xiàn)高級(jí)語(yǔ)言的優(yōu)勢(shì)。C51工具包的整體結(jié)構(gòu)中uVision與Ishell分別是C51forWindows和forDos的集成開(kāi)發(fā)環(huán)境(IDE),可以完成編輯、編譯、連接、調(diào)試、仿真等整個(gè)開(kāi)發(fā)流程。開(kāi)發(fā)人員可用IDE本身或其它編輯器編輯C或匯編源文件。然后分別由C51及A51編譯器編譯生成目標(biāo)文件(.OBJ)。目標(biāo)文件可由LIB51創(chuàng)建生成庫(kù)文件,也可以與庫(kù)文件一起經(jīng)L51連接定位生成絕對(duì)目標(biāo)文件(.ABS)。ABS文件由OH51轉(zhuǎn)換成標(biāo)準(zhǔn)的Hex文件,以供調(diào)試器dScope51或tScope51使用進(jìn)行源代碼級(jí)調(diào)試,也可由仿真器使用直接對(duì)目標(biāo)板進(jìn)行調(diào)試,也可以直接寫(xiě)入程序存貯器如EPROM中。PROTEL是PORTEL公司在80年代末推出的EDA軟件,在電子行業(yè)的CAD軟件中,它當(dāng)之無(wú)愧地排在眾多EDA軟件的前面,是電子設(shè)計(jì)者的首選軟件,它較早就在國(guó)內(nèi)開(kāi)始使用,在國(guó)內(nèi)的普及率也最高,有些高校的電子專業(yè)還專門(mén)開(kāi)設(shè)了課程來(lái)學(xué)習(xí)它,幾乎所有的電子公司都要用到它,許多大公司在招聘電子設(shè)計(jì)人才時(shí)在其條件欄上常會(huì)寫(xiě)著要求會(huì)使用PROTEL?,F(xiàn)今的PROTEL已發(fā)展到PROTEL99(網(wǎng)絡(luò)上可下載到它的測(cè)試板),是個(gè)龐大的EDA軟件,完全安裝有200多M,它工作在WINDOWS95環(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%布通率。在國(guó)內(nèi)PROTEL軟件較易買到,有關(guān)PROTEL軟件和使用說(shuō)明的書(shū)也有很多,這為它的普及提供了基礎(chǔ)。5系統(tǒng)調(diào)試5.1系統(tǒng)硬件調(diào)試系統(tǒng)的硬件調(diào)試分為在protel上的模擬調(diào)試查看各連接線是否有問(wèn)題,以及在實(shí)際板子上面的調(diào)試,當(dāng)板子焊完以后我們要逐個(gè)的調(diào)試板子上面的器件,看是否焊接正確,是否有少焊,錯(cuò)焊等情況。然后在keilc里面編寫(xiě)一段程序通過(guò)電腦下載到板子上面,運(yùn)行,看是否能夠?qū)崿F(xiàn)預(yù)期的功能,若能,則板子焊接無(wú)誤。5.2系統(tǒng)軟件調(diào)試當(dāng)系統(tǒng)的硬件調(diào)試完成以后,我們要進(jìn)行的是系統(tǒng)的軟件調(diào)試,系統(tǒng)的軟件調(diào)試是結(jié)合到板子來(lái)進(jìn)行的,首先我們要對(duì)流程圖中的每個(gè)單元功能所實(shí)現(xiàn)的功能進(jìn)行編程,然后在keilc中逐句的查看是否有錯(cuò)誤,若無(wú)錯(cuò)誤,則通過(guò)電腦下載到板子上面看能否實(shí)現(xiàn)相應(yīng)的功能,若能則,本單元所要實(shí)現(xiàn)的功能調(diào)試完成。當(dāng)幾個(gè)單元模塊合在一起的時(shí)候,我們要對(duì)每個(gè)單元模塊進(jìn)行檢查,看各個(gè)單元模塊是否有相沖突的地方,當(dāng)解決了沖突以后板子的軟件調(diào)試就成功了。本設(shè)計(jì)的軟件設(shè)計(jì)分為4個(gè)子模塊,下面進(jìn)行簡(jiǎn)單介紹:按鍵部分主要功能是對(duì)按鍵功能進(jìn)行定義,并對(duì)相應(yīng)功能進(jìn)行設(shè)計(jì)。本設(shè)計(jì)一共定義了8個(gè)按鍵,分別實(shí)現(xiàn)確定、設(shè)置當(dāng)前時(shí)間、設(shè)置鬧鐘、設(shè)置報(bào)警溫度、加、減、左移、右移8個(gè)功能。時(shí)間部分主要實(shí)現(xiàn)時(shí)鐘功能,本設(shè)計(jì)并未采用1302,而是利用單片機(jī)的中斷編寫(xiě)了一個(gè)時(shí)鐘程序。溫度部分主要實(shí)現(xiàn)溫度采集功能,溫度傳感器采用18B20。溫度部分主要作用是存儲(chǔ)報(bào)警溫度與鬧鐘。6系統(tǒng)功能、指標(biāo)參數(shù)本設(shè)計(jì)是基于LED的帶溫度顯示的數(shù)字鐘,所以本設(shè)計(jì)能實(shí)現(xiàn)的功能有自動(dòng)顯示溫度,自動(dòng)顯示時(shí)間,并且能設(shè)置溫度的門(mén)限值,當(dāng)溫度達(dá)到門(mén)限值的時(shí)候,二極管明亮報(bào)警,當(dāng)時(shí)間達(dá)到鬧鐘時(shí)間時(shí),數(shù)碼管閃爍提示,而鬧鐘時(shí)間與溫度的門(mén)限值能通過(guò)按鍵實(shí)現(xiàn)動(dòng)態(tài)寫(xiě)入,并且存入IIc中。圖6.1系統(tǒng)正常運(yùn)行圖圖6.2當(dāng)前時(shí)間設(shè)置圖圖6.3鬧鐘設(shè)置圖圖6.4報(bào)警溫度設(shè)置圖圖6.5溫度報(bào)警圖圖6.6鬧鐘報(bào)警圖7結(jié)論本設(shè)計(jì)是基于LED的帶溫度顯示的數(shù)字鐘的設(shè)計(jì),本設(shè)計(jì)的價(jià)值是在數(shù)字鐘的基礎(chǔ)上實(shí)現(xiàn)附帶溫度顯示的功能,比如當(dāng)早上起床以后,我們就不必為今天穿什么衣服感到煩惱,只要看看今天的當(dāng)前溫度就能選擇合適的衣物。本設(shè)計(jì)的優(yōu)點(diǎn)是能設(shè)置報(bào)警溫度與鬧鐘,當(dāng)達(dá)到條件時(shí)報(bào)警。能修改當(dāng)前時(shí)間,并且在設(shè)置時(shí),所在位數(shù)碼管會(huì)閃爍,使使用更加方便,設(shè)置時(shí)實(shí)現(xiàn)了循環(huán)移位。。本設(shè)計(jì)所用的電路比較簡(jiǎn)單,元器件較少。缺點(diǎn)是設(shè)計(jì)時(shí)把主要精力放在了功能實(shí)現(xiàn)上,沒(méi)有過(guò)多考慮其它因素對(duì)本設(shè)計(jì)的影響,所以數(shù)碼管在顯示時(shí)有時(shí)會(huì)受到一定影響。進(jìn)一步的研究可以添加更多的更實(shí)用的功能,使系統(tǒng)的功能向多樣化,實(shí)用話邁進(jìn)。本設(shè)計(jì)與以往的數(shù)字鐘相比較由于應(yīng)用了IIC能存儲(chǔ)所設(shè)定的門(mén)限值,使其的編程更加簡(jiǎn)單,而且與以往的數(shù)字鐘相比,本設(shè)計(jì)的功能更加多樣化,可添加的功能也多樣化。8總結(jié)與體會(huì)本次智能化電子系統(tǒng)設(shè)計(jì)是基于單片機(jī)STC89C52的數(shù)字鐘,通過(guò)本次設(shè)計(jì),我們?cè)趯?duì)單片機(jī)應(yīng)用及模、數(shù)電技術(shù)有了更深刻的認(rèn)識(shí),也從實(shí)踐的例子中去感受到了智能化設(shè)計(jì)給我們?cè)O(shè)計(jì)帶來(lái)的改變與進(jìn)步。在設(shè)計(jì)中,我們不僅掌握protel和PROTUES及keilc軟件的使用,與此同時(shí),我們還對(duì)電子設(shè)計(jì)的思路有了更多的認(rèn)識(shí)。通過(guò)四個(gè)星期的智能化課程設(shè)計(jì),我們受益匪淺。首先,在這次智能化課程設(shè)計(jì)當(dāng)中,我們重新將《單片機(jī)原理與應(yīng)用》的教材認(rèn)真溫習(xí)了一遍,并大量閱讀了各種有關(guān)單片機(jī)的參考書(shū),這使我對(duì)單片機(jī)的硬件結(jié)構(gòu)更加清晰,對(duì)單片機(jī)的軟件的設(shè)計(jì)有了初步的系統(tǒng)的了解,對(duì)其中的各種常用的指令更加熟悉,相對(duì)于課程設(shè)計(jì)以前的水平有了很大的改觀,尤其表現(xiàn)在對(duì)指令的認(rèn)識(shí)與使用方面。在此次的課程設(shè)計(jì)當(dāng)中,通過(guò)對(duì)程序的大量閱讀,我對(duì)使用C語(yǔ)言設(shè)計(jì)程序不再感到陌生,通過(guò)對(duì)程序的不斷修改,我對(duì)C語(yǔ)言中的各種指令和語(yǔ)句的使用更加熟練,這對(duì)我步入使用C語(yǔ)言編寫(xiě)程序的大門(mén)做了一個(gè)很好的鋪墊。另外,在這次智能化課程設(shè)計(jì)當(dāng)中,我們的毅力得到了加強(qiáng)。在單片機(jī)實(shí)驗(yàn)室的調(diào)試過(guò)程中,我們失敗了很多次,當(dāng)一次失敗了,我們就修改程序再調(diào)試,第二次失敗了,我們繼續(xù)修改程序繼續(xù)調(diào)試;當(dāng)一種方案失敗了,我們就換一種方案;一次又一次的調(diào)試失敗幾乎使我們喪失信心,但我們沒(méi)有放棄,而是一遍有一遍的不斷修改程序、修改方案,最后,終于在我們的不懈努力下完成了拉幕式數(shù)碼顯示的課程設(shè)計(jì),這使我們得到成功喜悅的同時(shí)更得到了堅(jiān)持不懈的可貴精神,它將對(duì)我今后的生活與工作產(chǎn)生重大的影響。最后,感謝胡老師及其各位師兄在這次智能化課程設(shè)計(jì)當(dāng)中對(duì)我們的悉心教導(dǎo),使我們對(duì)單片機(jī)的軟件設(shè)計(jì)與硬件接線方面的知識(shí)有了很大的收獲,相對(duì)于以前的知識(shí)來(lái)說(shuō),我在這方面的知識(shí)有了一次質(zhì)的飛躍。另外,在設(shè)計(jì)與調(diào)試的過(guò)程中,我不斷的與周圍的同學(xué)交流,這也使我的知識(shí)得到了很大的提高。9參考文獻(xiàn)[1]康華光.電子技術(shù)基礎(chǔ).模擬部分(第五版).高等教育出版社.2006年1月[2]康華光.電子技術(shù)基礎(chǔ).數(shù)字部分(第五版).高等教育出版社.2006年1月[3]謝自美.電子線路設(shè)計(jì).實(shí)驗(yàn).測(cè)試(第三版).華中科技大學(xué)出版社.2006年8月[4]張毅剛.單片機(jī)原理及應(yīng)用.高等教育出版社.2003年12月[5]楊寶清.實(shí)用電路手冊(cè).機(jī)械工業(yè)出版社.2002年[6]張洪潤(rùn).電子線路及應(yīng)用.科學(xué)出版社.2002年附錄一圖附錄1原理圖圖附錄2PCB圖圖附錄3實(shí)物圖附錄二/******存儲(chǔ)部分********************/voidCstart(){ SDA=1; SCL=1; _nop_(); _nop_(); SDA=0; _nop_(); _nop_(); _nop_(); _nop_(); SCL=0; }voidstop(){ SDA=0; _nop_(); _nop_(); SCL=1; _nop_(); _nop_(); _nop_(); _nop_(); SDA=1;} unsignedcharshin(){unsignedchari,read_data; for(i=0;i<8;i++) {SCL=1;read_data<<=1;read_data|=(unsignedchar)SDA; SCL=0; } return(read_data); }bitshout(unsignedcharwrite_data){ unsignedchari; bitack_bit; for(i=0;i<8;i++) { SDA=(bit)(write_data&0x80); _nop_(); SCL=1; _nop_(); _nop_(); SCL=0; write_data<<=1; } SDA=1; _nop_(); _nop_(); SCL=1; _nop_(); _nop_(); _nop_(); _nop_(); ack_bit=SDA; SCL=0; returnack_bit; }voidCwrite_byte(unsignedcharaddr,unsignedcharwrite_data){ Cstart(); shout(OP_WRITE); shout(addr); shout(write_data); stop(); delay(10); }voidfill_byte(unsignedcharfill_data){ unsignedchari; for(i=0;i<MAX_ADDR;i++) { Cwrite_byte(i,fill_data); }}unsignedcharread_current(){ unsignedcharread_data; Cstart(); shout(OP_READ); read_data=shin(); stop(); returnread_data; }unsignedcharread_random(unsignedcharrandom_addr){ Cstart(); shout(OP_WRITE); shout(random_addr); return(read_current());}/*\*******時(shí)鐘部分************\********/voidstart(){ TMOD=0x11; TL0=(65536-50000)%256;TH0=(65536-50000)/256; EA=1; ET0=1; TR0=1; }voidshow(ucharadd,uchardate){ P0=dispbitcodeT[add]; P2=dispcode0[date];}voidshow1(ucharadd,uchardate){ uintmiao2=miao1*10+miao; P0=dispbitcodeT[add]; if(miao2%2==0) P2=dispcode0[date]; else P2=dispcode1[date];}voidtime1()interrupt1{ TL0=(65536-50000)%256; TH0=(65536-50000)/256; tt++; if(tt==18) { tt=0; miao++; if(miao==10) { miao=0; miao1++; if(miao1==6) { miao1=0; fen++; if(fen==10)\{\\fen=0;fen1++;if(fen1==6){fen1=0;shi++;if(shi==10){ shi=0; shi1++; if(shi1==2) {if(shi==4) {shi=0; shi1=0;}}}}}}}}}/*******按鍵部分****************/voiddelay_10ms(void)//延時(shí)//{unsignedchari,j;for(i=0;i>0;i--)for(j=248;j>0;j--);}voidgetkey(){unsignedcharx,y;P1=P1|0xE8;P3=0x7b;y=P1&0xe8;if(y!=0Xe8){delay_10ms();if(y!=0Xe8){P3=0XFB;x=P1&0xe8; if(x!=0xe8) {switch(x){ case0xe0:sure=1;break;//確定(s2)case0xc8:clock=1;max_c=0;time=0;sure=0;break;//“設(shè)置鬧鐘”(S3) case0xa8:if(num[s]==9){num[s]=0;break;}num[s]=num[s]+1;break;//"+"(S4)case0x68:if(s==3){s=0;break;}s=s+1;flash=s;break; //左移S5) } } else { P3=0X7f; x=P1&0xe8; if(x!=0xe8) {switch(x){case0xe0:time=1;max_c=0;clock=0;sure=0;break;//設(shè)定時(shí)間(S6)case0xc8:max_c=1;time=0;clock=0;sure=0;break; //設(shè)置報(bào)警溫度(S7)case0xa8:if(num[s]==0){num[s]=9;break;}num[s]=num[s]-1;break; //“-”(S8)case0x68:if(s==0){s=3;break;}s=s-1;flash=s;break; //右移 S9)} } }}}while((P1&0xe8)!=0xe8);//判斷按鍵是否松開(kāi) }voiddisplys(){if(sure==1){if(time==1){shi1=num[3];delay(1); shi=num[2]; delay(1); fen1=num[1];delay(1); fen=num[0]; delay(1); max_c=0;clock=0;time=0; }if(clock==1) {unsignedchari; SDA=1; SCL=1; fill_byte(0xff); for(i=0;i<4;i++) { Cwrite_byte(i,num[i]); } max_c=0;clock=0;time=0; }if(max_c==1){unsignedchari;SDA=1;SCL=1;fill_byte(0xff);for(i=4;i<8;i++) {Cwrite_byte(i,num[i]); } max_c=0;clock=0;time=0;}}if(time==1)switch(flash) { case0: for(i=0;i<110;i++) { getkey(); for(k=0;k<4;k++) {if(k==0) ++k; P0=dispbitcodeT[k]; P2=dispcode[num[k]]; delay1ms(); P0=0xff; } } for(i=0;i<110;i++) { getkey(); for(k=0;k<4;k++) { P0=dispbitcodeT[k]; P2=dispcode[num[k]]; delay1ms();P0=0xff; } } break;case1:for(i=0;i<110;i++) {getkey(); for(k=0;k<4;k++){ if(k==1) P0=dispbitcodeT[k]; P2=dispcode[num[k]]; delay1ms(); P0=0xff; } }for(i=0;i<110;i++) {getkey();for(k=0;k<4;k++){P0=dispbitcodeT[k]; P2=dispcode[num[k]]; delay1ms(); P0=0xff; } } break; case2:for(i=0;i<110;i++){getkey();for(k=0;k<4;k++){ if(k==2)k++;P0=dispbitcodeT[k]; P2=dispcode[num[k]]; delay1ms();P0=0xff; } } for(i=0;i<110;i++) { getkey(); for(k=0;k<4;k++){P0=dispbitcodeT[k]; P2=dispcode[num[k]]; delay1ms(); P0=0xff; } } break;case3:for(i=0;i<110;i++) { getkey(); for(k=0;k<3;k++) { P0=dispbitcodeT[k]; P2=dispcode[num[k]]; delay1ms(); P0=0xff; } } for(i=0;i<110;i++) { getkey(); for(k=0;k<4;k++) {P0=dispbitcodeT[k]; P2=dispcode[num[k]]; delay1ms();P0=0xff; }}break;} }} }if(max_c==1){{{chark; chari; switch(flash) { case0:for(i=0;i<110;i++) { getkey(); for(k=4;k<8;k++){if(k==4) ++k; P0=dispbitcodeT[k]; P2=dispcode[num[k-4]]; delay1ms(); P0=0xff; } }for(i=0;i<110;i++) { getkey(); for(k=4;k<8;k++) {P0=dispbitcodeT[k]; P2=dispcode[num[k-4]]; delay1ms(); P0=0xff; } } break;case1:for(i=0;i<110;i++) { getkey(); for(k=4;k<8;k++) { if(k==5) k++;P0=dispbitcodeT[k]; P2=dispcode[num[k-4]]; delay1ms(); P0=0xff; } } for(i=0;i<110;i++) { getkey(); for(k=4;k<8;k++) {P0=dispbitcodeT[k]; P2=dispcode[num[k-4]]; delay1ms(); P0=0xff; } } break;case2:for(i=0;i<110;i++) { getkey(); for(k=4;k<8;k++) { if(k==6) k++; P0=dispbitcodeT[k]; P2=dispcode[num[k-4]]; delay1ms(); P0=0xff; } } for(i=0;i<110;i++) {getkey();for(k=4;k<8;k++) {P0=dispbitcodeT[k]; P2=dispcode[num[k-4]]; delay1ms(); P0=0xff; } } break; case3:for(i=0;i<110;i++) { getkey(); for(k=4;k<7;k++) { P0=dispbitcodeT[k]; P2=dispcode[num[k-4]]; delay1ms(); P0=0xff; } } for(i=0;i<110;i++) { getkey(); for(k=4;k<8;k++) { P0=dispbitcodeT[k]; P2=dispcode[num[k-4]]; delay1ms(); P0=0xff; } } break;} }}}if(clock==1){{{chark;chari;switch(flash){case0: for(i=0;i<110;i++) { getkey(); for(k=0;k<4;k++) {if(k==0) ++k; P0=dispbitcodeT[k]; P2=dispcode[num[k]]; delay1ms(); P0=0xff; } } for(i=0;i<110;i++) { getkey(); for(k=0;k<4;k++) {P0=dispbitcodeT[k]; P2=dispcode[num[k]]; delay1ms(); P0=0xff; } } break;case1:for(i=0;i<110;i++) { getkey();for(k=0;k<4;k++){ if(k==1) k++;P0=dispbitcodeT[k]; P2=dispcode[num[k]]; delay1ms(); P0=0xff; } } for(i=0;i<110;i++) { getkey(); for(k=0;k<4;k++) { P0=dispbitcodeT[k]; P2=dispcode[num[k]]; delay1ms(); P0=0xff; } } break;case2:for(i=0;i<110;i++) getkey();for(k=0;k<4;k++) { if(k==2) k++;P0=dispbitcodeT[k]; P2=dispcode[num[k]]; delay1ms(); P0=0xff; } for(i=0;i<110;i++) { getkey(); for(k=0;k<4;k++) {P0=dispbitcodeT[k]; P2=dispcode[num[k]]; delay1ms(); P0=0xff; } } break;case3:for(i=0;i<110;i++) { getkey(); for(k=0;k<3;k++) { P0=dispbitcodeT[k]; P2=dispcode[num[k]]; delay1ms(); P0=0xff; } } for(i=0;i<110;i++) { getkey(); for(k=0;k<4;k++) { P0=dispbitcodeT[k]; P2=dispcode[num[k]]; delay1ms(); P0=0xff; } } break;}}}} }/*************主程序********/voidmain(void){start();while(1){chari;getkey();displys(); if(time==0&&max_c==0&&clock==0)get_tem(); show(0,fen);delay(1); show(1,fen1);delay(1); show1(2,shi);delay(1); show(3,shi1);delay(1); for(i=0;i<8;i++) {cun[i]=read_random(i); if(shi1==c
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024高考地理一輪復(fù)習(xí)第二部分人文地理-重在運(yùn)用第三章農(nóng)業(yè)地域的形成與發(fā)展第20講農(nóng)業(yè)的區(qū)位選擇課時(shí)作業(yè)含解析新人教版
- 小學(xué)藝術(shù)教育發(fā)展年度報(bào)告
- 吊籃安全管理措施
- 九年級(jí)歷史上冊(cè)第七單元工業(yè)革命和國(guó)際共產(chǎn)主義運(yùn)動(dòng)的興起中考真題演練課件新人教版
- 九年級(jí)英語(yǔ)全冊(cè)Unit5Whataretheshirtsmadeof第4課時(shí)習(xí)題課件3
- 醫(yī)學(xué)統(tǒng)計(jì)學(xué)課件-生存分析第十七章資料講解
- 二零二五年智能制造項(xiàng)目合作合同示范文本下載3篇
- 2024年陽(yáng)泉固莊煤礦醫(yī)院高層次衛(wèi)技人才招聘筆試歷年參考題庫(kù)頻考點(diǎn)附帶答案
- 二零二五年鋼結(jié)構(gòu)項(xiàng)目居間監(jiān)理咨詢合同3篇
- 2024年江西洪州職業(yè)學(xué)院高職單招職業(yè)技能測(cè)驗(yàn)歷年參考題庫(kù)(頻考版)含答案解析
- 提優(yōu)精練08-2023-2024學(xué)年九年級(jí)英語(yǔ)上學(xué)期完形填空與閱讀理解提優(yōu)精練(原卷版)
- 中央2025年全國(guó)人大機(jī)關(guān)直屬事業(yè)單位招聘18人筆試歷年典型考點(diǎn)(頻考版試卷)附帶答案詳解
- 2024年度美團(tuán)平臺(tái)商家入駐服務(wù)框架協(xié)議
- 2024至2030年四氯苯醌項(xiàng)目投資價(jià)值分析報(bào)告
- DB4511T 0002-2023 瓶裝液化石油氣充裝、配送安全管理規(guī)范
- 《肝衰竭診治指南(2024版)》解讀
- 2025年集體經(jīng)濟(jì)發(fā)展計(jì)劃
- 房地產(chǎn)銷售主管崗位招聘筆試題及解答(某大型央企)2024年
- 小學(xué)英語(yǔ)時(shí)態(tài)練習(xí)大全(附答案)-小學(xué)英語(yǔ)時(shí)態(tài)專項(xiàng)訓(xùn)練及答案
- GB∕T 39281-2020氣體保護(hù)電弧焊用高強(qiáng)鋼實(shí)心焊絲
- 醫(yī)護(hù)人員的禮儀
評(píng)論
0/150
提交評(píng)論