帶有l(wèi)cd顯示的音樂倒數(shù)計(jì)數(shù)器課程設(shè)計(jì)_第1頁
已閱讀1頁,還剩22頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、<p>  題目:帶有LCD顯示的音樂倒數(shù)計(jì)數(shù)器</p><p>  課程:單片機(jī)的C語言程序設(shè)計(jì)與應(yīng)用</p><p>  學(xué)期:2011-2012-2</p><p><b>  班級(jí): </b></p><p><b>  姓名: </b></p><p>&

2、lt;b>  學(xué)號(hào): </b></p><p><b>  教師: </b></p><p>  日期:2012.6.22</p><p><b>  摘 要</b></p><p>  單片機(jī)技術(shù)是一門不可或缺的技術(shù),對(duì)我們將來的工作以及生活和學(xué)習(xí)都有很密切的聯(lián)系。近年來,隨著

3、電子技術(shù)和微機(jī)計(jì)算機(jī)的迅速發(fā)展,單片機(jī)的檔次不斷提高,其應(yīng)用領(lǐng)域也在不斷的擴(kuò)大,已在工業(yè)控制、尖端科學(xué)、智能儀器儀表、日用家電、汽車電子系統(tǒng)、辦公自動(dòng)化設(shè)備、個(gè)人信息終端及通信產(chǎn)品中得到了廣泛的應(yīng)用,成為現(xiàn)代電子系統(tǒng)中最重要的智能化的核心部件。</p><p>  單片機(jī)由CPU、一定容量的RAM和ROM構(gòu)成,定時(shí)、計(jì)數(shù)和多種接口于一體的微控制器。它體積小,成本低,功能強(qiáng),廣泛應(yīng)用于智能產(chǎn)業(yè)和工業(yè)自動(dòng)化上。而51

4、系列單片機(jī)是各單片機(jī)中最為典型和最有代表性的一種。這次課程設(shè)計(jì)通過對(duì)它的學(xué)習(xí)、應(yīng)用,從而達(dá)到學(xué)習(xí)、設(shè)計(jì)、開發(fā)軟、硬的能力。</p><p>  本設(shè)計(jì)利用AT89C51單片機(jī)結(jié)合字符型LCD顯示器設(shè)計(jì)一個(gè)簡易的倒數(shù)計(jì)數(shù)器。用4個(gè)按鍵操作來設(shè)置當(dāng)前想要倒計(jì)數(shù)的時(shí)間。做一小段時(shí)間倒計(jì)數(shù),當(dāng)?shù)褂?jì)數(shù)為0時(shí),則發(fā)出一段音樂聲響,通知倒計(jì)數(shù)終了,該做應(yīng)當(dāng)做的事。應(yīng)用 Proteus的ISIS軟件和Keil uVision3來

5、實(shí)現(xiàn)該計(jì)數(shù)器的設(shè)計(jì)與仿真。該方法仿真效果真實(shí)、準(zhǔn)確,節(jié)省了硬件資源。</p><p>  該多功能計(jì)數(shù)器可以應(yīng)用于一般的生活和工作中,也可以通過改裝,提高性能,增加新功能,從而給人們的生活和工作帶來更多的方便。</p><p>  關(guān)鍵詞: AT89C51,計(jì)數(shù)器,鍵盤控制,LCD顯示,Proteus,Keil </p><p><b>  目 錄<

6、;/b></p><p>  1 設(shè)計(jì)概述和要求1</p><p>  1.1 設(shè)計(jì)概述1</p><p>  1.2 設(shè)計(jì)要求1</p><p><b>  2 系統(tǒng)設(shè)計(jì)3</b></p><p>  2.1 框圖設(shè)計(jì)3</p><p>  2.2 元件清

7、單3</p><p><b>  3軟件設(shè)計(jì)7</b></p><p>  3.1 程序流程圖7</p><p>  3.1.1 主程序流程圖7</p><p>  3.1.2 蜂鳴器發(fā)聲程序流程圖8</p><p>  3.2 蜂鳴器發(fā)聲電路原理8</p><p&

8、gt;  3.3 蜂鳴器發(fā)聲程序的關(guān)鍵代碼9</p><p>  4 PROTEUS仿真結(jié)果10</p><p>  4.1 總體電路仿真結(jié)果10</p><p>  4.2 假設(shè)倒計(jì)時(shí)為5秒時(shí)的仿真結(jié)果10</p><p><b>  5 總結(jié)12</b></p><p>  6 附表

9、(本設(shè)計(jì)所有程序) ………………………………………….14</p><p><b>  參考文獻(xiàn)14</b></p><p><b>  1 設(shè)計(jì)概述和要求</b></p><p>  本設(shè)計(jì)的任務(wù)是利用AT89C51單片機(jī)結(jié)合字符型LCD顯示器設(shè)計(jì)一個(gè)簡易的倒數(shù)計(jì)數(shù)器。做一小段時(shí)間倒計(jì)數(shù),當(dāng)?shù)褂?jì)數(shù)為0時(shí),則發(fā)出一段音樂

10、聲響。</p><p><b>  1.1 設(shè)計(jì)概述</b></p><p>  20世紀(jì)末,電子技術(shù)獲得了飛速的發(fā)展。在其推動(dòng)下,現(xiàn)代電子產(chǎn)品幾乎滲透到了社會(huì)的各個(gè)領(lǐng)域,有力的推動(dòng)和提高了社會(huì)生產(chǎn)力的發(fā)展與信息化程度。同時(shí)也使現(xiàn)代電子產(chǎn)品性能進(jìn)一步提升,產(chǎn)品更新?lián)Q代的節(jié)奏也越來越快。</p><p>  隨著科技的發(fā)展和社會(huì)的進(jìn)步,人們對(duì)數(shù)字

11、鐘的要求越來越高,多功能數(shù)字鐘不管在性能還是在樣式上都發(fā)生了質(zhì)的變化。數(shù)字鐘實(shí)際上是一個(gè)對(duì)標(biāo)準(zhǔn)頻率進(jìn)行計(jì)數(shù)的計(jì)數(shù)電路,走時(shí)精度高,穩(wěn)定性好,使用方便,不需要經(jīng)常調(diào)校。單片計(jì)算機(jī)即單片微型計(jì)算機(jī),是集CPU,RAM,ROM,定時(shí)/計(jì)數(shù)和多種接口于一體的微控制器。它體積小成本低,功能強(qiáng),廣泛應(yīng)用于智能產(chǎn)品和工業(yè)自動(dòng)化上。由于數(shù)字集成電路的發(fā)展和石英晶體振蕩器的廣泛應(yīng)用,使得數(shù)字鐘的精度遠(yuǎn)遠(yuǎn)超多老式鐘表,鐘表的數(shù)字化給人們生產(chǎn)生活帶來了極大地

12、方便,而且大大的擴(kuò)展了鐘表原先的報(bào)時(shí)功能,諸如定時(shí)自動(dòng)報(bào)警、0按時(shí)自動(dòng)打鈴、定時(shí)廣播、自動(dòng)啟閉路燈、定時(shí)開關(guān)烘箱、通斷動(dòng)力設(shè)備、甚至各種定時(shí)電氣的自動(dòng)啟用等,所有這些,都是以數(shù)字化為基礎(chǔ)的,因此研究數(shù)字鐘及擴(kuò)大其應(yīng)用有著非常現(xiàn)實(shí)的意義。</p><p>  本系統(tǒng)采用單片機(jī)作為數(shù)字鐘的核心控制器,讀取時(shí)鐘的值,并通過LCD液晶顯示器顯示出來,而且可以通過按鍵電路控制執(zhí)行信號(hào),給時(shí)鐘賦初值。還可以設(shè)置鬧鐘,當(dāng)計(jì)數(shù)為

13、0時(shí),發(fā)出一陣音樂聲。并可拓展其功能顯示年月日。</p><p><b>  1.2設(shè)計(jì)要求</b></p><p>  利用AT89C51單片機(jī)結(jié)合字符型LCD顯示器設(shè)計(jì)一個(gè)簡易的倒數(shù)計(jì)數(shù)器,可用來煮方便面、煮開水或小睡片刻等。作品先接受用戶輸入的倒數(shù)計(jì)數(shù)時(shí)間,然后由用戶啟動(dòng)作品工作(可用一個(gè)閃爍的LED燈指示),當(dāng)?shù)褂?jì)數(shù)為0時(shí),則發(fā)出一段音樂聲響,通知倒計(jì)數(shù)終了,

14、該做應(yīng)當(dāng)做的事。</p><p>  定時(shí)鬧鐘的基本功能如下。</p><p>  字符型LCD(16  2)顯示器。</p><p>  顯示格式為“TIME 分分:秒秒”。</p><p>  用4個(gè)按鍵操作來設(shè)置當(dāng)前想要倒計(jì)數(shù)的時(shí)間。一旦按下鍵則開始倒計(jì)數(shù),當(dāng)計(jì)數(shù)為0時(shí),發(fā)出一陣音樂聲</p><

15、p><b>  2 系統(tǒng)設(shè)計(jì)</b></p><p><b>  2.1 框圖設(shè)計(jì)</b></p><p>  本項(xiàng)目的系統(tǒng)設(shè)計(jì)框圖如圖2-1所示:</p><p><b>  圖2-1 系統(tǒng)框圖</b></p><p>  由系統(tǒng)框圖可看出,本設(shè)計(jì)由單片機(jī)AT89C51

16、、LCD液晶顯示器、控制鍵盤、蜂鳴器、復(fù)位單路和定時(shí)器電路幾大模塊構(gòu)成。</p><p><b>  2.2 元件清單</b></p><p>  主控單片機(jī)采用AT89C51芯片,時(shí)鐘模塊選用一12MHZ晶振,產(chǎn)生時(shí)鐘脈沖。顯示模塊采用LCD1602,設(shè)置部分選用鍵盤按鍵電路,發(fā)聲部分選用BUZZER蜂鳴器。還有一些電源、電阻、電容、接地等。</p>

17、<p>  主要元件清單如圖2-2所示:</p><p>  圖2-2 主要元件清單</p><p><b>  AT89C51:</b></p><p>  AT89C51是一種帶4K字節(jié)閃存可編程可擦除只讀存儲(chǔ)器(FPEROM—Flash Programmable and Erasable Read Only Memory)的低電

18、壓,高性能CMOS 8位微處理器,俗稱單片機(jī)。</p><p>  主要特性:與MCS-51 兼容 、4K字節(jié)可編程閃爍存儲(chǔ)器 、壽命:1000寫/擦循環(huán)、數(shù)據(jù)保留時(shí)間:10年 、全靜態(tài)工作:0Hz-24MHz 、三級(jí)程序存儲(chǔ)器鎖定 、128×8位內(nèi)部RAM 、32可編程I/O線 、兩個(gè)16位定時(shí)器/計(jì)數(shù)器 、5個(gè)中斷源 、可編程串行通道 、低功耗的閑置和掉電模式 、片內(nèi)振蕩器和時(shí)鐘電路。</p&

19、gt;<p><b>  1602LCD :</b></p><p>  1602液晶模塊內(nèi)部的控制器共有11條控制指令,如表2-1所示.</p><p>  表2-1 1602液晶模塊控制指令</p><p><b>  鍵盤:</b></p><p>  鍵盤采用5個(gè)button,

20、分別控制倒計(jì)時(shí)開始、調(diào)分個(gè)位、調(diào)分十位、調(diào)秒個(gè)位、調(diào)秒十位;另外還加一個(gè)總開關(guān)用于控制所有電路的通電情況。</p><p><b>  蜂鳴器:</b></p><p>  用三極管、電阻和speaker組成蜂鳴器電路。蜂鳴器最重要的特點(diǎn)是只要按照極性要求加上合適的直流電壓就可以發(fā)出固有頻率的聲音。</p><p><b>  3軟件

21、設(shè)計(jì)</b></p><p><b>  3.1 程序流程圖</b></p><p>  3.1.1 主程序流程圖</p><p>  主程序開始初始化,然后掃描鍵盤、復(fù)位電路和計(jì)數(shù)器。當(dāng)鍵盤按鍵有按下時(shí),調(diào)整計(jì)數(shù)器值,LCD顯示新值。當(dāng)復(fù)位鍵有按下時(shí),計(jì)數(shù)器復(fù)位為初值,重新倒計(jì)數(shù)。當(dāng)計(jì)數(shù)器值倒計(jì)為0時(shí),蜂鳴器發(fā)出聲音,計(jì)數(shù)器停止倒

22、計(jì),程序結(jié)束。主程序流程圖如圖3-1所示:</p><p>  圖3-1 主程序流程圖</p><p>  3.1.2 蜂鳴器發(fā)聲程序流程圖</p><p>  蜂鳴器發(fā)聲程序流程圖如圖3-2所示:</p><p>  圖3-2 蜂鳴器發(fā)聲程序流程圖</p><p>  3.2 蜂鳴器發(fā)聲電路原理</p>

23、<p>  對(duì)于單片機(jī)產(chǎn)生音樂,關(guān)鍵是控制頻率的輸出.我們知道,不同的聲音對(duì)應(yīng)不同的頻率,產(chǎn)生有規(guī)律的頻率輸出就可以得到相應(yīng)規(guī)律的聲音.有8個(gè)基本音符:do﹑re﹑mi﹑fa﹑so﹑la﹑xi﹑do,八個(gè)不同的音符對(duì)應(yīng)著不同的頻率.只要我們對(duì)照音符輸出相對(duì)應(yīng)的頻率,就可以產(chǎn)生美妙的音樂.本文中采用了T0中斷方式產(chǎn)生不同頻率, 并用按鍵控制音樂的播放和停止。用三極管、電阻和BUZZER組成蜂鳴器電路。蜂鳴器最重要的特點(diǎn)是只要按

24、照極性要求加上合適的直流電壓就可以發(fā)出固有頻率的聲音。</p><p>  4 PROTEUS仿真結(jié)果</p><p>  4.1 電路原理圖及仿真</p><p>  系統(tǒng)protel99se電路原理圖和proteus電路仿真分別如圖4-1(a)、圖4-1(b)所示</p><p>  圖4-1(a) 總體電路電路原理圖</p>

25、<p>  圖4-1(b)電路仿真</p><p>  4.2 倒計(jì)時(shí)設(shè)置仿真如下圖4-2(a)所示</p><p>  圖4-2倒計(jì)時(shí)設(shè)置仿真</p><p>  倒計(jì)數(shù)設(shè)置為5秒時(shí)的仿真如下圖4-2(b)所示</p><p>  圖4-2(b)倒計(jì)數(shù)5秒的仿真</p><p>  4.3 蜂鳴器的仿真

26、如下圖4-3所示</p><p>  圖4-3蜂鳴器的仿真</p><p><b>  5 總結(jié)</b></p><p>  通過此次多功能數(shù)字計(jì)數(shù)器的設(shè)計(jì)制作,我們將從書本上學(xué)到的知識(shí)應(yīng)用于實(shí)踐,再次鞏固了我的單片機(jī)知識(shí),提高了我的電路仿真設(shè)計(jì)能力。雖然設(shè)計(jì)過程中遇到了很多困難,但是在解決這些問題的過程無疑是對(duì)自身專業(yè)素質(zhì)的提高。當(dāng)最終調(diào)試成

27、功的時(shí)候也是對(duì)自己的一種肯定。此次的設(shè)計(jì)不僅增強(qiáng)了自己在專業(yè)設(shè)計(jì)方面的信息,鼓舞了自己,更是一次興趣的培養(yǎng),為以后的學(xué)習(xí)方向明確了重點(diǎn)。</p><p>  另外在這次設(shè)計(jì)中我們遇到了不少的問題,針對(duì)不同的問題我們采取不同的解決方法,最終一一解決了。在我們遇到不懂得問題時(shí),利用課本上、參考書上的知識(shí),以及網(wǎng)上的資料最終解決問題。和隊(duì)友之間相互討論,明白了團(tuán)隊(duì)合作的重要性。</p><p>

28、  本次項(xiàng)目設(shè)計(jì)還存在很多不足,比如,LCD的日期顯示還不夠完美,計(jì)數(shù)功能也不夠詳細(xì)等。以后爭取完善這個(gè)設(shè)計(jì),以提高我們的單片機(jī)設(shè)計(jì)能力。</p><p>  這里很感謝xx老師給我們的指導(dǎo)和教育,感謝他給我們提供了良好的學(xué)習(xí)設(shè)計(jì)環(huán)境,也很感謝可愛的伙伴們,讓我覺得團(tuán)隊(duì)的力量很偉大。</p><p>  6 附表(本設(shè)計(jì)所有程序)</p><p>  #includ

29、e <reg51.h></p><p>  #include <intrins.h></p><p>  sbit rs= P2^4;</p><p>  sbit rw = P2^5;</p><p>  sbit ep = P2^6;</p><p>  sbit k1=P1^4;</

30、p><p>  sbit k2=P1^5;</p><p>  sbit k3=P1^6;</p><p>  sbit k4=P1^7;</p><p>  sbit k5=P1^3;</p><p>  sbit speaker=P3^0;</p><p>  unsigned char cod

31、e dis1[] = {"605 "};</p><p>  unsigned char code dis2[] = {"TIME 00:00"};</p><p>  unsigned char code dis3[] = {"0123456789"};</p><p>  unsigned int

32、num=0;</p><p>  unsigned int miaogw=0;</p><p>  unsigned int miaosw=0;</p><p>  unsigned int fengw=0;</p><p>  unsigned int fensw=0;</p><p>  unsigned char

33、 flag=1;</p><p>  unsigned char timer0h,timer0l,time;</p><p>  //世上只有媽媽好數(shù)據(jù)表</p><p>  code unsigned char sszymmh[]={ 6,2,3, 5,2,1, 3,2,2, 5,2,2, 1,3,2, 6,2,1, 5,2,1,

34、</p><p>  6,2,4, 3,2,2, 5,2,1, 6,2,1, 5,2,2, 3,2,2, 1,2,1,</p><p>  6,1,1, 5,2,1, 3,2,1, 2,2,4, 2,2,3, 3,2,1, 5,2,2,</p><p>  5,2,1, 6,2,1, 3,2,2, 2,2,

35、2, 1,2,4, 5,2,3, 3,2,1,</p><p>  2,2,1, 1,2,1, 6,1,1, 1,2,1, 5,1,6, 0,0,0 </p><p><b>  };</b></p><p>  // 音階頻率表 高八位</p><p>  code unsigned char FR

36、EQH[]={</p><p>  0xF2,0xF3,0xF5,0xF5,0xF6,0xF7,0xF8, </p><p>  0xF9,0xF9,0xFA,0xFA,0xFB,0xFB,0xFC,0xFC, //1,2,3,4,5,6,7,8,i</p><p>  0xFC,0xFD,0xFD,0xFD,0xFD,0xFE,</p><p&

37、gt;  0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFF,</p><p><b>  } ;</b></p><p>  // 音階頻率表 低八位</p><p>  code unsigned char FREQL[]={</p><p>  0x42,0xC1,0x17,0xB6,0xD0,0

38、xD1,0xB6,</p><p>  0x21,0xE1,0x8C,0xD8,0x68,0xE9,0x5B,0x8F, //1,2,3,4,5,6,7,8,i</p><p>  0xEE,0x44, 0x6B,0xB4,0xF4,0x2D, </p><p>  0x47,0x77,0xA2,0xB6,0xDA,0xFA,0x16,</p><

39、;p><b>  };</b></p><p>  void delayyy(unsigned char t)</p><p><b>  {</b></p><p>  unsigned char t1;</p><p>  unsigned long t2;</p><

40、p>  for(t1=0;t1<t;t1++)</p><p><b>  {</b></p><p>  for(t2=0;t2<8000;t2++)</p><p><b>  {</b></p><p><b>  ;</b></p>&l

41、t;p><b>  }</b></p><p><b>  }</b></p><p><b>  TR0=0;</b></p><p><b>  }</b></p><p>  void t0int() interrupt 1</p>

42、<p><b>  {</b></p><p><b>  TR0=0;</b></p><p>  speaker=!speaker;</p><p>  TH0=timer0h;</p><p>  TL0=timer0l;</p><p><b>

43、;  TR0=1;</b></p><p><b>  }</b></p><p>  void song()</p><p><b>  {</b></p><p>  TH0=timer0h;</p><p>  TL0=timer0l;</p>

44、<p><b>  TR0=1;</b></p><p>  delayyy(time); </p><p><b>  }</b></p><p>  void delay(unsigned char ms)</p><p><b>

45、;  {</b></p><p>  unsigned char i;</p><p>  while(ms--)</p><p><b>  {</b></p><p>  for(i = 0; i< 250; i++)</p><p><b>  {</b&g

46、t;</p><p><b>  _nop_();</b></p><p><b>  _nop_();</b></p><p><b>  _nop_();</b></p><p><b>  _nop_();</b></p><p&

47、gt;<b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  bit lcd_bz()</p><p><b>  {</b></p><p>  bit resu

48、lt;</p><p><b>  rs = 0;</b></p><p><b>  rw = 1;</b></p><p><b>  ep = 1;</b></p><p><b>  _nop_();</b></p><p>

49、;<b>  _nop_();</b></p><p><b>  _nop_();</b></p><p><b>  _nop_();</b></p><p>  result = (bit)(P0 & 0x80);</p><p><b>  ep =

50、0;</b></p><p>  return result;</p><p><b>  }</b></p><p>  void lcd_wcmd(unsigned char cmd)</p><p><b>  {</b></p><p>  while(l

51、cd_bz());//判斷LCD是否忙碌</p><p><b>  rs = 0;</b></p><p><b>  rw = 0;</b></p><p><b>  ep = 0;</b></p><p><b>  _nop_();</b><

52、;/p><p><b>  _nop_();</b></p><p><b>  P0 = cmd;</b></p><p><b>  _nop_();</b></p><p><b>  _nop_();</b></p><p>&

53、lt;b>  ep = 1;</b></p><p><b>  _nop_();</b></p><p><b>  _nop_();</b></p><p><b>  ep = 0;</b></p><p><b>  }</b>&

54、lt;/p><p>  void lcd_pos(unsigned char pos)</p><p><b>  {</b></p><p>  lcd_wcmd(pos | 0x80);</p><p><b>  }</b></p><p>  void lcd_wdat(

55、unsigned char dat)</p><p><b>  {</b></p><p>  while(lcd_bz());//判斷LCD是否忙碌</p><p><b>  rs = 1;</b></p><p><b>  rw = 0;</b></p>

56、<p><b>  ep = 0;</b></p><p><b>  P0 = dat;</b></p><p><b>  _nop_();</b></p><p><b>  _nop_();</b></p><p><b> 

57、 ep = 1;</b></p><p><b>  _nop_();</b></p><p><b>  _nop_();</b></p><p><b>  ep = 0;</b></p><p><b>  }</b></p>

58、<p>  void lcd_wshuzi(void)</p><p><b>  {</b></p><p>  lcd_pos(0x47);</p><p>  lcd_wdat(dis3[fensw]);</p><p>  lcd_pos(0x48);</p><p>  l

59、cd_wdat(dis3[fengw]);</p><p>  lcd_pos(0x4A);</p><p>  lcd_wdat(dis3[miaosw]);</p><p>  lcd_pos(0x4B);</p><p>  lcd_wdat(dis3[miaogw]);</p><p><b>  }

60、</b></p><p>  void lcd_init() //LCD初始化</p><p><b>  {</b></p><p>  lcd_wcmd(0x38);</p><p><b>  delay(1);</b></p><p>  lcd_wc

61、md(0x0c);</p><p><b>  delay(1);</b></p><p>  lcd_wcmd(0x06);</p><p><b>  delay(1);</b></p><p>  lcd_wcmd(0x01);</p><p><b>  d

62、elay(1);</b></p><p><b>  }</b></p><p>  void keyscan(void)</p><p><b>  {</b></p><p>  while(flag)</p><p><b>  {</b&g

63、t;</p><p><b>  if(k1==0)</b></p><p><b>  {</b></p><p>  delay(10);</p><p><b>  if(k1==0)</b></p><p><b>  {</b&

64、gt;</p><p><b>  fensw++;</b></p><p>  while(!k1);</p><p>  if(fensw==10)</p><p><b>  fensw=0;</b></p><p><b>  }</b><

65、/p><p><b>  }</b></p><p><b>  if(k2==0)</b></p><p><b>  {</b></p><p>  delay(10);</p><p><b>  if(k2==0)</b><

66、;/p><p><b>  {</b></p><p><b>  fengw++;</b></p><p>  while(!k2);</p><p>  if(fengw==10)</p><p><b>  fengw=0;</b></p>

67、<p><b>  }</b></p><p><b>  }</b></p><p><b>  if(k3==0)</b></p><p><b>  {</b></p><p>  delay(10);</p><p

68、><b>  if(k3==0)</b></p><p><b>  {</b></p><p><b>  miaosw++;</b></p><p>  while(!k3);</p><p>  if(miaosw==10)</p><p>

69、<b>  miaosw=0;</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  if(k4==0)</b></p><p><b>  {</b></p>

70、<p>  delay(10);</p><p><b>  if(k4==0)</b></p><p>  {miaogw++;</p><p>  while(!k4);</p><p>  if(miaogw==10)</p><p><b>  miaogw=0;&

71、lt;/b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  if(k5==0)</b></p><p><b>  flag=0;</b></p><p>  lc

72、d_wshuzi();</p><p><b>  }</b></p><p><b>  }</b></p><p>  void delay1s(void)</p><p><b>  {</b></p><p>  unsigned char h,

73、i,j,k;</p><p>  for(h=5;h>0;h--)</p><p>  for(i=4;i>0;i--)</p><p>  for(j=116;j>0;j--)</p><p>  for(k=214;k>0;k--);</p><p><b>  }</b&g

74、t;</p><p>  void main(void)</p><p><b>  {</b></p><p>  unsigned char j; unsigned char k,i;</p><p>  speaker=0;</p><p>  lcd_init();// 初始化LCD&l

75、t;/p><p>  delay(10);</p><p>  lcd_pos(0x02);//設(shè)置顯示位置</p><p><b>  j = 0;</b></p><p>  while(dis1[j] != '\0')</p><p><b>  {</b>

76、</p><p>  lcd_wdat(dis1[j]);//顯示字符</p><p><b>  j++;</b></p><p><b>  }</b></p><p><b>  while(1)</b></p><p><b>  {

77、</b></p><p>  lcd_pos(0x42);// 設(shè)置顯示位置</p><p><b>  i = 0;</b></p><p>  while(dis2[i] != '\0')</p><p><b>  {</b></p><p>

78、;  lcd_wdat(dis2[i]);// 顯示字符</p><p><b>  i++; }</b></p><p>  keyscan();</p><p>  num=fensw*600+fengw*60+miaosw*10+miaogw;</p><p>  while(num)</p>&l

79、t;p><b>  {</b></p><p><b>  num--;</b></p><p>  fensw=num/60/10;</p><p>  fengw=num/60%10;</p><p>  miaosw=num%60/10;</p><p>  mi

80、aogw=num%60%10;</p><p>  delay1s();</p><p>  lcd_wshuzi();</p><p><b>  }</b></p><p>  TMOD=1; //置CT0定時(shí)工作方式1</p><p><b>  EA=1;</b>&l

81、t;/p><p>  ET0=1;//IE=0x82 //CPU開中斷,CT0開中斷 </p><p><b>  while(1)</b></p><p><b>  {</b></p><p><b>  i=0; </b></p><p>  whi

82、le(i<100)</p><p>  { //音樂數(shù)組長度 ,唱完從頭再來 </p><p>  k=sszymmh[i]+7*sszymmh[i+1]-1;</p><p>  timer0h=FREQH[k];</p><p>  timer0l=FREQL[k];</p><p&

83、gt;  time=sszymmh[i+2];</p><p><b>  i=i+3;</b></p><p><b>  song();</b></p><p><b>  }</b></p><p><b>  }</b></p>&l

84、t;p><b>  }</b></p><p><b>  } </b></p><p><b>  參考文獻(xiàn)</b></p><p>  [1]康華光,陳大欽. 電子技術(shù)基礎(chǔ)—模擬部分(第五版)[M]. 北京:高等教育出版社,2005</p><p>  [2]李珍.

85、單片機(jī)原理與應(yīng)用技術(shù) 清華大學(xué)出版社, 2003 </p><p>  [3]陳明熒.8051單片機(jī)課程設(shè)計(jì)實(shí)訓(xùn)教材 清華大學(xué)出版社 ,2003</p><p>  [4]蘇家健、曹柏榮.單片機(jī)原理及應(yīng)用技術(shù)[M].高等教育出版社</p><p>  [5]焦春生.新型綠色能效D類音頻放大器設(shè)計(jì)應(yīng)用</p><p>  [6]姜志海、趙艷雷、

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲(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)論