LCD顯示的定時(shí)鬧鐘設(shè)計(jì)方案_第1頁
LCD顯示的定時(shí)鬧鐘設(shè)計(jì)方案_第2頁
LCD顯示的定時(shí)鬧鐘設(shè)計(jì)方案_第3頁
LCD顯示的定時(shí)鬧鐘設(shè)計(jì)方案_第4頁
LCD顯示的定時(shí)鬧鐘設(shè)計(jì)方案_第5頁
已閱讀5頁,還剩19頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、LCD顯示的定時(shí)鬧鐘設(shè)計(jì)方案1. 設(shè)計(jì)要求使用AT89C51單片機(jī)結(jié)合字符型LCD顯示器設(shè)計(jì)一個(gè)簡(jiǎn)易的定時(shí)鬧鐘LCD時(shí)鐘,若LCD選擇有背光顯示的模塊,在夜晚或黑暗的場(chǎng)合中也可使用。定時(shí)鬧鐘的基本功能如下:顯示格式為“時(shí)時(shí):分分”。由LED閃動(dòng)來做秒計(jì)數(shù)表示。一旦時(shí)間到則發(fā)出聲響, 同時(shí)繼電器啟動(dòng), 可以擴(kuò)充控制家電開啟和關(guān)閉。程序執(zhí)行后工作指示燈LED閃動(dòng),表示程序開始執(zhí)行,LCD®示”00:00”,按下操作鍵K1K4動(dòng)作如下:(1) K1設(shè)置現(xiàn)在的時(shí)間。(2) K2顯示鬧鐘設(shè)置的時(shí)間。(3) K3設(shè)置鬧鈴的時(shí)間。(4) K4鬧鈴ON/OFF勺狀態(tài)設(shè)置,設(shè)置為 ON時(shí)連續(xù)三次發(fā)出“

2、嘩”的一聲,設(shè)置為OFF發(fā)出“嘩”的一聲。設(shè)置當(dāng)前時(shí)間或鬧鈴時(shí)間如下。(5) K1時(shí)調(diào)整。(6) K2分調(diào)整。(7) K3設(shè)置完成。(8) K4 鬧鈴時(shí)間到時(shí),發(fā)出一陣聲響,按下本鍵可以停止聲響。本項(xiàng)目的難點(diǎn)在于4 個(gè)按鍵每個(gè)都具有兩個(gè)功能, 以最終實(shí)現(xiàn)菜單化的輸入功能。采用通過逐層嵌套的循環(huán)掃描,實(shí)現(xiàn)嵌套式的鍵盤輸入。2. 設(shè)計(jì)方案2.1 原理本LCD定時(shí)鬧鐘,是以單片機(jī)及外圍接口電路為核心硬件,輔以其他外圍硬 件電路,用匯編語言設(shè)計(jì)的程序來實(shí)現(xiàn)的。根據(jù)C51單片機(jī)的外圍接口特點(diǎn)擴(kuò)展相應(yīng)的硬件電路, 然后根據(jù)單片機(jī)的指令設(shè)計(jì)出數(shù)字鐘相應(yīng)的軟件, 再利用軟件 執(zhí)行一定的程序來實(shí)現(xiàn)數(shù)字鐘的功能。

3、 由于采用集成芯片性的單片機(jī)來制作電子 鐘,這樣設(shè)計(jì)制作簡(jiǎn)單而且功能多、精確度高,也可方便擴(kuò)充其他功能,實(shí)現(xiàn)也十分簡(jiǎn)單。本設(shè)計(jì)是利用 AT89C5俾片機(jī)為主才空芯片,由LCD晶振、電阻、電 容、發(fā)光二極管、開關(guān)、喇叭等元件組成硬件電路,通過編寫軟件程序來實(shí)現(xiàn)和控制的數(shù)字定時(shí)鬧鐘2.2 系統(tǒng)總框圖2.3 原理及工作過程說明(1)定時(shí)鬧鐘的基本功能如下 :(a)啟動(dòng)仿真軟件,使用LCD液晶顯示器來顯示現(xiàn)在的時(shí)間 。(b)程序執(zhí)行之后顯示“ 00:00",并且LED閃爍,表示開始已經(jīng)計(jì)時(shí)。(c)由LED閃動(dòng)來做秒計(jì)數(shù)表示。(d)當(dāng)設(shè)定的鬧鐘時(shí)間到達(dá)后,鬧鈴開始發(fā)出聲音。并且繼電器導(dǎo)通。(2

4、)按鍵功能如下:按鍵K1設(shè)置現(xiàn)在的時(shí)間和時(shí)調(diào)整;按鍵 K2顯示鬧鐘設(shè)置的時(shí)間和分調(diào)整; 按鍵K3設(shè)置鬧鈴的時(shí)間和設(shè)置完成;按鍵 K4鬧鈴ON/OFF勺狀態(tài)設(shè)置,設(shè)置為 ON時(shí)連續(xù)三次發(fā)出“嘩”的一聲,設(shè)置為 OFF發(fā)出“嘩”的一聲和鬧鐘時(shí)間到 時(shí),發(fā)出一陣聲響,按下本鍵可以停止聲響。(3)調(diào)整計(jì)時(shí)器時(shí)間如下:按下K1鍵,然后按K1調(diào)整小時(shí),K2調(diào)整分鐘,按下K3表示時(shí)間設(shè)置完成。 (4)調(diào)整鬧鐘時(shí)間設(shè)置如下:按下K3鍵,然后按K1調(diào)整小時(shí),K2調(diào)整分鐘,按下K3表示鬧鐘設(shè)置完成。3. 元器件介紹3.1AT89C51本設(shè)計(jì)的核心硬件就是89C51芯片,AT89C51是一種帶4K字節(jié)閃爍可編程可

5、擦除只讀存儲(chǔ)器(FPEROMFlash Programmable and Erasable ReadOnly Memory 的低電壓,高性能CMOS8微處理器,俗稱單片機(jī)。該器件采用ATMEL1密度非 易失存儲(chǔ)器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的 MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPUf口閃爍存儲(chǔ)器組合在單個(gè)芯片中,ATMEL勺AT89C51是一種 高效微控制器,為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價(jià)廉的方案。3.1.1引腳圖19第>XTAL1PD.QfADU戶口 J科口1 尸口 2科口2KTAL2RD 3fAD3PDdfACHPD.5/AD5PI8 fAe犯RSIP 口

6、了P2 山ABP2.1/A9P2 2/A10庭 MP2.3JA11ALEP2.4/A12任P2舌如3P2JS/A14F2.7/A15-,1 UP3.0JRHDP1 i卜 3,i.rrKDP1 22/lrJTQPI 3P3 3WMTIpi 4pa.qrroPl 5R3&TI= 1,0P3JBWR=1 TP3.7/RD制3?in36產(chǎn)第33g3221裊丁23鯉3031am27110”1312413_5*YF817AT39C513.1.2引腳功能介紹P0 口: P0 口為一個(gè)8位漏級(jí)開路雙向I/O 口,每腳可吸收8TTL門電流。當(dāng) P1 口的管腳第一次寫1時(shí),被定義為高阻輸入。P0能夠用于外

7、部程序數(shù)據(jù)存儲(chǔ) 器,它可以被定義為數(shù)據(jù)/地址的第八位。在FIASH編程時(shí),P0 口作為原碼輸入 口,當(dāng)FIASH進(jìn)行校驗(yàn)時(shí),P0輸出原碼,此時(shí)P0外部必須被拉高。P1 口: P1 口是一個(gè)部提供上拉電阻的8位雙向I/O 口,P1 口緩沖器能接收 輸出4TTL門電流。P1 口管腳寫入1后,被部上拉為高,可用作輸入,P1 口被外 部下拉為低電平時(shí),將輸出電流,這是由于部上拉的緣故。在FLASH®程和校驗(yàn) 時(shí),P1 口作為第八位地址接收。P2 口: P2 口為一個(gè)部上拉電阻的8位雙向I/O 口,P2 口緩沖器可接收,輸 出4個(gè)TTL門電流,當(dāng)P2 口被寫“1”時(shí),其管腳被部上拉電阻拉高,且

8、作為輸 入。并因此作為輸入時(shí),P2 口的管腳被外部拉低,將輸出電流。這是由于部上 拉的緣故。當(dāng)P2 口用于外部程序存儲(chǔ)器或16位地址外部數(shù)據(jù)存儲(chǔ)器進(jìn)行存取時(shí), P2 口輸出地址的高八位。在給出地址“ 1”時(shí),它利用部上拉優(yōu)勢(shì),當(dāng)對(duì)外部八 位地址數(shù)據(jù)存儲(chǔ)器進(jìn)行讀寫時(shí),P2 口輸出其特殊功能寄存器的容。P2 口在FLASH 編程和校驗(yàn)時(shí)接收高八位地址信號(hào)和控制信號(hào)。P3 口: P3 口管腳是8個(gè)帶部上拉電阻的雙向I/O 口,可接收輸出4個(gè)TTL 門電流。當(dāng)P3 口寫入“1”后,它們被部上拉為高電平,并用作輸入。作為輸入, 由于外部下拉為低電平,P3口將輸出電流(ILL)這是由于上拉的緣故。P3 口

9、也可作為AT89C51的一些特殊功能口,如下所示:P3 口管腳備選功能P3.0 RXD (串行輸入口)P3.1 TXD (用行輸出口)P3.2 /INTO (外部中斷0)P3.3 /INT1 (外部中斷1)P3.4 T0 (記時(shí)器0外部輸入)P3.5 T1 (記時(shí)器1外部輸入)P3.6 /WR (外部數(shù)據(jù)存儲(chǔ)器寫選通)P3.7 /RD (外部數(shù)據(jù)存儲(chǔ)器讀選通)P3 口同時(shí)為閃爍編程和編程校驗(yàn)接收一些控制信號(hào)。RST復(fù)位輸入。保持RST卻兩個(gè)機(jī)器周期以上的高電平時(shí)間即可復(fù)位。ALE/PROG ALE為CPUW問外部程序存儲(chǔ)器或外部數(shù)據(jù)存儲(chǔ)器提供一個(gè)地 址鎖存信號(hào),將低8位地址鎖存在片外的地址鎖存

10、器中。PROG該引腳第二功 能,在對(duì)片F(xiàn)LASH#儲(chǔ)器編程時(shí),此引腳作為編程脈沖輸入端。PSEN:片外程序存儲(chǔ)器的讀選通信號(hào)。低電平有效。EA/VPP:當(dāng)EA為低電平時(shí),只讀取外部的程序存儲(chǔ)器中的容;當(dāng) EA為高 電平時(shí),在PC值不超過0FFFHW,單片機(jī)讀片程序存儲(chǔ)器的程序,但PC超過時(shí), 自動(dòng)轉(zhuǎn)向片外60KB程序存儲(chǔ)器中的程序。XTAL1 :片振蕩器反向放大器和時(shí)鐘發(fā)生器電路的輸入端。XTAL2:片振蕩器反向放大器的輸出端。3.1 1602LCD液晶顯示器3.1.1 引腳圖3.2.2引腳功能縮耳40Tr引即說明編目符號(hào)引腳說脂1VSS電源地gD2Date l;02VDD電源正視1003Da

11、te 103VL液晶顯示偏壓信號(hào)11 ,Date t 口4R3即搞命令選擇端(V/LJJ口 5Date | Q5R/UV讀/寫選擇端(H/L)13口 5Date LO6使能信號(hào)140 7Dale ba7DDDate i/015BLA首無漉正俵G01Date I/O16ILK,先誦負(fù)極第1腳:VSSJ地電源。第2腳:VD球5V正電源。第3腳:VL為液晶顯示器對(duì)比度調(diào)整端,接正電源時(shí)對(duì)比度最弱,接地時(shí)對(duì)比 度最高,對(duì)比度過高時(shí)會(huì)產(chǎn)生“鬼影”,使用時(shí)可以通過一個(gè)10K的電位器調(diào)整 對(duì)比度。第4腳:RS為寄存器選擇,高電平時(shí)選擇數(shù)據(jù)寄存器、低電平時(shí)選擇指令寄存 器。第5腳:R/W為讀寫信號(hào)線,高電平時(shí)

12、進(jìn)行讀操作,低電平時(shí)進(jìn)行寫操作。第6腳:E端為使能端,當(dāng)E端由高電平跳變成低電平時(shí),液晶模塊執(zhí)行命令。第714腳:D0D7,數(shù)據(jù)總線,與單片機(jī)的數(shù)據(jù)總線相連,三態(tài)。第15腳:背光板電源,通常+5V。第16腳:背光板電源地。3.2 其他重要元件3.2.1 獨(dú)立式鍵盤的接口電路立式按鍵單獨(dú)占有一根I/O接口線,每根I/O接口線的工作狀態(tài)不 會(huì)影響到其 他I/O接口線。這種按鍵接口電路配置靈活,硬件結(jié)構(gòu)簡(jiǎn)單,但每個(gè)按鍵必須 占用一根I/O接口線,I/O接口線浪費(fèi)較大。故只在按鍵數(shù)量不多時(shí)采用這種按 鍵電路。在此電路中,按鍵輸入都采用低電平有效。上拉電阻保證了按鍵斷開時(shí), I/O接口線有確定的高電平。

13、當(dāng)I/O接口部有上拉電阻時(shí),外電路可以不配置上 拉電阻。電磁繼電器一般由鐵芯、線圈、銜鐵、觸點(diǎn)簧片等組成的。只要在線圈兩端 加上一定的電壓,線圈中就會(huì)流過一定的電流,從而產(chǎn)生電磁效應(yīng),銜鐵就會(huì)在 電磁力吸引的作用下克服返回彈簧的拉力吸向鐵芯, 從而帶動(dòng)銜鐵的動(dòng)觸點(diǎn)與靜 觸點(diǎn)(常開觸點(diǎn))吸合。當(dāng)線圈斷電后,電磁的吸力也隨之消失,銜鐵就會(huì)在彈 簧的反作用力返回原來的位置,使動(dòng)觸點(diǎn)與原來的靜觸點(diǎn)(常閉觸點(diǎn))釋放。這 樣吸合、釋放,從而達(dá)到了在電路中的導(dǎo)通、切斷的目的。具有動(dòng)作快、工作穩(wěn) 定、使用壽命長(zhǎng)、體積小等優(yōu)點(diǎn)。3.2.2 PNP三極管PNP型三極管由2塊P型半導(dǎo)體中間夾著1塊N型半導(dǎo)體所組成,

14、 電流從發(fā)射極E流入的三極管.PNP型三極管發(fā)射極電位最高,集電極 電位最低,Ube<0.專業(yè).專注.4.軟件設(shè)計(jì)4.1 系統(tǒng)流程圖4.2源代碼#include <reg52.h>#define uint unsigned int#define uchar unsigned char uchar code tablel尸'NOW TIME" uchar code table2尸'SHOW ALRAM" uchar code table3尸'SET TIME" uchar code table4尸"SET ALRA

15、M" sbit lcden=P3A4;sbit lcdrs=P3A5;sbit lcdrw=P3A6;sbit K1=P1A0;sbit K2=P1A1;sbit K3=Pi2;sbit K4=P1A3;sbit be=P2A5;sbit dula=P2A6;sbit wala=P2A7;sbit jdq=P2A3;sbit LED =P2A4;uchar flag,num,count,k1num,k2num,k3num,k4num;char miao,shi,fen,ashi,afen;/ 延時(shí)函數(shù)void delay(uint z)uint x,y;for(x=z;x>0;

16、x-)for(y=100;y>0;y-);/ 蜂鳴器子程序void di()be=0;delay(100);be=1;/ 寫命令函數(shù)void write_(uchar )lcdrs=0;lcdrw=0;lcden=0;P0=;delay(5);lcden=1;delay(5);lcden=0;/ 寫數(shù)據(jù)函數(shù)void write_date(uchar date)lcdrs=1;lcdrw=0;lcden=0;P0=date;delay(5);lcden=1;delay(5);lcden=0;/ 寫時(shí)間函數(shù)void write_sfm(uchar add,uchar date)uchar d

17、ateshi,datege;dateshi=date/10;datege=date%10;write_(0x80+0x40+add);write_date(0x30+dateshi);write_date(0x30+datege);/ 顯示時(shí)間函數(shù)void TimeInit()write_(0x01);write_(0x80+2);for(num=0;num<8;num+)write_date(table1num);delay(5);write_(0x80+0x40+4);write_date(':');delay(5);write_sfm(2,shi);write_(0

18、x80+0x40+2);write_sfm(5,fen);write_(0x80+0x40+5);/ 顯示鬧鐘函數(shù)void DisplayAlarmTime()write_(0x01);write_(0x80+2);for(num=0;num<10;num+)write_date(table2num);delay(5);write_(0x80+0x40+4);write_date(':');delay(5);write_sfm(2,ashi);write_(0x80+0x40+2);write_sfm(5,afen);write_(0x80+0x40+5);/ 設(shè)置當(dāng)前時(shí)

19、間void SetNowTime()write_(0x80+2);for(num=0;num<8;num+)write_date(table3num);delay(5);write_(0x80+0x40+4);write_date(':');delay(5);write_sfm(2,shi);write_(0x80+0x40+2);write_sfm(5,fen);write_(0x80+0x40+5);if(K1=0)delay(5);if(K1=0)while(!K1);di();shi+;if(shi=24)shi=0;write_sfm(2,shi);write_

20、(0x80+0x40+2);if(K2=0)delay(5);if(K2=0)while(!K2); di();fen+;if(fen=60)fen=0;write_sfm(5,fen);write_(0x80+0x40+5);if(K3=0)delay(5);if(K3=0)while(!K3);di();k1num=0;TR0=1;TimeInit();/ 設(shè)置鬧鐘時(shí)間void SetAlarmTime()write_(0x80+2);for(num=0;num<9;num+)write_date(table4num); delay(5);write_(0x80+0x40+4);wr

21、ite_date(':');delay(5);write_sfm(2,ashi);write_(0x80+0x40+2);write_sfm(5,afen);write_(0x80+0x40+5);if(K1=0)delay(5);if(K1=0)while(!K1);di();ashi+;if(ashi=24)ashi=0;write_sfm(2,ashi);write_(0x80+0x40+2);if(K2=0)delay(5);if(K2=0)while(!K2);di();afen+;if(afen=60)afen=0;write_sfm(5,afen);write_(

22、0x80+0x40+5);if(K3=0)delay(5);if(K3=0)while(!K3);di();k3num=0;EA=1;flag=1;TimeInit();/ 鍵盤掃描函數(shù)void keyscan()if(K1=0)delay(5);if(K1=0)TR0=0;while(!K1);di();k1num+;if(k1num!=0)SetNowTime();elseif(K2=0)delay(5);if(K2=0)while(!K2);di();k2num+;if(k2num=1)DisplayAlarmTime(); k2num=2;if(k2num=3)k2num=0;EA=1

23、;TimeInit();elseif(K3=0)delay(5);if(K3=0)while(!K3);di();k3num+;if(k3num=1)write_(0x80+0x40+2);. 專業(yè) .專注 .write_date(' ');delay(100);write_(0x80+0x40+3);write_date(' ');delay(100);write_(0x80+0x40+5);write_date(' ');delay(100);write_(0x80+0x40+6);write_date(' ');SetAla

24、rmTime();elseif(K4=0)delay(5);if(K4=0)while(!K4);di();k4num+;if(k4num=1)di();k4num=2;flag=0;if(k4num=3)k4num=0;di();delay(500);di();delay(500);di();flag=1;if(flag=1&&shi=ashi&&fen=afen)jdq=0;be=be;delay(500);if(K4=0&&flag=1)delay(5);if(K4=0&&flag=1)while(!K4);di();fla

25、g=0;k4num=0;/lcd1602 初始化void init()lcden=0;shi=00;fen=00;miao=0;ashi=12;afen=00;count=0;k1num=0;dula=0;wala=0; /8 位數(shù)據(jù)接口0write_(0x38);設(shè)置 16X2 顯示,5X7 點(diǎn)陣,write_(0x08);write_(0x01);/ 顯示清0,數(shù)據(jù)指針清write_(0x06);/ 寫一個(gè)字符后地址指針加1write_(0x0c);/ 設(shè)置開顯示,不顯示光標(biāo)TimeInit();TMOD=0x01;TH0=0x4c;TL0=0x00;EA=1;ET0=1;TR0=1;/ 主函數(shù)void main() init();write_(0x80);while(1)keyscan();/中斷服務(wù)子程序void timer0() interrupt 1 TH0=0x4c;TL0=0x00; count+;LED=0; if(count=20) count=0; miao+;LED=LED; if(miao=60) miao=0;fen+;if(fen=60)fen=0;shi+;if(shi=24)sh

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論