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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、圖書館收藏中圖分類號:密級:udc:編號:1331畢業(yè)設計說明書雙休日交通信號燈控制系統(tǒng)黃昕彤專業(yè)名稱:樓宇智能化建筑技術班 級:樓宇13-1學 制:三年學 號:1360223108學 歷:??浦笇Ы處煟豪畹侣吩u閱人:論文(設計)提交日期:2016年6月2日論文(設計)答辯日期:2016年6月7日目錄1 概述11.1 單片機的定義11.2 單片機的應用12 開發(fā)工具42.1 proteus 8.142.1.1 proteus簡介42.1.2 proteus特點42.2 keil 553 系統(tǒng)設計63.1 設計背景63.2 設計簡介63.3 設計原理63.4 設計框圖74 硬件設計84.1 芯片

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

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

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

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

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

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

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

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

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

11、休日,紅綠燈的間隔時間為t2秒,反之為t1秒。交通燈的工作過程如下:南北路口的綠燈亮,東西路口的紅燈亮,南北路口方向通車,兩個路口的led開始倒計時40秒。40秒后,南北路口的綠燈熄滅,同時南北路口的黃燈開始閃爍。閃爍3次后,南北路口的紅燈亮,同時東西路口的綠燈亮,東西路口方向開始通車,2個路口的led重新開始倒計時40秒。40秒后,東西路口的綠燈熄滅,而黃燈開始閃爍。閃爍3次后,再切換到南北路口方向。之后,重復上述過程。當當前日期為周六周日時,通車時間延長至60s,倒計時60s后,黃燈閃爍3次,切換方向。3.4 設計框圖單片機at89c51lcd1602顯示交通燈模塊鍵盤模塊時鐘電路ds13

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

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

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

15、到了字符間距和的作用,正因為如此所以它不能很好地顯示圖形。lcd1602使用方便,體積小巧,在很多領域都用大用途,在平常的生活物品中也極為常見,如電動車的顯示屏,智能儀表的顯示屏等等。圖4-2lcd1602液晶顯示屏4.2.2 引腳功能1602采用標準的16腳接口,其中:vss:接地極vcc:接5v電源正極v0:為液晶顯示器對比度調整端,接正電源時對比度最弱,接地電源時對比度最高(對比度過高時會產(chǎn)生“鬼影”,使用時可以通過一個10k的電位器調整對比度)。rs:為寄存器選擇,高電平時選擇數(shù)據(jù)寄存器、低電平時選擇指令寄存器。rw:為讀寫信號線,高電平時進行讀操作,低電平時進行寫操作。e(或en):

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

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

18、2:振蕩源,外接32.768khz晶振。rst:復位/片選線,通過把rst輸入驅動置高電平來啟動所有的數(shù)據(jù)傳送。rst輸入有兩種功能:首先,rst接通控制邏輯,允許地址/命令序列送入移位寄存器;其次,rst提供終止單字節(jié)或多字節(jié)數(shù)據(jù)的傳送手段。當rst為高電平時,所有的數(shù)據(jù)傳送被初始化,允許對ds1302進行操作。如果在傳送過程中rst置為低電平,則會終止此次數(shù)據(jù)傳送,i/o引腳變?yōu)楦咦钁B(tài)。上電運行時,在vcc2.0v之前,rst必須保持低電平。只有在sclk為低電平時,才能將rst置為高電平。i/o:串行數(shù)據(jù)輸入輸出端(雙向)。sclk:時鐘輸入端。5 程序設計5.1 主程序設計5.1.1

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

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

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

22、日十進制化years=deci(years);month=read1302(0x89);month=deci(month);day=read1302(0x87);day=deci(day);week=read1302(0x8b);/將星期十進制化week=deci(week);write_sfm(0,hour);/在液晶屏上顯示時間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;/總中斷打開et0=1;/定時器0打開tr0=1;/定時器0啟動if(deci(read1302(0xc1)!=0x05

24、)init1302();write_com(0x38);/設置8位、2行、57點陣write_com(0x0c);/設置顯示數(shù)據(jù),不顯示光標write_com(0x06);/每寫一個字符指針地址加一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();/雙休日運行功能一else if(week=5)common();/工作日運行功二5.2 兩個子功能5.2.1

25、功能介紹根據(jù)萬年歷顯示的星期判斷當前日期是否為雙休日,若是雙休日,則運行功能一:綠燈時間延長至60s;如是正常工作日,則運行功能二:綠燈時間為40s。紅綠燈顯示仿真模塊如圖5-3。圖5-3紅綠燈顯示模塊實現(xiàn)的兩個子功能參考表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_/*兩個子功能*/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;/四個場景循環(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;/四個場景循環(huán)break;#endif5.3 液晶屏顯示5.3.1 顯示流程圖開始a/d轉換選擇量程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 按鍵調節(jié)程序5.6.1 按鍵功能介紹k1為選擇鍵,k2為加號鍵,k3為減號鍵,k4為確定鍵。調節(jié)步驟:第一步點擊k1選擇鍵,按一下光標往后退一格,反復按下k1使光標停留在要更改的對象上。第二步點擊k2或者k3上下調節(jié)數(shù)字

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

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);/延時消抖if(s4=0)/再次讀按鍵狀態(tài)while(!s4);write_com(0x0c);/設置光標write1302(0x

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論