版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 單片機(jī)課程設(shè)計(jì)帶有l(wèi)cd顯示的音樂倒數(shù)計(jì)數(shù)器
- 帶有l(wèi)cd顯示的音樂倒數(shù)計(jì)數(shù)器課程設(shè)計(jì)
- 帶有l(wèi)cd顯示的音樂倒數(shù)計(jì)數(shù)器課程設(shè)計(jì)
- 課程設(shè)計(jì)-帶有l(wèi)cd顯示的音樂倒數(shù)計(jì)數(shù)器設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)---倒數(shù)計(jì)數(shù)器
- 倒數(shù)計(jì)數(shù)器單片機(jī)課程設(shè)計(jì)
- 基于at89c51帶有l(wèi)cd顯示的音樂倒數(shù)計(jì)數(shù)器課程設(shè)計(jì)
- 微機(jī)原理課程設(shè)計(jì)--基于單片機(jī)設(shè)計(jì)的音樂倒數(shù)計(jì)數(shù)器
- 微機(jī)原理課程設(shè)計(jì)--基于單片機(jī)設(shè)計(jì)的音樂倒數(shù)計(jì)數(shù)器
- 微機(jī)原理課程設(shè)計(jì)--基于單片機(jī)設(shè)計(jì)的音樂倒數(shù)計(jì)數(shù)器.doc
- 單片機(jī)課程設(shè)計(jì)----手動(dòng)計(jì)數(shù)器
- 單片機(jī)計(jì)數(shù)器課程設(shè)計(jì)報(bào)告
- 基于單片機(jī)的頻率計(jì)數(shù)器課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)----語言報(bào)數(shù)計(jì)數(shù)器
- 單片機(jī)課程設(shè)計(jì)(語言報(bào)數(shù)計(jì)數(shù)器)
- lcd顯示設(shè)計(jì)單片機(jī)課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)--簡易頻率計(jì)數(shù)器
- 單片機(jī)課程設(shè)計(jì)外部脈沖計(jì)數(shù)器
- 單片機(jī)lcd系統(tǒng)顯示課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)--音樂倒數(shù)計(jì)時(shí)器
評(píng)論
0/150
提交評(píng)論