![單片機(jī)課設(shè)之光控路燈控制系統(tǒng)_第1頁(yè)](http://file4.renrendoc.com/view/e82882d7af540273ccd93dbc18a84b21/e82882d7af540273ccd93dbc18a84b211.gif)
![單片機(jī)課設(shè)之光控路燈控制系統(tǒng)_第2頁(yè)](http://file4.renrendoc.com/view/e82882d7af540273ccd93dbc18a84b21/e82882d7af540273ccd93dbc18a84b212.gif)
![單片機(jī)課設(shè)之光控路燈控制系統(tǒng)_第3頁(yè)](http://file4.renrendoc.com/view/e82882d7af540273ccd93dbc18a84b21/e82882d7af540273ccd93dbc18a84b213.gif)
![單片機(jī)課設(shè)之光控路燈控制系統(tǒng)_第4頁(yè)](http://file4.renrendoc.com/view/e82882d7af540273ccd93dbc18a84b21/e82882d7af540273ccd93dbc18a84b214.gif)
![單片機(jī)課設(shè)之光控路燈控制系統(tǒng)_第5頁(yè)](http://file4.renrendoc.com/view/e82882d7af540273ccd93dbc18a84b21/e82882d7af540273ccd93dbc18a84b215.gif)
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
單片機(jī)原理及應(yīng)用課程設(shè)計(jì)(論文)題目光控路燈控制系統(tǒng)學(xué)院名稱電氣工程學(xué)院指導(dǎo)教師職稱講師班級(jí)學(xué)號(hào)學(xué)生姓名2015年9月21日ⅰ摘要:隨著電子技術(shù)的發(fā)展,本設(shè)計(jì)是以AT89S52為主控器的模擬路燈控制系統(tǒng),具有對(duì)路燈的定時(shí)設(shè)定功能,也可以分別獨(dú)立控制路燈的開(kāi)啟和關(guān)閉;能夠同時(shí)具有調(diào)光功能,對(duì)路面的光線進(jìn)行調(diào)整,還可以按設(shè)定要求使路燈驅(qū)動(dòng)電源輸出功率在20%~100%范圍內(nèi)任意調(diào)節(jié)。在白天模式的時(shí)候,還能根據(jù)環(huán)境明暗的變化控制路燈的開(kāi)啟和關(guān)閉路燈,在夜晚模式的情況下,根據(jù)交通路面情況自動(dòng)開(kāi)關(guān)燈。自制的單元控制器中的LED燈恒流驅(qū)動(dòng)電源,在多數(shù)情況下,具有系統(tǒng)穩(wěn)定,功耗低等特點(diǎn)。關(guān)鍵詞:定時(shí)設(shè)定調(diào)光功率調(diào)節(jié) ⅱAbstract:Withthedevelopmentofelectronictechnology,ThedesignisbasedontheanalogcontrollerAT89S52-basedstreetlightcontrolsystems,whichhaveStreetlamptimesettingfunction,controlingtheopeningandclosingofthestreetSeparatelyandLight-adjustingfunction,Accordingtosetrequirementsstreetdrivingpoweroutputpowerinadjustablewithin20%~100%.Atthetimeofdaymode,Accordingtotheenvironmentalchangesoflightandshadelightonandoff;Inthecaseofthenightmode,AutomaticSwitchlampbasedontrafficroadconditions.Self-madecellcontrollerLEDlampconstantcurrentpowersupply,inmostcases,systemstability,lowpowercharacteristics.Keywords:Timingsettings,Light-adjusting,powerregulation,ⅲ目錄引言 1正文 21.光控路燈的設(shè)計(jì)系統(tǒng)概括 21.1工作原理 21.2系統(tǒng)框架圖及性能的要求及特點(diǎn) 21.3方案論證 32.系統(tǒng)硬件及原理圖的介紹 52.1單片機(jī)介紹 52.2DS1302時(shí)鐘芯片 92.31602液晶顯示 112.4光線檢測(cè)電路 152.5鍵盤及蜂鳴器電路 172.6模擬路燈控制電路 183.軟件設(shè)計(jì) 203.1主程序流程圖 203.2按鍵設(shè)定程序的設(shè)計(jì) 214.系統(tǒng)調(diào)試 244.1硬件調(diào)試 244.2軟件調(diào)試 24主要參考文獻(xiàn) 25致謝 26附錄:程序代碼 271.主程序 272.1602顯示程序 333.DS1302時(shí)鐘程序 384.SET_ONTIME.H 455.Keyfunction.h 56 南華大學(xué)電氣工程學(xué)院課程設(shè)計(jì)(論文)第97頁(yè)/共68頁(yè)引言隨著我國(guó)城市的發(fā)展、經(jīng)濟(jì)的繁榮、社會(huì)的進(jìn)步和人們提高生活水平及環(huán)境質(zhì)量的要求,城市道路照明和城市的夜景照明已經(jīng)成為城市規(guī)劃、建設(shè)和管理中的一項(xiàng)重要工作。城市道路照明是方便城市居民必備的生活條件,而城市的夜景照明是再塑和美化城市形象、鼓舞民心、振奮精神的一項(xiàng)非常有意義的工作。近幾年來(lái),全國(guó)許多大城市、甚至一些中小城市的各級(jí)領(lǐng)導(dǎo),都格外重視道路照明和夜景照明工作。城市亮化作為形象工程的重要組成部分,越來(lái)越被政府所重視,大量的資金投入進(jìn)行建設(shè)和改造,使得我們的城市夜晚變得燈火輝煌,絢麗多彩,但問(wèn)題也隨之而來(lái),能耗的逐年攀升,由此產(chǎn)生的某些問(wèn)題亦逐漸顯露出來(lái),如城市路燈的維護(hù)量增大,帶來(lái)人員不足;維護(hù)費(fèi)用增加,社會(huì)成本過(guò)高,電費(fèi)支出過(guò)多,財(cái)政承擔(dān)相對(duì)困難;光污染現(xiàn)象嚴(yán)重等等,這些問(wèn)題的產(chǎn)生無(wú)疑給當(dāng)?shù)氐穆窡艄芾聿块T的各方面工作帶來(lái)很大的壓力,急切加以解決。尤其是在當(dāng)前環(huán)境條件每況愈下的形勢(shì)下,低碳、節(jié)能、環(huán)保越來(lái)越收到人們的重視。舊式的控制系統(tǒng)存在功耗大,公共資源得不到充分應(yīng)用,效率低等消極影響。伴隨著微電子技術(shù)的發(fā)展和單片機(jī)技術(shù)在各行各業(yè)中的應(yīng)用,由于單片機(jī)具有集成度高,處理能力強(qiáng),可靠性高,系統(tǒng)結(jié)構(gòu)簡(jiǎn)單,價(jià)格低廉的優(yōu)點(diǎn),因此在路燈照明工程中被廣泛應(yīng)用。單片機(jī)技術(shù)中的計(jì)時(shí)系統(tǒng)是單片機(jī)在的一個(gè)典型的應(yīng)用。通過(guò)計(jì)時(shí)系統(tǒng)來(lái)對(duì)時(shí)間進(jìn)行有效的控制。在路燈設(shè)計(jì)的定時(shí)系統(tǒng)中將得到更好的應(yīng)用。近幾十年來(lái),基于單片機(jī)的路燈智能控制系統(tǒng)對(duì)城市路燈系統(tǒng)進(jìn)行全面的升級(jí),不僅實(shí)現(xiàn)了智能控制,而且降低了運(yùn)行成本。因此,智能路燈控制系統(tǒng)的推廣,可以改變城建系統(tǒng)企業(yè)傳統(tǒng)的管理服務(wù)方式,提高服務(wù)效率,并對(duì)提高城市形象起到了極大的推動(dòng)作用。路燈已經(jīng)成為一個(gè)城市的照明系統(tǒng)中不可分割和替代的一部分,在城市照明中發(fā)揮著舉足輕重的作用,而其所依靠的就是路燈自動(dòng)控制系統(tǒng)。路燈的自動(dòng)控制方便了工作人員的管理。本系統(tǒng)實(shí)用性強(qiáng)、操作簡(jiǎn)單,附帶了周圍環(huán)境檢測(cè)功能,可以根據(jù)周圍環(huán)境亮度開(kāi)啟和關(guān)閉路燈。正文1.光控路燈的設(shè)計(jì)系統(tǒng)概括1.1工作原理本設(shè)計(jì)是以光敏電阻可以根據(jù)外界光線的強(qiáng)度而改變自身阻值的特性(光線越強(qiáng),阻值越??;光線越弱,阻值越大)為基礎(chǔ)設(shè)計(jì)的光控路燈自動(dòng)化控制系統(tǒng)。其原理是利用光敏電阻感受外界光線強(qiáng)度并體現(xiàn)在自身阻值的變化上,然后根據(jù)這一阻值的大小來(lái)判斷外界的光線亮度情況,然后根據(jù)所得數(shù)據(jù)判斷LED是該亮起還是該滅掉。1.2系統(tǒng)框架圖及性能的要求及特點(diǎn)圖1.1系統(tǒng)的框圖結(jié)構(gòu)此圖采用STC89C52為主控芯片進(jìn)行設(shè)計(jì),時(shí)鐘芯片為DS1302,液晶為1602,其需要實(shí)現(xiàn)的功能為:(1)
根據(jù)控制技術(shù)的特點(diǎn),進(jìn)行路燈系統(tǒng)設(shè)計(jì)的整體研究與設(shè)計(jì)。(2)根據(jù)光線的明暗,光線暗時(shí)自動(dòng)開(kāi)燈,光線亮?xí)r自動(dòng)關(guān)燈。
(3)通過(guò)按鍵可對(duì)相關(guān)的參數(shù)值進(jìn)行設(shè)置,從而實(shí)現(xiàn)定時(shí)開(kāi)關(guān)燈。
(4)在午夜之后降低電壓以調(diào)節(jié)路燈亮度,實(shí)現(xiàn)調(diào)壓。
(5)在午夜之后實(shí)現(xiàn)隔一亮一效果,避免浪費(fèi)電資源。1.3方案論證1.3.1中央控制模塊方案一:采用單片機(jī)控制,利用以C51系列為核心的單片機(jī)系統(tǒng)控制兩盞LED開(kāi)關(guān)燈時(shí)間,利用單片機(jī)的內(nèi)部時(shí)鐘與外部中斷能夠滿足系統(tǒng)設(shè)計(jì)要求,且成本較低,適合路燈系統(tǒng)的大規(guī)模建設(shè)。方案二:采用AVR單片機(jī)控制,AVR單片機(jī)是ATMEL公司研制開(kāi)發(fā)的一種新型單片機(jī),運(yùn)行速度快,內(nèi)部資源豐富,驅(qū)動(dòng)能力強(qiáng),具備多種獨(dú)立的時(shí)鐘分頻器。但是在本系統(tǒng)設(shè)計(jì)中,如果選擇AVR單片機(jī)則造成單片機(jī)的資源浪費(fèi)。方案三:用可編程邏輯器件FPGA作為控制器,F(xiàn)PGA可以實(shí)現(xiàn)各種復(fù)雜的邏輯功能、規(guī)模大、密度高、體積小、穩(wěn)定性高、IO資源豐富、易于進(jìn)行功能擴(kuò)展。采用并行的輸入輸出方式,提高了系統(tǒng)的處理速度,適合作為大規(guī)??刂葡到y(tǒng)的控制核心。但本系統(tǒng)不需要復(fù)雜的邏輯功能,對(duì)數(shù)據(jù)的處理速度的要求也不是非常高。且從使用、功耗及經(jīng)濟(jì)的角度考慮放棄此方案。綜合以上各方案優(yōu)點(diǎn)分析,最后確定選擇方案一。1.3.2顯示模塊方案一:LED數(shù)碼顯示,控制起來(lái)比較簡(jiǎn)單,編程也不是很難,但是在實(shí)際電路中,焊接比較煩瑣,占用空間大,對(duì)人眼有一定的損害,還要有相應(yīng)的蕊片組合,占用資源等。方案二:LED點(diǎn)陣顯示,LED點(diǎn)陣顯示雖然能顯示字符和數(shù)字,但顯示效果不好,且不易編程。方案三:LCD液晶顯示,LCD液晶不但能顯示字符和數(shù)字,而且顯示效果較好,對(duì)人眼損害很弱,再次LCD又是一種節(jié)能燈,功耗小,使用壽命長(zhǎng)等優(yōu)點(diǎn),不需要外加蕊片組合,可以直接與單片機(jī)連接,容易編程實(shí)現(xiàn),使用起來(lái)十分方便,有長(zhǎng)遠(yuǎn)的價(jià)值。綜合以上各方案優(yōu)缺點(diǎn)分析,本設(shè)計(jì)不需要強(qiáng)大的漢字顯示,也沒(méi)有復(fù)雜的系統(tǒng)顯示,最終選擇方案三。1.3.3光線感應(yīng)模塊方案一:采用光敏電阻對(duì)光源的感應(yīng)改變自身電阻,由電壓比較器提取之間電壓,考慮到電阻變化的靈敏度,采用兩個(gè)光敏電阻串聯(lián)的方式,通過(guò)改變與光敏電阻串聯(lián)的電位器的值可以調(diào)節(jié)光敏電阻的感光范圍。另外考慮到現(xiàn)實(shí)中光控制技術(shù)的運(yùn)用已經(jīng)證明了光敏電阻完全可以達(dá)到要求,且價(jià)格便宜,電路簡(jiǎn)單。方案二:采用光敏二極管感受外屆光照變化,無(wú)光照時(shí),有很小的飽和反向漏電流,二極管截止;光照時(shí)反向電流增大,形成光電流。綜合以上各方案優(yōu)缺點(diǎn)分析,最終選擇方案一。1.3.4時(shí)鐘模塊方案一:采用專用的時(shí)鐘芯片,現(xiàn)在流行的時(shí)鐘芯片電路很多,如DS1302、DS1307等。它的優(yōu)點(diǎn)是可以單獨(dú)使用,直接將時(shí)鐘信息存儲(chǔ)在時(shí)鐘芯片中,利用時(shí)鐘芯片自帶的定時(shí)器定時(shí),中央控制模塊讀取該時(shí)鐘芯片時(shí)鐘信息,節(jié)省其系統(tǒng)資源,精度較高。其缺點(diǎn)是占用單片機(jī)IO口資源,而且在讀寫串行口的內(nèi)容時(shí),消耗了其運(yùn)行時(shí)間。方案二:利用555定時(shí)器組建定時(shí)模塊555,555定時(shí)器具有成本低,性能可靠等優(yōu)勢(shì),雖然能夠做到精確定時(shí)但不具備儲(chǔ)存時(shí)間信息的能力。方案三:采用單片機(jī)內(nèi)置時(shí)鐘振蕩及定時(shí)器構(gòu)件時(shí)鐘平臺(tái),該方案直接利用單片機(jī)內(nèi)置定時(shí)器,通過(guò)定時(shí)器的中斷和簡(jiǎn)單運(yùn)算實(shí)現(xiàn)時(shí)鐘功能。不過(guò)其沒(méi)有外置電路,充分利用了單片機(jī)的定時(shí)器功能,實(shí)施簡(jiǎn)潔方便,主要缺點(diǎn)是死機(jī)或斷電后,需要人工重新設(shè)定。綜合以上各方案優(yōu)缺點(diǎn)分析,又考慮到單片機(jī)的IO口足夠,故選用方案一。1.3.5按鍵控制模塊方案一:都采用輕觸按鍵。2.系統(tǒng)硬件及原理圖的介紹2.1單片機(jī)介紹2.1.1STC89C52簡(jiǎn)介STC89C52是一種低功耗、高性能CMOS8位微控制器,具有8K在系統(tǒng)可編程Flash存儲(chǔ)器。在單芯片上,擁有靈巧的8位CPU和在系統(tǒng)可編程Flash,使得STC89C52為眾多嵌入式控制應(yīng)用系統(tǒng)提供高靈活、超有效的解決方案。具有以下標(biāo)準(zhǔn)功能:8k字節(jié)Flash,512字節(jié)RAM,32位I/O口線,看門狗定時(shí)器,內(nèi)置4KBEEPROM,MAX810復(fù)位電路,三個(gè)16位定時(shí)器/計(jì)數(shù)器,一個(gè)6向量2級(jí)中斷結(jié)構(gòu),全雙工串行口。另外STC89C52可降至0Hz靜態(tài)邏輯操作,支持2種軟件可選擇節(jié)電模式??臻e模式下,CPU停止工作,允許RAM、定時(shí)器/計(jì)數(shù)器、串口、中斷繼續(xù)工作。掉電保護(hù)方式下,RAM內(nèi)容被保存,振蕩器被凍結(jié),單片機(jī)一切工作停止,直到下一個(gè)中斷或硬件復(fù)位為止。最高運(yùn)作頻率35Mhz,6T/12T可選。圖2.1STC89C52的電路連接圖2.1.2STC89C52的工作原理圖2.1為STC89C52連接所有原器件總的電路連接圖,該圖實(shí)現(xiàn)了由光敏電阻感受光線強(qiáng)度,當(dāng)電線到達(dá)一定程度時(shí),電阻阻值達(dá)到臨界值,把信息傳遞給單片機(jī),由單片機(jī)來(lái)控制路燈的亮與滅;通過(guò)按鍵,把輸入的信息傳遞給單片機(jī),由單片機(jī)控制時(shí)鐘DS1302來(lái)定時(shí),通過(guò)單片機(jī),把信息傳遞給液晶顯示屏,由液晶顯示屏顯示當(dāng)前的時(shí)間,以及定時(shí)的時(shí)間,再把時(shí)鐘設(shè)定的亮燈與滅燈的時(shí)間傳遞給單片機(jī),由單片機(jī)來(lái)控制路燈的亮與滅,STC89C52單片機(jī)的引腳說(shuō)明a)VCC:供電電壓。b)GND:接地。c)P0口:P0口為一個(gè)8位漏級(jí)開(kāi)路雙向I/O口,每腳可吸收8TTL門電流。當(dāng)P1口的管腳第一次寫1時(shí),被定義為高阻輸入。P0能夠用于外部程序數(shù)據(jù)存儲(chǔ)器,它可以被定義為數(shù)據(jù)/地址的第八位。在FIASH編程時(shí),P0口作為原碼輸入口,當(dāng)FIASH進(jìn)行校驗(yàn)時(shí),P0輸出原碼,此時(shí)P0外部必須被拉高。d)P1口:P1口是一個(gè)內(nèi)部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。P1口管腳寫入1后,被內(nèi)部上拉為高,可用作輸入,P1口被外部下拉為低電平時(shí),將輸出電流,這是由于內(nèi)部上拉的緣故。在FLASH編程和校驗(yàn)時(shí),P1口作為第八位地址接收。e)P2口:P2口為一個(gè)內(nèi)部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個(gè)TTL門電流,當(dāng)P2口被寫“1”時(shí),其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入時(shí),P2口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。P2口當(dāng)用于外部程序存儲(chǔ)器或16位地址外部數(shù)據(jù)存儲(chǔ)器進(jìn)行存取時(shí),P2口輸出地址的高八位。在給出地址“1”時(shí),它利用內(nèi)部上拉優(yōu)勢(shì),當(dāng)對(duì)外部八位地址數(shù)據(jù)存儲(chǔ)器進(jìn)行讀寫時(shí),P2口輸出其特殊功能寄存器的內(nèi)容。P2口在FLASH編程和校驗(yàn)時(shí)接收高八位地址信號(hào)和控制信號(hào)。f)P3口:P3口管腳是8個(gè)帶內(nèi)部上拉電阻的雙向I/O口,可接收輸出4個(gè)TTL門電流。當(dāng)P3口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3口將輸出電流(ILL)這是由于上拉的緣故。g)I/O口作為輸入口時(shí)有兩種工作方式,即所謂的讀端口與讀引腳。讀端口時(shí)實(shí)際上并不從外部讀入數(shù)據(jù),而是把端口鎖存器的內(nèi)容讀入到內(nèi)部總線,經(jīng)過(guò)某種運(yùn)算或變換后再寫回到端口鎖存器。只有讀端口時(shí)才真正地把外部的數(shù)據(jù)讀入到內(nèi)部總線。上面圖中的兩個(gè)三角形表示的就是輸入緩沖器CPU將根據(jù)不同的指令分別發(fā)出讀端口或讀引腳信號(hào)以完成不同的操作。這是由硬件自動(dòng)完成的,不需要我們操心,1然后再實(shí)行讀引腳操作,否則就可能讀入出錯(cuò),為什么看上面的圖,如果不對(duì)端口置1端口鎖存器原來(lái)的狀態(tài)有可能為0Q端為0Q^為1加到場(chǎng)效應(yīng)管柵極的信號(hào)為1,該場(chǎng)效應(yīng)管就導(dǎo)通對(duì)地呈現(xiàn)低阻抗,此時(shí)即使引腳上輸入的信號(hào)為1,也會(huì)因端口的低阻抗而使信號(hào)變低使得外加的1信號(hào)讀入后不一定是1。若先執(zhí)行置1操作,則可以使場(chǎng)效應(yīng)管截止引腳信號(hào)直接加到三態(tài)緩沖器中實(shí)現(xiàn)正確的讀入,由于在輸入操作時(shí)還必須附加一個(gè)準(zhǔn)備動(dòng)作,所以這類I/O口被稱為準(zhǔn)雙向口。89C51的P0/P1/P2/P3口作為輸入時(shí)都是準(zhǔn)雙向口。圖2.2晶振電路晶振的負(fù)載電容=[(Cd*Cg)/(Cd+Cg)]+Cic+△C式中Cd,Cg為分別接在晶振的兩個(gè)腳上和對(duì)地的電容,Cic(集成電路內(nèi)部電容)+△C(PCB上電容)經(jīng)驗(yàn)值為3至5pf。2.1.3晶振電路的作用電容大小沒(méi)有固定值,一般二三十P,如圖3.2中使用的是30P,晶振是給單片機(jī)提供工作信號(hào)脈沖的。這個(gè)脈沖就是單片機(jī)的工作速度。比如12M晶振,單片機(jī)工作速度就是每秒12M,和電腦的CPU概念一樣,圖3.2中用的是11.0592M晶振。當(dāng)然,單片機(jī)的工作頻率是有范圍的,不能太大,一般24M就不上去了,不然不穩(wěn)定。2.1.4晶振電路的原理晶振是晶體振蕩器的簡(jiǎn)稱,在電氣上它可以等效成一個(gè)電容和一個(gè)電阻并聯(lián)再串聯(lián)一個(gè)電容的二端網(wǎng)絡(luò),電工學(xué)上這個(gè)網(wǎng)絡(luò)有兩個(gè)諧振點(diǎn),以頻率的高低分其中較低的頻率是串聯(lián)諧振,較高的頻率是并聯(lián)諧振。由于晶體自身的特性致使這兩個(gè)頻率的距離相當(dāng)?shù)慕咏?,在這個(gè)極窄的頻率范圍內(nèi),晶振等效為一個(gè)電感,所以只要晶振的兩端并聯(lián)上合適的電容它就會(huì)組成并聯(lián)諧振電路。這個(gè)并聯(lián)諧振電路加到一個(gè)負(fù)反饋電路中就可以構(gòu)成正弦波振蕩電路,由于晶振等效為電感的頻率范圍很窄,所以即使其他元件的參數(shù)變化很大,這個(gè)振蕩器的頻率也不會(huì)有很大的變化。2.2DS1302時(shí)鐘芯片時(shí)鐘模塊主要功能是時(shí)間設(shè)置,主要由DS1302芯片實(shí)現(xiàn),它通過(guò)串行方式與單片機(jī)進(jìn)行數(shù)據(jù)傳遞,能夠向單片機(jī)提供包括秒、分、時(shí)、日、月、年等在內(nèi)的實(shí)時(shí)時(shí)間信息,并可對(duì)月末日期、閏年天數(shù)自動(dòng)調(diào)整;它還擁有用于主電源和備份電源的雙電源引腳,在主電源關(guān)閉的情況下,也能保持時(shí)鐘的連續(xù)運(yùn)行。另外,它還能提供31字節(jié)的用于高速數(shù)據(jù)暫存的RAM。鑒于上述特點(diǎn),DS1302已在許多單片機(jī)系統(tǒng)中得到應(yīng)用,為系統(tǒng)提供所需的實(shí)時(shí)時(shí)鐘信息。DS1302是DALLAS公司推出的涓流充電時(shí)鐘芯片,內(nèi)含有一個(gè)實(shí)時(shí)時(shí)鐘/日歷和31字節(jié)靜態(tài)RAM,通過(guò)簡(jiǎn)單的串行接口與單片機(jī)進(jìn)行通信實(shí)時(shí)時(shí)鐘/日歷電路.提供秒分時(shí)日日期.月年的信息,每月的天數(shù)和閏年的天數(shù)可自動(dòng)調(diào)整時(shí)鐘操作可通過(guò)AM/PM指示決定采用24或12小時(shí)格式.DS1302與單片機(jī)之間能簡(jiǎn)單地采用同步串行的方式進(jìn)行通信,僅需用到三個(gè)口線:1RES復(fù)位,2I/O數(shù)據(jù)線,3SCLK串行時(shí)鐘.時(shí)鐘/RAM的讀/寫數(shù)據(jù)以一個(gè)字節(jié)或多達(dá)31個(gè)字節(jié)的字符組方式通信.DS1302工作時(shí)功耗很低,保持?jǐn)?shù)據(jù)和時(shí)鐘信息時(shí)功率小于1mW.DS1302是由DS1202改進(jìn)而來(lái),增加了以下的特性.雙電源管腳用于主電源和備份電源供應(yīng)Vcc1,為可編程涓流充電電源附加七個(gè)字節(jié)存儲(chǔ)器.它廣泛應(yīng)用于電話傳真便攜式儀器以及電池供電的儀器儀表等產(chǎn)品領(lǐng)域。如圖2.3為DS1302時(shí)鐘電路圖:圖2.3DS1302電路圖2.2.1DS1302的工作原理DS1302工作時(shí)為了對(duì)任何數(shù)據(jù)傳送進(jìn)行初始化,需要將復(fù)位腳(RST)置為高電平且將8位地址和命令信息裝入移位寄存器。數(shù)據(jù)在時(shí)鐘(SCLK)的上升沿串行輸入,前8位指定訪問(wèn)地址,命令字裝入移位寄存器后,在之后的時(shí)鐘周期,讀操作時(shí)輸出數(shù)據(jù),寫操作時(shí)輸出數(shù)據(jù)。時(shí)鐘脈沖的個(gè)數(shù)在單字節(jié)方式下為8+8(8位地址+8位數(shù)據(jù)),在多字節(jié)方式下為8加最多可達(dá)248的數(shù)據(jù)。圖2.3為DS1302與STC89C52單片機(jī)連接的電路圖,當(dāng)給VCC2加入5V電源時(shí),時(shí)鐘芯片啟動(dòng),此時(shí)有系統(tǒng)時(shí)間;關(guān)掉電源時(shí),有后備電源VCC1,以至于使時(shí)鐘能夠連續(xù)運(yùn)行,保持時(shí)間和日期數(shù)據(jù)。當(dāng)下一次打開(kāi)電源時(shí),保證時(shí)間和當(dāng)前的時(shí)間一樣。2.2.2DS1302的引腳說(shuō)明圖2.3顯示出DS1302的引腳排列,其中Vcc1為后備電源,Vcc2為主電源。在主電源關(guān)閉的情況下,也能保持時(shí)鐘的連續(xù)運(yùn)行,保持時(shí)間和日期數(shù)據(jù)。DS1302工作于Vcc1和Vcc2兩者中的較大者供電。當(dāng)Vcc2比Vcc1高0.2V時(shí),Vcc2給DS1302供電。當(dāng)Vcc1高于Vcc2時(shí),DS1302由Vcc1供電。X1和X2是振蕩源,與標(biāo)準(zhǔn)的32.768KHz石英晶體連接。DS1302也可以被外部的32.768kHz震蕩器驅(qū)動(dòng)。這種配置下,X1與外部震蕩信號(hào)連接,X2懸浮。GND電源接地。RST是復(fù)位/片選線,此管腳內(nèi)部有一個(gè)40K的下拉電阻連接倒地,通過(guò)把RST輸入驅(qū)動(dòng)置高電平來(lái)啟動(dòng)所有的數(shù)據(jù)傳送。RST輸入有兩種功能:首先,RST接通控制邏輯,允許地址/命令序列送入移位寄存器;其次,RST提供終止單字節(jié)或多字節(jié)數(shù)據(jù)的傳送手段。當(dāng)RST為高電平時(shí),所有的數(shù)據(jù)傳送被初始化,允許對(duì)DS1302進(jìn)行操作。如果在傳送過(guò)程中RST置為低電平,則會(huì)終止此次數(shù)據(jù)傳送,I/O引腳變?yōu)楦咦钁B(tài)。上電路運(yùn)行時(shí),在VCC遠(yuǎn)大于2.5V之前,RST必須保持低電平。只有在SCLK為低電平時(shí),才能將RST置為高電平。I/O為三線接口的雙向數(shù)據(jù)管腳,SCLK始終是輸入端,SCLK用來(lái)同步串行接口上的數(shù)據(jù)動(dòng)作。2.31602液晶顯示1602液晶顯示的原理是利用液晶的物理特性,接通電源,對(duì)其顯示區(qū)域進(jìn)行控制,只要通了電就有顯示,從而顯示出圖形。該1602液晶顯示具有厚度薄、適用于大規(guī)模集成電路直接驅(qū)動(dòng),它是數(shù)字式的,和單片機(jī)的借口簡(jiǎn)單可靠,操作更加方便,液晶顯示器每一個(gè)點(diǎn)再接收到信號(hào)后就一直保持那種色彩和亮度,恒定發(fā)光,液晶顯示器畫質(zhì)高且不會(huì)閃爍;并且體積較小,重量較輕,耗電量也比其它顯示器要少得多。圖2.4LCD1602液晶顯示連接圖2.3.1液晶引腳說(shuō)明表2.1LCD1602引腳功能表編號(hào)符號(hào)引腳說(shuō)明編號(hào)符號(hào)引腳說(shuō)明1VSS電源地9D2數(shù)據(jù)2VDD電源正極10D3數(shù)據(jù)3VL液晶顯示偏壓11D4數(shù)據(jù)4RS數(shù)據(jù)/命令選擇12D5數(shù)據(jù)5R/W讀/寫選擇13D6數(shù)據(jù)6E使能信號(hào)14D7數(shù)據(jù)7D0數(shù)據(jù)15BLA背光源正極8D1數(shù)據(jù)16BLK背光源負(fù)極第1腳:VSS為地電源。第2腳:VDD接5V正電源。第3腳:V0為液晶顯示器對(duì)比度調(diào)整端,接正電源時(shí)對(duì)比度最弱,接地時(shí)對(duì)比度最高,對(duì)比度過(guò)高時(shí)會(huì)產(chǎn)生“鬼影”,使用時(shí)可以通過(guò)一個(gè)10K的電位器調(diào)整對(duì)比度。第4腳:RS為寄存器選擇,高電平時(shí)選擇數(shù)據(jù)寄存器、低電平時(shí)選擇指令寄存器。第5腳:R/W為讀寫信號(hào)線,高電平時(shí)進(jìn)行讀操作,低電平時(shí)進(jìn)行寫操作。當(dāng)RS和R/W共同為低電平時(shí)可以寫入指令或者顯示地址,當(dāng)RS為低電平R/W為高電平時(shí)可以讀忙信號(hào),當(dāng)RS為高電平R/W為低電平時(shí)可以寫入數(shù)據(jù)。第6腳:E端為使能端,當(dāng)E端由高電平跳變成低電平時(shí),液晶模塊執(zhí)行命令。第7~14腳:D0~D7為8位雙向數(shù)據(jù)線。第15腳:背光電源5.5V正電壓。第16腳:背光電源負(fù)極。2.3.2液晶屏中的字符顯示用LCD顯示一個(gè)字符時(shí)比較復(fù)雜,因?yàn)橐粋€(gè)字符由6乘8或8乘8點(diǎn)陣組成,既要找到和顯示屏幕上某幾個(gè)位置對(duì)應(yīng)的顯示RAM區(qū)的8字節(jié),還需要使每個(gè)字節(jié)的不同位為1,其它的為0,為1的點(diǎn)亮,為0的不點(diǎn)亮。這樣一來(lái)就組成了某個(gè)字符。但由于內(nèi)帶字符發(fā)生器的控制器來(lái)說(shuō),顯示字符就比較簡(jiǎn)單了,可以讓控制器工作在文本方式,根據(jù)在LCD上開(kāi)始顯示的行列號(hào)及每行的列數(shù)找出顯示RAM對(duì)應(yīng)的地址,設(shè)立光標(biāo),在此送上該字符對(duì)應(yīng)的代碼就好了。2.3.3LCD1602的指令說(shuō)明及時(shí)序LCD1602液晶模塊內(nèi)部的控制器共有11條控制指令,如表所示:表2.2控制指令表序號(hào)指令RSR/WD7D6D5D4D3D2D1D01清顯示00000000012光標(biāo)返回000000001*3置輸入模式00000001I/DS4顯示開(kāi)/關(guān)控制0000001DCB5光標(biāo)或字符移位000001S/CR/L**6置功能00001DLNF**7置字符發(fā)生存貯器地址0001字符發(fā)生存貯器地址8置數(shù)據(jù)存貯器地址001顯示數(shù)據(jù)存貯器地址9讀忙標(biāo)志或地址01BF計(jì)時(shí)器地址10寫數(shù)到CGRAM或DDRAM10要寫的數(shù)據(jù)內(nèi)容11從CGRAM或DDRAM讀數(shù)11讀出的數(shù)據(jù)內(nèi)容指令1:清顯示,指令碼01H,光標(biāo)復(fù)位到地址00H位置。
指令2:光標(biāo)復(fù)位,光標(biāo)返回到地址00H。
指令3:光標(biāo)和顯示模式設(shè)置
I/D:光標(biāo)移動(dòng)方向,高電平右移,低電平左移
S:屏幕上所有文字是否左移或者右移。高電平表示有效,低電平則無(wú)效。
指令4:顯示開(kāi)關(guān)控制。
D:控制整體顯示的開(kāi)與關(guān),高電平表示開(kāi)顯示,低電平表示關(guān)顯示
C:控制光標(biāo)的開(kāi)與關(guān),高電平表示有光標(biāo),低電平表示無(wú)光標(biāo)
B:控制光標(biāo)是否閃爍,高電平閃爍,低電平不閃爍。
指令5:光標(biāo)或顯示移位
S/C:高電平時(shí)移動(dòng)顯示的文字,低電平時(shí)移動(dòng)光標(biāo)。
指令6:功能設(shè)置命令
DL:高電平時(shí)為4位總線,低電平時(shí)為8位總線
N:低電平時(shí)為單行顯示,高電平時(shí)雙行顯示
F:
低電平時(shí)顯示5x7的點(diǎn)陣字符,高電平時(shí)顯示5x10的點(diǎn)陣字符。
指令7:字符發(fā)生器RAM地址設(shè)置。
指令8:DDRAM地址設(shè)置。指令9:讀忙信號(hào)和光標(biāo)地址
BF:為忙標(biāo)志位,高電平表示忙,此時(shí)模塊不能接收命令或者數(shù)據(jù),如果為低電平表示不忙。
指令10:寫數(shù)據(jù)。
指令11:讀數(shù)據(jù)。2.3.4液晶工作原理由上圖3.3液晶顯示1602與單片機(jī)的連接圖,把時(shí)鐘存入單片機(jī)中的當(dāng)前的時(shí)間以及定時(shí)的時(shí)間由單片機(jī)傳遞給1602液晶顯示屏,由液晶顯示屏顯示出來(lái)。2.4光線檢測(cè)電路2.4.1光敏電阻工作原理光敏電阻器是利用半導(dǎo)體的光電效應(yīng)制成的一種電阻值隨入射光的強(qiáng)弱而改變的電阻器;入射光強(qiáng),電阻減小,入射光弱,電阻增大。光敏電阻器一般用于光的測(cè)量、光的控制和光電轉(zhuǎn)換(將光的變化轉(zhuǎn)換為電的變化)。常用的光敏電阻器硫化鎘光敏電阻器,它是由半導(dǎo)體材料制成的。光敏電阻器的阻值隨入射光線(可見(jiàn)光)的強(qiáng)弱變化而變化,在黑暗條件下,它的阻值(暗阻)可達(dá)1~10M歐,在強(qiáng)光條件(100LX)下,它阻值(亮阻)僅有幾百至數(shù)千歐姆。光敏電阻器對(duì)光的敏感性(即光譜特性)與人眼對(duì)可見(jiàn)光(0.4~0.76)μm的響應(yīng)很接近,只要人眼可感受的光,都會(huì)引起它的阻值變化。設(shè)計(jì)光控電路時(shí),都用白熾燈(小電珠)光線或自然光線作控制光源,使設(shè)計(jì)大為簡(jiǎn)化。光敏電阻的工作原理是基于內(nèi)光電效應(yīng)。在半導(dǎo)體光敏材料兩端裝上電極引線,將其封裝在帶有透明窗的管殼里就構(gòu)成光敏電阻,為了增加靈敏度,兩電極常做成梳狀。用于制造光敏電阻的材料主要是金屬的硫化物、硒化物和碲化物等半導(dǎo)體。通常采用涂敷、噴涂、燒結(jié)等方法在絕緣襯底上制作很薄的光敏電阻體。圖2.5光線檢測(cè)電路當(dāng)光線強(qiáng)的時(shí)候,光敏電阻的阻值變大,由于總電壓不變,以至于光敏電阻分壓變大,“+”端電壓高于“—”端電壓,輸出管截止,從而路燈不亮;當(dāng)光線暗的時(shí)候,光敏電阻的阻值變小,以至于光敏電阻分壓變小,“+”端電壓低于“—”端電壓,輸出管導(dǎo)通,使路燈變量。2.4.4LM339工作原理LM339電壓比較器芯片內(nèi)部裝有四個(gè)獨(dú)立的電壓比較器,是很常見(jiàn)LM339引腳圖的集成電路。利用lm339可以方便的組成各種電壓比較器電路和振蕩器電路。LM339類似于增益不可調(diào)的運(yùn)算放大器。每個(gè)比較器有兩個(gè)輸入端和一個(gè)輸出端。兩個(gè)輸入端一個(gè)稱為同相輸入端,用“+”表示,另一個(gè)稱為反相輸入端,用“-”表示。用作比較兩個(gè)電壓時(shí),任意一個(gè)輸入端加一個(gè)固定電壓做參考電壓(也稱為門限電平,它可選擇LM339輸入共模范圍的任何一點(diǎn)),另一端加一個(gè)待比較的信號(hào)電壓。當(dāng)“+”端電壓高于“-”端時(shí),輸出管截止,相當(dāng)于輸出端開(kāi)路。當(dāng)“-”端電壓高于“+”端時(shí),輸出管飽和,相當(dāng)于輸出端接低電位。兩個(gè)輸入端電壓差別大于10mV就能確保輸出能從一種狀態(tài)可靠地轉(zhuǎn)換到另一種狀態(tài),因此,把LM339用在弱信號(hào)檢測(cè)等場(chǎng)合是比較理想的。LM339的輸出端相當(dāng)于一只不接集電極電阻的晶體三極管,在使用時(shí)輸出端到正電源一般須接一只電阻(稱為上拉電阻,選3-15K)。選不同阻值的上拉電阻會(huì)影響輸出端高電位的值。因?yàn)楫?dāng)輸出晶體三極管截止時(shí),它的集電極電壓基本上取決于上拉電阻與負(fù)載的值。另外,各比較器的輸出端允許連接在一起使用。2.4.5LM339的參數(shù)(1)電壓失調(diào)小,一般是2mV;(2)共模范圍非常大,為0v到電源電壓減1.5v;(3)他對(duì)比較信號(hào)源的內(nèi)阻限制很寬;(4)LM339vcc電壓范圍寬,單電源為2-36V,雙電源電壓為±1V-±18V;(5)輸出端電位可靈活方便地選用。(6)差動(dòng)輸入電壓范圍很大,甚至能等于vcc;2.5鍵盤及蜂鳴器電路該電路的主要器件有按鍵、三極管、電阻、蜂鳴器。圖2.6鍵盤及蜂鳴器電路2.5.1工作原理當(dāng)單片機(jī)檢測(cè)到有按鍵按下時(shí),單片機(jī)會(huì)通過(guò)P3.7引腳輸出低電平,進(jìn)而三極管導(dǎo)通,從而蜂鳴器導(dǎo)通發(fā)出聲音。2.6模擬路燈控制電路該電路主要由三極管,電阻,LED燈組成。圖2.7模擬路燈控制系統(tǒng)2.6.1工作原理單片機(jī)收到路燈控制信息是,單片機(jī)P1.0、P1.1、P1.2、P2.2、P2.3輸出控制信號(hào),進(jìn)而控制三極管的到同于截止,從而控制燈的亮滅。3.軟件設(shè)計(jì)3.1主程序流程圖圖3.1主程序流程圖主程序設(shè)計(jì)主函數(shù)voidmain(){init_main(); while(1){ Key_scan();Play_nowtime();Time_compare();Light(); }}3.2按鍵設(shè)定程序的設(shè)計(jì)圖3.2按鍵設(shè)定程序流程圖按鍵程序ucharinit1[]={0x00,0x00};//開(kāi)關(guān)燈時(shí)間數(shù)據(jù)修改后的十位個(gè)位緩存ucharcodestr4[]="OFF:";ucharcodestr3[]="ON:";ucharbj_time[]={0x00,0x30,0x18};//ONucharbj_time1[]={0x00,0x00,0x05};//OFF//開(kāi)關(guān)燈秒,分,時(shí)的緩存sbitK1=P3^0;sbitK2=P3^1;sbitK3=P3^2;sbitK4=P3^3;sbitBEEP=P3^7;bithour=0,min=0,sec=0,hour1=0,min1=0;bityear=0,month=0,day=0,week=0;ucharcount=0;//開(kāi)關(guān)燈數(shù)據(jù)的十進(jìn)制緩存/**********************************************************//*蜂鳴器響一聲*//**********************************************************//******************************************************************************/voidDelay(intnum){//延時(shí)函數(shù) while(num--);} /******************************************************************************/voidbeep(){ unsignedchara; for(a=100;a>0;a--){//聲音長(zhǎng)度 BEEP=~BEEP; Delay(50);//音調(diào)設(shè)置延時(shí) } BEEP=1;//拉高}4.系統(tǒng)調(diào)試4.1硬件調(diào)試首先檢查實(shí)物電路中各個(gè)焊點(diǎn)的焊接情況以及電線的連接情況,在保證沒(méi)有問(wèn)題后進(jìn)行通電檢查。4.2軟件調(diào)試軟件調(diào)試主要是程序的調(diào)試,本設(shè)計(jì)采用的是C語(yǔ)言的編程方式,根據(jù)設(shè)計(jì)要示編寫程序,并在軟件中進(jìn)行程序編寫調(diào)試,確定編寫上沒(méi)有錯(cuò)誤后,再進(jìn)行系統(tǒng)的調(diào)試。C語(yǔ)言編寫的程序有許多優(yōu)越性:a)不懂得單片機(jī)的指令集,也能夠編寫單片機(jī)程序;b)無(wú)須懂得單片機(jī)的具體硬件,也能夠編寫符合硬件實(shí)際的專業(yè)水平的程序;c)C語(yǔ)言對(duì)數(shù)據(jù)進(jìn)行了許多專業(yè)處理,避免了運(yùn)行中間異步的破壞等。 主要參考文獻(xiàn)[1].吳國(guó)經(jīng).單片機(jī)應(yīng)用技術(shù).北京:中國(guó)電力出版社,2003.[2].閻石.數(shù)字電子技術(shù)基礎(chǔ).北京:高等教育出版社,2006[3].譚浩強(qiáng).C程序設(shè)計(jì).北京:清華大學(xué)出版社,2005年.[4].項(xiàng)新建.城鎮(zhèn)路燈智能控制系統(tǒng)的研究[J].儀器儀表學(xué)報(bào),2006(6):1998-2000[5].康華光.電子技術(shù)基礎(chǔ)(模擬部分.數(shù)字部分第五版)[M].北京:高等教育出版社,2004.4[6].李東生.張勇.許四毛.Prote199se電路設(shè)計(jì)教程.電子工業(yè)出片社.2008,3致謝在整個(gè)設(shè)計(jì)過(guò)程中,我遇到了大量的問(wèn)題。比如說(shuō),所要用到的元器件找不到、編程有錯(cuò)誤等。但是在老師及同學(xué)們的無(wú)私幫助下,這些問(wèn)題都得到了及時(shí)的解決。同時(shí),我要特別感謝我的指導(dǎo)老師曾老師,他從開(kāi)始選題的時(shí)候就開(kāi)始對(duì)我進(jìn)行不懈的指導(dǎo),幫我剖析設(shè)計(jì)思路,同時(shí),不斷地檢查我們的論文進(jìn)度,督促我們更好更快的完成。在此,向曾老師表示最誠(chéng)摯的謝意。同時(shí)也要感謝幾位同學(xué),他們?cè)谠O(shè)計(jì)的各個(gè)階段給了我很多幫助和建議??傊?,通過(guò)這次課程設(shè)計(jì),我深刻體會(huì)到要做好一個(gè)完整的事情,需要有系統(tǒng)的思維方式和方法,對(duì)待將要解決的問(wèn)題,要有耐心、要善于運(yùn)用已懂的資源來(lái)充實(shí)自己。同時(shí)我也深刻的認(rèn)識(shí)到,在對(duì)待一個(gè)新的事物時(shí),一定要從它的整體考慮,完成一步之后再做下一步,這樣才能更加有效。附錄:程序代碼1.主程序#include<reg52.h>#include<intrins.h>#include<1602.h>#include<DS1302.h>#include<Set_OnTime.h>#include<KeyFunction.h>uchartimecount=0,pwmcount=0;//定時(shí)器用sbitlight=P2^1;bitTimeflag=0,pwm_flag=0;//進(jìn)入開(kāi)關(guān)時(shí)間段標(biāo)志voidLight(){ if(Timeflag==0) { if(light==1) { LED1=0;//亮 LED2=0; LED3=0; LED4=0; LED5=0; on_flag=1; }else { LED1=1;//滅 LED2=1; LED3=1; LED4=1; LED5=1; on_flag=0; } }}/**********************************************************///主函數(shù)的初始化/**********************************************************/voidinit_main(){TMOD=0x11;TH0=0x4c;//0x0EC;TL0=0x00;//0x78; TH1=0x0FF; TL1=0x9C;EA=1;ET0=1;ET1=1;TR0=1;TR1=1;init_lcd();//初始化LCD1602 init_ds1302();}/*********************************************************///時(shí)間比較/*********************************************************/voidTime_compare(){if(alarm_flag){if(init[2]==bj_time[2]){if(init[1]==bj_time[1]) { if(init[0]==bj_time[0]) { LED1=0;//亮 LED2=0; LED3=0; LED4=0; LED5=0; on_flag=1; Timeflag=1; } }}if(init[2]==bj_time1[2]){if(init[1]==bj_time1[1]) { if(init[0]==bj_time1[0]) { pwm_flag=0; LED1=1;//滅 LED2=1; LED3=1; LED4=1; LED5=1; on_flag=0; Timeflag=0; } }}} if(init[2]==0x00){if(init[1]==0x00) { if(init[0]==0x00) { LED1=0;//亮 LED2=1; LED3=0; LED4=1; LED5=0; //on_flag=1; Timeflag=1; } }} if(init[2]==0x00){if(init[1]==0x00) { if(init[0]==0x01) { pwm_flag=1; Timeflag=1; } }} }/**********************************************************///主函數(shù)/**********************************************************/voidmain(){init_main(); while(1){ Key_scan();Play_nowtime();Time_compare();Light(); }}/**********************************************************///Time0中斷服務(wù)函數(shù)/**********************************************************/voidTime0(void)interrupt1using0{ TH0=0x4c;//5ms定時(shí) TL0=0x00; timecount++; if(timecount>9) { timecount=0; flag=~flag;//500ms }}/**********************************************************///Time1中斷服務(wù)函數(shù)/**********************************************************/voidTime1(void)interrupt3using0{ TH1=0x0FF;//5ms定時(shí) TL1=0x9C; pwmcount++; if(pwm_flag==1) {if(pwmcount==8) { LED1=0;//亮 LED2=1; LED3=0; LED4=1; LED5=0;} if(pwmcount==10) {pwmcount=0; LED1=1;//滅 LED2=1; LED3=1; LED4=1; LED5=1;}}}2.1602顯示程序#defineucharunsignedchar#defineuintunsignedint#definedelayNOP();{_nop_();_nop_();_nop_();_nop_();};sbitLCD_RS=P2^4;sbitLCD_RW=P2^5;sbitLCD_EN=P2^6;ucharcodestr1[]="--Week:";ucharcodestr2[]="Time:";ucharcodemytab1[8]={0x0e,0x11,0x11,0x11,0x0a,0x1f,0x04,0x00};//小燈泡ucharcodemytab[8]={0x0e,0x1f,0x1f,0x1f,0x0e,0x1f,0x04,0x00};//亮的小燈泡voiddelay1(intms){unsignedchary;while(ms--){for(y=0;y<250;y++){_nop_();_nop_();_nop_();_nop_();}}}/******************************************************************//*檢查L(zhǎng)CD忙狀態(tài)*//*lcd_busy=1,忙,等待,lcd_busy=0,空閑*//******************************************************************/bitlcd_busy(){bitresult;LCD_RS=0;LCD_RW=1;LCD_EN=1;delayNOP();result=(bit)(P0&0x80);LCD_EN=0;return(result);}/******************************************************************//*寫指令到LCD*//*RS=L,RW=L,E=高,D0-D7=指令碼*//******************************************************************/voidlcd_wcmd(ucharcmd){while(lcd_busy());LCD_RS=0;LCD_RW=0;LCD_EN=0;_nop_();_nop_();P0=cmd;delayNOP();LCD_EN=1;delayNOP();LCD_EN=0;}/******************************************************************//*寫數(shù)據(jù)到LCD*//*RS=H,RW=L,E=高脈沖,D0-D7=數(shù)據(jù)*//******************************************************************/voidlcd_wdat(uchardat){while(lcd_busy());LCD_RS=1;LCD_RW=0;LCD_EN=0;P0=dat;delayNOP();LCD_EN=1;delayNOP();LCD_EN=0;}/******************************************************************//*寫字符串到LCD*//******************************************************************/voidwrite_str(ucharaddr,uchar*p){uchari=0;lcd_wcmd(addr);while(p[i]!='\0'){lcd_wdat(p[i]);i++;}}/*********************************************************//*設(shè)定顯示位置*//*********************************************************/voidwrite_position(ucharrow,ucharcol){ucharplace;if(row==1){place=0x80+col-1;lcd_wcmd(place);}else{place=0xc0+col-1;lcd_wcmd(place);}}/*********************************************************//*自定義字符寫入CGRAM*//*********************************************************/voidwritetab(){unsignedchari;lcd_wcmd(0x40);//寫CGRAMfor(i=0;i<8;i++)lcd_wdat(mytab[i]);for(i=0;i<8;i++)lcd_wdat(mytab1[i]); }/******************************************************************//*LCD初始化*//******************************************************************/voidinit_lcd(){delay1(15);lcd_wcmd(0x01);//清屏lcd_wcmd(0x38);//16*2顯示,5*7點(diǎn)陣,8位數(shù)據(jù)delay1(5);lcd_wcmd(0x38);delay1(5);lcd_wcmd(0x38);delay1(5);lcd_wcmd(0x0c);//顯示開(kāi),關(guān)光標(biāo)delay1(5);lcd_wcmd(0x06);//移動(dòng)光標(biāo)delay1(5);lcd_wcmd(0x01);//清屏delay1(5); write_str(0x80,str1);//年月日提示write_str(0xc0,str2);//時(shí)間提示 writetab();}3.DS1302時(shí)鐘程序sbitreset=P3^6;sbitsclk=P3^4;sbitio=P3^5;bitflag=1;//閃爍標(biāo)志biton_flag=0;//亮燈標(biāo)志bitalarm_flag=1;//時(shí)控?zé)糸_(kāi)關(guān)ucharinit2[]={0x00,0x57,0x20,0x03,0x04,0x04,0x14};//初始值//秒分時(shí)日月周年ucharinit[]={0x00,0x00,0x00,0x00,0x00,0x00,0x00};//當(dāng)前時(shí)間緩存/**********************************************************///寫一個(gè)字節(jié)到DS1302/**********************************************************/voidwrite_byte(ucharinbyte){uchari;for(i=0;i<8;i++){sclk=0;if(inbyte&0x01)io=1;elseio=0;sclk=1;_nop_();inbyte=inbyte>>1;}}/**********************************************************///讀出一個(gè)字節(jié)數(shù)據(jù)/**********************************************************/ucharread_byte(){uchari,temp=0;io=1;for(i=0;i<7;i++){sclk=0;if(io==1)temp=temp|0x80;elsetemp=temp&0x7f;sclk=1;temp=temp>>1;}return(temp);}/**********************************************************///往ds1302的某地址寫入數(shù)據(jù)/**********************************************************/voidwrite_ds1302(ucharcmd,ucharindata){sclk=0;reset=1;write_byte(cmd);write_byte(indata);sclk=0;reset=0;}/**********************************************************///讀出ds1302某地址的數(shù)據(jù)/**********************************************************/ucharread_ds1302(ucharaddr){ucharbackdata;sclk=0;reset=1;write_byte(addr);backdata=read_byte();sclk=0;reset=0;return(backdata);}/**********************************************************///設(shè)置初始時(shí)間/**********************************************************/voidset_ds1302(ucharaddr,uchar*p,ucharn)//寫入n個(gè)數(shù)據(jù){write_ds1302(0x8e,0x00);//允許寫操作for(;n>0;n--){write_ds1302(addr,*p);p++;addr=addr+2;}write_ds1302(0x8e,0x80);//加寫保護(hù)}/**********************************************************///讀取當(dāng)前時(shí)間/**********************************************************/voidread_nowtime(ucharaddr,uchar*p,ucharn){for(;n>0;n--){*p=read_ds1302(addr);p++;addr=addr+2;}}/**********************************************************///初始化DS1302/**********************************************************/voidinit_ds1302(){reset=0;sclk=0;write_ds1302(0x8e,0x00);//允許寫write_ds1302(0x90,0xa6);//一個(gè)二極管+4K電阻write_ds1302(0x8e,0x80);//寫保護(hù)}/**********************************************************//*:閃爍函數(shù)*//**********************************************************/voidflash(){if(flag){write_position(2,9);lcd_wdat(':');write_position(2,12);lcd_wdat(':');}else{write_position(2,9);lcd_wdat(0x20);//顯示空白write_position(2,12);lcd_wdat(0x20);}}/**********************************************************///顯示當(dāng)前時(shí)間/**********************************************************/voidPlay_nowtime(){ read_nowtime(0x81,init,7);//讀出當(dāng)前時(shí)間,7個(gè)字節(jié)write_position(2,7);lcd_wdat(((init[2]&0xf0)>>4)+0x30);write_position(2,8);lcd_wdat('0'+(init[2]&0x0f));//小時(shí)write_position(2,10);lcd_wdat('0'+((init[1]&0xf0)>>4));write_position(2,11);lcd_wdat('0'+(init[1]&0x0f));//分write_position(2,13);lcd_wdat('0'+((init[0]&0xf0)>>4));write_position(2,14);lcd_wdat('0'+(init[0]&0x0f));//秒write_position(1,1);lcd_wdat('0'+((init[6]&0xf0)>>4));write_position(1,2);lcd_wdat('0'+(init[6]&0x0f));//年write_position(1,4);lcd_wdat('0'+((init[4]&0xf0)>>4));write_position(1,5);lcd_wdat('0'+(init[4]&0x0f));//月write_position(1,7);lcd_wdat('0'+((init[3]&0xf0)>>4));write_position(1,8);lcd_wdat('0'+(init[3]&0x0f));//日write_position(1,15);lcd_wdat('0'+(init[5]&0x0f));//周flash(); if((alarm_flag==1)&&(on_flag==0))//alarm_flag=1,顯示打開(kāi)開(kāi)關(guān)標(biāo)志 { write_position(2,16); lcd_wdat(0x01); } if(on_flag)//on_flag=1,顯示打開(kāi)燈標(biāo)志 { write_position(2,16); lcd_wdat(0x00); }if((alarm_flag==0)&&(on_flag==0)) { write_position(2,16);lcd_wdat(0x20); } }4.SET_ONTIME.Hucharinit1[]={0x00,0x00};//開(kāi)關(guān)燈時(shí)間數(shù)據(jù)修改后的十位個(gè)位緩存ucharcodestr4[]="OFF:";ucharcodestr3[]="ON:";ucharbj_time[]={0x00,0x30,0x18};//ONucharbj_time1[]={0x00,0x00,0x05};//OFF//開(kāi)關(guān)燈秒,分,時(shí)的緩存sbitK1=P3^0;sbitK2=P3^1;sbitK3=P3^2;sbitK4=P3^3;sbitBEEP=P3^7;bithour=0,min=0,sec=0,hour1=0,min1=0;bityear=0,month=0,day=0,week=0;ucharcount=0;//開(kāi)關(guān)燈數(shù)據(jù)的十進(jìn)制緩存/**********************************************************//*蜂鳴器響一聲*//**********************************************************//******************************************************************************/voidDelay(intnum){//延時(shí)函數(shù) while(num--);} /******************************************************************************/voidbeep(){ unsignedchara; for(a=100;a>0;a--){//聲音長(zhǎng)度 BEEP
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 青春勵(lì)志演講稿2024(33篇)
- 2024-2025學(xué)年山東省德州市臨邑博文中學(xué)高一上學(xué)期第三次月考?xì)v史試卷
- 2025年公共衛(wèi)生間設(shè)施改善施工合同樣本
- 2025年雙方解除購(gòu)銷合同協(xié)議的分析
- 2025年采購(gòu)合作合同標(biāo)準(zhǔn)文本
- 2025年儲(chǔ)藏室租賃合同樣本
- 2025年節(jié)能、高效干燥設(shè)備項(xiàng)目立項(xiàng)申請(qǐng)報(bào)告模稿
- 2025年辦公空間租賃預(yù)約合同
- 2025年勞動(dòng)合同精簡(jiǎn)版
- 2025年專利權(quán)合同正式轉(zhuǎn)讓協(xié)議
- GB/T 45177-2024人工光型植物工廠光環(huán)境技術(shù)規(guī)范
- 2025年中考語(yǔ)文模擬試卷(含答案解析)
- 2024-2025年天津河西區(qū)七年級(jí)上學(xué)期期末道德與法治試題(含答案)
- 2025年個(gè)人學(xué)習(xí)領(lǐng)導(dǎo)講話心得體會(huì)和工作措施例文(6篇)
- 2025大連機(jī)場(chǎng)招聘109人易考易錯(cuò)模擬試題(共500題)試卷后附參考答案
- 2020-2025年中國(guó)中小企業(yè)行業(yè)市場(chǎng)調(diào)研分析及投資戰(zhàn)略咨詢報(bào)告
- 物流中心原材料入庫(kù)流程
- 長(zhǎng)沙市2025屆中考生物押題試卷含解析
- 預(yù)制板粘貼碳纖維加固計(jì)算表格
- 新HSK一至六級(jí)詞匯表
- 企業(yè)公司行政人事管理組織架構(gòu)圖帶照片
評(píng)論
0/150
提交評(píng)論