版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 信息工程學(xué)院</b></p><p><b> 課程設(shè)計(jì)報(bào)告書</b></p><p> 題目: LCD顯示的定時(shí)鬧鐘制作 </p><p> 專 業(yè): 電子信息科學(xué)與技術(shù) </p><p> 班 級(jí): xxxxxxxxxx
2、 </p><p> 學(xué) 號(hào): xxxxxxxxxxxxx </p><p> 學(xué)生姓名: XXX </p><p> 指導(dǎo)教師: XX </p><p> 2013 年 5月 4日 </p><p>
3、 信息工程學(xué)院課程設(shè)計(jì)任務(wù)書</p><p> 年 月 日 </p><p> 信息工程學(xué)院課程設(shè)計(jì)成績(jī)?cè)u(píng)定表</p><p><b> 摘 要</b></p><p> 數(shù)字電子鐘是一種用數(shù)字顯示秒、分、時(shí)的記時(shí)裝置,與傳統(tǒng)的機(jī)械時(shí)鐘相比,它一般具有走時(shí)準(zhǔn)確、顯示直
4、觀、無(wú)機(jī)械傳動(dòng)裝置等優(yōu)點(diǎn)、因而得到了廣泛的應(yīng)用。小到人們的日常生活中的電子手表、電子鬧鐘、大到車站、碼頭、機(jī)場(chǎng)等公共場(chǎng)所的大型數(shù)字顯電子鐘。</p><p> 本系統(tǒng)由單片機(jī)系統(tǒng)、顯示系統(tǒng)、時(shí)鐘系統(tǒng)等組成,通過(guò)按鍵來(lái)控制單片機(jī)實(shí)現(xiàn)數(shù)字時(shí)鐘的實(shí)時(shí)顯示、鬧鐘等不同功能,并通過(guò)P口的輸出在LCD上顯示不同的信息。該設(shè)計(jì)具有結(jié)構(gòu)簡(jiǎn)單、可靠性高、功能較強(qiáng)大、使用方便等特點(diǎn)。</p><p> 關(guān)
5、鍵詞:定時(shí)、鬧鐘、顯示、模式 、單片機(jī)</p><p><b> 目 錄</b></p><p> 1 任務(wù)提出與方案論證1</p><p> 1.1 設(shè)計(jì)目的1</p><p> 1.2 設(shè)計(jì)要求1</p><p> 1.3 設(shè)計(jì)方案1</p><p>
6、;<b> 2 總體設(shè)計(jì)2</b></p><p> 2.1 電路原理框圖2</p><p> 2.2 工作原理2</p><p> 2.3 元器件名稱1</p><p><b> 3 詳細(xì)設(shè)計(jì)3</b></p><p><b> 3.1主電路
7、3</b></p><p><b> 3.2顯示電路3</b></p><p> 3.3內(nèi)部時(shí)鐘電路1</p><p> 3.4按鍵及蜂鳴器1</p><p><b> 4 總結(jié)4</b></p><p> 4.1設(shè)計(jì)過(guò)程中遇到的問(wèn)題及解決方法
8、1</p><p><b> 4.2設(shè)計(jì)體會(huì)1</b></p><p> 4.3對(duì)設(shè)計(jì)的建議1</p><p><b> 5 附錄5</b></p><p><b> 5.1電路總圖1</b></p><p><b> 5.
9、2主程序1</b></p><p><b> 5.3參考文獻(xiàn)1</b></p><p> 1 任務(wù)提出與方案論證</p><p><b> 1.1 設(shè)計(jì)目的</b></p><p> 此次設(shè)計(jì)的目的是培養(yǎng)同學(xué)們系統(tǒng)地運(yùn)用已學(xué)的理論知識(shí)解決實(shí)際問(wèn)題的能力和查閱資料的能力,以及一
10、定的自學(xué)能力和獨(dú)立分析問(wèn)題、解決問(wèn)題的能力,能通過(guò)獨(dú)立思考、查閱工具書、參考文獻(xiàn),尋找解決方案;通過(guò)完成所選題目的分析與設(shè)計(jì),達(dá)到技術(shù)性能要求。</p><p><b> 1.2 設(shè)計(jì)要求</b></p><p> 能顯示: 時(shí)時(shí):分分。2、能夠設(shè)定定時(shí)時(shí)間、修改定時(shí)時(shí)間。3、定時(shí)時(shí)間到能發(fā)出報(bào)警聲或者啟動(dòng)繼電器,從而控制電器的啟停。</p>&
11、lt;p><b> 1.3 設(shè)計(jì)方案</b></p><p> 本方案完全用軟件實(shí)現(xiàn)數(shù)字時(shí)鐘。原理為:在單片機(jī)內(nèi)部存儲(chǔ)器設(shè)三個(gè)字節(jié)分別存放時(shí)鐘的時(shí)、分、秒信息。利用定時(shí)器與軟件結(jié)合實(shí)現(xiàn)1秒定時(shí)中斷,每產(chǎn)生一次中斷,存儲(chǔ)器內(nèi)相應(yīng)的秒值加1;若秒值達(dá)到60,則將其清零,并將相應(yīng)的分字節(jié)值加1;若分值達(dá)到60,則清零分字節(jié),并將時(shí)字節(jié)值加1;若時(shí)值達(dá)到24,則將十字節(jié)清零。該方案具有硬件
12、電路簡(jiǎn)單的特點(diǎn)。但由于每次執(zhí)行程序時(shí),定時(shí)器都要重新賦初值,所以該時(shí)鐘精度不高。而且,由于是軟件實(shí)現(xiàn),當(dāng)單片機(jī)不上電,程序不執(zhí)行時(shí),時(shí)鐘將不工作。</p><p><b> 2 設(shè)計(jì)的總體結(jié)構(gòu)</b></p><p> 2.1 電路的總體原理框圖</p><p> 圖2.1 電路原理框圖</p><p><b
13、> 2.2 工作原理</b></p><p> 定時(shí)鬧鐘的基本功能如下。</p><p> (1)顯示時(shí)鐘時(shí)間,格式為“時(shí)時(shí):分分”,并可重新設(shè)置。</p><p> (2)顯示鬧鈴時(shí)間,格式為“時(shí)時(shí):分分”,且顯示閃爍以便與時(shí)鐘時(shí)間相區(qū)分。鬧鈴時(shí)間可重新設(shè)置。</p><p> (3)程序執(zhí)行后工作指示燈LED閃
14、爍,表示時(shí)鐘工作為時(shí)鐘顯示模式.LCD顯示的初始時(shí)間為“23:58”。按下K2,閃爍顯示的“00:00”為鬧鈴的時(shí)間,單擊K3又返回時(shí)鐘顯示模式。時(shí)鐘從“23:58”開始計(jì)時(shí),定時(shí)時(shí)間“00:00”到時(shí),繼電器開關(guān)接通,控制電器的開啟,且可發(fā)出聲響(可控)。</p><p> 時(shí)鐘與鬧鈴時(shí)問(wèn)的設(shè)置可通過(guò)4個(gè)功能按鍵Kl~K4實(shí)現(xiàn),具體說(shuō)明如下。</p><p> (1)時(shí)鐘時(shí)間的設(shè)置:
15、首先單擊Kl進(jìn)入時(shí)鐘設(shè)置模式。此時(shí)每單擊一下Kl,則小時(shí)增l,單擊一下K2,則分鐘增1,再單擊K3則設(shè)置完成,返回時(shí)鐘顯示模式。此時(shí)小時(shí)和分鐘均已發(fā)生變化。單擊K4.如果發(fā)出一聲響,則定時(shí)到時(shí),開關(guān)動(dòng)作,蜂鳴器關(guān)閉;單擊K4.如果發(fā)出三聲響,則開關(guān)動(dòng)作,蜂鳴器發(fā)聲。</p><p> (2)鬧鈴的時(shí)間設(shè)置:首先單擊,K3進(jìn)入鬧鈴的設(shè)置模式。此時(shí)每單擊一下Kl,則小時(shí)增1,單擊一下K2,則分鐘增l,最后單擊.K3
16、則設(shè)置完成,返回鬧鈴顯示模式。此時(shí)鬧鈴的小時(shí)和分鐘均已發(fā)生變化。</p><p> (3) K4的功能:鬧鈴是否發(fā)聲的狀態(tài)控制,設(shè)為ON狀態(tài),則鬧鈴時(shí)間到連續(xù)3次發(fā)出“嘩”的聲音,設(shè)置為OFF狀態(tài)發(fā)出“嘩”的一聲。開機(jī)默認(rèn)聲響關(guān)閉。</p><p> (4) K2單獨(dú)的功能:顯示鬧鈴時(shí)間。</p><p><b> 2.3 元器件名稱</b&g
17、t;</p><p> 2.3.1 芯片AT89C52</p><p> AT89C52 是ATMEL公司生產(chǎn)的低電壓,高性能CMOS單片機(jī). AT89C52 提供以下標(biāo)準(zhǔn)功能:8字節(jié)FLASH閃速存儲(chǔ)器,256字竹內(nèi)部RAM , 32個(gè)I/O口線,3個(gè)16 位定時(shí)/計(jì)數(shù)器,一個(gè)6向量?jī)杉?jí)中斷結(jié)構(gòu),一個(gè)全雙工串行通信口,片內(nèi)振蕩器及時(shí)鐘電路。同時(shí),AT89c52可降至OHz的靜態(tài)邏輯
18、操作,并支持兩種軟件可選的節(jié)電上作模式。空閑方式停止CPU 的工作,但允許RAM,定時(shí)/計(jì)數(shù)器.串行通信口及中斷系統(tǒng)繼續(xù)工作。掉電方式保存RAM 中的內(nèi)容,但振蕩器停止工作并禁止其它所有部件工作直到下一個(gè)硬件復(fù)位.</p><p> 2.3.2 LCD顯示屏</p><p> 1602液晶顯示的原理是利用液晶的物理特性,通過(guò)電壓對(duì)其顯示區(qū)域進(jìn)行控制,有電就有顯示,這樣即可以顯示出圖形。
19、液晶顯示器具有厚度薄、適用于大規(guī)模集成電路直接驅(qū)動(dòng)、易于實(shí)現(xiàn)全彩色顯示的特點(diǎn)。晶模塊內(nèi)部的控制器共有11條控制指令,如表所示:</p><p> 表2-1:控制命令表</p><p> 指令3:光標(biāo)和顯示模式設(shè)置 I/D:光標(biāo)移動(dòng)方向,高電平右移,低電平左移 S: 屏幕上所有文字是否左移或者右移。高電平表示有效,低電平則無(wú)效。</p><p> 指令
20、4:顯示開關(guān)控制。 D:控制整體顯示的開與關(guān),高電平表示開顯示,低電 平表示關(guān)顯示 C:控制光標(biāo)的開與關(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:高電平時(shí)為4位總線,低電平時(shí)為8位總線N:低電
21、平時(shí)為單行顯示F:低電平時(shí)顯示5×7的點(diǎn)陣字符。 </p><p> 指令9:讀忙信號(hào)和光標(biāo)地址 BF:為忙標(biāo)志位,高電平表示忙,此時(shí)模塊不能</p><p> 接收命令或者數(shù)據(jù),如果為低電平表示不忙。</p><p><b> 3.3.3蜂鳴器</b></p><p> 有源蜂鳴器是一種一體化結(jié)構(gòu)的電
22、子訊響器,是內(nèi)部自帶振蕩電路,只需電平驅(qū)動(dòng)就可以發(fā)生的蜂鳴器,而與其對(duì)應(yīng)的無(wú)源蜂鳴器內(nèi)部則無(wú)振蕩電路。</p><p><b> 3、詳細(xì)設(shè)計(jì)</b></p><p><b> 3.1 主電路</b></p><p> 主電路主要就是芯片的運(yùn)行,加載程序后,在外部時(shí)鐘的作用下,將按照程序運(yùn)行,從而可以實(shí)現(xiàn)設(shè)計(jì)的要求
23、,進(jìn)行時(shí)鐘時(shí)間和定時(shí)時(shí)間的調(diào)整,并且能夠在到達(dá)定時(shí)時(shí)間后控制蜂鳴器發(fā)出聲響。</p><p> 圖3.1 主電路</p><p><b> 3.2 顯示電路</b></p><p> 顯示電路即可以讓我們看到時(shí)間的調(diào)整和定時(shí)時(shí)間的調(diào)整,顯示調(diào)整后的時(shí)間。</p><p><b> 圖3.2顯示電路
24、</b></p><p> 3.3 內(nèi)部時(shí)鐘方式的電路</p><p> 單片機(jī)內(nèi)部有一個(gè)用于構(gòu)成振蕩器的高增益反向放大器,它的輸入端為芯片引腳XTAL1,輸出端為引腳XTAL2。這兩個(gè)引腳跨接石英晶體和微調(diào)電容,構(gòu)成一個(gè)穩(wěn)定的自激振蕩器。時(shí)鐘頻率可以影響單片機(jī)的速度。單片機(jī)的各功能部件的運(yùn)行都以時(shí)鐘控制信號(hào)為基準(zhǔn)</p><p> 圖3.3
25、 內(nèi)部時(shí)鐘方式的電路</p><p> 3.4 按鍵及蜂鳴器電路</p><p> 按鍵可以對(duì)時(shí)間進(jìn)行調(diào)整,蜂鳴器可以在到達(dá)定時(shí)的時(shí)間時(shí)提醒我們。</p><p><b> 圖3.4時(shí)鐘電路</b></p><p> 圖3.5 按鍵及蜂鳴器電路</p><p><b>
26、4 設(shè)計(jì)總結(jié)</b></p><p> 4.1 設(shè)計(jì)過(guò)程中遇到的問(wèn)題及解決方法</p><p> 在設(shè)計(jì)的過(guò)程中遇到問(wèn)題是不可避免的,我遇到了很多問(wèn)題,如下所示;</p><p> 剛寫完程序后仿真發(fā)現(xiàn)lcd液晶不亮,經(jīng)檢查核對(duì),發(fā)現(xiàn)在程序延時(shí)以及有些指令的錯(cuò)誤,排除后無(wú)誤。</p><p> 揚(yáng)聲器喇叭不發(fā)聲音,在改進(jìn)電
27、路后可行。</p><p> Lcd不按規(guī)定的方式顯示,經(jīng)常在一段時(shí)間后顯示亂碼,經(jīng)檢查發(fā)現(xiàn)是在初始化液晶時(shí)候沒(méi)有初始化好,解決問(wèn)題后可行。等等。。。</p><p><b> 4.2 設(shè)計(jì)體會(huì) </b></p><p> 這次設(shè)計(jì)中遇到了很多問(wèn)題,例如剛開始我在在仿真時(shí)程序出現(xiàn)了每次按按鈕時(shí)總是顯示測(cè)量時(shí)需要關(guān)閉仿真的字樣,試了很多方法
28、都沒(méi)有找到原因,最后才知道是因?yàn)榘粹o太近的緣故。很多類似的經(jīng)歷讓我明白:</p><p> 1. 在設(shè)計(jì)程序之前,務(wù)必要對(duì)所學(xué)單片機(jī)課程的內(nèi)容有一個(gè)系統(tǒng)的了解,知道單片機(jī)片內(nèi)片外的內(nèi)容及其功能。 2. 設(shè)計(jì)程序關(guān)鍵要有一個(gè)清晰的思路和一個(gè)完整的軟件流程圖。模塊化的設(shè)計(jì)思想在程序設(shè)計(jì)中的作用是重大的,它可以為你提供一個(gè)比較清晰的思路,并且很容易找到頭緒,不至于在編寫一個(gè)程序時(shí)感覺到無(wú)從下手。 3. 在
29、設(shè)計(jì)程序時(shí),不能妄想一次就將整個(gè)程序設(shè)計(jì)好,"反復(fù)修改,不斷改進(jìn)"是程序設(shè)計(jì)的必經(jīng)之路。程序剛開始編好時(shí),一般情況下會(huì)存在很多錯(cuò)誤,要不斷地修改,不斷的改進(jìn)才能達(dá)到預(yù)期的目的,編寫程序的時(shí)間并不是很長(zhǎng),主要是花很多時(shí)間去修改程序。 總之,通過(guò)這次課程設(shè)計(jì)不僅使我鞏固了本課程所學(xué)的基本知識(shí),還使我具有了撰寫科研報(bào)告的初步訓(xùn)練能力,我相信這些能力在我以后的工作或者是再學(xué)習(xí)中一定會(huì)起到不小的作用,一切的辛苦和艱
30、難都是值得的。</p><p> 4.3 對(duì)設(shè)計(jì)的建議</p><p> 在設(shè)計(jì)前應(yīng)該對(duì)所要實(shí)現(xiàn)的功能有一定的了解,定下有大概的流程圖,把設(shè)計(jì)模塊化,寫程序時(shí)也應(yīng)該一個(gè)模塊一個(gè)模塊的寫,這樣方便理解,也方便以后的檢查。</p><p><b> 5 附錄</b></p><p><b> 5.1 電路總
31、圖</b></p><p><b> 5.2主程序</b></p><p> /************* _031040906_ctw.c *****************/</p><p> /*************** </p><p> 題目1 LCD顯示的定時(shí)鬧
32、鐘制作 </p><p><b> 作者:陳廷文</b></p><p> 學(xué)號(hào):031040906</p><p> *****************/</p><p> #include <REGX52.H></p><p> #include "_0310
33、40906_ctw_LCD.h"</p><p> #define uchar unsigned char </p><p> #define uint unsigned int</p><p> sbit IntOn=P3^3; </p><p> sbit IntIn=P3^2;</p><p>
34、 sbit SounDer=P2^7;</p><p> sbit Led=P3^0;</p><p> uchar clock[2];</p><p> uchar time[2];</p><p> uchar count;</p><p> uchar buffer[4];</p>&l
35、t;p> uchar bool;</p><p><b> uchar K1;</b></p><p><b> uchar K2;</b></p><p><b> uchar K3;</b></p><p><b> uchar K4;</b
36、></p><p> void IntToStr(uchar bool) //整形轉(zhuǎn)成ASC碼 *****************</p><p><b> {</b></p><p><b> if(!bool)</b></p><p><b> {</b&
37、gt;</p><p> buffer[0]=time[0]/10 +'0';</p><p> buffer[1]=time[0]%10 +'0';</p><p> buffer[2]=time[1]/10 +'0';</p><p> buffer[3]=time[1]%10 +&
38、#39;0';</p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p> buffer[0]=clock[0]/10 +'0';</p><p&g
39、t; buffer[1]=clock[0]%10 +'0';</p><p> buffer[2]=clock[1]/10 +'0';</p><p> buffer[3]=clock[1]%10 +'0';</p><p><b> }</b></p><p>&
40、lt;b> } </b></p><p> void Show(uchar bool)//顯示時(shí)間</p><p><b> {</b></p><p> IntToStr(bool);</p><p><b> if(bool)</b></p><
41、;p> {GotoXY(0,0);</p><p> Print(0x02);</p><p> Print(0x02);</p><p> Print(0x02);</p><p> Print(0x02);</p><p> Print(0x02);</p><p>
42、Print(&buffer[0]);</p><p> Print(&buffer[1]);</p><p> Print(":");</p><p> Print(&buffer[2]);</p><p> Print(&buffer[3]);</p><p
43、> Print(0x02);</p><p> Print(0x02);</p><p> Print(0x02);</p><p> Print(0x02);</p><p> Print(0x02);</p><p> Print(0x02);</p><p> Prin
44、t(0x02);</p><p> GotoXY(0,1);</p><p> Print(0x02);</p><p> Print(0x02);</p><p> Print(0x02);</p><p> Print(0x02);</p><p> Print(0x02);&
45、lt;/p><p> Print(0x02);</p><p> Print(0x02);</p><p> Print(0x02);</p><p> Print(0x02);</p><p> Print(0x02);</p><p> Print(0x02);</p>
46、<p> Print(0x02);</p><p> Print(0x02);</p><p> Print(0x02);</p><p> Print(0x02);</p><p> Print(0x02);</p><p> Print(0x02);</p><p>
47、;<b> }</b></p><p><b> else </b></p><p><b> {</b></p><p> GotoXY(0,0);</p><p> Print(0x02);</p><p> Print(0x02);
48、</p><p> Print(0x02);</p><p> Print(0x02);</p><p> Print(0x02);</p><p> Print(0x02);</p><p> Print(0x02);</p><p> Print(0x02);</p&g
49、t;<p> Print(0x02);</p><p> Print(0x02);</p><p> Print(0x02);</p><p> Print(0x02);</p><p> Print(0x02);</p><p> Print(0x02);</p><p&
50、gt; Print(0x02);</p><p> Print(0x02);</p><p> Print(0x02);</p><p> GotoXY(0,1);</p><p> Print(0x02);</p><p> Print(0x02);</p><p> Print
51、(0x02);</p><p> Print(0x02);</p><p> Print(0x02);</p><p> Print(&buffer[0]);</p><p> Print(&buffer[1]);</p><p> Print(":");</p&g
52、t;<p> Print(&buffer[2]);</p><p> Print(&buffer[3]);</p><p> Print(0x02);</p><p> Print(0x02);</p><p> Print(0x02);</p><p> Print(0x0
53、2);</p><p> Print(0x02);</p><p> Print(0x02);</p><p> Print(0x02);</p><p><b> }</b></p><p><b> }</b></p><p> voi
54、d Delayms(unsigned int count)</p><p><b> {</b></p><p> unsigned int i,j;</p><p> for(i=0;i<count;i++)</p><p> for(j=0;j<120;j++);</p><p
55、><b> }</b></p><p> void music()</p><p><b> {</b></p><p><b> }</b></p><p> void Sound(uchar c)//發(fā)出聲音 *****************</
56、p><p><b> {</b></p><p> while(c>0)</p><p><b> {</b></p><p> SounDer=1;</p><p> Delayms(30);</p><p><b> c-
57、-;</b></p><p> SounDer=0;</p><p> Delayms(30);</p><p><b> }</b></p><p><b> }</b></p><p> uchar GetKey() //獲得按鍵的鍵值*****
58、************</p><p><b> {</b></p><p><b> uchar s;</b></p><p> s=(P2>>3)&0x0f;</p><p><b> return s;</b></p><
59、p><b> }</b></p><p> void Process(uchar s)</p><p><b> {</b></p><p><b> switch(s)</b></p><p><b> {</b></p>
60、<p> case 0x07: //K1按下*****************</p><p> if(K1&&!K3)</p><p><b> {</b></p><p> if(clock[0]<23)</p><p> clock[0]=clock[0]+1;&l
61、t;/p><p><b> else </b></p><p> clock[0]=0;</p><p><b> }</b></p><p> else if(!K1&&!K3)</p><p><b> K1=1;</b><
62、;/p><p> else if(!K1&&K3)</p><p><b> {</b></p><p> if(time[0]<23)</p><p> time[0]=time[0]+1;</p><p><b> else</b></p
63、><p> time[0]=0;</p><p><b> }</b></p><p><b> else</b></p><p><b> ;break;</b></p><p> case 0x0b: //K2 按下*******
64、**********</p><p> if(K1&&!K3)</p><p> if(clock[1]<59)</p><p> clock[1]=clock[1]+1;</p><p><b> else </b></p><p> clock[1]=0;<
65、;/p><p> else if(!K1&&K3)</p><p> if(time[1]<59)</p><p> time[1]=time[1]+1;</p><p><b> else</b></p><p> time[1]=0;</p><
66、p> else if(!K1&&!K3)</p><p><b> if(K2)</b></p><p><b> {</b></p><p><b> bool=1;</b></p><p><b> K2=0;</b>&
67、lt;/p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p><b> bool=0;</b></p><p><b> K2=1;<
68、;/b></p><p><b> }</b></p><p><b> else</b></p><p><b> ;</b></p><p><b> break;</b></p><p> default:
69、;</p><p> case 0x0d: //K3 按下 *****************</p><p> if(K3&&!K1)</p><p><b> {</b></p><p><b> K3=0;</b></p><p>&
70、lt;b> bool=1;</b></p><p><b> }</b></p><p> else if(!K3&&!K1)</p><p><b> {</b></p><p><b> K3=1;</b></p>
71、<p><b> bool=0;</b></p><p><b> }</b></p><p> else if(K1&&!K3)</p><p><b> K1=0;</b></p><p><b> else</b>
72、;</p><p><b> ;</b></p><p><b> break;</b></p><p> case 0x0e: //K4 按下 *****************</p><p> if(!K1&&!K3)</p><
73、;p><b> if(K4)</b></p><p><b> {</b></p><p><b> K4=0;</b></p><p><b> Sound(1);</b></p><p><b> }</b>&l
74、t;/p><p><b> else</b></p><p><b> {</b></p><p><b> K4=1;</b></p><p><b> Sound(3);</b></p><p><b> }&
75、lt;/b></p><p><b> break;</b></p><p><b> }</b></p><p><b> }</b></p><p> main() //主函數(shù)入口*******************************&
76、lt;/p><p><b> {</b></p><p><b> uint s=0;</b></p><p><b> bool=1;</b></p><p> clock[0]=23;</p><p> clock[1]=58;</p&g
77、t;<p> time[0]=0;</p><p> time[1]=0;</p><p><b> count=0;</b></p><p> K1=K2=K3=K4=0;</p><p> SounDer=0;</p><p><b> Led=0;<
78、/b></p><p> LCD_Initial();</p><p> TH0=(65535-10000)/256;</p><p> TL0=(65535-10000)%256;</p><p><b> count=0;</b></p><p><b> IT0=1
79、;</b></p><p><b> EX0=1;</b></p><p> TMOD=0x01;</p><p><b> ET0=0x01;</b></p><p><b> EA=1;</b></p><p><b>
80、 TR0=1;</b></p><p> IntToStr(bool);</p><p><b> //</b></p><p> while(1) //進(jìn)入死循環(huán) **************</p><p><b> { </b></p>&l
81、t;p> if(!K1&&K3) //閃爍顯示定時(shí)鬧鐘</p><p><b> {</b></p><p><b> s=300;</b></p><p><b> while(s)</b></p><p><b> {</
82、b></p><p> LCD_Write(LCD_COMMAND,LCD_CLEAR_SCREEN);</p><p><b> s--;</b></p><p><b> }</b></p><p><b> s=40;</b></p><
83、p><b> while(s)</b></p><p><b> {</b></p><p> Show(bool);</p><p><b> s--;</b></p><p><b> }</b></p><p>
84、;<b> }</b></p><p><b> else</b></p><p> Show(bool);</p><p> if((time[0]==clock[0])&&(time[1]==clock[1])&&K4)</p><p> Sound(1
85、0);</p><p> Led=~Led;//指示燈閃爍</p><p><b> }</b></p><p><b> }</b></p><p> void timer1() interrupt 1 //計(jì)時(shí)器計(jì)時(shí) **************</p><p&
86、gt;<b> {</b></p><p> if(count==60)</p><p><b> {</b></p><p> if(clock[1]<59)</p><p> clock[1]=clock[1]+1;</p><p><b>
87、else </b></p><p> {if(clock[0]<23)</p><p> clock[0]=clock[0]+1;</p><p><b> else</b></p><p> clock[0]=0;</p><p> clock[1]=0;</
88、p><p><b> }</b></p><p><b> count=0;</b></p><p><b> }</b></p><p><b> else </b></p><p><b> count++;&l
89、t;/b></p><p> TH0=(65535-50000)/256;</p><p> TL0=(65535-50000)%256;</p><p><b> }</b></p><p> void inter() interrupt 0 //外部中斷0 表明K1~K5按鍵按下并作相宜處理<
90、;/p><p><b> {</b></p><p> Delayms(100);</p><p> if(IntIn==0)</p><p><b> {</b></p><p> Process(GetKey());</p><p><
91、b> }</b></p><p><b> }</b></p><p><b> 5.3參考文獻(xiàn) </b></p><p><b> 參考文獻(xiàn)</b></p><p> [1]康華光,陳大欽. 電子技術(shù)基礎(chǔ)—模擬部分(第五版)[M]. 北京:高等教育
92、出版社,2009</p><p> [2]皮文兵. 一種寬輸入范圍的Gillbert模擬乘法器設(shè)計(jì)[J]. 電子設(shè)計(jì)應(yīng)用.2007.13(1):88-90</p><p> [3] 焦春生.新型綠色能效D類音頻放大器設(shè)計(jì)應(yīng)用 [EB/OL]. </p><p> [4] 張筑生. 微分半動(dòng)力系統(tǒng)的不變集 [D]. 北京: 北京大學(xué)數(shù)學(xué)系數(shù)學(xué)研究所, 1983&
93、lt;/p><p> [5]楊忠義.單片機(jī)課程設(shè)計(jì)指導(dǎo).北京清華大學(xué)出版社2009.201217 </p><p> [6]靳達(dá).單片機(jī)應(yīng)用系統(tǒng)開發(fā)實(shí)例導(dǎo)航.北京人民郵電出版社2004.137 </p><p> [7]南建輝.MCS-51單片機(jī)原理及應(yīng)用實(shí)例.北京清華大學(xué)出版社2004.92117 </p><p>
溫馨提示
- 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ù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 單片機(jī)課程設(shè)計(jì)--帶有l(wèi)cd顯示的定時(shí)鬧鐘
- 單片機(jī)課程設(shè)計(jì)—帶有l(wèi)cd的定時(shí)鬧鐘
- 單片機(jī)課程設(shè)計(jì)---- lcd電子定時(shí)鬧鐘設(shè)計(jì)
- 單片機(jī)數(shù)字鐘課程設(shè)計(jì)
- 單片機(jī)數(shù)字鐘課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)---數(shù)字鐘設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)--- 簡(jiǎn)易數(shù)字鐘
- 單片機(jī)課程設(shè)計(jì)數(shù)字鐘
- 單片機(jī)定時(shí)鬧鐘課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)--基于單片機(jī)數(shù)字鐘的設(shè)計(jì)
- 基于單片機(jī)的數(shù)字鐘課程設(shè)計(jì)
- 簡(jiǎn)易數(shù)字鐘的單片機(jī)課程設(shè)計(jì)
- 單片機(jī)定時(shí)鬧鐘課程設(shè)計(jì)
- 定時(shí)鬧鐘—單片機(jī)課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)--數(shù)字鐘電子鐘
- 基于單片機(jī)的數(shù)字鐘課程設(shè)計(jì)
- 課程設(shè)計(jì)--單片機(jī)控制的數(shù)字鐘
- 單片機(jī)課程設(shè)計(jì)—定時(shí)鬧鐘設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)—定時(shí)鬧鐘設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)---定時(shí)鬧鐘設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論