




已閱讀5頁,還剩28頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
桂林電子科技大學(xué)專業(yè)工程設(shè)計論文摘 要現(xiàn)代社會電子鬧鐘已廣泛用于各種私人和公眾場合,成為我們生活、工作和學(xué)習(xí)中不可缺少的好幫手,因此研究實用性更強的電子鬧鐘具有十分重要的意義。本設(shè)計是基于單片機(jī)的電子鐘設(shè)計,不僅具有時分秒的顯示功能,還具有雙鬧鈴和倒計時的功能,實用性非常強。電子鐘的計時部分采用AT89S52單片機(jī)內(nèi)部定時器實現(xiàn),而顯示功能是采用液晶模塊LCD1602來實現(xiàn),該電子鬧鐘可以讓使用者通過按鍵來輕松選擇的功能菜單和調(diào)節(jié)時間,具有非常良好地人機(jī)界面。關(guān)鍵詞:電子鬧鐘;倒計時;AT89S52;液晶LCD1602;按鍵AbstractIn modern society,the electronic alarm clock has been widely used invarious occasions and become indispensable tolife.It is a good helper to our work and learning. So,there is very important significanceto researchmore practical electronic alarm clock.This design is based on single chip microcomputer,It has display function of hours,minutes and seconds,dual alarm and countdown.The internal timer of AT89S52 achieve the part of time.The liquid crystal LCD1602 achieve the part of display.The users can use the push-buttons to choice the menu of functions and adjust the time.The man-machine interface is very good.Key words: electronic alarm; countdown; AT89S52; liquid crystal LCD1602; button目 錄引言11 設(shè)計要求22 方案論證22.1 計時方案的選擇22.2 顯示方案的選擇22.3 按鍵功能方案設(shè)計32.4 指示燈和響鈴方案設(shè)計33 系統(tǒng)組成34 硬件設(shè)計44.1 單片機(jī)最小系統(tǒng)設(shè)計44.2 顯示電路設(shè)計54.3 蜂鳴器電路設(shè)計54.4 按鍵電路設(shè)計65 軟件設(shè)計65.1 走時部分65.2 鬧鈴檢測部分75.3 鍵盤掃描部分75.4 液晶部分85.5 流程圖86 仿真設(shè)計117 系統(tǒng)調(diào)試及結(jié)果117.1 軟件調(diào)試117.2 硬件調(diào)試127.3 調(diào)試結(jié)果138 總結(jié)13謝 辭14參考文獻(xiàn)15附 錄16第 30 頁 共 33 頁桂林電子科技大學(xué)專業(yè)工程設(shè)計論文引言電子鬧鐘在科學(xué)技術(shù)高度發(fā)展的今天,千家萬戶以及一些公共場合都少不了它,所以設(shè)計一個電子鬧鐘,為人們提供報時方便顯得非常有意義。本文給出了一種以51單片機(jī)芯片電子鬧鐘設(shè)計方法,給人們帶來更為方便的工作與生活。除此之外,此次設(shè)計也訓(xùn)練了自己對單片機(jī)最小系統(tǒng)及其外圍電路設(shè)計的能力和單片機(jī)C語言的編程能力,幫助自己鞏固和運用所學(xué)課程,理論聯(lián)系實際,提高分析、解決問題的能力。近年來集成電路技術(shù)的出現(xiàn)和應(yīng)用,推動了人類文明的突飛猛進(jìn),基于集成電路技術(shù)的單片機(jī)產(chǎn)品更是方便了人們的生活和工作,目前以單片機(jī)技術(shù)的應(yīng)用為核心的產(chǎn)品種類非常豐富。我制作的這個以單片機(jī)技術(shù)為基礎(chǔ)的LCD可校時可定時電子鬧鐘,是一個實用性很強的單片機(jī)電子設(shè)計產(chǎn)品。設(shè)計時先進(jìn)行系統(tǒng)的整體規(guī)劃確定整個系統(tǒng)的功能,然后按照每個功能的具體要求,進(jìn)行各個軟件模塊的仿真設(shè)計并逐個調(diào)試,待全部通過后,才開始實際電路板的制作,最后安裝元器件并下載程序,根據(jù)實際情況作進(jìn)一步的完善。電子鐘的計時部分采用AT89S52單片機(jī)內(nèi)部定時器實現(xiàn),而顯示功能是采用液晶模塊LCD1602來實現(xiàn)。51系列單片機(jī)的控制器運算能力強,處理速度快,可以精確計時,很好地解決了實際生產(chǎn)生活中對計時高精確度的要求,LCD1602液晶顯示模塊有很強的顯示功能,能夠同時顯示16*02個即32個字符,另外使用者可以通過按鍵來輕松選擇功能和調(diào)節(jié)時間,因此具有非常良好地人機(jī)界面。1 設(shè)計要求1、利用單片機(jī)設(shè)計一個用LCD顯示時鐘的電子時鐘,帶鬧鐘功能。2、接通電源后,蜂鳴器連續(xù)發(fā)出2次響聲,同時工作指示燈閃動,表示開始工作,液晶顯示“000000”(時分秒)。3、通過鍵盤設(shè)定兩個鬧鈴響的時間,即設(shè)置幾小時幾分鐘后鬧鈴響。4、可設(shè)置單獨顯示一個或循環(huán)顯示兩個鬧鐘的時、分,用2個LED燈分別指示當(dāng)前LED數(shù)碼管上顯示的是鬧鐘1、鬧鐘2的時間。5、可設(shè)置倒計時或正計時。6、硬件成本控制在40元內(nèi)。2 方案論證2.1 計時方案的選擇1、采用專門的時鐘芯片,例如美國DALLAS公司推出的DS1302實時時鐘芯片,它的工作電壓為2.5V-5.5V,采用三線接口與CPU進(jìn)行同步通信,并可采用突發(fā)式一次傳送多個字節(jié)的時鐘信號或RAM數(shù)據(jù),優(yōu)點是高性能、低功耗,可以對年、月、日、周日、時、分、秒進(jìn)行計時,具有閏年補償功能,但DS1302存在時鐘精度不高,易受環(huán)境影響,出現(xiàn)時鐘混亂等缺點,并且會增加電路硬件復(fù)雜性。2、采用AT89S52單片機(jī)內(nèi)部定時器,51系列單片機(jī)內(nèi)部有兩個16位定時器/計數(shù)器,簡稱定時器0和定時器1,簡稱T0和T1,設(shè)置T0工作在模式0狀態(tài)下,每隔50ms中斷一下,中斷20次正好是1秒。用此方法的優(yōu)點是可節(jié)少硬件設(shè)計,計時精度高,缺點是軟件編程略顯復(fù)雜??偨Y(jié):綜合兩種方案的優(yōu)缺點,以及此次課設(shè)的要求,選擇第二種方案是用單片機(jī)內(nèi)部定時器。因為使用該方案不但可以節(jié)省硬件成本,還可以更鍛煉自己使用單片機(jī)內(nèi)部定時器和C語言編程的能力。2.2 顯示方案的選擇1、使用LED數(shù)碼管,由多個發(fā)光二極管封裝在一起組成“8”字型的器件,引線已在內(nèi)部連接完成,只需引出它們的各個筆劃,公共電極。它能夠在低電壓、小電流的條件下驅(qū)動發(fā)光,發(fā)光響應(yīng)時間極短,單色性好,亮度高,但是數(shù)碼管顯示內(nèi)容單一,引腳與單片機(jī)I/0連接復(fù)雜。2、使用液晶LCD1602,液晶顯示的原理是利用液晶的物理特性,通過電壓對其顯示區(qū)域進(jìn)行控制,有電就有顯示,LCD1602是字符型液晶顯示模塊,它是一種專門用于顯示字母、數(shù)字、符號等點陣式LCD,并且顯示質(zhì)量高,功耗小。缺點是較數(shù)碼管成本高??偨Y(jié):數(shù)碼管顯示內(nèi)容單一,液晶則比較豐富,并且數(shù)碼管消耗電力會比液晶更高,若選擇數(shù)碼管硬件布線會較復(fù)雜,影響美觀性,而選擇液晶也不會超過經(jīng)費支持。綜合兩種方案的優(yōu)缺點,選擇方案二液晶顯示。2.3 按鍵功能方案設(shè)計根據(jù)題目設(shè)計要求,定義6個12*12mm的按鍵來選擇系統(tǒng)功能菜單和調(diào)節(jié)時間,分別為K1、K2、K3、K4、K5、K6。各個按鍵的具體功能如表2.1:K1選擇調(diào)節(jié)時間菜單鍵及時增加鍵K4選擇倒計時菜單鍵K2選擇調(diào)節(jié)鬧鈴1菜單鍵及分增加鍵K5關(guān)閉鬧鈴響聲鍵K3選擇調(diào)節(jié)鬧鈴2菜單鍵及秒增加鍵K6確認(rèn)鍵表2.1 按鍵功能表2.4 指示燈和響鈴方案設(shè)計1、指示燈:綜合設(shè)計要求和自我考慮,需要的指示燈個數(shù)為4個,分別為電源指示,程序運行指示和兩個鬧鈴指示。為了加以區(qū)分可使用不同顏色的LED。2、響鈴選擇:采用經(jīng)濟(jì)適用的蜂鳴器,它是一種一體化結(jié)構(gòu)的電子訊響器,采用直流電壓供電,廣泛應(yīng)用于計算機(jī)、報警器、電子玩具、定時器等電子產(chǎn)品中作發(fā)聲器件,而且驅(qū)動電路簡單,由單片機(jī)一個I/O口外接一個三極管即可。3 系統(tǒng)組成經(jīng)過以上的計時方案選擇和顯示方案選擇,確定本設(shè)計的電子鬧鐘的計時方案為單片機(jī)內(nèi)部定時,顯示方案為液晶LCD1602。鬧鈴的響鈴來源選擇經(jīng)濟(jì)適用的蜂鳴器,并用按鍵來選擇功能菜單和調(diào)節(jié)時間,用4個不同顏色的發(fā)光二極管作為兩個鬧鈴指示燈,程序運行指示燈和電源指示燈。因此系統(tǒng)組成框圖如圖3.1:LCD1602指示燈蜂鳴器AT89S52最小系統(tǒng)鍵盤 圖3.1 系統(tǒng)框圖4 硬件設(shè)計4.1 單片機(jī)最小系統(tǒng)設(shè)計單片機(jī)最小系統(tǒng)的設(shè)計關(guān)鍵的就是時鐘電路和復(fù)位電路的設(shè)計。1、時鐘電路在這里使用單片機(jī)內(nèi)部振蕩電路,管腳XTAL1、XTAL2用來外接石英晶體和微調(diào)電容,如圖4.1所示。晶體可在1.212MHz之間選擇,電容可在630pF之間選擇。圖4.1 時鐘電路2、復(fù)位電路當(dāng)振蕩電路工作,并且在RST引腳加上一個至少保持兩個機(jī)器周期的高電平時,就能完成一次復(fù)位。這里我使用按鈕復(fù)位方式,如圖4.2,利用RC微分電路產(chǎn)生正脈沖來達(dá)到復(fù)位目的,該正脈沖的持續(xù)時間大于兩個機(jī)器周期。圖4.2 復(fù)位電路4.2 顯示電路設(shè)計此設(shè)計的顯示電路采用的是液晶模塊LCD1602,其為5V電壓驅(qū)動,只有并行接口。其與單片機(jī)連接的硬件電路如圖4.3,其中的D0-D7分別連接到單片機(jī)的P0.0-P0.7,VSS接地,VDD接+5V電源,VEE經(jīng)10K電位器接地,用于調(diào)節(jié)背光,RS端為向液晶控制器寫數(shù)據(jù)/寫命令選擇端,接單片機(jī)P2.1口,RW為讀/寫選擇端,因為我們不從液晶讀取任何數(shù)據(jù),故接地,E端為使能信號,接單片機(jī)P2.2口。圖4.3 液晶連接電路4.3 蜂鳴器電路設(shè)計電路設(shè)計如圖4.4,單片機(jī)的P2.0腳通過限流電阻R與三極管基極相接,集電極接蜂鳴器。當(dāng)P2.0引腳電平為0是,三極管導(dǎo)通,蜂鳴器工作,引腳電平為1時,三極管截止,蜂鳴器不工作。因為單片機(jī)口輸出低電平時的驅(qū)動能力比高電平強的多,故三極管采用基極低電平導(dǎo)通PNP型的三極管。圖4.4 蜂鳴器驅(qū)動電路4.4 按鍵電路設(shè)計此次按鍵電路設(shè)計可直接將按鍵一端接到單片機(jī)的I/O口,另一端直接接地。通過單片機(jī)檢測低電平判斷按鍵按下,K1-K6分別接至單片機(jī)的P3.0-P3.5。按鍵電路如圖4.5:圖4.5 按鍵電路5 軟件設(shè)計軟件設(shè)計主要包含顯示走時、鬧鈴檢測和鍵盤掃描三部分。5.1 走時部分走時部分主要有3個變量hour、min、sec和deda做為時鐘的時、分、秒和定時標(biāo)志位,通過單片機(jī)內(nèi)部定時器定時50ms,定時標(biāo)志位deda加1,此過程在中斷服務(wù)程序中完成,當(dāng)加滿20次時,deda清零并且時鐘的秒sec加1,從而到達(dá)計時目的。代碼如下:void T0_srv(void) interrupt 1 TH0=0x3C; TL0=0x0B0; deda+;void conv() if(deda=20)sec+;deda=0; if(sec=60)min+;sec=0;ok=1; if(min=60)hour+;min=0; if(hour=24)hour=0;5.2 鬧鈴檢測部分鬧鈴檢測部分主要的變量有6個,hh1、mm1和flag1做為鬧鈴1的時、分和開關(guān)標(biāo)志位,hh2、mm2和flag2做為鬧鈴2的時、分和開關(guān)標(biāo)志位,當(dāng)hh1=hour,mm1=min并且開關(guān)標(biāo)志flag1=1時,鬧鈴1便可以執(zhí)行響鈴程序,當(dāng)hh2=hour,mm2=min并且開關(guān)標(biāo)志flag2=1時,鬧鈴2便可以執(zhí)行響鈴程序,在這個子程序中為了不影響正常走時時間,故加上走時函數(shù)time( )。代碼如下:void alm_check1() while(alm_flag1=1)&(hour=hh1)&(min=mm1)&(ok=1) time(); alm_led1=0; beep=beep;delay(40); if(k5=0) alm_led1=1;beep=1;ok=0; 5.3 鍵盤掃描部分鍵盤掃面部分是該軟件設(shè)計中較復(fù)雜的部分,用單片機(jī)I/O口檢測低電平來判斷是否有鍵按下,根據(jù)按下的鍵值來執(zhí)行相應(yīng)的子程序。在此部分增加一個標(biāo)志變量ok做為子程序執(zhí)行完畢的標(biāo)志變量,在子程序執(zhí)行過程中當(dāng)K6鍵按下,則ok=1,返回主程序。 while(1) time(); alm_check1(); alm_check2(); if(k1=0) set_time(); if(k2=0) set_atime1(); if(k3=0) set_atime2(); if(k4=0) set_countdown(); 5.4 液晶部分液晶LCD1602做為本設(shè)計的顯示元件,其初始化程序如下:void TS1602_INIT(void)RS=0;write_com(0x38); /設(shè)置16*2顯示,5*7點陣,8位數(shù)據(jù)接口write_com(0x0c); /設(shè)置開顯示,不顯示光標(biāo)write_com(0x06); /寫一個字符后地址指針自動加1write_com(0x01); /清屏5.5 流程圖1、主程序流程圖,如圖5.1:圖5.1 主程序流程圖2、中斷服務(wù)流程圖:如圖5.2:圖5.2 中斷服務(wù)流程圖2、時間流程圖,如圖5.3:圖5.3 時間流程圖3、鬧鈴檢測流程圖,如圖5.4:圖5.4 鬧鈴檢測流程圖4、鍵盤掃描流程圖,如圖5.5:圖5.5 鍵盤掃面流程圖6 仿真設(shè)計仿真設(shè)計是設(shè)計一個系統(tǒng)十分重要的環(huán)節(jié),在實際電路做好之前系統(tǒng)軟件調(diào)試最好選擇。此次仿真設(shè)計采用的是英國Labcenter electronics公司出版的EDA工具軟件Protues,在PROTUES繪制好原理圖后,調(diào)入已編譯好的目標(biāo)代碼文件:*.HEX,可以在PROTUES的原理圖中看到模擬的實物運行狀態(tài)和過程。仿真電路圖如下,圖6.1:圖6.1 仿真電路圖7 系統(tǒng)調(diào)試及結(jié)果7.1 軟件調(diào)試此時設(shè)計的軟件調(diào)試部分主要在仿真軟件Protues中完成。首先根據(jù)硬件設(shè)計在Protues中完成原理圖的設(shè)計,確定使用單片機(jī)的哪些I/O口,然根據(jù)軟件設(shè)計中的流程圖編寫單片機(jī)C語言程序。結(jié)合題目要求模塊化地編寫程序,首先編寫走時程序,然后編寫鬧鈴1、鬧鈴2、的程序,最后完成倒計時設(shè)計,在分模塊化編寫過程中,不斷地根據(jù)仿真現(xiàn)象調(diào)試程序來修復(fù)軟件編寫錯誤。例如調(diào)試液晶的顯示問題,寫指令write_com(0x80)將數(shù)據(jù)指針定位到第一行第一個字處,當(dāng)寫第二行時需要重新定位數(shù)據(jù)指針,寫指令write_com(0x80+0x40)。再者,在顯示倒計時時出現(xiàn)走時時間不準(zhǔn)確的問題,故在倒計時變量處理的程序中要加上正計時走時時間變量處理,C_sec、C_min、C_hour是倒計時時間變量,sec、min、hour是走時時間變量。程序如下: void C_conv( ) if(deda=20)C_sec-;sec+;deda=0; if(C_sec0)C_sec=59; C_min-; if(sec=60)min+;sec=0; if(C_min0)C_hour-;C_min=59; if(min=60)hour+;min=0; if(hour=24)hour=0; if(C_hour0) C_sec=0;C_min=0;C_hour=0; for(i=0;i10;i+) routine_led=routine_led; beep=beep; delay(80); ok=1; 最后在顯示時間問題上,要將數(shù)字顯示到液晶上,采取的方法是將數(shù)字轉(zhuǎn)化為字符串中的元素然后再送往液晶顯示。程序如下:其中,uchar code lcd_code =0123456789。void display_num(unsigned char num)uchar ge,shi;ge=num%10;shi=num/10;write_date(lcd_codeshi);write_date(lcd_codege); 7.2 硬件調(diào)試此次的硬件設(shè)計較為簡單,主要的調(diào)試部分在于液晶對比度的調(diào)試,期間遇到的問題是液晶的對比度調(diào)節(jié)引腳所接的10k電位器封裝不正確,導(dǎo)致VCC與GND短路,還好及時發(fā)現(xiàn)問題,沒有損壞器件。7.3 調(diào)試結(jié)果經(jīng)過近兩周的軟件調(diào)試和硬件調(diào)試,對比設(shè)計要求,完成情況如下:1、電路板大小7cm*12cm;2、電路接通電源后,蜂鳴器連續(xù)發(fā)出2次響聲,同時工作指示燈閃動,液晶第一行顯示“Time:00:00:00”,代表時間,第二行顯示“00:00 F 00:00 F”,代表兩個鬧鈴,初始為關(guān)。3、可通過按鍵設(shè)定走時時間、兩個鬧鈴響的時間和倒計時時間。4、可顯示兩個鬧鐘的時、分,并用2個LED燈分別指示鬧鐘1、鬧鐘2的時間。8 總結(jié)1、通過本次課程設(shè)計,實現(xiàn)了基于單片機(jī)的電子時鐘設(shè)計,在這過程中,我學(xué)到了很多,加深了對單片內(nèi)部模塊的理解,進(jìn)一步學(xué)習(xí)了C語言的編寫規(guī)則。在設(shè)計的前期,我認(rèn)真地復(fù)習(xí)了51單片機(jī)的相關(guān)資料,掌握了單片機(jī)外部電路的合理設(shè)計以及各個引腳的功能。系統(tǒng)的進(jìn)行電子時鐘的需求分析,合理的設(shè)計出了電路原理框圖,根據(jù)原理框圖設(shè)計出電路原理圖,然后設(shè)計軟件流程圖,根據(jù)流程圖對單片機(jī)使用C語言編程。在此過程中,我學(xué)到了很多在書本上學(xué)不到的東西,尤其是在處理故障和解決問題方面的考慮,受益頗多。2、本次設(shè)計的題目為基于單片機(jī)的電子時鐘設(shè)計,通過兩周努力,可以順利實現(xiàn)的功能有:在液晶上顯示走時時間;兩個鬧鈴時間和是否開啟以及倒計時時間;并且能通過按鍵實現(xiàn)設(shè)置時間的暫停、啟動、調(diào)節(jié)等控制。3、在完成設(shè)計后,發(fā)現(xiàn)有還可以改進(jìn)的地方,例如增加一個省電模式,即在不需要看時間的時候,將液晶顯示關(guān)閉,這是設(shè)計前考慮不周的地方。最后,我深刻感受到要做好一個課程設(shè)計,就必須做到:在設(shè)計程序之前,對所需資料的綜合整理,有效的挑選資料;要明確目標(biāo),整理思路;合理設(shè)計出系統(tǒng)所必須的流程圖,做好充分的心里準(zhǔn)備。這次設(shè)計是對我所學(xué)單片機(jī)一書的綜合考驗,使我能查漏補缺,復(fù)習(xí)課本知識,加深理解記憶,所以每一步我都用心去做。謝 辭這三周來感謝指導(dǎo)老師對我的指導(dǎo)和建議,感謝同學(xué)的熱心幫助,也感謝學(xué)校為我們提供學(xué)習(xí)的環(huán)境和條件,在這三周的設(shè)計過程中老師和同學(xué)的幫助至關(guān)重要,在關(guān)鍵時刻老師的指點和同學(xué)之間的研究讓我少走了許多的彎路。衷心地感謝我的指導(dǎo)老師邱治金老師。本文從選題到完成,從理論上的探討到實際問題的解決,無處不飽含著董老師的心血。邱老師的悉心指導(dǎo)和建議給了我極大的幫助和支持,使我受益匪淺。參考文獻(xiàn)1 沈紅衛(wèi).基于單片機(jī)的智能系統(tǒng)設(shè)計與實現(xiàn)M.北京:電子工業(yè)出版社,20052 王守中、聶元銘.51單片機(jī)開發(fā)入門與典型實例(第2版)M.北京:人民郵電出版社,20093 白駒珩、雷曉平.單片計算機(jī)及其應(yīng)用(第2版)M.成都:電子科技大學(xué)出版社,2012附 錄1、元器件清單:專業(yè)工程設(shè)計元器件清單示例學(xué)號: 1000820527 姓名: 周志通 空課題名稱: 基于單片機(jī)的簡易鬧鐘設(shè)計 空序 號名 稱數(shù) 量單 價備 注1單片機(jī)89C52及鎖緊底座12lcd1602134腳按鍵(規(guī)格12*12mm)6帶按鍵帽44腳按鍵(規(guī)格6*6mm)15發(fā)光二極管(直徑3mm)3藍(lán)綠黃各一個6發(fā)光二極管(直徑5mm)1紅7直插電阻360歐48直插電阻1K19直插電阻100歐210直插電阻2.7k111精密電位器10k112晶振12MHz113電解電容10u114直插電容22pF2159012三極管116蜂鳴器117排阻1K*81181*40圓孔插座11排19雙排插針11排20單排插針11排21ISP下載口2*5插座12、電路原理圖:3、PCB圖:頂層底層4、程序代碼#include#define uchar unsigned char#define uint unsigned int#define TS1602_DATA P0 sbit routine_led=P10;sbit alm_led1=P11;sbit alm_led2=P12; sbit E=P22;sbit RS=P21;sbit beep=P20;sbit k1=P30;sbit k2=P31;sbit k3=P32;sbit k4=P33;sbit k5=P34;sbit k6=P35;uchar i,j;uchar hour=0,min=0,sec=0;uchar hh1=0,mm1=0,hh2=0,mm2=0;uchar alm_flag1=0,alm_flag2=0;uchar deda=0;char C_hour=0,C_min=0,C_sec=0;uchar ok=0;uchar string1=Time: : :;uchar string2= : F : F;uchar string3= : N : F;uchar string4= : F : N;uchar string5= : N : N;uchar string6=Countdown_time:;uchar string7= : :;uchar code lcd_code=0123456789;void delay(uint x) uint i,j;for(i=0;ix;i+) for(j=0;j=20)sec+;deda=0; if(sec=60)min+;sec=0;ok=1; if(min=60)hour+;min=0; if(hour=24)hour=0; /*/函數(shù)功能:顯示走時時間/*void disp_time() write_com(0x80+0x05); display_num(hour);delay(1); write_com(0x80+0x08); display_num(min);delay(1); write_com(0x80+0x0B); display_num(sec);delay(1); /*/函數(shù)功能:倒計時分秒轉(zhuǎn)換程序/*void C_conv() if(deda=20)C_sec-;sec+;deda=0; if(C_sec0)C_sec=59; C_min-; if(sec=60)min+;sec=0; if(C_min0)C_hour-;C_min=59; if(min=60)hour+;min=0; if(hour=24)hour=0; if(C_hour0) C_sec=0;C_min=0;C_hour=0; for(i=0;i10;i+) routine_led=routine_led; beep=beep; delay(80); ok=1; /*/函數(shù)功能:顯示倒計時時間/*void disp_Countdown_time() write_com(0x80+0x40); display_num(C_hour);delay(1); write_com(0x80+0x43); display_num(C_min);delay(1); write_com(0x80+0x46); display_num(C_sec);delay(1); /*/函數(shù)功能:調(diào)用走時時間程序函數(shù)/*void time() conv(); disp_time(); /*/函數(shù)功能:調(diào)用倒計時時間程序函數(shù)/*void Ctime() C_conv(); disp_Countdown_time(); /*/函數(shù)功能:顯示鬧鈴1時間/*void disp_alm1() write_com(0x80+0x40); display_num(hh1);delay(1); write_com(0x80+0x43); display_num(mm1);delay(1); /*/函數(shù)功能:顯示鬧鈴2時間/*void disp_alm2() write_com(0x80+0x48); display_num(hh2);delay(1); write_com(0x80+0x4B); display_num(mm2);delay(1); /*/函數(shù)功能:調(diào)整時間/*void set_time() delay(500); TR0=0; sec=0; ok=0; while(ok=0) if(k1=0)delay(100); if(k1=0)hour+; if(hour=24)hour=0; delay(5); disp_time(); if(k2=0)delay(100); if(k2=0)min+; if(min=60)min=0; delay(5); disp_time(); if(k3=0)delay(100); if(k3=0)sec+; if(sec=60)sec=0; delay(5); disp_time(); if(k6=0)ok=1; TR0=1; /*/函數(shù)功能:調(diào)整鬧鈴1/*void set_atime1() alm_led1=0; delay(500); ok=0; while(ok=0) if(k1=0)delay(100); if(k1=0)hh1+; if(hh1=24)hh1=0; delay(5); disp_alm1(); if(k2=0)delay(100); if(k2=0)mm1+; if(mm1=60)mm1=0; delay(5); disp_alm1(); if(k3=0) alm_flag1=1; if(alm_flag1=0)&(alm_flag2=0)display_string2(string2); disp_alm1();disp_alm2(); if(alm_flag1=1)&(alm_flag2=0)display_string2(string3); disp_alm1();disp_alm2(); if(alm_flag1=0)&(alm_flag2=1)display_string2(string4); disp_alm1();disp_alm2(); if(alm_flag1=1)&(alm_flag2=1)display_string2(string5); disp_alm1();disp_alm2(); if(k4=0) alm_flag1=0; if(alm_flag1=0)&(alm_flag2=0)display_string2(string2); disp_alm1();disp_alm2(); if(alm_flag1=1)&(alm_flag2=0)display_string2(string3); disp_alm1();disp_alm2(); if(alm_flag1=0)&(alm_flag2=1)display_string2(string4); disp_alm1();disp_alm2(); if(alm_flag1=1)&(alm_flag2=1)display_string2(string5); disp_alm1();disp_alm2(); if(k6=0) ok=1; time(); alm_led1=1; /*/函數(shù)功能:調(diào)整鬧鈴2/*void set_atime2() alm_led2=0; delay(1000); ok=0; while(ok=0) if(k1=0)delay(100); if(k1=0)hh2+; if(hh2=24)hh2=0; delay(5); disp_alm2(); if(k2=0)delay(100); if(k2=0)mm2+; if(mm2=60)mm2=0; delay(5); disp_alm2(); if(k3=0) alm_flag2=1; if(alm_flag1=0)&(alm_flag2=0)display_string2(string2); disp_alm1();disp_alm2(); if(alm_flag1=1)&(alm_flag2=0)display_string2(string3); disp_alm1();disp_alm2(); if(alm_flag1=0)&(alm_flag2=1)display_string2(string4); disp_alm1();disp_alm2(); if(alm_flag1=1)&(alm_flag2=1)display_string2(string5); disp_alm1();disp_alm2(); if(k4=0) alm_flag2=0; if(alm_flag1=0)&(alm_flag2=0)display_string2(string2); disp_alm1();disp_alm2(); if(alm_flag1=1)&(alm_flag2=0)display_string2(string3); disp_alm1();disp_alm2(); if(alm_flag1=0)&(alm_flag2=1)display_string2(string4); disp_alm1();disp_alm2(); if(alm_flag1=1)&(alm_flag2=1)display_string2(string5); disp_alm1();disp_alm2(); if(k6=0) ok=1; time(); alm_led2=1; /*/函數(shù)功能:調(diào)整倒計時時間/*void set_countdown() write_com(0x01); display_string1(string6); displa
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 吸污合同協(xié)議書
- 產(chǎn)品代銷合同協(xié)議書
- 終止實習(xí)合同協(xié)議書
- 臺球比賽合同協(xié)議書
- 超市采購合同協(xié)議書
- 就餐服務(wù)合同協(xié)議書
- 外貿(mào)人員合同協(xié)議書
- 合同變更協(xié)議書格式
- 購房合同與協(xié)議書
- 單位分房合同協(xié)議書
- 鐵路隧道工程施工安全技術(shù)規(guī)程TB
- 鼻咽癌護(hù)理查房-PPT課件
- 大客戶銷售管理培訓(xùn)方案(共31頁).ppt
- 土建安全員考試試題及答案(500題)
- DB4201∕T 650-2021 武漢市排水管網(wǎng)隱患數(shù)據(jù)庫標(biāo)準(zhǔn)
- 畢業(yè)設(shè)計(論文)-蝸輪絲杠升降機(jī)的設(shè)計
- (完整版)建設(shè)項目經(jīng)濟(jì)評價方法與參數(shù)(第三版)
- 霍尼韋爾IPM-Vista網(wǎng)絡(luò)接口模塊安裝使用說明書
- 外墻鋼管腳手架施工承包合同
- 國歌隊歌校歌歌詞(已注音)
- 在廣州珠江醫(yī)院進(jìn)行碘131治療的流程
評論
0/150
提交評論