一種溫濕度感應(yīng)配時(shí)交通燈_第1頁(yè)
一種溫濕度感應(yīng)配時(shí)交通燈_第2頁(yè)
一種溫濕度感應(yīng)配時(shí)交通燈_第3頁(yè)
一種溫濕度感應(yīng)配時(shí)交通燈_第4頁(yè)
一種溫濕度感應(yīng)配時(shí)交通燈_第5頁(yè)
已閱讀5頁(yè),還剩39頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、圖書(shū)館收藏中圖分類(lèi)號(hào):密級(jí):udc:編號(hào):1331畢業(yè)設(shè)計(jì)說(shuō)明書(shū)雙休日交通信號(hào)燈控制系統(tǒng)黃昕彤專(zhuān)業(yè)名稱(chēng):樓宇智能化建筑技術(shù)班 級(jí):樓宇13-1學(xué) 制:三年學(xué) 號(hào):1360223108學(xué) 歷:專(zhuān)科指導(dǎo)教師:李德路評(píng)閱人:論文(設(shè)計(jì))提交日期:2016年6月2日論文(設(shè)計(jì))答辯日期:2016年6月7日目錄1 概述11.1 單片機(jī)的定義11.2 單片機(jī)的應(yīng)用12 開(kāi)發(fā)工具42.1 proteus 8.142.1.1 proteus簡(jiǎn)介42.1.2 proteus特點(diǎn)42.2 keil 553 系統(tǒng)設(shè)計(jì)63.1 設(shè)計(jì)背景63.2 設(shè)計(jì)簡(jiǎn)介63.3 設(shè)計(jì)原理63.4 設(shè)計(jì)框圖74 硬件設(shè)計(jì)84.1 芯片

2、選用84.1.1 at899c51簡(jiǎn)介84.1.2 引腳功能94.1.3 內(nèi)部結(jié)構(gòu)94.2 液晶顯示屏104.2.1 lcd1602簡(jiǎn)介104.2.2 引腳功能104.3 串行時(shí)鐘電路114.3.1 時(shí)鐘電路ds1302簡(jiǎn)介114.3.2 引腳功能125 程序設(shè)計(jì)135.1 主程序設(shè)計(jì)135.1.1 中斷介紹135.1.2 程序內(nèi)容145.2 兩個(gè)子功能185.2.1 功能介紹185.2.2 程序內(nèi)容195.3 液晶屏顯示235.3.1 顯示流程圖235.3.2 程序內(nèi)容235.4 萬(wàn)年歷計(jì)算285.5 延時(shí)程序315.6 按鍵調(diào)節(jié)程序315.6.1 按鍵功能介紹315.6.2 程序內(nèi)容32參

3、考文獻(xiàn)39致謝40摘要雙休日交通信號(hào)燈控制系統(tǒng),本項(xiàng)設(shè)計(jì)涉及智能交通及自動(dòng)控制技術(shù)領(lǐng)域;提供一種結(jié)構(gòu)簡(jiǎn)單、設(shè)計(jì)合理、使用方便的雙休日交通信號(hào)燈控制系統(tǒng),解決現(xiàn)有的紅綠燈控制系統(tǒng)周期固定造成交通擁堵和時(shí)間浪費(fèi)的問(wèn)題。為實(shí)現(xiàn)上述目的,本詳設(shè)計(jì)采用的技術(shù)方案是:?jiǎn)纹瑱C(jī)處理器,單片機(jī)處理器分別電路連接液晶屏?xí)r鐘顯示模塊、交通燈模塊和按鍵調(diào)節(jié)模塊。關(guān)鍵詞:?jiǎn)纹瑱C(jī),交通燈,萬(wàn)年歷,at89c51,lcd,ds13021 概述1.1 單片機(jī)的定義所謂單片機(jī),就是把微型計(jì)算機(jī)的各個(gè)零件,如具有數(shù)據(jù)處理功能中央處理器cpu、隨機(jī)存儲(chǔ)器ram、只讀存儲(chǔ)器rom、輸入/輸出i/o口、定時(shí)/計(jì)數(shù)器以及串行通信接口等集

4、成在一塊芯片中,構(gòu)成一個(gè)微型的計(jì)算機(jī)系統(tǒng)。這些元件能在計(jì)算機(jī)系統(tǒng)的控制下準(zhǔn)確、迅速、高效地依據(jù)事先設(shè)定的程序完成任務(wù)。單獨(dú)地完成現(xiàn)代工業(yè)控制所要求的智能化控制功能,擁有技術(shù),是單片機(jī)最大的特征,也是它與微型計(jì)算機(jī)的不同之處。圖1-1at89c51單片機(jī)1.2 單片機(jī)的應(yīng)用單片機(jī)廣泛應(yīng)用于儀器儀表、家用電器、醫(yī)用設(shè)備、航空航天、專(zhuān)用設(shè)備的智能化管理及過(guò)程控制等領(lǐng)域,大致可分為如下幾個(gè)。1計(jì)算機(jī)網(wǎng)絡(luò)和通信領(lǐng)域現(xiàn)代的單片機(jī)普遍具備通信接口,可以很方便地與計(jì)算機(jī)進(jìn)行數(shù)據(jù)通信,為在計(jì)算機(jī)網(wǎng)絡(luò)和通信設(shè)備間的應(yīng)用提供了極好的物質(zhì)條件,現(xiàn)在的通信設(shè)備基本上都實(shí)現(xiàn)了單片機(jī)智能控制,從手機(jī),電話(huà)機(jī)、小型程控交換機(jī)

5、、樓宇自動(dòng)通信呼叫系統(tǒng)、列車(chē)無(wú)線(xiàn)通信、再到日常工作中隨處可見(jiàn)的移動(dòng)電話(huà),集群移動(dòng)通信,無(wú)線(xiàn)電對(duì)講機(jī)等。2工業(yè)控制單片機(jī)體積小而價(jià)格便宜的特點(diǎn)倍受工業(yè)控制的青睞,應(yīng)用于工業(yè)極大的提高了工業(yè)設(shè)備的智能化,提高了處理能力和處理效率。其在工業(yè)中主要運(yùn)用于變頻控制,運(yùn)動(dòng)控制、數(shù)據(jù)采集、信號(hào)采集與檢測(cè)、無(wú)線(xiàn)感知等控制系統(tǒng)。圖1-2塑料包裝印刷機(jī)械人機(jī)界面單片機(jī)控制器3家用電器隨著單片機(jī)技術(shù)日新月異的發(fā)展,單片機(jī)取代傳統(tǒng)家電中的機(jī)械控制部件,減小家電體積也使傳統(tǒng)的產(chǎn)品走向智能化。如能識(shí)別衣物臟物程度控制洗滌液用量,自動(dòng)選擇洗滌時(shí)間和強(qiáng)度的洗衣機(jī);能識(shí)別食物類(lèi)型、保鮮程度,自動(dòng)調(diào)節(jié)儲(chǔ)藏溫度的冰箱等。這類(lèi)高智能

6、的全自動(dòng)家用電器充分發(fā)揮了單片機(jī)和家電系統(tǒng)的融合優(yōu)勢(shì)。 圖1-3電地暖溫控器 圖1-4電子時(shí)鐘4智能儀器儀表在科學(xué)技術(shù)及工農(nóng)業(yè)生產(chǎn)水平不斷提高的當(dāng)代社會(huì),儀器儀表需擴(kuò)展大量的外圍功能部件來(lái)滿(mǎn)足其復(fù)雜性、高性能及智能化的要求,單片機(jī)是最優(yōu)之選。單片機(jī)將功能復(fù)雜的眾多外圍功能部件全部或大部分集成到內(nèi)部,他的介入大大提高了儀器儀表系統(tǒng)的可靠性,同時(shí)又使系統(tǒng)的成本得以降低。圖1-4甲烷檢測(cè)儀5醫(yī)用設(shè)備領(lǐng)域單片機(jī)的應(yīng)用在我們的生活中已是相當(dāng)常見(jiàn),除了上面介紹的幾個(gè)方面,他在醫(yī)用設(shè)備中的用途亦相當(dāng)廣泛,例如醫(yī)用呼吸機(jī),各種分析儀,監(jiān)護(hù)儀,超聲診斷設(shè)備及病床呼叫系統(tǒng)等等。圖1-5醫(yī)用分析檢測(cè)儀器2 開(kāi)發(fā)工具

7、2.1 proteus 8.12.1.1 proteus簡(jiǎn)介proteus軟件是英國(guó)labcenter公司開(kāi)發(fā)的電路分析與實(shí)物仿真軟件。它運(yùn)行于windows操作系統(tǒng)上,可以仿真、分析(spice)各種模擬器件和集成電路。具有強(qiáng)大的原理圖繪制功能,實(shí)現(xiàn)了單片機(jī)仿真和spice電路仿真的相結(jié)合。圖2-1proteus8.12.1.2 proteus特點(diǎn)1proteus提供30多個(gè)元件庫(kù),有仿真數(shù)字和模擬、交流和直流等上千種元器件。還提供示波器、邏輯分析儀、虛擬終端、信號(hào)發(fā)生器、交直流電流表等各種仿真儀表資源。在一個(gè)電路中,同一種儀器可以隨意調(diào)用。2proteus擁有特殊的圖形顯示功能,可以將線(xiàn)路

8、上變化的信號(hào),以圖形的方式實(shí)時(shí)的顯示出來(lái),其作用與示波器相似,但是具有更多的功能。這些虛擬儀器儀表具有理想的參數(shù)指標(biāo),例如極高的輸入阻抗、極低的輸出阻抗。這些都盡可能減少了儀器對(duì)測(cè)量結(jié)果的影響。3proteus支持多種主流單片機(jī)系統(tǒng)的仿真,如51系列、avr系列、pic系列、z8系列等;提供軟件調(diào)試功能;提供豐富的外圍接口器件及其仿真,如ram、鍵盤(pán)、馬達(dá)、lcd、led、一些iic器件等。這些很接近實(shí)際,在訓(xùn)練時(shí),可以有不同的方案選擇。4具有強(qiáng)大的原理繪圖功能2.2 keil 5keil c51是美國(guó)keil software公司出品的51系列兼容單片機(jī)c語(yǔ)言軟件開(kāi)發(fā)系統(tǒng),與相比,c語(yǔ)言在功

9、能上、性、上有明顯的優(yōu)勢(shì),因而易學(xué)易用。keil c51的實(shí)用簡(jiǎn)單方便,隨著漢化版及破解版本的出現(xiàn),更大限度的方便了國(guó)人的使用。keil可與protues聯(lián)機(jī)仿真,不過(guò)需要聯(lián)調(diào)補(bǔ)丁,也可以生成hex文件在protues里仿真。圖2-2keil53 系統(tǒng)設(shè)計(jì)3.1 設(shè)計(jì)背景目前城市十字路口所使用的交通信號(hào)燈都是設(shè)定好固定的時(shí)間間隔,一直循環(huán)工作的,此類(lèi)信號(hào)燈根據(jù)十字路口的平均車(chē)流量將紅綠交替工作間隔設(shè)定在一個(gè)合適的時(shí)間長(zhǎng)度,但是現(xiàn)在車(chē)輛的急劇增加導(dǎo)致工作日與雙休日的車(chē)流量出現(xiàn)巨大的反差,普通的信號(hào)燈已經(jīng)無(wú)法滿(mǎn)足交通的正常運(yùn)行,這也就是普通燈的缺陷。雙休日交通信號(hào)燈完全克服普通型的不足,它可以通過(guò)

10、自帶的萬(wàn)年歷判斷出當(dāng)前的日期是否為雙休日,假日將延長(zhǎng)綠燈時(shí)間使汽車(chē)能夠全部通過(guò)路口,減少路口的擁堵現(xiàn)象。3.2 設(shè)計(jì)簡(jiǎn)介本項(xiàng)設(shè)計(jì)的目的在于針對(duì)現(xiàn)有技術(shù)的缺陷和不足,提供一種結(jié)構(gòu)簡(jiǎn)單、設(shè)計(jì)合理、使用方便的雙休日交通信號(hào)燈控制系統(tǒng),解決現(xiàn)有的紅綠燈控制系統(tǒng)周期固定造成交通擁堵和時(shí)間浪費(fèi)的問(wèn)題。所采用的設(shè)計(jì)方案包括單片機(jī)處理器,單片機(jī)處理器分別電路連接液晶屏?xí)r鐘顯示模塊、led交通燈模塊和按鍵調(diào)節(jié)模塊。3.3 設(shè)計(jì)原理液晶顯示屏顯示當(dāng)前年月日時(shí)分秒,當(dāng)當(dāng)前日期為雙休日時(shí)紅綠燈的周期延長(zhǎng)。首先,萬(wàn)年歷顯示當(dāng)前日期;其次,判斷是否為雙休日;最后,使用單片機(jī)切換雙休日與非雙休日的紅綠燈循環(huán)程序,若當(dāng)前為雙

11、休日,紅綠燈的間隔時(shí)間為t2秒,反之為t1秒。交通燈的工作過(guò)程如下:南北路口的綠燈亮,東西路口的紅燈亮,南北路口方向通車(chē),兩個(gè)路口的led開(kāi)始倒計(jì)時(shí)40秒。40秒后,南北路口的綠燈熄滅,同時(shí)南北路口的黃燈開(kāi)始閃爍。閃爍3次后,南北路口的紅燈亮,同時(shí)東西路口的綠燈亮,東西路口方向開(kāi)始通車(chē),2個(gè)路口的led重新開(kāi)始倒計(jì)時(shí)40秒。40秒后,東西路口的綠燈熄滅,而黃燈開(kāi)始閃爍。閃爍3次后,再切換到南北路口方向。之后,重復(fù)上述過(guò)程。當(dāng)當(dāng)前日期為周六周日時(shí),通車(chē)時(shí)間延長(zhǎng)至60s,倒計(jì)時(shí)60s后,黃燈閃爍3次,切換方向。3.4 設(shè)計(jì)框圖單片機(jī)at89c51lcd1602顯示交通燈模塊鍵盤(pán)模塊時(shí)鐘電路ds13

12、02復(fù)位電路震蕩系統(tǒng)圖3-1系統(tǒng)設(shè)計(jì)框圖4 硬件設(shè)計(jì)4.1 芯片選用4.1.1 at899c51簡(jiǎn)介at89c51單片機(jī)是把那些作為控制應(yīng)用所必須的基本內(nèi)容都集中在一個(gè)尺寸有限的集成電路芯片上。它由如下功能部件組成,具有數(shù)據(jù)處理功能中央處理器cpu、隨機(jī)存儲(chǔ)器ram、只讀存儲(chǔ)器rom、輸入/輸出i/o口、定時(shí)/計(jì)數(shù)器以及串行通信接口等。它們都是通過(guò)芯片內(nèi)單一總線(xiàn)串聯(lián)而成,其基本結(jié)構(gòu)還是微處理器(cpu)加上外圍芯片的傳統(tǒng)結(jié)構(gòu)模式。但對(duì)各種功能部件的控制是采用特殊功能寄存器的集中控制方式,以實(shí)現(xiàn)不同的功能。圖4-1at89c514.1.2 引腳功能xtal1(19引腳):片內(nèi)振蕩器反相放大器和時(shí)

13、鐘發(fā)生器電路的輸入端。xtal2(18引腳):片內(nèi)振蕩器反相放大器的輸出端。rst:復(fù)位引腳,高電平有效。ea:外部程序存儲(chǔ)器訪問(wèn)允許控制端。ale:低8位地址鎖存允許信號(hào)端。psen:讀外部程序存儲(chǔ)器的選通信號(hào)端。p0口:8位,漏極開(kāi)路的雙向i/o口。p1口:8位,準(zhǔn)雙向i/o口,具有內(nèi)部上拉電阻。p2口:8位,準(zhǔn)雙向i/o口,具有內(nèi)部上拉電阻。p3口:8位,準(zhǔn)雙向i/o口,具有內(nèi)部上拉電阻。4.1.3 內(nèi)部結(jié)構(gòu)(1)1個(gè)8位的中央處理器(cpu),是單片機(jī)的核心。(2)128個(gè)字節(jié)的內(nèi)部數(shù)據(jù)ram,地址為00h7fh。(3)21個(gè)特殊功能的寄存器sfr,離散分布于地址80hffh中(4)

14、程序計(jì)數(shù)器pc,是物理上獨(dú)立的16位專(zhuān)用寄存器(5) 4k字節(jié)flash內(nèi)部程序存儲(chǔ)器(內(nèi)rom)(6) 4個(gè)8位可編程i/o口(p0、p1、p2、p3)(7) 1個(gè)uart串行通信口(8) 2個(gè)16位定時(shí)器、計(jì)數(shù)器(9) 5個(gè)中斷源,兩個(gè)中斷優(yōu)先級(jí)的中斷控制系統(tǒng)(10) 1個(gè)片內(nèi)振蕩器和時(shí)鐘電路(11) 用于擴(kuò)展外ram、外rom等的結(jié)構(gòu)4.2 液晶顯示屏4.2.1 lcd1602簡(jiǎn)介1602液晶也叫1602字符型液晶,它是一種專(zhuān)門(mén)用來(lái)顯示字母、數(shù)字、符號(hào)等的點(diǎn)陣型。它由若干個(gè)5x7或者5x11等點(diǎn)陣字符位組成,每個(gè)點(diǎn)陣字符位都可以顯示一個(gè)字符,每位之間有一個(gè)點(diǎn)距的間隔,每行之間也有間隔,起

15、到了字符間距和的作用,正因?yàn)槿绱怂运荒芎芎玫仫@示圖形。lcd1602使用方便,體積小巧,在很多領(lǐng)域都用大用途,在平常的生活物品中也極為常見(jiàn),如電動(dòng)車(chē)的顯示屏,智能儀表的顯示屏等等。圖4-2lcd1602液晶顯示屏4.2.2 引腳功能1602采用標(biāo)準(zhǔn)的16腳接口,其中:vss:接地極vcc:接5v電源正極v0:為液晶顯示器對(duì)比度調(diào)整端,接正電源時(shí)對(duì)比度最弱,接地電源時(shí)對(duì)比度最高(對(duì)比度過(guò)高時(shí)會(huì)產(chǎn)生“鬼影”,使用時(shí)可以通過(guò)一個(gè)10k的電位器調(diào)整對(duì)比度)。rs:為寄存器選擇,高電平時(shí)選擇數(shù)據(jù)寄存器、低電平時(shí)選擇指令寄存器。rw:為讀寫(xiě)信號(hào)線(xiàn),高電平時(shí)進(jìn)行讀操作,低電平時(shí)進(jìn)行寫(xiě)操作。e(或en):

16、為使能(enable)端,高電平時(shí)讀取信息,負(fù)跳變時(shí)執(zhí)行指令。714引腳:d0d7為8位雙向數(shù)據(jù)端。1516引腳:空腳或背燈電源。15引腳背光正極,16引腳背光負(fù)極。表4-1lcd控制器接口信號(hào)說(shuō)明ersr/w說(shuō)明100將數(shù)據(jù)總線(xiàn)db7db0上的指令碼寫(xiě)入指令寄存器ir中1001讀bf和ac到db7db0110將db7db0上數(shù)據(jù)寫(xiě)到cgram或者ddram中1011從cgram或者ddram讀數(shù)據(jù)到db7db04.3 串行時(shí)鐘電路4.3.1 時(shí)鐘電路ds1302簡(jiǎn)介ds1302是美國(guó)dallas公司推出的一種高性能、低功耗、帶ram的實(shí)時(shí)時(shí)鐘電路,它可以對(duì)年、月、日、周日、時(shí)、分、秒進(jìn)行計(jì)時(shí)

17、,具有閏年補(bǔ)償功能,工作電壓為2.5v5.5v。采用三線(xiàn)接口與cpu進(jìn)行同步通信,并可采用突發(fā)方式一次傳送多個(gè)字節(jié)的時(shí)鐘信號(hào)或ram數(shù)據(jù)。ds1302內(nèi)部有一個(gè)318的用于臨時(shí)性存放數(shù)據(jù)的ram寄存器。ds1302是ds1202的升級(jí)產(chǎn)品,與ds1202兼容,但增加了主電源/后背電源雙電源引腳,同時(shí)提供了對(duì)后背電源進(jìn)行涓細(xì)電流充電的能力,它廣泛應(yīng)用于電話(huà)、傳真、便攜式儀器以及電池供電的儀器儀表等產(chǎn)品領(lǐng)域。圖4-3時(shí)鐘電路ds13024.3.2 引腳功能vcc:為后備電源。vcc:為主電源。在主電源關(guān)閉的情況下,也能保持時(shí)鐘的連續(xù)運(yùn)行。ds1302由vcc1或vcc2兩者中的較大者供電。x1和x

18、2:振蕩源,外接32.768khz晶振。rst:復(fù)位/片選線(xiàn),通過(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í),在vcc2.0v之前,rst必須保持低電平。只有在sclk為低電平時(shí),才能將rst置為高電平。i/o:串行數(shù)據(jù)輸入輸出端(雙向)。sclk:時(shí)鐘輸入端。5 程序設(shè)計(jì)5.1 主程序設(shè)計(jì)5.1.1

19、中斷介紹在主程序的運(yùn)行中利用了中斷這一技術(shù)。下面先來(lái)介紹一下什么是中端:在計(jì)算機(jī)執(zhí)行程序的過(guò)程中,當(dāng)出現(xiàn)某種情況,有服務(wù)對(duì)象向cpu發(fā)出請(qǐng)求當(dāng)前程序中斷的信號(hào),要求cpu暫時(shí)停止當(dāng)前程序的執(zhí)行,而轉(zhuǎn)去執(zhí)行相應(yīng)的處理程序,待處理程序執(zhí)行完畢后,再返回繼續(xù)執(zhí)行被中斷的程序,這樣的過(guò)程稱(chēng)為中斷過(guò)程。把引起中斷的原因和觸發(fā)中斷請(qǐng)求的來(lái)源稱(chēng)為中斷源。為實(shí)現(xiàn)中斷而設(shè)置的各種硬件和軟件稱(chēng)為終端系統(tǒng)。有了中斷功能,一方面,pc系統(tǒng)就可以使cpu和外設(shè)同時(shí)工作,使系統(tǒng)可以及時(shí)地響應(yīng)外部事件。而且有了中斷功能,cpu可允許多個(gè)外設(shè)同時(shí)工作。這樣就大大提高了cpu的利用率,也提高了數(shù)據(jù)輸入、輸出的速度。另一方面,有

20、了中斷功能,就可以使cpu及時(shí)處理各種軟硬件。計(jì)算機(jī)在運(yùn)行過(guò)程中,往往會(huì)出現(xiàn)事先預(yù)料不到的情況或出現(xiàn)一些,如電源掉電、存儲(chǔ)出錯(cuò),運(yùn)算溢出等等。計(jì)算機(jī)可以利用自行處理,而不必停機(jī)或報(bào)告工作人員。中斷的處理過(guò)程主要包括中斷請(qǐng)求、中斷響應(yīng)、中斷服務(wù)和中斷返回四個(gè)階段,如圖5-1所示。首先由中斷源發(fā)出中斷請(qǐng)求信號(hào),cpu在運(yùn)行主程序時(shí),不斷地檢測(cè)是否有中斷請(qǐng)求產(chǎn)生,在檢測(cè)到有中斷請(qǐng)求信號(hào)后,決定是否響應(yīng)中斷。當(dāng)cpu滿(mǎn)足條件響應(yīng)中斷后,進(jìn)入中斷服務(wù)程序,為申請(qǐng)中斷的對(duì)象服務(wù)。當(dāng)服務(wù)對(duì)象的任務(wù)完成后,cpu重新返回到原來(lái)的程序中繼續(xù)工作。這就是中斷處理的全過(guò)程。中斷返回中斷響應(yīng)檢測(cè)發(fā)出中斷源中斷請(qǐng)求恢復(fù)

21、斷點(diǎn)中斷服務(wù)程序主程序保護(hù)斷點(diǎn)圖5-1中斷處理過(guò)程5.1.2 程序內(nèi)容否是開(kāi)始紅綠燈運(yùn)行液晶屏顯示日期當(dāng)前日期為雙休日運(yùn)行功能一運(yùn)行功能二圖5-2主程序流程圖#include#include#include#include#include#include#include#includevoid play()hour=read1302(0x85);/讀1302上的數(shù)據(jù),將時(shí)分秒十進(jìn)制化hour=deci(hour);min=read1302(0x83);min=deci(min);sec=read1302(0x81);sec=deci(sec);years=read1302(0x8d);/將年月

22、日十進(jìn)制化years=deci(years);month=read1302(0x89);month=deci(month);day=read1302(0x87);day=deci(day);week=read1302(0x8b);/將星期十進(jìn)制化week=deci(week);write_sfm(0,hour);/在液晶屏上顯示時(shí)間write_sfm(3,min);write_sfm(6,sec);write_nyr(0,years);write_nyr(3,month);write_nyr(6,day);write_week(week);write_com(0x80+0x40+11);wri

23、te_date(0x30+rh_data/10);write_date(0x30+rh_data%10);write_com(0x80+0x40+14);write_date(0x30+th_data/10);write_date(0x30+th_data%10);/*初始化函數(shù)*/void init()uchar num;s1num=0;/s1按鍵定義flag=0;tmod=0x01;th0=65536-50000/256;tl0=65536-50000%256;ea=1;/總中斷打開(kāi)et0=1;/定時(shí)器0打開(kāi)tr0=1;/定時(shí)器0啟動(dòng)if(deci(read1302(0xc1)!=0x05

24、)init1302();write_com(0x38);/設(shè)置8位、2行、57點(diǎn)陣write_com(0x0c);/設(shè)置顯示數(shù)據(jù),不顯示光標(biāo)write_com(0x06);/每寫(xiě)一個(gè)字符指針地址加一write_com(0x01);/清零write_com(0x80);/將指針移到第一位for(num=0;num9;num+)write_date(riqinum);yanshi(2);write_com(0x80+0x40);for(num=0;num=6)shuangxiuri();/雙休日運(yùn)行功能一else if(week=5)common();/工作日運(yùn)行功二5.2 兩個(gè)子功能5.2.1

25、功能介紹根據(jù)萬(wàn)年歷顯示的星期判斷當(dāng)前日期是否為雙休日,若是雙休日,則運(yùn)行功能一:綠燈時(shí)間延長(zhǎng)至60s;如是正常工作日,則運(yùn)行功能二:綠燈時(shí)間為40s。紅綠燈顯示仿真模塊如圖5-3。圖5-3紅綠燈顯示模塊實(shí)現(xiàn)的兩個(gè)子功能參考表5-1。表5-1子功能表功能一:雙休日功能二:工作日南北向綠燈60s南北向綠燈40s東西向紅燈60s東西向紅燈40s東西向紅燈,南北向黃燈閃爍3下東西向紅燈,南北向黃燈閃爍3下南北向紅燈60s南北向紅燈40s東西向綠燈60s東西向綠燈40s南北向紅燈,東西向黃燈閃爍3下南北向紅燈,東西向黃燈閃爍3下5.2.2 程序內(nèi)容#ifndef _gongneng_h_#define

26、_gongneng_h_/*兩個(gè)子功能*/void shuangxiuri()/功能一:雙休日switch(dnum0) case 1:red_a=0;yellow_a=0;green_a=1;red_b=1;yellow_b=0;green_b=0;if(+time0_count!=1200) return;/南北綠燈持續(xù)60stime0_count=0;dnum0 = 2;break;case 2:if(+time0_count!=20) return;time0_count=0;yellow_a=!yellow_a;green_a=0;if(+flash0_count!=6) retur

27、n;/黃燈閃爍3下flash0_count=0;dnum0= 3;break;case 3:red_a=1;yellow_a=0;green_a=0;red_b=0;yellow_b=0;green_b=1;if(+time0_count!=1200) return;/東西綠燈持續(xù)60stime0_count=0;dnum0 = 4;break;case 4:if(+time0_count!=20) return;time0_count=0;yellow_b=!yellow_b;green_b=0;if(+flash0_count!=6) return;/黃燈閃爍3下flash0_count=

28、0;dnum0= 1;/四個(gè)場(chǎng)景循環(huán)break;void common()/功能二:工作日switch(dnum0)case 1:red_a=0;yellow_a=0;green_a=1;red_b=1;yellow_b=0;green_b=0;if(+time0_count!=800) return;/南北綠燈持續(xù)40stime0_count=0;dnum0 = 2;break;case 2:if(+time0_count!=20) return;time0_count=0;yellow_a=!yellow_a;green_a=0;if(+flash0_count!=6) return;/黃

29、燈閃爍3下flash0_count=0;dnum0= 3;break;case 3:red_a=1;yellow_a=0;green_a=0;red_b=0;yellow_b=0;green_b=1;if(+time0_count!=800) return;/東西綠燈持續(xù)40stime0_count=0;dnum0 = 4;break;case 4:if(+time0_count!=20) return;time0_count=0;yellow_b=!yellow_b;green_b=0;if(+flash0_count!=6) return;/黃燈閃爍3下flash0_count=0;dnu

30、m0= 1;/四個(gè)場(chǎng)景循環(huán)break;#endif5.3 液晶屏顯示5.3.1 顯示流程圖開(kāi)始a/d轉(zhuǎn)換選擇量程20v選擇量程5v選擇量程10v20v10v0;i-)tda=(bit)(da&0x01);_nop_();clk=0;_nop_();clk=1;_nop_();da=1;uchar read_byte(void)uchar i,j,ac;for(i=0;i8;i+)clk = 1;_nop_();clk = 0;_nop_();j=tda;_nop_();ac =(j1);return(ac);void write1302(char addr,char da)=0;clk=0;r

31、eset=1;write_byte(addr);write_byte(da);reset=0;clk=1;char read1302(char addr)char temp;reset=0;clk=0;reset=1;write_byte(addr);temp=read_byte();reset=0;clk=1;return(temp);void init1302(void)write1302(0x8e,0x00);write1302(0x80,0x00);write1302(0x82,0x25);write1302(0x84,0x06);write1302(0x8a,0x02);write1

32、302(0x86,0x20);write1302(0x88,0x05);write1302(0x8c,0x15);write1302(0xc0,0x05);write1302(0x8e,0x80);char bcd(char a)uchar b,c;b=a/10;c=a%10;b=b&0x0f;c=c&0x0f;b0;i-)for(j=110;j0;j-);#endif5.6 按鍵調(diào)節(jié)程序5.6.1 按鍵功能介紹k1為選擇鍵,k2為加號(hào)鍵,k3為減號(hào)鍵,k4為確定鍵。調(diào)節(jié)步驟:第一步點(diǎn)擊k1選擇鍵,按一下光標(biāo)往后退一格,反復(fù)按下k1使光標(biāo)停留在要更改的對(duì)象上。第二步點(diǎn)擊k2或者k3上下調(diào)節(jié)數(shù)字

33、。第三步點(diǎn)擊k4確定鍵,改好日期之后按下確定鍵,萬(wàn)年歷更新完成。圖5-6按鍵仿真模塊5.6.2 程序內(nèi)容#ifndef _anjian_h_#define_anjian_h_/*按鍵控制函數(shù)*/void anjian()if(s1=0)/按下k1yanshi(10);/延時(shí)消抖if(s1=0)/再次讀按鍵狀態(tài)flag=1;s1num+;while(!s1);switch(s1num)/根據(jù)鍵值轉(zhuǎn)向不同的函數(shù)/定位光標(biāo)閃爍點(diǎn)case 1:write_com(0x80+0);/年write_com(0x0f);/光標(biāo)閃爍顯示break;case 2:write_com(0x80+3);/月brea

34、k;case 3:write_com(0x80+6);/日break;case 4:write_com(0x80+12);/星期break;case 5:write_com(0x80+0x40+0);/時(shí)break;case 6:write_com(0x80+0x40+3);/分break;case 7:write_com(0x80+0x40+6);/秒break;case 8:s1num=0;break;if(s1num!=0) if(s2=0)/按下k2yanshi(10);/延時(shí)消抖if(s2=0)/再次讀按鍵狀態(tài)while(!s2);switch(s1num)/根據(jù)鍵值轉(zhuǎn)向不同的函數(shù)c

35、ase 1:years+;if(years=100)years=0;write_nyr(0,years);write_com(0x80+0);break;case 2:month+;if(month=13)month=1;write_nyr(3,month);write_com(0x80+3);break;case 3:day+;if(day=32)day=0;write_nyr(6,day);write_com(0x80+6);break;case 4: week+;if(week=8)week=1;write_week(week);write_com(0x80+12);break;case

36、 5:hour+;if(hour=24)hour=0;write_sfm(0,hour);write_com(0x80+0x40+0);break;case 6:min+;if(min=60)min=0;write_sfm(3,min);write_com(0x80+0x40+3);break;case 7:sec+;if(sec=60)sec=0;write_sfm(6,sec);write_com(0x80+0x40+6);break;if(s3=0)/按下k3yanshi(10);/延時(shí)消抖if(s3=0)/再次讀按鍵狀態(tài)while(!s3);switch(s1num)/根據(jù)鍵值轉(zhuǎn)向不同

37、的處理函數(shù)case 1:years-;if(years=-1)years=99;write_nyr(0,years);write_com(0x80+0);break;case 2:month-;if(month=0)month=12;write_nyr(3,month);write_com(0x80+3);break;case 3:day-;if(day=0)day=31;write_nyr(6,day);write_com(0x80+6);break;case 4:week-;if(week=0)week=7;write_week(week);write_com(0x80+12);break

38、;case 5:hour-;if(hour=-1)hour=23;write_sfm(0,hour);write_com(0x80+0x40+0);break;case 6:min-;if(min=-1)min=59;write_sfm(3,min);write_com(0x80+0x40+3);break;case 7:sec-;if(sec=-1)sec=60;write_sfm(6,sec);write_com(0x80+0x40+6);break;if(s4=0)/按下k4yanshi(10);/延時(shí)消抖if(s4=0)/再次讀按鍵狀態(tài)while(!s4);write_com(0x0c);/設(shè)置光標(biāo)write1302(0x

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論