

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 目錄</b></p><p><b> 1.引言2</b></p><p> 1.1設(shè)計(jì)任務(wù)與要求2</p><p> 1.2數(shù)字鐘得實(shí)用價(jià)值和理論意義2</p><p> 1.3設(shè)計(jì)所用器件簡(jiǎn)介3</p><p> 1.3.1
2、 單片機(jī)簡(jiǎn)介3</p><p> 1.3.2 1602LCD的基本參數(shù)及引腳功能3</p><p><b> 2.設(shè)計(jì)內(nèi)容7</b></p><p> 3.程序設(shè)計(jì)及硬件電路8</p><p> 3.1原理圖(protues)8</p><p> 3.2原理圖(protel)
3、8</p><p><b> 4.仿真結(jié)果9</b></p><p> 5.收獲、體會(huì)和建議11</p><p><b> 6.參考文獻(xiàn)11</b></p><p> 7.附:源程序12</p><p><b> 1.引言</b><
4、;/p><p> 近年來(lái)隨著計(jì)算機(jī)在社會(huì)領(lǐng)域的滲透和大規(guī)模集成電路的發(fā)展,單片機(jī)的應(yīng)用正在不斷地走向深入,由于它具有功能強(qiáng),體積小,功耗低,價(jià)格便宜,工作可靠,使用方便等特點(diǎn),因此特別適合于與控制有關(guān)的系統(tǒng),越來(lái)越廣泛地應(yīng)用于自動(dòng)控制,智能化儀器,儀表,數(shù)據(jù)采集,軍工產(chǎn)品以及家用電器等各個(gè)領(lǐng)域,單片機(jī)往往是作為一個(gè)核心部件來(lái)使用,在根據(jù)具體硬件結(jié)構(gòu),以及針對(duì)具體應(yīng)用對(duì)象特點(diǎn)的軟件結(jié)合,以作完善。</p>
5、<p> 單片機(jī)模塊中最常見(jiàn)的是數(shù)字鐘,數(shù)字鐘是一種用數(shù)字電路技術(shù)實(shí)現(xiàn)時(shí)、分、秒計(jì)時(shí)的裝置,與機(jī)械式時(shí)鐘相比具有更高的準(zhǔn)確性和直觀性,且無(wú)機(jī)械裝置,具有更更長(zhǎng)的使用壽命,因此得到了廣泛的使用。數(shù)字鐘是采用數(shù)字電路實(shí)現(xiàn)對(duì)時(shí),分,秒數(shù)字顯示的計(jì)時(shí)裝置,廣泛用于個(gè)人家庭,車(chē)站, 碼頭辦公室等公共場(chǎng)所,成為人們?nèi)粘I钪胁豢缮俚谋匦杵?由于數(shù)字集成電路的發(fā)展和石英晶體振蕩器的廣泛應(yīng)用,使得數(shù)字鐘的精度,遠(yuǎn)遠(yuǎn)超過(guò)老式鐘表, 鐘表的
6、數(shù)字化給人們生產(chǎn)生活帶來(lái)了極大的方便,而且大大地?cái)U(kuò)展了鐘表原先的報(bào)時(shí)功能。諸如定時(shí)自動(dòng)報(bào)警、按時(shí)自動(dòng)打鈴、時(shí)間程序自動(dòng)控制、定時(shí)廣播、自動(dòng)起閉路燈、定時(shí)開(kāi)關(guān)烘箱、通斷動(dòng)力設(shè)備、甚至各種定時(shí)電氣的自動(dòng)啟用等,所有這些,都是以鐘表數(shù)字化為基礎(chǔ)的。因此,研究數(shù)字鐘及擴(kuò)大其應(yīng)用,有著非?,F(xiàn)實(shí)的意義。</p><p> 1.1設(shè)計(jì)任務(wù)與要求</p><p> 1.利用AT89C51定時(shí)器設(shè)計(jì)一個(gè)
7、電子時(shí)鐘;2.顯示格式位 “XX XX XX”,從左向右分別是:時(shí)、分、秒;3.顯示部分用1602LCD顯示屏;4.具有四個(gè)調(diào)整鍵K0,K1,K2,K3;5.按下相應(yīng)的鍵可以調(diào)整時(shí),分,秒;6.調(diào)整到哪一位哪一位閃爍;7.在1602上方顯示“年,月,日,星期”。</p><p> 1.2數(shù)字鐘得實(shí)用價(jià)值和理論意義</p><p> 數(shù)字鐘是采用數(shù)字電路實(shí)現(xiàn)對(duì)時(shí),分,秒數(shù)字顯示的計(jì)時(shí)
8、裝置,廣泛用于個(gè)人家庭,車(chē)站, 碼頭辦公室等公共場(chǎng)所,成為人們?nèi)粘I钪胁豢缮俚谋匦杵?由于數(shù)字集成電路的發(fā)展和石英晶體振蕩器的廣泛應(yīng)用,使得數(shù)字鐘的精度,遠(yuǎn)遠(yuǎn)超過(guò)老式鐘表, 鐘表的數(shù)字化給人們生產(chǎn)生活帶來(lái)了極大的方便,而且大大地?cái)U(kuò)展了鐘表原先的報(bào)時(shí)功能。諸如定時(shí)自動(dòng)報(bào)警、按時(shí)自動(dòng)打鈴、時(shí)間程序自動(dòng)控制、定時(shí)廣播、自動(dòng)起閉路燈、定時(shí)開(kāi)關(guān)烘箱、通斷動(dòng)力設(shè)備、甚至各種定時(shí)電氣的自動(dòng)啟用等,所有這些,都是以鐘表數(shù)字化為基礎(chǔ)的。因此,研究數(shù)字鐘
9、及擴(kuò)大其應(yīng)用,有著非常現(xiàn)實(shí)的意義。</p><p> 1.3設(shè)計(jì)所用器件簡(jiǎn)介</p><p> 1.3.1 單片機(jī)簡(jiǎn)介</p><p> MCS51是指由美國(guó)INTEL公司(對(duì)了,就是大名鼎鼎的INTEL)生產(chǎn)的一系列單片機(jī)的總稱(chēng),這一系列單片機(jī)包括了好些品種,如8031,8051,8751,8032,8052,8752等,其中8051是最早最典型的產(chǎn)品,該系
10、列其它單片機(jī)都是在8051的基礎(chǔ)上進(jìn)行功能的增、減、改變而來(lái)的,所以人們習(xí)慣于用8051來(lái)稱(chēng)呼MCS51系列單片機(jī),而8031是前些年在我國(guó)最流行的單片機(jī),所以很多場(chǎng)合會(huì)看到8031的名稱(chēng)。INTEL公司將MCS51的核心技術(shù)授權(quán)給了很多其它公司,所以有很多公司在做以8051為核心的單片機(jī),當(dāng)然,功能或多或少有些改變,以滿(mǎn)足不同的需求,其中89C51就是這幾年在我國(guó)非常流行的單片機(jī),它是由美國(guó)ATMEL公司開(kāi)發(fā)生產(chǎn)的。以后我們將用89C
11、51、89S51來(lái)完成一系列的實(shí)驗(yàn)。</p><p> MCS-51系列單片機(jī)</p><p> MCS-51系列單片機(jī)分為兩大系列,即51子系列與52子系列。</p><p> 51子系列:基本型,根據(jù)片內(nèi)ROM的配置,對(duì)應(yīng)的芯片為8031、8051、8751、8951</p><p> 52子系列:增強(qiáng)型,根據(jù)片內(nèi)ROM的配置,對(duì)
12、應(yīng)的芯片為8032、8052、8752、8952</p><p> 這兩大系列單片機(jī)的主要硬件特性如下表:</p><p> 上表中可以看到,8031、8031、8032、80C32片內(nèi)是沒(méi)有ROM的,對(duì)應(yīng)著上表看,我們可以發(fā)現(xiàn),51系列的單片機(jī)的RAM大小為128B,52系列的RAM大小為256B,51系列的計(jì)數(shù)器為兩個(gè)16位的,52系列的計(jì)數(shù)器為三個(gè)16位計(jì)數(shù)器。51系列的中斷源為
13、5個(gè),52系列的中斷源為6個(gè)。</p><p> 1.3.2 1602LCD的基本參數(shù)及引腳功能</p><p> 1602LCD分為帶背光和不帶背光兩種,基控制器大部分為HD44780,帶背光的比不帶背光的厚,是否帶背光在應(yīng)用中并無(wú)差別,兩者尺寸差別如下圖10-54所示:</p><p> 圖10-54 1602LCD尺寸圖</p><p
14、> 1602LCD主要技術(shù)參數(shù):</p><p> 顯示容量:16×2個(gè)字符</p><p> 芯片工作電壓:4.5—5.5V</p><p> 工作電流:2.0mA(5.0V)</p><p> 模塊最佳工作電壓:5.0V</p><p> 字符尺寸:2.95×4.35(W
15、15;H)mm</p><p><b> 引腳功能說(shuō)明</b></p><p> 1602LCD采用標(biāo)準(zhǔn)的14腳(無(wú)背光)或16腳(帶背光)接口,各引腳接口說(shuō)明如表10-13所示:</p><p><b> 引腳接口說(shuō)明表</b></p><p> 第1腳:VSS為地電源。</p>
16、;<p> 第2腳:VDD接5V正電源。</p><p> 第3腳:VL為液晶顯示器對(duì)比度調(diào)整端,接正電源時(shí)對(duì)比度最弱,接地時(shí)對(duì)比度最高,對(duì)比度過(guò)高時(shí)會(huì)產(chǎn)生“鬼影”,使用時(shí)可以通過(guò)一個(gè)10K的電位器調(diào)整對(duì)比度。</p><p> 第4腳:RS為寄存器選擇,高電平時(shí)選擇數(shù)據(jù)寄存器、低電平時(shí)選擇指令寄存器。</p><p> 第5腳:R/W為讀寫(xiě)信
17、號(hào)線,高電平時(shí)進(jìn)行讀操作,低電平時(shí)進(jìn)行寫(xiě)操作。當(dāng)RS和R/W共同為低電平時(shí)可以寫(xiě)入指令或者顯示地址,當(dāng)RS為低電平R/W為高電平時(shí)可以讀忙信號(hào),當(dāng)RS為高電平R/W為低電平時(shí)可以寫(xiě)入數(shù)據(jù)。</p><p> 第6腳:E端為使能端,當(dāng)E端由高電平跳變成低電平時(shí),液晶模塊執(zhí)行命令。</p><p> 第7~14腳:D0~D7為8位雙向數(shù)據(jù)線。</p><p> 第
18、15腳:背光源正極。</p><p> 第16腳:背光源負(fù)極。</p><p> 1602LCD的指令說(shuō)明及時(shí)序</p><p> 1602液晶模塊內(nèi)部的控制器共有11條控制指令,如表所示:</p><p><b> 控制命令表</b></p><p> 1602液晶模塊的讀寫(xiě)操作、屏幕
19、和光標(biāo)的操作都是通過(guò)指令編程來(lái)實(shí)現(xiàn)的。(說(shuō)明:1為高電平、0為低電平)</p><p> 指令1:清顯示,指令碼01H,光標(biāo)復(fù)位到地址00H位置。</p><p> 指令2:光標(biāo)復(fù)位,光標(biāo)返回到地址00H。</p><p> 指令3:光標(biāo)和顯示模式設(shè)置 I/D:光標(biāo)移動(dòng)方向,高電平右移,低電平左移 S:屏幕上所有文字是否左移或者右移。高電平表示有效,低電平則無(wú)
20、效。</p><p> 指令4:顯示開(kāi)關(guān)控制。 D:控制整體顯示的開(kāi)與關(guān),高電平表示開(kāi)顯示,低電平表示關(guān)顯示 C:控制光標(biāo)的開(kāi)與關(guān),高電平表示有光標(biāo),低電平表示無(wú)光標(biāo) B:控制光標(biāo)是否閃爍,高電平閃爍,低電平不閃爍。</p><p> 指令5:光標(biāo)或顯示移位 S/C:高電平時(shí)移動(dòng)顯示的文字,低電平時(shí)移動(dòng)光標(biāo)。</p><p> 指令6:功能設(shè)置命令 DL:高電
21、平時(shí)為4位總線,低電平時(shí)為8位總線 N:低電平時(shí)為單行顯示,高電平時(shí)雙行顯示 F: 低電平時(shí)顯示5x7的點(diǎn)陣字符,高電平時(shí)顯示5x10的點(diǎn)陣字符。</p><p> 指令7:字符發(fā)生器RAM地址設(shè)置。</p><p> 指令8:DDRAM地址設(shè)置。</p><p> 指令9:讀忙信號(hào)和光標(biāo)地址 BF:為忙標(biāo)志位,高電平表示忙,此時(shí)模塊不能接收命令或者數(shù)據(jù),如果
22、為低電平表示不忙。</p><p><b> 指令10:寫(xiě)數(shù)據(jù)。</b></p><p><b> 指令11:讀數(shù)據(jù)。</b></p><p> 與HD44780相兼容的芯片時(shí)序表如下:</p><p><b> 2.設(shè)計(jì)內(nèi)容</b></p><p&
23、gt; 3.程序設(shè)計(jì)及硬件電路</p><p><b> 程序流程圖</b></p><p> 3.1原理圖(protues)</p><p> 3.2原理圖(protel)</p><p><b> 4.仿真結(jié)果</b></p><p> 上電后按下K0開(kāi)始運(yùn)行
24、:</p><p><b> 按下K3秒閃爍</b></p><p> 按下K1 閃爍 減一(05調(diào)到04)</p><p> 按下K2 加一(04調(diào)到05)</p><p> 根據(jù)按下K0的次數(shù)可以改變閃爍的位置進(jìn)行分,時(shí),年,月,日,星期的調(diào)整</p><p><b> 調(diào)
25、整分</b></p><p><b> 調(diào)整時(shí)</b></p><p><b> 調(diào)整年</b></p><p><b> 調(diào)整月</b></p><p><b> 調(diào)整日</b></p><p><b&g
26、t; 調(diào)整星期</b></p><p> 5.收獲、體會(huì)和建議</p><p> 單片機(jī)數(shù)字鐘可以說(shuō)是一個(gè)較小的系統(tǒng),開(kāi)始時(shí)我們覺(jué)得通過(guò)C語(yǔ)言較容易實(shí)現(xiàn),確實(shí),只實(shí)現(xiàn)一個(gè)能夠正常走時(shí)并且能夠校時(shí)的數(shù)字鐘是比較容易的。但我們想錯(cuò)了,畢竟是第一次從總體角度來(lái)考慮地完成一個(gè)小系統(tǒng),好多的實(shí)際性的問(wèn)題我們沒(méi)有考慮,所以造成我們最終設(shè)計(jì)的數(shù)字鐘精度不高,并且存在好多問(wèn)題,當(dāng)然問(wèn)題多
27、了對(duì)我們來(lái)說(shuō)是好事,這樣我們?cè)诮鉀Q更多問(wèn)題時(shí)學(xué)會(huì)更多解決問(wèn)題的方法,對(duì)我們也算是長(zhǎng)長(zhǎng)經(jīng)驗(yàn)吧。</p><p> 通過(guò)這次對(duì)數(shù)字鐘的設(shè)計(jì),讓我了解了設(shè)計(jì)電路的程序,也讓我了解了關(guān)于數(shù)字鐘的原理與設(shè)計(jì)理念,要設(shè)計(jì)一個(gè)完整的電路總要經(jīng)過(guò)多次的失敗才能成功的,在設(shè)計(jì)中,遇到了許多匪夷所思的問(wèn)題,一個(gè)人就是想破腦子也做不出來(lái),這時(shí)候,就需要去詢(xún)問(wèn)老師、和同學(xué)探討,共同解決出現(xiàn)的問(wèn)題,也許就是因?yàn)槔蠋煹囊痪涮嵝?、同學(xué)的探討
28、中就會(huì)豁然開(kāi)朗。。</p><p> 從這次設(shè)計(jì)中我也覺(jué)得自己還對(duì)單片機(jī)的功能了解只是個(gè)皮毛,單片機(jī)強(qiáng)大的功能還等著我們?nèi)ラ_(kāi)發(fā)。通過(guò)這次設(shè)計(jì),不僅使我學(xué)到了知識(shí),讓我對(duì)電路設(shè)計(jì)有了大概的了解;其次,還體會(huì)到了團(tuán)隊(duì)精神??偠灾?,這次設(shè)計(jì)是成功的。</p><p><b> 6.參考文獻(xiàn)</b></p><p> 1 楊文龍.單片機(jī)原理及應(yīng)
29、用.西安:西安電子科技大學(xué)出版社,1993</p><p> 2 李朝青.單片機(jī)原理及接口技術(shù).北京:北京航空航天大學(xué)出版社,2003</p><p> 3 胡漢才.單片機(jī)原理及系統(tǒng)設(shè)計(jì).北京:清華大學(xué)出版社,2003</p><p> 4 楊忠煌,黃博俊,李文昌.單芯片8051實(shí)務(wù)與應(yīng)用.北京:中國(guó)水利水電出版社,2001</p><p&
30、gt;<b> 7.附:源程序</b></p><p> #include <reg51.h></p><p> #define uchar unsigned char</p><p> #define uint unsigned int </p><p> uchar code table1[]=
31、{" 2011-00-00-MON"};//星期一 MON 星期二 TUE 星期三 WED 星期四 THU 星期五 FRI 星期六 SAT 星期天 SUN </p><p> uchar code table2[]={" 00:00:00 "};</p><p> uchar code table[]={'0','
32、;1','2','3','4','5','6','7','8','9'};</p><p> uchar num,count,miao,fen,xiao,week,day,month,year,shi,ge,flag,num1;</p><p> sb
33、it LCD_RW=P3^7;</p><p> sbit LCD_RS=P3^5;</p><p> sbit LCD_E=P3^4;</p><p> sbit k1=P1^0;//選擇</p><p> sbit k2=P1^1;//增加</p><p> sbit k3=P1^2;//減少</p
34、><p> sbit k4=P1^3;//開(kāi)始</p><p> void delay(uint z)</p><p><b> {</b></p><p><b> uint x,y;</b></p><p> for(x=z;x>0;x--)</p>
35、;<p> for(y=110;y>0;y--);</p><p><b> }</b></p><p> //////////////////////////////////////////////////////////////////////////////////////</p><p><b>
36、///lcd顯示</b></p><p> void init(void);//初始化函數(shù)</p><p> void write_com(uchar command);//寫(xiě)指令函數(shù)</p><p> void write_date(uchar dat);//寫(xiě)數(shù)據(jù)函數(shù)</p><p> void LCD_disp_ch
37、ar(uchar x,uchar y,uchar dat);//在某個(gè)屏幕位置上顯示一個(gè)字符,X(0-16),y(1-2)</p><p> //void LCD_check_busy(void);//檢查忙函數(shù)。我沒(méi)用到此函數(shù),因?yàn)橥ㄟ^(guò)率極低。</p><p> void delay_n40us(uint n);//延時(shí)函數(shù)</p><p> //*****
38、***************************</p><p> //*******初始化函數(shù)***************</p><p> void init(void)</p><p><b> {</b></p><p> write_com(0x38);//設(shè)置8位格式,2行,5x7</p
39、><p> write_com(0x0c);//整體顯示,關(guān)光標(biāo),不閃爍</p><p> write_com(0x06);//設(shè)定輸入方式,增量不移位</p><p> write_com(0x01);//清除屏幕顯示</p><p> delay_n40us(100);//實(shí)踐證明,用for循環(huán)200次就能可靠完成清屏指令。</
40、p><p><b> }</b></p><p> //********************************</p><p> //********寫(xiě)指令函數(shù)************</p><p> void write_com(uchar dat)</p><p><b&
41、gt; {</b></p><p><b> P2=dat;</b></p><p> LCD_RS=0;//指令</p><p> LCD_RW=0;//寫(xiě)入</p><p> LCD_E=1;//允許</p><p><b> LCD_E=0;</b&g
42、t;</p><p> delay_n40us(1);//實(shí)踐證明,我的LCD1602上,用for循環(huán)1次就能完成普通寫(xiě)指令。</p><p><b> }</b></p><p> //*******************************</p><p> //********寫(xiě)數(shù)據(jù)函數(shù)*******
43、******</p><p> void write_date(uchar dat)</p><p><b> {</b></p><p><b> P2=dat;</b></p><p> LCD_RS=1;//數(shù)據(jù)</p><p> LCD_RW=0;//寫(xiě)入&
44、lt;/p><p> LCD_E=1;//允許</p><p><b> LCD_E=0;</b></p><p> delay_n40us(1);</p><p><b> }</b></p><p> //******************************
45、**</p><p> //********延時(shí)函數(shù)***************</p><p> void delay_n40us(uint n)</p><p><b> { uint i;</b></p><p> uchar j; </p><p> fo
46、r(i=n;i>0;i--)</p><p> for(j=0;j<2;j++); //在這個(gè)延時(shí)循環(huán)函數(shù)中我只做了2次循環(huán),</p><p> } //實(shí)踐證明我的LCD1602上普通的指令只需1次循環(huán)就能可靠完成。</p><p> ///////
47、/////////////////////////////////////////////////////////////////</p><p> void main()</p><p><b> {</b></p><p><b> init();</b></p><p> write
48、_com(0x80); ///////初始化</p><p> for(num=0;num<15;num++) ////////顯示年月日</p><p><b> {</b></p><p> write_date(table1[num]);</p><p><b> delay(5)
49、;</b></p><p><b> }</b></p><p> write_com(0x80+0x40);</p><p> for(num=0;num<15;num++) /////////////顯示時(shí)間</p><p><b> {</b></p>
50、<p> write_date(table2[num]);</p><p><b> delay(5);</b></p><p><b> }</b></p><p><b> while(1)</b></p><p><b> {</b&g
51、t;</p><p> if(count==20)//////////計(jì)時(shí)的數(shù)</p><p><b> {</b></p><p><b> count=0;</b></p><p><b> miao++;</b></p><p> if(
52、miao==60)</p><p><b> {</b></p><p><b> miao=0;</b></p><p><b> fen++;</b></p><p> if(fen==60)</p><p><b> {<
53、/b></p><p><b> fen=0;</b></p><p><b> xiao++;</b></p><p> if(xiao==24)</p><p><b> {</b></p><p><b> xiao=0;
54、</b></p><p> week++;if(week==8)week=0;</p><p> switch(week)</p><p><b> {</b></p><p> case 1:write_com(0x80+0x0c);write_date('M');delay
55、(5);</p><p> write_date('O');delay(5);</p><p> write_date('N');break;</p><p> case 2:write_com(0x80+0x0c);write_date('T');delay(5);</p><p>
56、write_date('U');delay(5);</p><p> write_date('E');break;</p><p> case 3:write_com(0x80+0x0c);write_date('W');delay(5);</p><p> write_date('E');del
57、ay(5);</p><p> write_date('D');break;</p><p> case 4:write_com(0x80+0x0c);write_date('T');delay(5);</p><p> write_date('H');delay(5);</p><p>
58、 write_date('U');break;</p><p> case 5:write_com(0x80+0x0c);write_date('F');delay(5);</p><p> write_date('R');delay(5);</p><p> write_date('I');b
59、reak;</p><p> case 6:write_com(0x80+0x0c);write_date('S');delay(5);</p><p> write_date('T');delay(5);</p><p> write_date('A');break;</p><p>
60、 case 7:write_com(0x80+0x0c);write_date('S');delay(5);</p><p> write_date('U');delay(5);</p><p> write_date('N');break;</p><p><b> }</b></p
61、><p><b> day++;</b></p><p> if((month%2==0&&day==31)||(month%2==1&&day==32&&month!=2)||(((year%4==0&&year%100!=0)||year%400==0)&&month==2&&
62、amp;day==30)||((!(year%4==0&&year%100!=0)||year%400==0)&&month==2&&day==29))</p><p> {////////////////////判斷每月有多少天</p><p><b> day=0;</b></p><p>
63、;<b> month++;</b></p><p> if(month==13)</p><p><b> {</b></p><p><b> month=1;</b></p><p><b> year++;</b></p>
64、<p> shi=year/10;</p><p> ge=year%10;</p><p> write_com(0x80+0x04);</p><p> write_date(table[ge]);</p><p> write_com(0x80+0x03);</p><p> write_
65、date(table[shi]);</p><p><b> }</b></p><p> shi=month/10;</p><p> ge=month%10;</p><p> write_com(0x80+0x07);</p><p> write_date(table[ge])
66、;</p><p> write_com(0x80+0x06);</p><p> write_date(table[shi]);</p><p><b> }</b></p><p> shi=day/10;</p><p> ge=day%10;</p><p
67、> write_com(0x80+0x0a);</p><p> write_date(table[ge]);</p><p> write_com(0x80+0x09);</p><p> write_date(table[shi]);</p><p><b> }</b></p>&
68、lt;p> shi=xiao/10;</p><p> ge=xiao%10;</p><p> write_com(0x80+0x45);</p><p> write_date(table[ge]);</p><p> write_com(0x80+0x44);</p><p> write_d
69、ate(table[shi]);</p><p><b> }</b></p><p> shi=fen/10;</p><p> ge=fen%10;</p><p> write_com(0x80+0x48);</p><p> write_date(table[ge]);<
70、/p><p> write_com(0x80+0x47);</p><p> write_date(table[shi]);</p><p><b> }</b></p><p> shi=miao/10;</p><p> ge=miao%10;</p><p>
71、 write_com(0x80+0x4b);</p><p> write_date(table[ge]);</p><p> write_com(0x80+0x4a);</p><p> write_date(table[shi]);</p><p> }////////////////////////////////////
72、//////顯示目前的年月日和具體時(shí)間</p><p> if(k1==0) ////////////////按鍵K1按下</p><p><b> {</b></p><p> delay(10);</p><p><b> if(k1==0)</b></p><p&g
73、t;<b> {</b></p><p><b> TR0=0;</b></p><p><b> flag++;</b></p><p><b> num1=0;</b></p><p> if(flag==8)flag=1;</p>
74、;<p> switch(flag)</p><p><b> {</b></p><p> case 1:write_com(0x80+0x4b);write_com(0x0f);break;</p><p> case 2:write_com(0x80+0x48);write_com(0x0f);break;<
75、;/p><p> case 3:write_com(0x80+0x45);write_com(0x0f);break;</p><p> case 4:write_com(0x80+0x0a);write_com(0x0f);break;</p><p> case 5:write_com(0x80+0x07);write_com(0x0f);break;&
76、lt;/p><p> case 6:write_com(0x80+0x04);write_com(0x0f);break;</p><p> case 7:write_com(0x80+0x0c);write_com(0x0f);break;</p><p> }////////////////////////時(shí)間停止運(yùn)行 確定調(diào)整時(shí)間的位置</p>
77、;<p><b> }</b></p><p> while(!k1);///////////消抖</p><p><b> }</b></p><p> if(k2==0)//////////////////K2鍵按下</p><p><b> {</b&g
78、t;</p><p> delay(10);</p><p><b> if(k2==0)</b></p><p><b> {</b></p><p><b> num1++;</b></p><p> if(num1==60)num1=0;
79、///////////////////60為周期</p><p> switch(flag)</p><p><b> {</b></p><p> case 1:miao=num1;</p><p> shi=miao/10;</p><p> ge=miao%10;</p
80、><p> write_com(0x80+0x4b);////////////////地址</p><p> write_date(table[ge]);///////////////數(shù)據(jù)</p><p> write_com(0x80+0x4a);</p><p> write_date(table[shi]);break;<
81、/p><p> case 2:fen=num1;</p><p> shi=fen/10;</p><p> ge=fen%10;</p><p> write_com(0x80+0x48);</p><p> write_date(table[ge]);</p><p>
82、write_com(0x80+0x47);</p><p> write_date(table[shi]);break;</p><p> case 3:xiao=num1;</p><p> shi=xiao/10;</p><p> ge=xiao%10;</p><p> write_c
83、om(0x80+0x45);</p><p> write_date(table[ge]);</p><p> write_com(0x80+0x44);</p><p> write_date(table[shi]);break;</p><p> case 4:day=num1;</p><p> sh
84、i=day/10;</p><p> ge=day%10;</p><p> write_com(0x80+0x0a);</p><p> write_date(table[ge]);</p><p> write_com(0x80+0x09);</p><p> write_date(table[shi]
85、);break;</p><p> case 5:month=num1;</p><p> shi=month/10;</p><p> ge=month%10;</p><p> write_com(0x80+0x07);</p><p> write_date(table[ge]);</p>
86、<p> write_com(0x80+0x06);</p><p> write_date(table[shi]);break;</p><p> case 6:year=num1;</p><p> shi=year/10;</p><p> ge=year%10;</p><p> wr
87、ite_com(0x80+0x04);</p><p> write_date(table[ge]);</p><p> write_com(0x80+0x03);</p><p> write_date(table[shi]);break;</p><p> case 7:week=num1;</p><p&g
88、t; switch(week)</p><p><b> {</b></p><p> case 1:write_com(0x80+0x0c);write_date('M');delay(5);</p><p> write_date('O');delay(5);</p><p>
89、 write_date('N');break;</p><p> case 2:write_com(0x80+0x0c);write_date('T');delay(5);</p><p> write_date('U');delay(5);</p><p> write_date('E');b
90、reak;</p><p> case 3:write_com(0x80+0x0c);write_date('W');delay(5);</p><p> write_date('E');delay(5);</p><p> write_date('D');break;</p><p>
91、 case 4:write_com(0x80+0x0c);write_date('T');delay(5);</p><p> write_date('H');delay(5);</p><p> write_date('U');break;</p><p> case 5:write_com(0x80+0x0c
92、);write_date('F');delay(5);</p><p> write_date('R');delay(5);</p><p> write_date('I');break;</p><p> case 6:write_com(0x80+0x0c);write_date('S');d
93、elay(5);</p><p> write_date('T');delay(5);</p><p> write_date('A');break;</p><p> case 7:write_com(0x80+0x0c);write_date('S');delay(5);</p><p&g
94、t; write_date('U');delay(5);</p><p> write_date('N');break;</p><p><b> }</b></p><p><b> break;</b></p><p> }///////////////
95、//////////////////////////是時(shí)間加</p><p><b> }</b></p><p> while(!k2);</p><p><b> }</b></p><p> if(k3==0)//////////////////////////K3按下</p&g
96、t;<p><b> {</b></p><p> delay(10);</p><p><b> if(k3==0)</b></p><p><b> {</b></p><p> if(num1==0)num1=60;</p><
97、p><b> num1--;</b></p><p> switch(flag)</p><p><b> {</b></p><p> case 1:miao=num1;</p><p> shi=miao/10;</p><p> ge=miao%
98、10;</p><p> write_com(0x80+0x4b);</p><p> write_date(table[ge]);</p><p> write_com(0x80+0x4a);</p><p> write_date(table[shi]);break;</p><p> case 2:
99、fen=num1;</p><p> shi=fen/10;</p><p> ge=fen%10;</p><p> write_com(0x80+0x48);</p><p> write_date(table[ge]);</p><p> write_com(0x80+0x47);</
100、p><p> write_date(table[shi]);break;</p><p> case 3:xiao=num1;</p><p> shi=xiao/10;</p><p> ge=xiao%10;</p><p> write_com(0x80+0x45);</p>
101、<p> write_date(table[ge]);</p><p> write_com(0x80+0x44);</p><p> write_date(table[shi]);break;</p><p> case 4:day=num1;</p><p> shi=day/10;</p><p
102、> ge=day%10;</p><p> write_com(0x80+0x0a);</p><p> write_date(table[ge]);</p><p> write_com(0x80+0x09);</p><p> write_date(table[shi]);break;</p><p&
103、gt; case 5:month=num1;</p><p> shi=month/10;</p><p> ge=month%10;</p><p> write_com(0x80+0x07);</p><p> write_date(table[ge]);</p><p> write_com(0x8
104、0+0x06);</p><p> write_date(table[shi]);break;</p><p> case 6:year=num1;</p><p> shi=year/10;</p><p> ge=year%10;</p><p> write_com(0x80+0x04);</p&
105、gt;<p> write_date(table[ge]);</p><p> write_com(0x80+0x03);</p><p> write_date(table[shi]);break;</p><p> case 7:week=num1;</p><p> switch(week)</p>
106、<p><b> {</b></p><p> case 1:write_com(0x80+0x0c);write_date('M');delay(5);</p><p> write_date('O');delay(5);</p><p> write_date('N');
107、break;</p><p> case 2:write_com(0x80+0x0c);write_date('T');delay(5);</p><p> write_date('U');delay(5);</p><p> write_date('E');break;</p><p>
108、 case 3:write_com(0x80+0x0c);write_date('W');delay(5);</p><p> write_date('E');delay(5);</p><p> write_date('D');break;</p><p> case 4:write_com(0x80+0x0
109、c);write_date('T');delay(5);</p><p> write_date('H');delay(5);</p><p> write_date('U');break;</p><p> case 5:write_com(0x80+0x0c);write_date('F');
110、delay(5);</p><p> write_date('R');delay(5);</p><p> write_date('I');break;</p><p> case 6:write_com(0x80+0x0c);write_date('S');delay(5);</p><p&
111、gt; write_date('T');delay(5);</p><p> write_date('A');break;</p><p> case 7:write_com(0x80+0x0c);write_date('S');delay(5);</p><p> write_date('U'
112、);delay(5);</p><p> write_date('N');break;</p><p><b> }</b></p><p><b> break;</b></p><p> }/////////////////////////////是時(shí)間減</p&g
113、t;<p><b> }</b></p><p> while(!k3);</p><p><b> }</b></p><p> if(k4==0)//////////////////////////////K4按下</p><p><b> {</b>
114、;</p><p> delay(10);</p><p><b> if(k4==0)</b></p><p><b> {</b></p><p> TMOD=0x01;//////////設(shè)置定時(shí)器0模式1及16位計(jì)數(shù)器</p><p> TH0=(6553
115、6-50000)/256;</p><p> TL0=(65536-50000)%256;/////////////定時(shí)初始化50MS</p><p> EA=1;////////////開(kāi)總中斷</p><p> TR0=1;///////////啟動(dòng)T0計(jì)數(shù)</p><p> ET0=1;///////////開(kāi)定時(shí)器0中段<
116、;/p><p> write_com(0x0c);</p><p> flag=0;//////////////初始化</p><p><b> }</b></p><p> while(!k4);</p><p><b> }</b></p><
117、;p><b> }</b></p><p> while(1);</p><p><b> }</b></p><p> void t0_time() interrupt 1</p><p><b> {</b></p><p> T
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 數(shù)字時(shí)鐘課程設(shè)計(jì)
- 課程設(shè)計(jì)--數(shù)字時(shí)鐘
- 數(shù)字時(shí)鐘課程設(shè)計(jì)
- 數(shù)字時(shí)鐘課程設(shè)計(jì)
- 數(shù)字時(shí)鐘課程設(shè)計(jì)
- 數(shù)字時(shí)鐘課程設(shè)計(jì)
- 數(shù)字電子課程設(shè)計(jì)--數(shù)字時(shí)鐘
- 數(shù)字邏輯課程設(shè)計(jì)---數(shù)字時(shí)鐘
- eda數(shù)字時(shí)鐘課程設(shè)計(jì)
- eda數(shù)字時(shí)鐘課程設(shè)計(jì)
- 數(shù)字時(shí)鐘課程設(shè)計(jì)報(bào)告
- 數(shù)字時(shí)鐘課程設(shè)計(jì)論文
- 數(shù)字時(shí)鐘課程設(shè)計(jì)報(bào)告
- 數(shù)字時(shí)鐘課程設(shè)計(jì)報(bào)告
- 數(shù)字時(shí)鐘課程設(shè)計(jì)3
- 數(shù)字時(shí)鐘課程設(shè)計(jì)報(bào)告
- 數(shù)字時(shí)鐘課程設(shè)計(jì)--數(shù)字時(shí)鐘的設(shè)計(jì)與制作
- 簡(jiǎn)易數(shù)字時(shí)鐘課程設(shè)計(jì)
- 數(shù)字時(shí)鐘課程設(shè)計(jì)報(bào)告
- 數(shù)字時(shí)鐘課程設(shè)計(jì)全文
評(píng)論
0/150
提交評(píng)論