基于單片機(jī)lcd顯示的音樂倒數(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><b>  課程論文</b></p><p>  題目:帶有LCD顯示的音樂倒數(shù)計(jì)數(shù)器</p><p>  課程:單片機(jī)的C語言程序設(shè)計(jì)與應(yīng)用</p><p><b>  學(xué)期:</b></p><p><b>  班級(jí):</b></p><

2、;p><b>  姓名: </b></p><p><b>  學(xué)號(hào):</b></p><p><b>  教師: </b></p><p><b>  日期:</b></p><p><b>  摘 要</b></p&

3、gt;<p>  單片機(jī)技術(shù)是一門不可或缺的技術(shù),對(duì)我們將來的工作以及生活和學(xué)習(xí)都有很密切的聯(lián)系。近年來,隨著電子技術(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、一定容量的

4、RAM和ROM構(gòu)成,定時(shí)、計(jì)數(shù)和多種接口于一體的微控制器。它體積小,成本低,功能強(qiáng),廣泛應(yīng)用于智能產(chǎn)業(yè)和工業(yè)自動(dòng)化上。而51系列單片機(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ù)

5、為0時(shí),則發(fā)出一段音樂聲響,通知倒計(jì)數(shù)終了,該做應(yīng)當(dāng)做的事。應(yīng)用 Proteus的ISIS軟件和Keil uVision3來實(shí)現(xiàn)該計(jì)數(shù)器的設(shè)計(jì)與仿真。該方法仿真效果真實(shí)、準(zhǔn)確,節(jié)省了硬件資源。</p><p>  該多功能計(jì)數(shù)器可以應(yīng)用于一般的生活和工作中,也可以通過改裝,提高性能,增加新功能,從而給人們的生活和工作帶來更多的方便。</p><p>  關(guān)鍵詞: AT89C51,計(jì)數(shù)器,鍵

6、盤控制,LCD顯示,Proteus,Keil </p><p><b>  目 錄</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>&

7、lt;/p><p>  2.1 框圖設(shè)計(jì)3</p><p>  2.2 元件清單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、序流程圖8</p><p>  3.2 蜂鳴器發(fā)聲電路原理8</p><p>  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>&l

9、t;p><b>  5 總結(jié)12</b></p><p>  6 附表(本設(shè)計(jì)所有程序) ………………………………………….14</p><p><b>  參考文獻(xiàn)14</b></p><p><b>  1 設(shè)計(jì)概述和要求</b></p><p>  本設(shè)計(jì)的任務(wù)

10、是利用AT89C51單片機(jī)結(jié)合字符型LCD顯示器設(shè)計(jì)一個(gè)簡易的倒數(shù)計(jì)數(shù)器。做一小段時(shí)間倒計(jì)數(shù),當(dāng)?shù)褂?jì)數(shù)為0時(shí),則發(fā)出一段音樂聲響。</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)

11、一步提升,產(chǎn)品更新?lián)Q代的節(jié)奏也越來越快。</p><p>  隨著科技的發(fā)展和社會(huì)的進(jìn)步,人們對(duì)數(shù)字鐘的要求越來越高,多功能數(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)化上

12、。由于數(shù)字集成電路的發(fā)展和石英晶體振蕩器的廣泛應(yīng)用,使得數(shù)字鐘的精度遠(yuǎn)遠(yuǎn)超多老式鐘表,鐘表的數(shù)字化給人們生產(chǎn)生活帶來了極大地方便,而且大大的擴(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)用有著非?,F(xiàn)實(shí)的意義。</p><p>  本系統(tǒng)采用單片機(jī)作為數(shù)字鐘的核心控

13、制器,讀取時(shí)鐘的值,并通過LCD液晶顯示器顯示出來,而且可以通過按鍵電路控制執(zhí)行信號(hào),給時(shí)鐘賦初值。還可以設(shè)置鬧鐘,當(dāng)計(jì)數(shù)為0時(shí),發(fā)出一陣音樂聲。并可拓展其功能顯示年月日。</p><p><b>  1.2設(shè)計(jì)要求</b></p><p>  利用AT89C51單片機(jī)結(jié)合字符型LCD顯示器設(shè)計(jì)一個(gè)簡易的倒數(shù)計(jì)數(shù)器,可用來煮方便面、煮開水或小睡片刻等。作品先接受用戶輸

14、入的倒數(shù)計(jì)數(shù)時(shí)間,然后由用戶啟動(dòng)作品工作(可用一個(gè)閃爍的LED燈指示),當(dāng)?shù)褂?jì)數(shù)為0時(shí),則發(fā)出一段音樂聲響,通知倒計(jì)數(shù)終了,該做應(yīng)當(dāng)做的事。</p><p>  定時(shí)鬧鐘的基本功能如下。</p><p>  字符型LCD(16  2)顯示器。</p><p>  顯示格式為“TIME 分分:秒秒”。</p><p>  用

15、4個(gè)按鍵操作來設(shè)置當(dāng)前想要倒計(jì)數(shù)的時(shí)間。一旦按下鍵則開始倒計(jì)數(shù),當(dāng)計(jì)數(shù)為0時(shí),發(fā)出一陣音樂聲</p><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-

16、1 系統(tǒng)框圖</b></p><p>  由系統(tǒng)框圖可看出,本設(shè)計(jì)由單片機(jī)AT89C51、LCD液晶顯示器、控制鍵盤、蜂鳴器、復(fù)位單路和定時(shí)器電路幾大模塊構(gòu)成。</p><p><b>  2.2 元件清單</b></p><p>  主控單片機(jī)采用AT89C51芯片,時(shí)鐘模塊選用一12MHZ晶振,產(chǎn)生時(shí)鐘脈沖。顯示模塊采用LCD1

17、602,設(shè)置部分選用鍵盤按鍵電路,發(fā)聲部分選用BUZZER蜂鳴器。還有一些電源、電阻、電容、接地等。</p><p>  主要元件清單如圖2-2所示:</p><p>  圖2-2 主要元件清單</p><p><b>  AT89C51:</b></p><p>  AT89C51是一種帶4K字節(jié)閃存可編程可擦除只讀存

18、儲(chǔ)器(FPEROM—Flash Programmable and Erasable Read Only Memory)的低電壓,高性能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線

19、、兩個(gè)16位定時(shí)器/計(jì)數(shù)器 、5個(gè)中斷源 、可編程串行通道 、低功耗的閑置和掉電模式 、片內(nèi)振蕩器和時(shí)鐘電路。</p><p><b>  1602LCD :</b></p><p>  1602液晶模塊內(nèi)部的控制器共有11條控制指令,如表2-1所示.</p><p>  表2-1 1602液晶模塊控制指令</p><p&g

20、t;<b>  鍵盤:</b></p><p>  鍵盤采用5個(gè)button,分別控制倒計(jì)時(shí)開始、調(diào)分個(gè)位、調(diào)分十位、調(diào)秒個(gè)位、調(diào)秒十位;另外還加一個(gè)總開關(guān)用于控制所有電路的通電情況。</p><p><b>  蜂鳴器:</b></p><p>  用三極管、電阻和speaker組成蜂鳴器電路。蜂鳴器最重要的特點(diǎn)是只要按

21、照極性要求加上合適的直流電壓就可以發(fā)出固有頻率的聲音。</p><p><b>  3軟件設(shè)計(jì)</b></p><p><b>  3.1 程序流程圖</b></p><p>  3.1.1 主程序流程圖</p><p>  主程序開始初始化,然后掃描鍵盤、復(fù)位電路和計(jì)數(shù)器。當(dāng)鍵盤按鍵有按下時(shí),調(diào)整

22、計(jì)數(shù)器值,LCD顯示新值。當(dāng)復(fù)位鍵有按下時(shí),計(jì)數(shù)器復(fù)位為初值,重新倒計(jì)數(shù)。當(dāng)計(jì)數(shù)器值倒計(jì)為0時(shí),蜂鳴器發(fā)出聲音,計(jì)數(shù)器停止倒計(jì),程序結(jié)束。主程序流程圖如圖3-1所示:</p><p>  圖3-1 主程序流程圖</p><p>  3.1.2 蜂鳴器發(fā)聲程序流程圖</p><p>  蜂鳴器發(fā)聲程序流程圖如圖3-2所示:</p><p>  

23、圖3-2 蜂鳴器發(fā)聲程序流程圖</p><p>  3.2 蜂鳴器發(fā)聲電路原理</p><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

24、中斷方式產(chǎn)生不同頻率, 并用按鍵控制音樂的播放和停止。用三極管、電阻和BUZZER組成蜂鳴器電路。蜂鳴器最重要的特點(diǎn)是只要按照極性要求加上合適的直流電壓就可以發(fā)出固有頻率的聲音。</p><p>  4 PROTEUS仿真結(jié)果</p><p>  4.1 電路原理圖及仿真</p><p>  系統(tǒng)protel99se電路原理圖和proteus電路仿真分別如圖4-1(

25、a)、圖4-1(b)所示</p><p>  圖4-1(a) 總體電路電路原理圖</p><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>

26、;<p>  圖4-2(b)倒計(jì)數(shù)5秒的仿真</p><p>  4.3 蜂鳴器的仿真如下圖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í)

27、,提高了我的電路仿真設(shè)計(jì)能力。雖然設(shè)計(jì)過程中遇到了很多困難,但是在解決這些問題的過程無疑是對(duì)自身專業(yè)素質(zhì)的提高。當(dāng)最終調(diào)試成功的時(shí)候也是對(duì)自己的一種肯定。此次的設(shè)計(jì)不僅增強(qiáng)了自己在專業(yè)設(shè)計(jì)方面的信息,鼓舞了自己,更是一次興趣的培養(yǎng),為以后的學(xué)習(xí)方向明確了重點(diǎn)。</p><p>  另外在這次設(shè)計(jì)中我們遇到了不少的問題,針對(duì)不同的問題我們采取不同的解決方法,最終一一解決了。在我們遇到不懂得問題時(shí),利用課本上、參考書

28、上的知識(shí),以及網(wǎng)上的資料最終解決問題。和隊(duì)友之間相互討論,明白了團(tuán)隊(duì)合作的重要性。</p><p>  本次項(xiàng)目設(shè)計(jì)還存在很多不足,比如,LCD的日期顯示還不夠完美,計(jì)數(shù)功能也不夠詳細(xì)等。以后爭取完善這個(gè)設(shè)計(jì),以提高我們的單片機(jī)設(shè)計(jì)能力。</p><p>  這里很感謝藍(lán)會(huì)立老師給我們的指導(dǎo)和教育,感謝他給我們提供了良好的學(xué)習(xí)設(shè)計(jì)環(huán)境,也很感謝可愛的伙伴們,讓我覺得團(tuán)隊(duì)的力量很偉大。<

29、;/p><p>  6 附表(本設(shè)計(jì)所有程序)</p><p>  #include <reg51.h></p><p>  #include <intrins.h></p><p>  sbit rs= P2^4;</p><p>  sbit rw = P2^5;</p><

30、p>  sbit ep = P2^6;</p><p>  sbit k1=P1^4;</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&

31、gt;  sbit speaker=P3^0;</p><p>  unsigned char code dis1[] = {"605 "};</p><p>  unsigned char code dis2[] = {"TIME 00:00"};</p><p>  unsigned char code dis3[]

32、= {"0123456789"};</p><p>  unsigned int num=0;</p><p>  unsigned int miaogw=0;</p><p>  unsigned int miaosw=0;</p><p>  unsigned int fengw=0;</p><p

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

34、 6,2,3, 5,2,1, 3,2,2, 5,2,2, 1,3,2, 6,2,1, 5,2,1,</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

35、,2,2,</p><p>  5,2,1, 6,2,1, 3,2,2, 2,2,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><

36、p>  // 音階頻率表 高八位</p><p>  code unsigned char FREQH[]={</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&g

37、t;<p>  0xFC,0xFD,0xFD,0xFD,0xFD,0xFE,</p><p>  0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFF,</p><p><b>  } ;</b></p><p>  // 音階頻率表 低八位</p><p>  code unsigned

38、char FREQL[]={</p><p>  0x42,0xC1,0x17,0xB6,0xD0,0xD1,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>

39、<p>  0x47,0x77,0xA2,0xB6,0xDA,0xFA,0x16,</p><p><b>  };</b></p><p>  void delayyy(unsigned char t)</p><p><b>  {</b></p><p>  unsigned c

40、har t1;</p><p>  unsigned long t2;</p><p>  for(t1=0;t1<t;t1++)</p><p><b>  {</b></p><p>  for(t2=0;t2<8000;t2++)</p><p><b>  {<

41、/b></p><p><b>  ;</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  TR0=0;</b></p><p><b>  }<

42、/b></p><p>  void t0int() interrupt 1</p><p><b>  {</b></p><p><b>  TR0=0;</b></p><p>  speaker=!speaker;</p><p>  TH0=timer0h;&

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

44、gt;  TH0=timer0h;</p><p>  TL0=timer0l;</p><p><b>  TR0=1;</b></p><p>  delayyy(time); </p><p><b>  }</b></p><p

45、>  void delay(unsigned char ms)</p><p><b>  {</b></p><p>  unsigned char i;</p><p>  while(ms--)</p><p><b>  {</b></p><p>  for(

46、i = 0; i< 250; i++)</p><p><b>  {</b></p><p><b>  _nop_();</b></p><p><b>  _nop_();</b></p><p><b>  _nop_();</b></

47、p><p><b>  _nop_();</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  bit lcd_bz()</p>

48、<p><b>  {</b></p><p>  bit result;</p><p><b>  rs = 0;</b></p><p><b>  rw = 1;</b></p><p><b>  ep = 1;</b></p&

49、gt;<p><b>  _nop_();</b></p><p><b>  _nop_();</b></p><p><b>  _nop_();</b></p><p><b>  _nop_();</b></p><p>  resu

50、lt = (bit)(P0 & 0x80);</p><p><b>  ep = 0;</b></p><p>  return result;</p><p><b>  }</b></p><p>  void lcd_wcmd(unsigned char cmd)</p>

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

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

53、;<p><b>  _nop_();</b></p><p><b>  ep = 1;</b></p><p><b>  _nop_();</b></p><p><b>  _nop_();</b></p><p><b>

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

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

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

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

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

59、);</p><p>  lcd_pos(0x48);</p><p>  lcd_wdat(dis3[fengw]);</p><p>  lcd_pos(0x4A);</p><p>  lcd_wdat(dis3[miaosw]);</p><p>  lcd_pos(0x4B);</p><

60、p>  lcd_wdat(dis3[miaogw]);</p><p><b>  }</b></p><p>  void lcd_init() //LCD初始化</p><p><b>  {</b></p><p>  lcd_wcmd(0x38);</p><p

61、><b>  delay(1);</b></p><p>  lcd_wcmd(0x0c);</p><p><b>  delay(1);</b></p><p>  lcd_wcmd(0x06);</p><p><b>  delay(1);</b></p&g

62、t;<p>  lcd_wcmd(0x01);</p><p><b>  delay(1);</b></p><p><b>  }</b></p><p>  void keyscan(void)</p><p><b>  {</b></p>

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

64、t;  if(k1==0)</b></p><p><b>  {</b></p><p><b>  fensw++;</b></p><p>  while(!k1);</p><p>  if(fensw==10)</p><p><b>  fe

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

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

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

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

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

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

71、p>  if(miaogw==10)</p><p><b>  miaogw=0;</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  if(k5==0)</b></p>

72、<p><b>  flag=0;</b></p><p>  lcd_wshuzi();</p><p><b>  }</b></p><p><b>  }</b></p><p>  void delay1s(void)</p><p&g

73、t;<b>  {</b></p><p>  unsigned char h,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>  

74、for(k=214;k>0;k--);</p><p><b>  }</b></p><p>  void main(void)</p><p><b>  {</b></p><p>  unsigned char j; unsigned char k,i;</p><

75、;p>  speaker=0;</p><p>  lcd_init();// 初始化LCD</p><p>  delay(10);</p><p>  lcd_pos(0x02);//設(shè)置顯示位置</p><p><b>  j = 0;</b></p><p>  while(dis1

76、[j] != '\0')</p><p><b>  {</b></p><p>  lcd_wdat(dis1[j]);//顯示字符</p><p><b>  j++;</b></p><p><b>  }</b></p><p>

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

78、</p><p><b>  {</b></p><p>  lcd_wdat(dis2[i]);// 顯示字符</p><p><b>  i++; }</b></p><p>  keyscan();</p><p>  num=fensw*600+fengw*60+m

79、iaosw*10+miaogw;</p><p>  while(num)</p><p><b>  {</b></p><p><b>  num--;</b></p><p>  fensw=num/60/10;</p><p>  fengw=num/60%10;&l

80、t;/p><p>  miaosw=num%60/10;</p><p>  miaogw=num%60%10;</p><p>  delay1s();</p><p>  lcd_wshuzi();</p><p><b>  }</b></p><p>  TMOD=1;

81、 //置CT0定時(shí)工作方式1</p><p><b>  EA=1;</b></p><p>  ET0=1;//IE=0x82 //CPU開中斷,CT0開中斷 </p><p><b>  while(1)</b></p><p><b>  {</b></p>

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

83、H[k];</p><p>  timer0l=FREQL[k];</p><p>  time=sszymmh[i+2];</p><p><b>  i=i+3;</b></p><p><b>  song();</b></p><p><b>  }<

84、/b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  } </b></p><p><b>  參考文獻(xiàn)</b></p><p>  [1]康華光,陳大欽. 電子

85、技術(shù)基礎(chǔ)—模擬部分(第五版)[M]. 北京:高等教育出版社,2005</p><p>  [2]李珍.單片機(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&

溫馨提示

  • 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)論