


版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、信息工程學(xué)院課程設(shè)計報告書題 目:可編程作息時間控制器設(shè)計專 業(yè):電子信息科學(xué)與技術(shù)班 級:學(xué) 號:學(xué)生姓名指導(dǎo)教師:2013年5月13日信息工程學(xué)院課程設(shè)計任務(wù)書學(xué)號學(xué)生姓名專業(yè)(班級)設(shè)計題目可編程作息時間控制器設(shè)計設(shè) 計 技 術(shù) 參 數(shù)0.5v 低電壓驅(qū)動蜂鳴器5V外部穩(wěn)壓電源供電1602LCD顯示日期和時間LED提示鬧鐘到來設(shè) 計 要 求(1)按照給定的時間模擬控制,實現(xiàn)廣播、上下課打鈴、燈光控制(屏幕顯示)。(2)具備日期和時鐘顯示。工作量文字報告字?jǐn)?shù)大約在 2000字,頁數(shù)在20頁左右工 作 計 劃(1)整體設(shè)計構(gòu)思(2)查閱有關(guān)資料(3)編寫調(diào)試程序(4)畫出電路圖(5)裝載程序
2、,查看結(jié)果參 考 資 料1 單片機原理及應(yīng)用(第二版)張毅剛彭喜兀彭宇北京高等教育出版 社2 劉和平.單片機編程與入門.重慶大學(xué)出版社,2002.68-99,111-1223 陳明熒.89C51單片機課程設(shè)計實訓(xùn)教材.清華大學(xué)出版社,2003.38-67,102-118指導(dǎo)教師簽字教研室主任簽字信息工程學(xué)院課程設(shè)計成績評定表電子學(xué)生姓名:學(xué)號:專業(yè)(班級):課程設(shè)計題目:_可編程作息時間控制器設(shè)計指導(dǎo)教師評語:成績: 指導(dǎo)教師:摘要本設(shè)計是可編程作息時間控制器設(shè)計,由單片機AT89C51芯片和LCD LED顯示器,輔以必要的電路,構(gòu)成一個單片機四路可調(diào)鬧鐘。電子鐘可采用數(shù)字電路實現(xiàn),也可以采用
3、單片機來完成。LCD顯示“時”,“分”,LED亮燈來表示鬧鐘的到來, 定時時間到能發(fā)出警報聲。 現(xiàn)在是自動化高度發(fā)達的時代, 特別是電子類產(chǎn)品都是靠內(nèi)部的控制電路來實現(xiàn)對產(chǎn)品的控 制,達到自動運行的目的,這就需要我們這里要做的設(shè)計中的電器元件及電路的支持。在這次設(shè)計中主要是用 AT89S51來進行定時,也結(jié)合著其他輔助電路實施控制, 在定時 的時候,按一下控制小時的鍵對小時加一; 按一下控制分鐘的鍵對分鐘加一; 到達預(yù)設(shè)的時 間,此電路就會發(fā)出報警聲音提示已經(jīng)到點。關(guān)鍵字:四路可調(diào)鬧鐘AT89C51 LCD1任務(wù)提出與方案論證 01.1單片機型號的選擇01.2按鍵的選擇01.3顯示器的選擇01
4、.4計時部分的選擇02總體設(shè)計12.1系統(tǒng)總框圖12.2原理及工作過程說明 12.3系統(tǒng)電路圖23詳細(xì)設(shè)計33.1主程序部分的設(shè)計33.2獨立式鍵盤的接口電路 33.3 1602LCD液晶顯示器 43.4鬧鐘子函數(shù)84總結(jié)9參考文獻101任務(wù)提出與方案論證1.1單片機型號的選擇通過對多種單片機性能的分析,最終認(rèn)為AT89C51是最理想的電子時鐘開發(fā)芯片。AT89C51是一種帶4K字節(jié)閃爍可編程可擦除只讀存儲器的低電壓,高性能CMOS位微處理器,器件采用ATMEL高密度非易失存儲器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲器組合在單個芯片中,A
5、TME啲AT89C51是一種高效微控制器,而且它與MCS-51兼容,且具有4K字節(jié)可編程序存儲器和1000次擦寫循環(huán),數(shù)據(jù)保留時間為 10年,是最好的選擇。1.2按鍵的選擇本次設(shè)計按照題目要求使用獨立式按鍵。由于按鍵較少,在修改時間或設(shè)置鬧鈴時間時就不能直接輸入,只能通過加或減完成,稍為麻煩一些,但其程序簡單。1.3顯示器的選擇選用1602LCD夜晶顯示器。1.4計時部分的選擇如果使用時鐘芯片, 系統(tǒng)就不怕掉電且時間精確。 但這種芯片比較貴, 況且,設(shè)計本系 統(tǒng)主要是為了學(xué)習(xí)單片機程序的編寫和調(diào)試以及設(shè)計硬件電路的一些方法,因此采用軟件的方法來計時而沒有采用價格較高的時鐘芯片。2總體設(shè)計2.1
6、系統(tǒng)總框圖2.2原理及工作過程說明制作一個可編程作息時間控制器鬧鐘,當(dāng)4路鬧鐘中的任一路到時,均會點亮燈、打鈴。如有需求,可對程序進行調(diào)整,增加鬧鐘的路數(shù)及到時后的處理方式。定時鬧鐘的基本功能如下。顯示時鐘時間,格式為“時時:分分”,并可重新設(shè)置。顯示鬧鈴時間,格式為“時時:分分”,且顯示閃爍以便與時鐘時間相區(qū)分。鬧鈴時間可重新設(shè)置。程序執(zhí)行后工作指示燈LED閃爍,表示時鐘工作為時鐘顯示模式.LCD顯示的初始時間為“ 23:58”。按下K2,閃爍顯示的“ 00:00”為鬧鈴的時間,單擊 K3又返回時鐘顯示 模式。時鐘從“ 23:58”開始計時,定時時間“ 00:00”到時,繼電器開關(guān)接通,控制
7、電器的 開啟,且可發(fā)出聲響(可控)。時鐘與鬧鈴時問的設(shè)置可通過4個功能按鍵KIK4實現(xiàn),具體說明如下。(1) 時鐘時間的設(shè)置: 首先單擊KI進入時鐘設(shè)置模式。 此時每單擊一下 KI,則小時增I,單擊一下K2,則分鐘增1,再單擊K3則設(shè)置完成,返回時鐘顯示模式。此時小時和分鐘均 已發(fā)生變化。(2) 鬧鈴的時間設(shè)置:首先單擊,K3進入鬧鈴的設(shè)置模式。此時每單擊一下KI,則小時增1,單擊一下 K2,則分鐘增I,最后單擊.K3則設(shè)置完成,返回鬧鈴顯示模式。此時鬧 鈴的小時和分鐘均已發(fā)生變化。(3) K4的功能:鬧鐘更換。(4) K2單獨的功能:顯示鬧鈴時間。2.3系統(tǒng)電路圖LCD1LM016LC1U1
8、19CRYSTALC2123X1工1 XTAL1P0.0/AD0P0.1/AD1P0.2/AD2XTAL2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6RSTP0.7/AD7P2.0/A8P2.1/A9P2.2/A10PSEP2.3/A11ALEP2.4/A12EAP2.5/A13P2.6/A14P2.7/A15P1.0P3.0/RXDP1.1P3.1/TXDP1.2P3.2/INTLP1.3P3.3/INTP1.4P3.4/T0P1.5P3.5/T1P1.6P3.6/WR-P1.7P3.7/RD-VDDdE90VCCR24S RDGnsVv2111
9、10 32.3836.35 34riRM B0IO32013-03-e;500 12 3 4 5 6 7DDDDDDDDBUZ1RX8VCC-1L-300SW1SW-SPST3詳細(xì)設(shè)計3.1主程序部分的設(shè)計程序部分主要采用了程序結(jié)構(gòu)的模塊化設(shè)計,避免了一些函數(shù)的不必要的重復(fù)書寫,使程序變得單間易懂。程序在執(zhí)行時,主程序要須通過調(diào)用子函數(shù)就可完成相應(yīng)的功能。主程序流程圖如下圖 3-1 。圖3-1主程序流程圖83.2獨立式鍵盤的接口電路P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7AT89C51在單片機應(yīng)用系統(tǒng)中,有時只需要幾個簡單的按鍵向系統(tǒng)輸入信息。這時,可將每個按鍵接在一根
10、I/O接口線上,這種方式的連接稱為獨立式鍵盤。每個獨立式按鍵單獨占有一根I/O接口線,每根I/O接口線的工作狀態(tài)不會影響到其他I/O接口線。這種按鍵接口電路配置靈活,硬件結(jié)構(gòu)簡單,但每個按鍵必須占用一根I/O接口線,I/O接口線浪費較大。故只在按鍵數(shù)量不多時采用這種按鍵電路。在此電路中,按鍵輸入都采用低電平有效。3.3 1602LCD液晶顯示器LCD1LM016L7D6D5D4D3d2d1DODE 得 CS EEV DPV SSV1602LCD的基本參數(shù)及引腳功能1602LCD分為帶背光和不帶背光兩種,基控制器大部分為 光的厚,是否帶背光在應(yīng)用中并無差別,兩者尺寸差別如下圖HD4478Q帶背光
11、的比不帶背3-3-1所示:圖3-3-11602LCD尺寸圖 1602LCD主要技術(shù)參數(shù): 顯示容量:16 X2個字符 芯片工作電壓:4.5 5.5V工作電流:2.0mA(5.0V)模塊最佳工作電壓:5.0V字符尺寸:2.95 X 4.35(WX H)mm引腳功能說明1602LCD采用標(biāo)準(zhǔn)的14腳(無背光)或16腳(帶背光)接口,各引腳接口說明如表 3-1 所示:表3-1 :引腳接口說明表編號符號;引腳說明編號符號引腳說明1VSS電源地9D2數(shù)據(jù)2VDD電源正極10D3數(shù)據(jù)3VL液晶顯示偏壓11D4數(shù)據(jù)4RS數(shù)據(jù)/命令選擇12D5數(shù)據(jù)5R/W讀/寫選擇13D6數(shù)據(jù)6E使能信號14D7數(shù)據(jù)7D0數(shù)
12、據(jù)15BLA背光源正極8D1數(shù)據(jù)16BLK背光源負(fù)極第1腳:VSS為地電源。第2腳:VDD接5V正電源。第3腳:VL為液晶顯示器對比度調(diào)整端,接正電源時對比度最弱,接地時對比度最高,對比度過高時會產(chǎn)生“鬼影”,使用時可以通過一個10K的電位器調(diào)整對比度。第4腳:RS為寄存器選擇,高電平時選擇數(shù)據(jù)寄存器、低電平時選擇指令寄存器。第5腳:R/W為讀寫信號線,高電平時進行讀操作,低電平時進行寫操作。當(dāng) RS和 R/W共同為低電平時可以寫入指令或者顯示地址,當(dāng)RS為低電平R/W為高電平時可以讀忙信號,當(dāng)RS為高電平R/W為低電平時可以寫入數(shù)據(jù)。第6腳:E端為使能端,當(dāng)E端由高電平跳變成低電平時,液晶模
13、塊執(zhí)行命令。第714腳:D0- D7為8位雙向數(shù)據(jù)線。第15腳:背光源正極。第16腳:背光源負(fù)極。10. 8. 2. 3 1602LCD的指令說明及時序1602液晶模塊內(nèi)部的控制器共有11條控制指令,如表 3-2所示:表3-2 :控制命令表序號指令RSR/WD7D6D5D4D3D2D1D01清顯示00000000012光標(biāo)返回000000001*3置輸入模式00000001I/DS4顯示開/關(guān)控制0000001DCB5光標(biāo)或字符移位000001S/CR/L*6置功能00001DLNF*7置字符發(fā)生存貯器地址0001字符發(fā)生存貯器地址8置數(shù)據(jù)存貯器地址001顯示數(shù)據(jù)存貯器地址9讀忙標(biāo)志或地址01
14、BF計數(shù)器地址10寫數(shù)至U CGRA或 DDRAM10要寫的數(shù)據(jù)內(nèi)容11從 CGRAM或 DDRAM讀數(shù)11讀出的數(shù)據(jù)內(nèi)容1602液晶模塊的讀寫操作、屏幕和光標(biāo)的操作都是通過指令編程來實現(xiàn)的。(說明:1為高電平、0為低電平)指令1:清顯示,指令碼 01H,光標(biāo)復(fù)位到地址 00H位置。指令2:光標(biāo)復(fù)位,光標(biāo)返回到地址00H。指令3:光標(biāo)和顯示模式設(shè)置 I/D :光標(biāo)移動方向,高電平右移,低電平左移S:屏幕上所有文字是否左移或者右移。高電平表示有效,低電平則無效。指令4:顯示開關(guān)控制。D:控制整體顯示的開與關(guān),高電平表示開顯示,低電平表示關(guān)顯示C :控制光標(biāo)的開與關(guān),高電平表示有光標(biāo),低電平表示無
15、光標(biāo)B:控制光標(biāo)是否閃爍,高電平閃爍,低電平不閃爍。指令5:光標(biāo)或顯示移位 S/C :高電平時移動顯示的文字,低電平時移動光標(biāo)。指令6:功能設(shè)置命令 DL :高電平時為4位總線,低電平時為 8位總線N :低電平時 為單行顯示,高電平時雙行顯示 F:低電平時顯示5x7的點陣字符,高電平時顯示 5x10的 點陣字符。指令7:字符發(fā)生器 RAM地址設(shè)置。指令& DDRA地址設(shè)置。指令9:讀忙信號和光標(biāo)地址 BF :為忙標(biāo)志位,高電平表示忙,此時模塊不能接收命 令或者數(shù)據(jù),如果為低電平表示不忙。指令10:寫數(shù)據(jù)。指令11:讀數(shù)據(jù)。與HD44780相兼容的芯片時序表如下:表3-3 :基本操作時序
16、表讀狀態(tài)輸入RS=L,R/W=H E=H輸出D0- D7= 犬態(tài)字寫指令輸入RS=L,R/W=L,D0- D7=f令碼,E= 高脈沖輸出無讀數(shù)據(jù)輸入RS=H R/W=H E=H輸出D0- D7=據(jù)寫數(shù)據(jù)輸入RS=H R/W=L D0。7=數(shù)據(jù),E=高脈沖輸出無讀寫操作時序如圖 3-3-2和3-3-3所示:圖3-3-3寫操作時序1602LCD的RAM地址映射及標(biāo)準(zhǔn)字庫表液晶顯示模塊是一個慢顯示器件,所以在執(zhí)行每條指令之前一定要確認(rèn)模塊的忙標(biāo)志為 低電平,表示不忙,否則此指令失效。要顯示字符時要先輸入顯示字符地址,也就是告訴模 塊在哪里顯示字符,圖 3-3-4是1602的內(nèi)部顯示地址。LCD16字
17、X2行000!02030405:060708090A0B000D0EOFJO)27404142434445464748494A:4B404tJ4E4F5067圖3-3-4 1602LCD內(nèi)部顯示地址例如第二行第一個字符的地址是40H,那么是否直接寫入40H就可以將光標(biāo)定位在第二行第一個字符的位置呢?這樣不行,因為寫入顯示地址時要求最高位D7恒定為高電平1所以實際寫入的數(shù)據(jù)應(yīng)該是 01000000B( 40H)+10000000B(80H)=11000000B(C0H)。在對液晶模塊的初始化中要先設(shè)置其顯示模式, 在液晶模塊顯示字符時光標(biāo)是自動右移 的,無需人工干預(yù)。每次輸入指令前都要判斷液晶模
18、塊是否處于忙的狀態(tài)。1602液晶模塊內(nèi)部的字符發(fā)生存儲器(CGROM已經(jīng)存儲了 160個不同的點陣字符圖形,如圖3-3-5所示,這些字符有:阿拉伯?dāng)?shù)字、英文字母的大小寫、常用的符號、和日文假名 等,每一個字符都有一個固定的代碼,比如大寫的英文字母“ A”的代碼是 01000001B(41H),顯示時模塊把地址 41H中的點陣字符圖形顯示出來,我們就能看到字母“ A”* 13-4 CGROM和中半持代碼與字特88麻対臣關(guān)豪0000001OOH01000101ClioOil!s101Q101!1HQUH1100noiXXX xooocOGRAM(1)0Ppf三tPXXX XD0414 -1AQ丄廣
19、n7f IA4<1XXXX00SQ2HR :bLdrA用XXXXXW1)3csc無1gXXX xotoo<5>DTd 1dV七戶DX X XX01G1(>KsHE JU«丄上才+JUH0xxx xonocn&AFVf工3PXXX KOlll(8>>7GwpdZJ上X予X x xxiooo(I)aKX h夕卜UXX XX X1M1<2>9IYiy旦*-1yXXX X 1010<3)1:JZ廠Aki千xxxxion(4)+ItKkI*t0KX X X X 110Q<5)7<L¥I177UftX XX XH
20、DiMT|n1 )JLX7*+XX XX1110(7)>N*SI3八M'nX XX XU訂| TO076詳圖3-3-5字符代碼與圖形對應(yīng)圖1602LCD的一般初始化(復(fù)位)過程延時15mS寫指令38H (不檢測忙信號)延時5mS寫指令38H (不檢測忙信號)延時5mS寫指令38H (不檢測忙信號)以后每次寫指令、讀/寫數(shù)據(jù)操作均需要檢測忙信號寫指令38H:顯示模式設(shè)置寫指令08H:顯示關(guān)閉寫指令01H:顯示清屏寫指令06H:顯示光標(biāo)移動設(shè)置寫指令OCH顯示開及光標(biāo)設(shè)置3.4鬧鐘子函數(shù)鬧鐘時間的判別主要是通過設(shè)定時間與實時時間對逐位對比確定是否進行鬧鈴。其工作流程圖如下圖3-4 。
21、圖3-44總結(jié)通過自己的不懈努力,我終于完成了設(shè)計的任務(wù)要求。功能上基本達標(biāo):時鐘的顯示,日期顯示,調(diào)時功能、校時功能、鬧鈴功能、鬧鐘設(shè)功能。其精確可以滿足日常生活顯 示時間的需要。在本次設(shè)計的過程中, 我發(fā)現(xiàn)很多的問題, 雖然以前沒有做過這樣的設(shè)計但 通過這次設(shè)計我學(xué)會了很多東西,單片機課程設(shè)計重點就在于軟件算法的設(shè)計,需要有很巧妙的程序算法,雖然以前寫過幾次程序,但我覺的寫好一個程序并不是一件簡單的事,比如寫一個程序看其功能很少認(rèn)為編寫程序簡單,但到編程的時候才發(fā)現(xiàn)一些細(xì)微的知識或低級錯誤經(jīng)常犯做不到最后常常失敗,所以有些東西只有學(xué)精弄懂并且要細(xì)心才行,只學(xué)習(xí)理論有些東西是很難理解的,更談
22、不上掌握。從這次的課程設(shè)計中,我們真真正正的意識到,在以后的學(xué)習(xí)中,要理論聯(lián)系實際,把我們所學(xué)的理論知識用到實際當(dāng)中,學(xué)習(xí)單機片機更是如此, 程序只有在經(jīng)常的練習(xí)的過程中才能提高,我想這就是我在這次課程設(shè)計中的最大收獲。參考文獻1 單片機原理及應(yīng)用(第二版)張毅剛 彭喜元 彭宇北京高等教育出版社2 劉和平.單片機編程與入門.重慶大學(xué)出版社,2002.68-99,111-1223 陳明熒.89C51單片機課程設(shè)計實訓(xùn)教材.清華大學(xué)出版社,2003.38-67,102-118附錄#in clude<reg52.h>#defi ne uint un sig ned int#defi ne
23、 uchar un sig ned charsbit key1=P1A0;sbit key2=P1A1;sbit key3=P1A2;sbit key4=P1A3;sbit Icde n=P3A4;sbit Icdrs=P3A5;sbit Icdrw=P3A6;sbit Ied=P2A2;sbit sou nd=P2A7;int a,b,i, min, hour,m in ge, min shi,hourge,hourshi,sec,secge,secshi,c nt,c nt1, nian=2013,yue=5,ri=5,amin 1=1,ahour1,am in ge1,am in shi
24、1,ahourge1,ahourshi1,amin 2=1,ahour2,am in ge2,am in shi2,ahourge2,ahourshi2,amin 3=1,ahour3,am in ge3,am in shi3,ahourge3,ahourshi3,amin4=1,ahour4,am in ge4,am in shi4,ahourge4,ahourshi4;uchar code table1='0','1','2','3','4','5','6','7'
25、;,'8','9'uchar code table2="Time:00:00"uchar code Alarm_1="Alar1:00:00"uchar code Alarm_2="Alar2:00:00"uchar code Alarm_3="Alar3:00:00"uchar code Alarm_4="Alar4:00:00"uchar code riqi="2013-05-06"uchar nu m1, nu m2,alarm1,ala
26、rm2,alarm3,alarm4; bit flag=0;void delay (un sig ned int z)延時程序uint i,j;for(i=z; i>0;i-)for(j=110;j>0;j-);void write_com(uchar com)/LCD命令控制,寫指令函數(shù)delay(5);lcdrs=O;PO=com;delay(5);Icde n=1;delay(5);Icde n=0;void write_data(uchar date)/LCD 數(shù)據(jù)控制,寫數(shù)據(jù)函數(shù)delay(5);lcdrs=1;P0=date;delay(5);lcde n=1;dela
27、y(5);lcde n=0;void write_ nian( uchar add , uint date)/ 年顯示函數(shù)uchar qia n,bai,shi,ge;qia n=date/1000;bai=(date-1000*qia n)/100;shi=(date-qia n*1000-bai*100)/10;ge=date%10;write_com(0x80+0x40+add);write_data(table1qia n);write_data(table1bai);write_data(table1shi);write_data(table1ge);void write_yue(u
28、char add , uchar date)/ 月顯示函數(shù)uchar shi,ge;shi=date/10;ge=date%10;write_com(0x80+0x40+add);write_data(0x30+shi);write_data(0x30+ge);日顯示函數(shù)void write_ri(uchar add , uchar date) uchar shi,ge;shi=date/10; ge=date%10;write_com(0x80+0x40+add); write_data(0x30+shi);write_data(0x30+ge);void qi()write_ nian (
29、0, nia n); write_yue(5,yue);write_ri(8,ri); write_com(0x80+0x40+7);write_data('-'); write_com(0x80+0x40+4);write_data('-');void time()設(shè)置時間函數(shù)while(1)if(ke y仁=0)delay(10);if(key1=0) if(hour=23)/"時”設(shè)置hour=0;elsehour+;hourge=hour%10;hourshi=hour/10;write_com(0x0f);delay(2);write_com
30、(0x80+6);write_data(table1hourge);/"時”個位寫入 LCD 第 1 行第 6 位delay(5);write_com(0x80+5);delay(2);write_data(table1hourshi); while(!key1);/"時"十位寫入LCD第1行第5位if(key2=0)delay(10);if(key2=0)if(min=59)mi n=0;elsemi n+;min ge=min %10;min shi=mi n/10; write_com(0x0f); write_com(0x80+9);write_data(
31、table1mi nge); 二行第9位delay(1); write_com(0x80+8); write_data(table1mi nshi);行第8位delay(1);while(!key2);if(key3=0)delay(10);if(key3=0)write_com(0x0c);TR1=1;while(!key3); break;置完畢void display1()設(shè)置鬧鐘1時間函數(shù)/"分"設(shè)置/"分"個位寫入LCD第/"分"十位寫入 LCD第二/整體顯示,關(guān)光標(biāo),不閃爍/定時計數(shù)器1啟動/key3松開時,顯示時間”時&
32、quot;"分"位均已設(shè)while(1)if(ke y仁=0)delay(10);if(key1=0)if(ahour仁=23)/鬧鐘”時”設(shè)置ahour1=0;elseahour1+;ahourge 仁ahour1%10;ahourshi仁ahour1/10;write_com(0x0f);write_com(0x80+0x40+8);write_data(':');write_com(0x80+0x40+7);write_data(table1ahourge1);delay(1);write_com(0x80+0x40+6);write_data(tab
33、le1ahourshi1);delay(1);while(!key1);if(key2=0)/鬧鐘”分”設(shè)置delay(10);if(key2=0)if(ami n1=59)amin 1=0;elseamin 1+;amin ge1=am in 1%10;amin shi1=am in 1/10;write_com(0x0f);write_com(0x80+0x40+10);write_data(table1am in ge1);delay(1);write_com(0x80+0x40+9);write_data(table1am in shi1);delay(1);while(!key2);
34、if(key3=0)alarm1=alarm1;delay(10);if(key3=0)write_com(0x0c);write_com(0x80+0x40);for(i=0;i<11;i+)write_data(riqii);while(!key3);break;設(shè)置結(jié)束,此時LCD第二行無數(shù)據(jù)顯示只有第一行有時間顯示void display2()設(shè)置鬧鐘2時間函數(shù)while(1)if(ke y仁=0)delay(10);if(key1=0)if(ahour2=23)/ 鬧鐘”時”設(shè)置ahour2=0;elseahour2+;ahourge2=ahour2%10;ahourshi2=
35、ahour2/10;write_com(0x0f);write_com(0x80+0x40+8);write_data(':');write_com(0x80+0x40+7);write_data(table1ahourge2);delay(1);write_com(0x80+0x40+6);write_data(table1ahourshi2); delay(1);while(!key1);if(key2=0)/鬧鐘”分”設(shè)置delay(10);if(key2=0)if(ami n2=59)amin 2=0;elseamin 2+;ami nge2=ami n2%10; am
36、in shi2=am in 2/10; write_com(0x0f);write_com(0x80+0x40+10); write_data(table1am in ge2); delay(1);write_com(0x80+0x40+9); write_data(table1am in shi2); delay(1);while(!key2); if(key3=0)alarm2=alarm2;delay(10);if(key3=0)write_com(OxOc); write_com(0x80+0x40);設(shè)置結(jié)束,此時 LCD第二行無數(shù)據(jù)顯示for(i=0;i<11;i+) wri
37、te_data(riqii); while(!key3); break;只有第一行有時間顯示void display3()設(shè)置鬧鐘3時間函數(shù)while(1)if(ke y仁=0)delay(10);if(key1=0) if(ahour3=23)/ 鬧鐘”時”設(shè)置ahour3=0;elseahour3+; ahourge3=ahour3%10; ahourshi3=ahour3/10; write_com(0x0f); write_com(0x80+0x40+8); write_data(':'); write_com(0x80+0x40+7); write_data(tabl
38、e1ahourge3); delay(1);write_com(0x80+0x40+6); write_data(table1ahourshi3); delay(1);while(!key1);if(key2=0)/鬧鐘”分”設(shè)置delay(10);if(key2=0)if(ami n3=59)amin 3=0;elseamin 3+;ami nge3=ami n3%10; amin shi3=am in 3/10; write_com(0x0f); write_com(0x80+0x40+10); write_data(table1am in ge3); delay(1);write_com
39、(0x80+0x40+9);write_data(table1am in shi3);delay(1);while(!key2);if(key3=0)alarm3=alarm3;delay(10);if(key3=0)write_com(0x0c);write_com(0x80+0x40);for(i=0;i<11;i+)write_data(riqii);while(!key3);break;設(shè)置結(jié)束,此時LCD第二行無數(shù)據(jù)顯示只有第一行有時間顯示void display4()設(shè)置鬧鐘4時間函數(shù)while(1)if(ke y仁=0)delay(10);if(key1=0)if(ahou
40、r4=23)/ 鬧鐘”時”設(shè)置ahour4=0;elseahour4+;ahourge4=ahour4%10;ahourshi4=ahour4/10;write_com(0x0f);write_com(0x80+0x40+8);write_data(':');write_com(0x80+0x40+7);write_data(table1ahourge4);delay(1);write_com(0x80+0x40+6);write_data(table1ahourshi4);delay(1);while(!key1);if(key2=0)/鬧鐘”分”設(shè)置delay(10);if
41、(key2=0)if(am in4=59)amin4=0;elseamin 4+;amin ge4=am in 4%10;amin shi4=am in4 /10;write_com(0x0f);write_com(0x80+0x40+10);write_data(table1am in ge4);delay(1);write_com(0x80+0x40+9);write_data(table1am in shi4);delay(1);while(!key2);if(key3=0)alarm4=alarm4;delay(10);if(key3=0)write_com(OxOc);write_c
42、om(0x80+0x40);for(i=0;i<11;i+)write_data(riqii);while(!key3);break;設(shè)置結(jié)束,此時LCD第二行無數(shù)據(jù)顯示只有第一行有時間顯示void keysca n()鍵盤掃描if(key1=0)delay(10);if(ke y仁=0)key1鍵松開后執(zhí)行下一行程序/調(diào)用time()函數(shù),即時間設(shè)置while(!key1); time();else if(key2=0)cn t1+;delay(10);if(cn t1=1)while(!key2)ahourge仁ahour1%10; ahourshi仁ahour1/10; write
43、_com(0x80+0x40+7);write_data(table1ahourge1); delay(5);write_com(0x80+0x40+6); delay(2);write_data(table1ahourshi1); amin ge1=am in 1%10;amin shi1=am in 1/10; write_com(0x80+0x40+10); write_data(table1am in ge1); delay(5);write_com(0x80+0x40+9);delay(2); write_data(table1am in shi1); write_com(0x80+
44、0x40);for(i=0;i<11;+i) write_data(Alarm_1i);write_com(0x80+0x40); for(i=0;i<11;i+) write_data(riqii);時間,鬧鐘設(shè)置時間不顯示if(cn t1=2)while(!key2)ahourge2=ahour2%10; ahourshi2=ahour2/10; write_com(0x80+0x40+7);write_data(table1ahourge2); delay(5);write_com(0x80+0x40+6);delay(2);write_data(table1ahourshi
45、2); amin ge1=am in 1%10;amin shi1=am in 1/10; write_com(0x80+0x40+10); write_data(table1am in ge2); delay(5);write_com(0x80+0x40+9); delay(2);write_data(table1am in shi2);write_com(0x80+0x40); for(i=0;i<11;+i) write_data(Alarm_2i);write_com(0x80+0x40); for(i=0;i<11;i+) write_data(riqii);時間,鬧鐘設(shè)
46、置時間不顯示if(cn t1=3)while(!key2)ahourge3=ahour3%10;/顯示鬧鐘設(shè)置的時間/key2松開后,LCD只有第一行顯示/顯示鬧鐘設(shè)置的時間/key2松開后,LCD只有第一行顯示ahourshi3=ahour3/10; write_com(0x80+0x40+7); write_data(table1ahourge3); delay(5);write_com(0x80+0x40+6); delay(2);write_data(table1ahourshi3); amin ge1=am in 1%10;amin shi1=am in 1/10; write_co
47、m(0x80+0x40+10); write_data(table1am in ge3); delay(5);write_com(0x80+0x40+9); delay(2);write_data(table1am in shi3);/顯示鬧鐘設(shè)置的時間key2松開后,LCD只有第一行顯示write_com(0x80+0x40); for(i=0;i<11;+i) write_data(Alarm_3i);write_com(0x80+0x40); for(i=0;i<11;i+) write_data(riqii);時間,鬧鐘設(shè)置時間不顯示if(cnt1=4)while(!key
48、2)ahourge4=ahour4%10; ahourshi4=ahour4/10; write_com(0x80+0x40+7); write_data(table1ahourge4); delay(5);write_com(0x80+0x40+6); delay(2);write_data(table1ahourshi4); amin ge1=am in 1%10;amin shi1=am in 1/10; write_com(0x80+0x40+10); write_data(table1am in ge4); delay(5);write_com(0x80+0x40+9);delay(
49、2);write_data(table1am in shi4);write_com(0x80+0x40);for(i=0;i<11;+i)write_data(Alarm_4i);/顯示鬧鐘設(shè)置的時間write_com(0x80+0x40);for(i=0;i<11;i+)write_data(riqii);/key2 松開后,LCD 只有第一行顯示時間,鬧鐘設(shè)置時間不顯示if(cnt1>4)cn t 仁0;else if(key3=0)cn t+;delay(10);if(c nt=1)while(!key3);表示鬧鐘時間設(shè)置退出ahourge仁ahour1%10;aho
50、urshi仁ahour1/10;write_com(0x80+0x40+7);write_data(table1ahourge1);delay(5);write_com(0x80+0x40+6);delay(2);write_data(table1ahourshi1);amin ge1=am in 1%10;amin shi1=am in 1/10;write_com(0x80+0x40+10);write_data(table1am in ge1);delay(5);write_com(0x80+0x40+9);delay(2);write_data(table1am in shi1);write_com(0x80
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 科技行業(yè)中的決策制定策略與案例
- 二零二五年度專業(yè)培訓(xùn)機構(gòu)營養(yǎng)餐服務(wù)采購協(xié)議
- 二零二五年度道路施工勞務(wù)安全保證協(xié)議
- 2025年度電子商務(wù)勞務(wù)輸送與平臺運營管理協(xié)議
- 二零二五年度定制門設(shè)計制作合同
- 二零二五年度事業(yè)單位公有住房租賃合同(含租賃房屋安全標(biāo)準(zhǔn))
- 2025年度美甲沙龍品牌連鎖合作協(xié)議
- 二零二五年度環(huán)保產(chǎn)業(yè)代理招聘人才合同
- 2025至2030年中國組合型干變溫控儀數(shù)據(jù)監(jiān)測研究報告
- 二零二五年度委托代理招聘與人力資源咨詢合作協(xié)議
- 2025年天津三源電力集團限公司社會招聘33人高頻重點模擬試卷提升(共500題附帶答案詳解)
- 西安2025年陜西西安音樂學(xué)院專任教師招聘20人筆試歷年參考題庫附帶答案詳解
- 國家安全與生態(tài)安全
- 課題申報參考:養(yǎng)老金融在三支柱養(yǎng)老金體系中的作用機制與路徑仿真研究
- 2024-2025學(xué)年第二學(xué)期學(xué)校團委工作計劃(附2月-6月安排表)
- 培養(yǎng)自律能力主題班會
- 巴厘島旅游流程介紹
- 【物理】牛頓第一定律 2024-2025學(xué)年人教版物理八年級下冊
- 嬰幼兒電擊傷實踐操作張春芳講解
- 2025網(wǎng)格員考試題庫及參考答案
- 2025年湖南有色金屬職業(yè)技術(shù)學(xué)院高職單招職業(yè)技能測試近5年??及鎱⒖碱}庫含答案解析
評論
0/150
提交評論