數(shù)字鐘單片機(jī)課程設(shè)計(jì)-- lcd顯示的定時(shí)鬧鐘制作_第1頁(yè)
已閱讀1頁(yè),還剩20頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(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.201217 </p><p>  [6]靳達(dá).單片機(jī)應(yīng)用系統(tǒng)開發(fā)實(shí)例導(dǎo)航.北京人民郵電出版社2004.137 </p><p>  [7]南建輝.MCS-51單片機(jī)原理及應(yīng)用實(shí)例.北京清華大學(xué)出版社2004.92117 </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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論