




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、精選優(yōu)質(zhì)文檔-傾情為你奉上 微型計(jì)算機(jī)控制技術(shù)大作業(yè) 設(shè)計(jì)題目: 定時(shí)鬧鐘課程設(shè)計(jì) 院 系:計(jì)算機(jī)科學(xué)與信息工程學(xué)院 學(xué)生姓名: 曹紫瑩 學(xué) 號(hào): 6 專業(yè)班級(jí): 計(jì)算機(jī)科學(xué)與技術(shù)(嵌入式方向)11-1 指導(dǎo)教師: 趙凱 2014.06.07專心-專注-專業(yè) 目錄 基于單片機(jī)的定時(shí)鬧鐘1、課程內(nèi)容要求及目的 1.1設(shè)計(jì)題目 基于單片機(jī)的定時(shí)鬧鐘 1.2 設(shè)計(jì)要求 1、能顯示時(shí)時(shí)分分秒秒。 2、能夠設(shè)定定時(shí)時(shí)間、修改定時(shí)時(shí)間。 3、定時(shí)時(shí)間到能發(fā)出報(bào)警聲或者啟動(dòng)繼電器,從而控制電器的啟停。 1.3LCD電子鬧鐘的特點(diǎn)和功能介紹 時(shí)鐘是將小時(shí)、分鐘、秒鐘顯示于人的肉眼的計(jì)時(shí)裝置。而單片機(jī)模塊中最常
2、見(jiàn)的正是數(shù)字鐘,數(shù)字鐘是一種用數(shù)字電路技術(shù)實(shí)現(xiàn)時(shí)、分、秒計(jì)時(shí)的裝置,與機(jī)械式時(shí)鐘相比具有更高的準(zhǔn)確性和直觀性,且無(wú)機(jī)械裝置,具有更長(zhǎng)的使用壽命,因此得到了廣泛的使用。而LCD電子定時(shí)鬧鐘是以單片機(jī)為基礎(chǔ)的數(shù)字電路實(shí)現(xiàn)對(duì)時(shí)、分、秒的數(shù)字顯示的數(shù)字計(jì)時(shí)裝置,它的計(jì)時(shí)周期為24小時(shí),另外應(yīng)有校時(shí)功能和一些顯示日期、鬧鐘等附加功能。一個(gè)基本的數(shù)字鐘電路主要由譯碼顯示器、“時(shí)”,“分”,“秒”,“星期”計(jì)數(shù)器、校時(shí)電路、報(bào)時(shí)電路和振蕩器組成。目前電子鐘廣泛用于各種私人和公眾場(chǎng)合,成為我們生活、工作和學(xué)習(xí)中不可缺少的好幫手。由于時(shí)鐘的實(shí)用性和在人們生活中的重要性,所以嘗試設(shè)計(jì)以單片機(jī)為核心的數(shù)字時(shí)鐘是很有
3、意義的。鐘表原先的報(bào)時(shí)功能已經(jīng)原不能滿足人們?nèi)找嬖鲩L(zhǎng)的要求,現(xiàn)代的電子時(shí)鐘多帶有類似自動(dòng)報(bào)警、按時(shí)自動(dòng)打鈴、時(shí)間程序自動(dòng)控制、定時(shí)廣播、自動(dòng)起閉路燈、通斷動(dòng)力設(shè)備、甚至各種定時(shí)電氣的自動(dòng)啟用等功能,本設(shè)計(jì)中LCD電子時(shí)鐘采用LCD顯示時(shí)間和日期年月,直觀實(shí)用,而且可以方便的校調(diào),附帶的萬(wàn)年歷和定時(shí)功能也是很方便和實(shí)用的。2、設(shè)計(jì)實(shí)現(xiàn)方案 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í)行一定的程序來(lái)實(shí)現(xiàn)數(shù)字鐘的功能。由于
4、采用集成芯片性的單片機(jī)來(lái)制作電子鐘,這樣設(shè)計(jì)制作簡(jiǎn)單而且功能多、精確度高,也可方便擴(kuò)充其他功能,實(shí)現(xiàn)也十分簡(jiǎn)單。本設(shè)計(jì)是利用AT89C51單片機(jī)為主控芯片,由LCD、晶振、電阻、電容、發(fā)光二極管、開(kāi)關(guān)、喇叭等元件組成硬件電路,通過(guò)編寫軟件程序來(lái)實(shí)現(xiàn)和控制的數(shù)字定時(shí)鬧鐘。如圖2.1所示。 圖2.12.2 原理及工作過(guò)程說(shuō)明 使用AT89C51單片機(jī)結(jié)合字符型LCD顯示器設(shè)計(jì)一個(gè)簡(jiǎn)易的定時(shí)鬧鐘LCD時(shí)鐘。定時(shí)鬧鐘的基本功能如下:l 顯示格式為“時(shí)時(shí):分分”。l 由LED閃動(dòng)來(lái)做秒計(jì)數(shù)表示。l 一旦時(shí)間到則發(fā)出聲響,同時(shí)繼電器啟動(dòng),可以擴(kuò)充控制家電的開(kāi)啟和關(guān)閉。程序執(zhí)行后工作指示燈LED閃動(dòng),表示程
5、序開(kāi)始執(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ā)出“嘩”的一聲,設(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ā)出一陣聲響,按下本鍵可以停止聲響。本題目的難點(diǎn)在于4個(gè)按鍵每個(gè)都具有兩個(gè)功能。3、硬件設(shè)計(jì) 3.1 主控芯片AT89C51的設(shè)計(jì) 在本LCD電子鬧鐘設(shè)計(jì)中就是采用利用我們熟悉的AT89C51單片機(jī)為主控芯片。AT89C5
6、1單片機(jī)由微處理器,存儲(chǔ)器,I/O口以及特殊功能寄存器SFR等部分構(gòu)成。其存儲(chǔ)器在物理上設(shè)計(jì)成程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器兩個(gè)獨(dú)立的空間,片內(nèi)程序存儲(chǔ)器的容量為4KB,片內(nèi)數(shù)據(jù)存儲(chǔ)器為128個(gè)字節(jié)。89C51單片機(jī)有4個(gè)8位的并行I/O口:P0口,P1口,P2口和P3口。各個(gè)接口均由接口鎖存器,輸出驅(qū)動(dòng)器,和輸入緩沖器組成。P1口是唯一的單功能口,僅能用作通用的數(shù)據(jù)輸入/輸出口。P3口是雙功能口除了具有數(shù)據(jù)輸入/輸出功能外,每條接口還具有不同的第二功能,如P3.0是串行輸入口線,P3.1口是串行輸出口線。在需要外部程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器擴(kuò)展時(shí),P0可作為分時(shí)復(fù)用的低8位地址/數(shù)據(jù)總線,P2口可作為高
7、8位的地址總線。P3口也可作為AT89C51的一些特殊功能口,同時(shí)為閃爍編程和編程校驗(yàn)接收一些控制信號(hào). 3.2 時(shí)鐘電路部分設(shè)計(jì) AT89C51系列的單片機(jī)的時(shí)鐘方式分為內(nèi)部方式和外部方式。內(nèi)部方式就是在單片機(jī)的XTAL1和XTAL2的兩引腳外接晶振,就夠成了自激振蕩器在單片機(jī)內(nèi)部產(chǎn)生時(shí)鐘脈沖信號(hào)。外部時(shí)鐘方式是把外部已經(jīng)有的時(shí)鐘信號(hào)引入到單片機(jī)內(nèi)部。時(shí)鐘電路在計(jì)算機(jī)系統(tǒng)中起著非常重要的作用,是保證系統(tǒng)正常工作的基礎(chǔ)。在一個(gè)單片機(jī)應(yīng)用系統(tǒng)中,時(shí)鐘有兩方面的含義:一是指為保障系統(tǒng)正常工作的基準(zhǔn)振蕩定時(shí)信號(hào),主要由晶振和外圍電路組成,晶振頻率的大小決定了單片機(jī)系統(tǒng)工作的快慢;二是指系統(tǒng)的標(biāo)準(zhǔn)定時(shí)
8、時(shí)鐘,即定時(shí)時(shí)間。本LCD電子鬧鐘設(shè)計(jì)是采用內(nèi)部時(shí)鐘方式,用一個(gè)12MHz晶振和兩個(gè)30Pf瓷片電容組成,為單片機(jī)提供標(biāo)準(zhǔn)時(shí)鐘,其中兩個(gè)瓷片電容起微調(diào)作用.其電路圖見(jiàn)圖3.1。圖3.1 而之所以采用高性能的振蕩電路,因?yàn)椋?.單片機(jī)電子鐘的計(jì)時(shí)脈沖基準(zhǔn)是由外部晶振的頻率經(jīng)過(guò)12分頻后提供,采用內(nèi)部的定時(shí)/計(jì)數(shù)器來(lái)實(shí)現(xiàn)計(jì)時(shí)功能。所以,外接晶振頻率精確度直接影響電子鐘計(jì)時(shí)的準(zhǔn)確性。 2.單片機(jī)電 子鐘利用內(nèi)部定時(shí)/計(jì)數(shù)器溢出產(chǎn)生中斷(12M晶振一般為50ms)再乘以相應(yīng)的倍率來(lái)實(shí)現(xiàn)秒、分、時(shí)的轉(zhuǎn)換。大家都知道從定時(shí)/計(jì)數(shù)器產(chǎn)生中斷請(qǐng)求到響 應(yīng)中斷需要3-8個(gè)機(jī)器周期,定時(shí)中斷子程序中的數(shù)據(jù)入棧和重
9、裝定時(shí)/計(jì)數(shù)器的初值還需要占用數(shù)個(gè)機(jī)器周期,還有從中斷入口轉(zhuǎn)到中斷子程序也要占用一定的 機(jī)器周期。 3.3 LCD顯示電路部分 為了獲得更好的效果本設(shè)計(jì)并沒(méi)有采用常見(jiàn)的LED,而是采用了型號(hào)為1602的 LCD。LCD有LED數(shù)碼顯示更好的更的直觀效果,也更加經(jīng)久耐用。液晶顯示模塊體積小功耗低、顯示內(nèi)容豐富,現(xiàn)在字符型液晶顯示模塊已經(jīng)是單片機(jī)應(yīng)用設(shè)計(jì)中最常用的信息顯示器件之一了。本LCD是2行16列液晶 可顯示2行16列英文字符,有8位數(shù)據(jù)總線D0-D7,RS,R/W,EN三個(gè)控制端口(共14線),工作電壓為5V。沒(méi)背光,和常用的1602B功能和引腳一樣(除了調(diào)背光的二個(gè)線腳). 該模塊也可只
10、用D4-D7作為四位數(shù)據(jù)分兩次傳送。這樣的話可以節(jié)省MCU的I/O口資源。引腳說(shuō)明,見(jiàn)表3.1。VDD:電源正極,4.55.5V,通常使用5V電壓;VL:LCD對(duì)比度調(diào)節(jié)端,電壓調(diào)節(jié)范圍為05V。接正電源時(shí)對(duì)比度最弱,接地電源時(shí)對(duì)比度最高,但對(duì)比度過(guò)高時(shí)會(huì)產(chǎn)生“鬼影”,因此通常使用一個(gè)10K的電位器來(lái)調(diào)整對(duì)比度或者直接串接一個(gè)電阻到地;RS:MCU寫入數(shù)據(jù)或者指令選擇端。MCU要寫入指令時(shí),使RS為低電平;MCU要寫入數(shù)據(jù)時(shí),使RS為高電平;R/W:讀寫控制端。R/W為高電平時(shí),讀取數(shù)據(jù);R/W為低電平時(shí),寫入數(shù)據(jù);E:LCD模塊使能信號(hào)控制端。寫數(shù)據(jù)時(shí),需要下降沿觸發(fā)模塊。D0D7:8位數(shù)據(jù)
11、總線,三態(tài)雙向。如果MCU的I/O口資源緊張的話,該模塊也可以只使用4位數(shù)據(jù)線D4D7接口傳送數(shù)據(jù)。本充電器就是采用4位數(shù)據(jù)傳送方式;BLA: LED背光正極。需要背光時(shí),BLA串接一個(gè)限流電阻接VDD,BLK接地,實(shí)測(cè)該模塊的背光電流為50mA左右;BLK: LED背光地端.表3.1 LCD顯示屏引腳說(shuō)明編號(hào)符號(hào)引腳說(shuō)明編號(hào)符號(hào)引腳說(shuō)明1VCC電源地9D2雙向數(shù)據(jù)口2VDD電源正極10D3雙向數(shù)據(jù)口3VL對(duì)比度調(diào)節(jié)11D4雙向數(shù)據(jù)口4RS數(shù)據(jù)/命令選擇12D5雙向數(shù)據(jù)口5R/W讀/寫選擇13D6雙向數(shù)據(jù)口6E模塊使能端14D7雙向數(shù)據(jù)口7D0雙向數(shù)據(jù)口15BLK背光源地8D1雙向數(shù)據(jù)口16B
12、LA背光源正極4、軟件設(shè)計(jì) 4.1 軟件設(shè)計(jì)概述這里用匯編的單片機(jī)程序構(gòu)成了本LCD電子鬧鐘的軟件系統(tǒng)。該程序?qū)崿F(xiàn)時(shí)間及定時(shí)(時(shí)間以0點(diǎn)0分0秒為基準(zhǔn)計(jì)算,鬧鈴定時(shí)以0時(shí)0分為基準(zhǔn)計(jì)算)的顯示,有外中斷0和五個(gè)開(kāi)關(guān)實(shí)現(xiàn)校時(shí),鬧鐘功能。其中程序的晶振頻率為12MHz,最小計(jì)時(shí)單位為1/20秒。主芯片p0.1-p0.7輸出數(shù)據(jù)到LCD數(shù)據(jù)總線,p3.0-2.2輸出LCD控制信號(hào),P2.1輸出聲音信號(hào),.P1.0-P1.3輸入外部控制信號(hào),整個(gè)軟件系統(tǒng)也是根據(jù)這個(gè)關(guān)系連接成一個(gè)完整的系統(tǒng)。 4.2 主函數(shù)的設(shè)計(jì)本LCD電子鬧鐘的的主程序流程圖如圖4.1所示: 圖4.1 4.3.1 程序初始化 在系統(tǒng)
13、開(kāi)始上電時(shí),需要.首先初始化液晶:void TimeInit()write_com(0x01); /初始化1602液晶write_com(0x80); /設(shè)置現(xiàn)實(shí)初始坐標(biāo)for(num=0;num<9;num+) /顯示年月日write_date(tablenum); delay(5);write_com(0x80+0x40+6); /寫出時(shí)間顯示部分的兩個(gè)冒號(hào)write_date(':');delay(5);write_com(0x80+0x40+9);write_date(':');delay(5);write_sfm(4,shi); /分別送去液晶顯
14、示write_com(0x80+0x40+4);write_sfm(7,fen);write_com(0x80+0x40+7);write_sfm(10,miao);write_com(0x80+0x40+10) 4.3.2 鬧鐘的實(shí)現(xiàn) 鬧鐘功能的實(shí)現(xiàn)涉及到兩個(gè)方面:鬧鈴時(shí)間設(shè)定和是否鬧鈴判別與相應(yīng)處理。鬧鈴時(shí)間設(shè)定模塊的設(shè)計(jì)可參照時(shí)間設(shè)定模塊,這里著重闡述鬧鈴判別與處理模塊的設(shè)計(jì)問(wèn)題。鬧鈴判別與.鬧鈴處理的關(guān)鍵在于判別何時(shí)要進(jìn)行鬧鈴。當(dāng)時(shí)十位、時(shí)個(gè)位、分十位、分個(gè)位中任一位發(fā)生改變(進(jìn)位)時(shí),就必須進(jìn)行鬧鈴判別。程序設(shè)計(jì)思想如圖4.2。 圖4.2 4.3.3 顯示程序顯示程序包括時(shí)鐘顯示和定
15、時(shí)顯示程序。具體程序見(jiàn)附錄。液晶顯示模塊是一個(gè)慢顯示器件,所以在執(zhí)行每條指令之前一定要確認(rèn)模塊的忙標(biāo)志為低電平,表示不忙,否則此指令失效。要顯示字符時(shí)要先輸入顯示字符地址,也就是告訴模塊在哪里顯示字符,表4.1是TC1602EL液晶模塊的內(nèi)部顯示地址。表4.112345678910111213141516000102030405060708090A0B0C0D0E0F404142434445464748494A4B4C4D4E4F 附錄1 定時(shí)鬧鐘仿真電路圖附錄2 定時(shí)鬧鐘的控制程序代碼#include<reg52.h>#define uint unsigned int#defin
16、e uchar unsigned charsbit key1=P10; sbit key2=P11;sbit key3=P12;sbit key4=P13;sbit lcden=P22; sbit lcdrs=P20;sbit lcdrw=P21;sbit jdq=P23;sbit led=P24; sbit sound=P25;int a,b,i,min,hour,minge,minshi,hourge,hourshi,amin,ahour,aminge,aminshi,ahourge,ahourshi,sec,secshi,secge;/unsigned char code x=0xFF,
17、0xC7,0x83,0x01,0x00,0x00,0x00,0x01,0x03,0x07,0x0F,0x1F,0x3F,0x7F,0xFF,0xFF;/unsigned char code z=0xFF,0xE3,0xC1,0x80,0x00,0x00,0x00,0x80,0xC0,0xE0,0xF0,0xF8,0xFC,0x7F,0xFF,0xFF;uchar code table1='0','1','2','3','4','5','6','7','8
18、9;,'9'uchar code table2="Time:00:00:00 "uchar code Alarm_1="Alarm:00:00 "uchar code nul=" "uchar num1,num2;bit flag=0;void delay(unsigned int xms)/延時(shí)程序uint i,j; for(i=xms;i>0;i-) for(j=124;j>0;j-);void write_com(uchar com) /LCD命令控制,寫指令函數(shù)delay(5) ;lcdrs=0;P
19、0=com;delay(5);lcden=1;delay(5);lcden=0;void write_data(uchar date) /LCD數(shù)據(jù)控制,寫數(shù)據(jù)函數(shù)delay(5);lcdrs=1;P0=date;delay(5);lcden=1;delay(5);lcden=0;void time()/設(shè)置時(shí)間函數(shù) while(1)if(key1=0) delay(10);if(key1=0)if(hour=23) /"時(shí)"設(shè)置hour=0;elsehour+;hourge=hour%10;hourshi=hour/10;write_com(0x0f);delay(2);
20、write_com(0x80+6);write_data(table1hourge); /"時(shí)"個(gè)位寫入LCD第二行第6位delay(5);write_com(0x80+5);delay(2);write_data(table1hourshi); /"時(shí)"十位寫入LCD第二行第5位while(!key1);/delay(1);if(key2=0) delay(10);if(key2=0)if(min=59)/"分"設(shè)置min=0;elsemin+;minge=min%10;minshi=min/10;write_com(0x0f);w
21、rite_com(0x80+9);write_data(table1minge); /"分"個(gè)位寫入LCD第二行第9位delay(1);write_com(0x80+8);write_data(table1minshi); /"分"十位寫入LCD第二行第8位delay(1);while(!key2); if(key3=0) delay(10);if(key3=0)write_com(0x0c); /整體顯示,關(guān)光標(biāo),不閃爍TR1=1; /定時(shí)計(jì)數(shù)器1啟動(dòng)while(!key3);break; /key3松開(kāi)時(shí),顯示時(shí)間"時(shí)""
22、;分"位均已設(shè)置完畢 void alarm()/設(shè)置鬧鐘時(shí)間函數(shù) while(1)if(key1=0) delay(10);if(key1=0)if(ahour=23)/鬧鐘"時(shí)"設(shè)置ahour=0;elseahour+;ahourge=ahour%10;ahourshi=ahour/10;write_com(0x0f);/delay(2);write_com(0x80+0x40+8);write_data(':');write_com(0x80+0x40+7);write_data(table1ahourge);delay(1);write_co
23、m(0x80+0x40+6);/delay(2);write_data(table1ahourshi);delay(1);while(!key1);if(key2=0) /鬧鐘"分"設(shè)置 delay(10);if(key2=0)if(amin=59)amin=0;elseamin+;aminge=amin%10;aminshi=amin/10;write_com(0x0f);/delay(2);write_com(0x80+0x40+10);write_data(table1aminge);delay(1);write_com(0x80+0x40+9);/delay(2);
24、write_data(table1aminshi);delay(1);while(!key2); if(key3=0) flag=flag; delay(10);if(key3=0)write_com(0x0c);write_com(0x80+0x40);for(i=0;i<11;i+)write_data(nuli);while(!key3);break; /設(shè)置結(jié)束,此時(shí)LCD第二行無(wú)數(shù)據(jù)顯示,只有第一行有時(shí)間顯示 void keyscan()/鍵盤掃描 if(key1=0) delay(10);if(key1=0)while(!key1); /key1鍵松開(kāi)后執(zhí)行下一行程序time
25、(); /調(diào)用time()函數(shù),即時(shí)間設(shè)置 else if(key2=0) delay(10);if(key2=0)while(!key2)ahourge=ahour%10;ahourshi=ahour/10;write_com(0x80+0x40+7);write_data(table1ahourge);delay(5);write_com(0x80+0x40+6);delay(2);write_data(table1ahourshi);aminge=amin%10;aminshi=amin/10;write_com(0x80+0x40+10);write_data(table1aminge
26、);delay(5);write_com(0x80+0x40+9);delay(2);write_data(table1aminshi);write_com(0x80+0x40);for(i=0;i<11;+i)write_data(Alarm_1i); /顯示鬧鐘設(shè)置的時(shí)間write_com(0x80+0x40);for(i=0;i<11;i+)write_data(nuli); /key2松開(kāi)后,LCD只有第一行顯示時(shí)間,鬧鐘設(shè)置時(shí)間不顯示 else if(key3=0) delay(10);if(key3=0)while(!key3); /表示鬧鐘時(shí)間設(shè)置退出 ahourge
27、=ahour%10;ahourshi=ahour/10;write_com(0x80+0x40+7);write_data(table1ahourge);delay(5);write_com(0x80+0x40+6);delay(2);write_data(table1ahourshi);aminge=amin%10;aminshi=amin/10;write_com(0x80+0x40+10);write_data(table1aminge);delay(5);write_com(0x80+0x40+9);delay(2);write_data(table1aminshi);write_co
28、m(0x80+0x40);for(i=0;i<11;+i)write_data(Alarm_1i);/顯示鬧鐘設(shè)置時(shí)間alarm(); /調(diào)用鬧鐘時(shí)間設(shè)置函數(shù) else if(key4=0)/以下進(jìn)行鬧鈴開(kāi)關(guān)的設(shè)置 delay(5);if(key4=0) while(!key4);a=a+1;if(a%2=0) /鬧鐘"on"for(b=0;b<6;b+)sound=sound; /蜂鳴器發(fā)出3次"嘩"的響聲delay(200);sound=1;else if(a%2=1) /鬧鐘"off"sound=0; /蜂鳴器發(fā)出1
29、次"嘩"的響聲delay(300);sound=1;delay(300); sound=1; void lcd_init() /LCD初始化函數(shù)lcden=0;lcdrw=0;write_com(0x38); /設(shè)置8位格式,2行,5×7write_com(0x0c); /整體顯示,關(guān)光標(biāo),不閃爍write_com(0x06); /設(shè)定輸入方式,增量不轉(zhuǎn)移write_com(0x01); /清除屏幕顯示delay(2);write_com(0x80);for(i=0;i<16;i+)write_data(table2i); /寫入顯示時(shí)間數(shù)據(jù)delay(1)
30、;void judge()if(sec=60)min+;sec=0;if(min=60)hour+;min=0;if(hour=24)hour=0;void init()/AT89C51初始化函數(shù)key1=1;key2=1;key3=1;key4=1;sec=0;a=0;sound=1;amin=-1; /四個(gè)按鍵均未按下,鬧鐘時(shí)間"分"的初值為1(防止仿真圖剛啟動(dòng)時(shí),就達(dá)到鬧鐘時(shí)間,蜂鳴器發(fā)出響聲)/led=1;TMOD=0x10; /定時(shí)計(jì)數(shù)器T1、T2均工作在方式1TH1=0x3C;TL1=0xB0; /計(jì)數(shù)初值為15536EA=1;ET1=1;TR1=1; /定時(shí)計(jì)
31、數(shù)器T1啟動(dòng)void equa()if(amin=min&&ahour=hour&&a%2=0) /顯示時(shí)間與鬧鐘設(shè)置時(shí)間完全一樣且鬧鐘"on"jdq=0; /P23口的電位置0,繼電器啟動(dòng),外部LED-GREEN燈電路導(dǎo)通 sound=sound; /蜂鳴器發(fā)出"嘩嘩嘩"響聲else jdq=1; void led1() interrupt 3/LED1中斷函數(shù)TL1=0xB0;TH1=0x3C;if(flag)equa(); num1+;num2+;if(num2>=20)sec+;num2=0;judge();
32、if(num1=10) /計(jì)時(shí)10次50ms,即500msnum1=0;led=led;/P24口電位取反,LED燈亮void main() /主函數(shù)lcd_init(); /調(diào)用LCD初始化函數(shù)init(); /調(diào)用AT89C51初始化函數(shù)while(1)keyscan(); /調(diào)用掃描函數(shù) /顯示時(shí)間"秒"加1minge=min%10;minshi=min/10;write_com(0x80+9);write_data(table1minge);delay(5);write_com(0x80+8);write_data(table1minshi);hourge=hour%10;hourshi=hour/10;write_com(0x80+6);write_data(table1hourge);delay(5);write_com(0x80+5);write_data(table1hourshi);write_com(0x80+7);write_data(':');delay(5);write_com(0x80+10);write_data(':');delay(5);secge=se
溫馨提示
- 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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 佳木斯職業(yè)學(xué)院《熱工與熱機(jī)》2023-2024學(xué)年第二學(xué)期期末試卷
- 東北師范大學(xué)《液壓與氣動(dòng)》2023-2024學(xué)年第二學(xué)期期末試卷
- 北京語(yǔ)言大學(xué)《水資源利用》2023-2024學(xué)年第二學(xué)期期末試卷
- 浙江工業(yè)大學(xué)之江學(xué)院《生態(tài)環(huán)境保護(hù)基礎(chǔ)(三)》2023-2024學(xué)年第二學(xué)期期末試卷
- 浙江越秀外國(guó)語(yǔ)學(xué)院《市場(chǎng)營(yíng)銷學(xué)概論》2023-2024學(xué)年第二學(xué)期期末試卷
- 中央美術(shù)學(xué)院《課堂教學(xué)技能訓(xùn)練》2023-2024學(xué)年第二學(xué)期期末試卷
- 石家莊理工職業(yè)學(xué)院《災(zāi)害衛(wèi)生學(xué)》2023-2024學(xué)年第二學(xué)期期末試卷
- 長(zhǎng)垣烹飪職業(yè)技術(shù)學(xué)院《電工及電子學(xué)(二)》2023-2024學(xué)年第二學(xué)期期末試卷
- 益陽(yáng)醫(yī)學(xué)高等??茖W(xué)?!堕_(kāi)發(fā)技術(shù)》2023-2024學(xué)年第二學(xué)期期末試卷
- 天津體育職業(yè)學(xué)院《動(dòng)力電池及能量管理技術(shù)》2023-2024學(xué)年第二學(xué)期期末試卷
- 智能人體秤市場(chǎng)需求分析報(bào)告
- 2023新北師大版高中英語(yǔ)選擇性必修三全冊(cè)課文翻譯(英漢對(duì)照)
- 設(shè)備采購(gòu)供貨安裝實(shí)施方案
- 初中生物《病毒》說(shuō)課課件
- 國(guó)網(wǎng)考試企業(yè)文化能源與戰(zhàn)略題庫(kù)
- 智聯(lián)招聘行測(cè)題庫(kù)2023
- 小工考勤表記工模板
- 【英語(yǔ)詞匯】閩教版(三起點(diǎn))小學(xué)英語(yǔ)單詞默寫表(帶音標(biāo)按順序)(全8冊(cè))
- 編輯學(xué)概論-課件
- 理發(fā)店個(gè)人門面轉(zhuǎn)讓合同
- 03J111-1 輕鋼龍骨內(nèi)隔墻
評(píng)論
0/150
提交評(píng)論