版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、西南科技大學(xué)單片機(jī)原理及接口技術(shù)課程設(shè)計(jì)報(bào)告課題名稱lcd顯示的定時(shí)鬧鐘姓 名劉xx學(xué) 號(hào)2011xxxx學(xué) 院制造科學(xué)與工程學(xué)院班 級(jí)機(jī)械11xx指導(dǎo)教師張xx 2014年 06 月 12 日 目錄 1.設(shè)計(jì)要求.1 2.設(shè)計(jì)方案.1 2.1原理12.2系統(tǒng)總框圖22.3原理及工作過(guò)程說(shuō)明23.元器件介紹23.1at89c5123.2 1602lcd液晶顯示器53.3 其他重要元件64.軟件設(shè)計(jì)84.1系統(tǒng)流程圖84.2 源代碼105.系統(tǒng)仿真205.1系統(tǒng)總圖205.2設(shè)定時(shí)間時(shí)lcd顯示20 5.3設(shè)定鬧鐘時(shí)lcd顯示.215.4顯示鬧鐘時(shí)lcd顯示215.5待機(jī)時(shí)lcd顯示21 6.實(shí)
2、物圖.227.實(shí)驗(yàn)總結(jié)及心得體會(huì)23 8.參考資料.241.設(shè)計(jì)要求 使用at89c51單片機(jī)結(jié)合字符型lcd顯示器設(shè)計(jì)一個(gè)簡(jiǎn)易的定時(shí)鬧鐘lcd時(shí)鐘,若lcd選擇有背光顯示的模塊,在夜晚或黑暗的場(chǎng)合中也可使用。定時(shí)鬧鐘的基本功能如下:n 顯示格式為“時(shí)時(shí):分分”。n 由led閃動(dòng)來(lái)做秒計(jì)數(shù)表示。n 一旦時(shí)間到則發(fā)出聲響,同時(shí)繼電器啟動(dòng),可以擴(kuò)充控制家電開啟和關(guān)閉。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
3、的狀態(tài)設(shè)置,設(shè)置為on時(shí)連續(xù)三次發(fā)出“嘩”的一聲,設(shè)置為off發(fā)出“嘩”的一聲。 設(shè)置當(dāng)前時(shí)間或鬧鈴時(shí)間如下。 (1) k1時(shí)調(diào)整。 (2) k2分調(diào)整。 (3) k3設(shè)置完成。 (4) k4鬧鈴時(shí)間到時(shí),發(fā)出一陣聲響,按下本鍵可以停止聲響。本項(xiàng)目的難點(diǎn)在于4個(gè)按鍵每個(gè)都具有兩個(gè)功能,以最終實(shí)現(xiàn)菜單化的輸入功能。采用通過(guò)逐層嵌套的循環(huán)掃描,實(shí)現(xiàn)嵌套式的鍵盤輸入。2. 設(shè)計(jì)方案2.1原理本lcd定時(shí)鬧鐘,是以單片機(jī)及外圍接口電路為核心硬件,輔以其他外圍硬件電路,用匯編語(yǔ)言設(shè)計(jì)的程序來(lái)實(shí)現(xiàn)的。根據(jù)c51單片機(jī)的外圍接口特點(diǎn)擴(kuò)展相應(yīng)的硬件電路,然后根據(jù)單片機(jī)的指令設(shè)計(jì)出數(shù)字鐘相應(yīng)的軟件,再利用軟件執(zhí)
4、行一定的程序來(lái)實(shí)現(xiàn)數(shù)字鐘的功能。由于采用集成芯片性的單片機(jī)來(lái)制作電子鐘,這樣設(shè)計(jì)制作簡(jiǎn)單而且功能多、精確度高,也可方便擴(kuò)充其他功能,實(shí)現(xiàn)也十分簡(jiǎn)單。本設(shè)計(jì)是利用at89c51單片機(jī)為主控芯片,由lcd、晶振、電阻、電容、發(fā)光二極管、開關(guān)、喇叭等元件組成硬件電路,通過(guò)編寫軟件程序來(lái)實(shí)現(xiàn)和控制的數(shù)字定時(shí)鬧鐘2.2系統(tǒng)總框圖2.3原理及工作過(guò)程說(shuō)明(1)定時(shí)鬧鐘的基本功能如下 :(a)啟動(dòng)仿真軟件,使用lcd液晶顯示器來(lái)顯示現(xiàn)在的時(shí)間 。(b)程序執(zhí)行之后顯示“00:00”,并且led閃爍,表示開始已經(jīng)計(jì)時(shí)。(c)由led閃動(dòng)來(lái)做秒計(jì)數(shù)表示。(d)當(dāng)設(shè)定的鬧鐘時(shí)間到達(dá)后,鬧鈴開始發(fā)出聲音。并且繼電器
5、導(dǎo)通。(2)按鍵功能如下 :按鍵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é)閃爍可編程可擦
6、除只讀存儲(chǔ)器(fperomflash programmable and erasable read only memory)的低電壓,高性能cmos8位微處理器,俗稱單片機(jī)。該器件采用atmel高密度非易失存儲(chǔ)器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的mcs-51指令集和輸出管腳相兼容。由于將多功能8位cpu和閃爍存儲(chǔ)器組合在單個(gè)芯片中,atmel的at89c51是一種高效微控制器,為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價(jià)廉的方案。3.1.1引腳圖3.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è)內(nèi)部提供上拉電阻的8位雙向i/o口,p1口緩沖器能接收輸出4ttl門電流。p1口管腳寫入1后,被內(nèi)部上拉為高,可用作輸入,p1口被外部下拉為低電平時(shí),將輸出電流,這是由于內(nèi)部上拉的緣故。在flash編程和校驗(yàn)時(shí),p1口作為第八位地址接收。 p2口:p2口為一個(gè)內(nèi)部上拉電阻的8位雙向i/o口,p2口緩沖器可接收,輸出4個(gè)ttl門電流,當(dāng)p2口被寫“1”時(shí),其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入時(shí),p2口的管腳被
8、外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。當(dāng)p2口用于外部程序存儲(chǔ)器或16位地址外部數(shù)據(jù)存儲(chǔ)器進(jìn)行存取時(shí),p2口輸出地址的高八位。在給出地址“1”時(shí),它利用內(nèi)部上拉優(yōu)勢(shì),當(dāng)對(duì)外部八位地址數(shù)據(jù)存儲(chǔ)器進(jìn)行讀寫時(shí),p2口輸出其特殊功能寄存器的內(nèi)容。p2口在flash編程和校驗(yàn)時(shí)接收高八位地址信號(hào)和控制信號(hào)。 p3口:p3口管腳是8個(gè)帶內(nèi)部上拉電阻的雙向i/o口,可接收輸出4個(gè)ttl門電流。當(dāng)p3口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,p3口將輸出電流(ill)這是由于上拉的緣故。p3口也可作為at89c51的一些特殊功能口,如下所示:p3口管腳 備選功
9、能p3.0 rxd(串行輸入口)p3.1 txd(串行輸出口)p3.2 /int0(外部中斷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為cpu訪問(wèn)外部程序存儲(chǔ)器或外部數(shù)據(jù)存儲(chǔ)器提供一個(gè)地址鎖存信號(hào),將低8位地址鎖存在片外的地址鎖存器中。prog為該引腳第二功能,在對(duì)片內(nèi)flash存儲(chǔ)器編程時(shí),此引腳作為編程脈沖輸入
10、端。 psen:片外程序存儲(chǔ)器的讀選通信號(hào)。低電平有效。 ea/vpp:當(dāng)ea為低電平時(shí),只讀取外部的程序存儲(chǔ)器中的內(nèi)容;當(dāng)ea為高電平時(shí),在pc值不超過(guò)0fffh時(shí),單片機(jī)讀片內(nèi)程序存儲(chǔ)器的程序,但pc超過(guò)時(shí),自動(dòng)轉(zhuǎn)向片外60kb程序存儲(chǔ)器中的程序。 xtal1:片內(nèi)振蕩器反向放大器和時(shí)鐘發(fā)生器電路的輸入端。 xtal2:片內(nèi)振蕩器反向放大器的輸出端。3.2 1602lcd液晶顯示器3.2.1引腳圖3.2.2引腳功能第1腳:vss為地電源。第2腳:vdd接5v正電源。第3腳:vl為液晶顯示器對(duì)比度調(diào)整端,接正電源時(shí)對(duì)比度最弱,接地時(shí)對(duì)比度最高,對(duì)比度過(guò)高時(shí)會(huì)產(chǎn)生“鬼影”,使用時(shí)可以通過(guò)一個(gè)1
11、0k的電位器調(diào)整對(duì)比度。第4腳:rs為寄存器選擇,高電平時(shí)選擇數(shù)據(jù)寄存器、低電平時(shí)選擇指令寄存器。第5腳:r/w為讀寫信號(hào)線,高電平時(shí)進(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.3 其他重要元件3.3.1獨(dú)立式鍵盤的接口電路在單片機(jī)應(yīng)用系統(tǒng)中,有時(shí)只需要幾個(gè)簡(jiǎn)單的按鍵向系統(tǒng)輸入信息。這時(shí),可將每個(gè)按鍵接在一根i/o接口線上,這種方式的連接稱為獨(dú)立式鍵盤。每個(gè)獨(dú)立式按鍵單獨(dú)占有一根 i/o接口線,每根i/o接口線的工
12、作狀態(tài)不 會(huì)影響到其他 i/o接口線 。這種按鍵接口電路配置靈活,硬件結(jié)構(gòu)簡(jiǎn)單,但每個(gè)按鍵必須占用一根i/o接口線,i/o接口線浪費(fèi)較大。故只在按鍵數(shù)量不多時(shí)采用這種按鍵電路。在此電路中,按鍵輸入都采用低電平有效。上拉電阻保證了按鍵斷開時(shí),i/o接口線有確定的高電平。當(dāng)i/o接口內(nèi)部有上拉電阻時(shí),外電路可以不配置上拉電阻。3.3.2電磁繼電器電磁繼電器一般由鐵芯、線圈、銜鐵、觸點(diǎn)簧片等組成的。只要在線圈兩端加上一定的電壓,線圈中就會(huì)流過(guò)一定的電流,從而產(chǎn)生電磁效應(yīng),銜鐵就會(huì)在電磁力吸引的作用下克服返回彈簧的拉力吸向鐵芯,從而帶動(dòng)銜鐵的動(dòng)觸點(diǎn)與靜觸點(diǎn)(常開觸點(diǎn))吸合。當(dāng)線圈斷電后,電磁的吸力也隨
13、之消失,銜鐵就會(huì)在彈簧的反作用力返回原來(lái)的位置,使動(dòng)觸點(diǎn)與原來(lái)的靜觸點(diǎn)(常閉觸點(diǎn))釋放。這樣吸合、釋放,從而達(dá)到了在電路中的導(dǎo)通、切斷的目的。具有動(dòng)作快、工作穩(wěn)定、使用壽命長(zhǎng)、體積小等優(yōu)點(diǎn)。3.3.2 pnp三極管 pnp型三極管由2塊p型半導(dǎo)體中間夾著1塊n型半導(dǎo)體所組成,電流從發(fā)射極e流入的三極管.pnp型三極管發(fā)射極電位最高,集電極電位最低,ube0.4.軟件設(shè)計(jì)4.1系統(tǒng)流程圖4.2 源代碼#include #define uint unsigned int#define uchar unsigned charuchar code table1=now time; uchar code
14、 table2=show alram; uchar code table3=set time; uchar code table4=set alram;sbit lcden=p34;sbit lcdrs=p35;sbit lcdrw=p36;sbit k1=p10;sbit k2=p11;sbit k3=p12;sbit k4=p13;sbit be=p25;sbit dula=p26;sbit wala=p27;sbit jdq=p23;sbit led =p24;uchar flag,num,count,k1num,k2num,k3num,k4num;char miao,shi,fen,a
15、shi,afen;/延時(shí)函數(shù)void delay(uint z)uint x,y;for(x=z;x0;x-)for(y=100;y0;y-);/蜂鳴器子程序void di()be=0;delay(100);be=1;/寫命令函數(shù)void write_com(uchar com)lcdrs=0;lcdrw=0;lcden=0;p0=com;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);lcde
16、n=0;/寫時(shí)間函數(shù)void write_sfm(uchar add,uchar date)uchar dateshi,datege;dateshi=date/10;datege=date%10;write_com(0x80+0x40+add);write_date(0x30+dateshi);write_date(0x30+datege); /顯示時(shí)間函數(shù)void timeinit() write_com(0x01);write_com(0x80+2);for(num=0;num8;num+)write_date(table1num);delay(5); write_com(0x80+0x4
17、0+4);write_date(:);delay(5);write_sfm(2,shi);write_com(0x80+0x40+2);write_sfm(5,fen);write_com(0x80+0x40+5); /顯示鬧鐘函數(shù)void displayalarmtime()write_com(0x01);write_com(0x80+2); for(num=0;num10;num+)write_date(table2num);delay(5);write_com(0x80+0x40+4);write_date(:);delay(5);write_sfm(2,ashi);write_com(
18、0x80+0x40+2);write_sfm(5,afen);write_com(0x80+0x40+5);/設(shè)置當(dāng)前時(shí)間void setnowtime() write_com(0x80+2);for(num=0;num8;num+)write_date(table3num);delay(5);write_com(0x80+0x40+4);write_date(:); delay(5);write_sfm(2,shi);write_com(0x80+0x40+2);write_sfm(5,fen);write_com(0x80+0x40+5);if(k1=0)delay(5);if(k1=0)
19、while(!k1);di();shi+;if(shi=24)shi=0; write_sfm(2,shi);write_com(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_com(0x80+0x40+5);if(k3=0)delay(5);if(k3=0)while(!k3);di();k1num=0;tr0=1;timeinit(); /設(shè)置鬧鐘時(shí)間void setalarmtime() write_com(0x80+2);for(num=
20、0;num9;num+)write_date(table4num);delay(5);write_com(0x80+0x40+4);write_date(:); delay(5);write_sfm(2,ashi);write_com(0x80+0x40+2);write_sfm(5,afen);write_com(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_com(0x80+0x40+2);if(k2=0)delay(5);if(k2
21、=0)while(!k2);di();afen+;if(afen=60)afen=0;write_sfm(5,afen);write_com(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()
22、;k2num+;if(k2num=1)displayalarmtime();k2num=2;if(k2num=3)k2num=0;ea=1;timeinit();elseif(k3=0)delay(5);if(k3=0)while(!k3);di();k3num+;if(k3num=1)write_com(0x80+0x40+2); write_date( );delay(100); write_com(0x80+0x40+3); write_date( ); delay(100); write_com(0x80+0x40+5); write_date( ); delay(100); writ
23、e_com(0x80+0x40+6); write_date( ); setalarmtime();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
24、();flag=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; /write_com(0x38);/設(shè)置16x2顯示,5x7點(diǎn)陣,8位數(shù)據(jù)接口write_com(0x08);write_com(0x01); /顯示清0,數(shù)據(jù)指針清0write_com(0x06);/寫一個(gè)字符后地址指針加1write_com(0x0c);/設(shè)置開顯示,不顯示光標(biāo) timeinit();tmod=0x01;th0=0x4c;tl0=0x00;ea=1;et0=1;tr0=1;/主函數(shù)void main()init();write_com(0x80);while(1)keyscan();/中斷服務(wù)子程序void timer0() interrupt 1th0=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)shi=0;write_sfm(2,shi);write_sfm(5,fe
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 扶貧幫扶工作總結(jié)范文
- 2024年鋰錳電池項(xiàng)目投資申請(qǐng)報(bào)告代可行性研究報(bào)告
- 吉林省四平市(2024年-2025年小學(xué)五年級(jí)語(yǔ)文)統(tǒng)編版競(jìng)賽題((上下)學(xué)期)試卷及答案
- 2024年食品成型機(jī)械項(xiàng)目投資申請(qǐng)報(bào)告代可行性研究報(bào)告
- 2024年壓實(shí)機(jī)械項(xiàng)目資金需求報(bào)告代可行性研究報(bào)告
- 2023年毛皮服裝及其附件投資申請(qǐng)報(bào)告
- 四年級(jí)數(shù)學(xué)(上)計(jì)算題專項(xiàng)練習(xí)及答案匯編
- 小學(xué)二年級(jí)語(yǔ)文下冊(cè)教案
- 公文包產(chǎn)業(yè)深度調(diào)研及未來(lái)發(fā)展現(xiàn)狀趨勢(shì)
- 手繡機(jī)繡圖畫市場(chǎng)發(fā)展預(yù)測(cè)和趨勢(shì)分析
- 安徽省合肥市2024-2025學(xué)年九年級(jí)上學(xué)期期中物理模擬試卷二(含答案)
- 中國(guó)物聯(lián)網(wǎng)安全行業(yè)市場(chǎng)現(xiàn)狀、前景分析研究報(bào)告(智研咨詢發(fā)布)
- 2024-2025學(xué)年高一上學(xué)期期中模擬考試數(shù)學(xué)試題01(人教A版2019必修第一冊(cè)第一-三章)(全解全析)
- 助產(chǎn)專業(yè)職業(yè)生涯規(guī)劃
- 植物病理學(xué)概論智慧樹知到期末考試答案章節(jié)答案2024年浙江大學(xué)
- (完整word版)英語(yǔ)四級(jí)單詞大全
- 職業(yè)院校面試題目及答案
- 《煙酒有危害》公開課教案
- 2022小學(xué)新課程標(biāo)準(zhǔn)《道德與法治》
- [doc] 增強(qiáng)動(dòng)態(tài)分散條件下部隊(duì)管理工作實(shí)效
- 中國(guó)聯(lián)通LAN工程施工及驗(yàn)收規(guī)范
評(píng)論
0/150
提交評(píng)論