音樂(lè)倒數(shù)計(jì)時(shí)器單片機(jī)課程設(shè)計(jì)報(bào)告_第1頁(yè)
音樂(lè)倒數(shù)計(jì)時(shí)器單片機(jī)課程設(shè)計(jì)報(bào)告_第2頁(yè)
音樂(lè)倒數(shù)計(jì)時(shí)器單片機(jī)課程設(shè)計(jì)報(bào)告_第3頁(yè)
音樂(lè)倒數(shù)計(jì)時(shí)器單片機(jī)課程設(shè)計(jì)報(bào)告_第4頁(yè)
音樂(lè)倒數(shù)計(jì)時(shí)器單片機(jī)課程設(shè)計(jì)報(bào)告_第5頁(yè)
已閱讀5頁(yè),還剩16頁(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、音樂(lè)倒是計(jì)時(shí)器一、設(shè)計(jì)要求利用STC89C51單片機(jī)結(jié)合字符型LCD顯示器設(shè)計(jì)一個(gè)簡(jiǎn)易的倒數(shù)計(jì)數(shù)器,可用來(lái)煮方便面、煮開(kāi)水或小睡片刻等。做一小段時(shí)間倒計(jì)數(shù),當(dāng)?shù)褂?jì)數(shù)為0時(shí),則發(fā)出一段音樂(lè)聲響,通知倒計(jì)數(shù)終了,該做應(yīng)當(dāng)做的事。同時(shí)輸出控制一個(gè)繼電器吸合,繼電器驅(qū)動(dòng)一個(gè)3W的大功率LED燈,亮度可以由單片機(jī)控制從50%100%連續(xù)可調(diào)。定時(shí)鬧鐘的基本功能如下。字符型LCD(162)顯示器。顯示格式為“TIME分分:秒秒”。用4個(gè)按鍵操作來(lái)設(shè)置當(dāng)前想要倒計(jì)數(shù)的時(shí)間。一旦按下鍵則開(kāi)始倒計(jì)數(shù),當(dāng)計(jì)數(shù)為0時(shí),發(fā)出一陣音樂(lè)聲。1、程序執(zhí)行后工作指示燈LED閃動(dòng),表示程序開(kāi)始執(zhí)行,按下操作鍵K1K4動(dòng)作如下。

2、K1可調(diào)整倒計(jì)數(shù)的時(shí)間160分鐘。K2 設(shè)置倒計(jì)數(shù)的時(shí)間為5 分鐘,顯示“ 0500 ”。K3設(shè)置倒計(jì)數(shù)的時(shí)間為10分鐘,顯示“1000”。K4設(shè)置倒計(jì)數(shù)的時(shí)間為20分鐘,顯示“2000”。2、復(fù)位后LCD的畫(huà)面應(yīng)能顯示倒計(jì)時(shí)的分鐘和秒數(shù),此時(shí)按K1鍵則在LCD上顯示出設(shè)置畫(huà)面。此時(shí),若:a. 按操作鍵K2增加倒計(jì)數(shù)的時(shí)間1分鐘。b. 按操作鍵K3減少倒計(jì)數(shù)的時(shí)間1分鐘。c. 按操作鍵K4設(shè)置完成。二、系統(tǒng)硬件說(shuō)明2.1 :音樂(lè)倒是計(jì)時(shí)器要實(shí)現(xiàn)一種由單片機(jī)控制的帶LCD顯示的倒數(shù)計(jì)時(shí)器,單片機(jī)工作于12MHz時(shí)鐘頻率,使用其定時(shí)/計(jì)數(shù)器T0,改變計(jì)數(shù)值TH0和TL0可以產(chǎn)生不同頻率的脈沖信號(hào)。

3、該設(shè)計(jì)具有5個(gè)功能按鍵,用戶可以通過(guò)這些按鍵設(shè)置定時(shí)時(shí)間和選擇控制定時(shí),倒計(jì)數(shù)為零時(shí),可通過(guò)揚(yáng)聲器將音樂(lè)播放出來(lái)。系統(tǒng)結(jié)構(gòu)圖如下圖所示2.2 AT89C52AT89C52有40個(gè)引腳,32個(gè)外部雙向輸入/輸出(I/O)端口,同時(shí)內(nèi)含2個(gè)外中斷口,3個(gè)16位可編程定時(shí)計(jì)數(shù)器,2個(gè)全雙工串行通信口,2個(gè)讀寫(xiě)口線,AT89C52可以按照常規(guī)方法進(jìn)行編程,但不可以在線編程(S系列的才支持在線編程)。其將通用的微處理器和Flash存儲(chǔ)器結(jié)合在一起,特別是可反復(fù)擦寫(xiě)的Flash存儲(chǔ)器可有效地降低開(kāi)發(fā)成本。主要特性:兼容MCS51指令系統(tǒng)8k可反復(fù)擦寫(xiě)(1000次)FlashROM32個(gè)雙向I/O口-256

4、x8bit內(nèi)部RAM 3個(gè)16位可編程定時(shí)/計(jì)數(shù)器中斷時(shí)鐘頻率0-24MHZ 2個(gè)串行中斷可編程UART串行通道 2個(gè)外部中斷源共8個(gè)中斷源 2個(gè)讀寫(xiě)中斷口線3級(jí)加密位 低功耗空閑和掉電模式2.3 電路原理圖如下:V3U2 d D- QNDJH&處 Fl ? WXTJIL1 Q-M?K-E.TZ HTS kTXE 8JKTHLOT;Pl 1TTFSPLZ P3J ph P12曲 Pi.'SKJlX? PJ 1TKB P=二國(guó)前 MlI'InTI F3-T0KImmPCImKMIJOEMII既接s常«XT.1L1 nAlJ>uL A *731 ?AJ2PJ

5、1* AI1TU AiaTi2 上曾k1 A9rXQVCC.U z4 JEl逗T?=: 14LQ31«>:-可編輯修改-2.4 電路仿真圖如下:三、系統(tǒng)軟件設(shè)計(jì)音樂(lè)倒數(shù)計(jì)時(shí)器軟件設(shè)計(jì)關(guān)鍵是實(shí)現(xiàn)音樂(lè)的播放。利用定時(shí)計(jì)數(shù)器,通過(guò)載入不同的計(jì)數(shù)初值,產(chǎn)生頻率不同的方波,輸入到蜂鳴器(SOUNER)中,使其發(fā)出頻率不同的聲音。本設(shè)計(jì)中單片機(jī)晶振為11.0592MHz,通過(guò)計(jì)算各音階頻率,可得1、2、3、4、5、6、7共7個(gè)音應(yīng)賦給定時(shí)器的初值為64580、64684、64777、64820、64898、64968、65030。通過(guò)K1K5開(kāi)關(guān)進(jìn)行控制時(shí)間設(shè)置來(lái)完成其基本功能,當(dāng)?shù)褂?jì)時(shí)為

6、零時(shí),通過(guò)通過(guò)蜂鳴器放出一段音樂(lè)。3.1 系統(tǒng)基本流程圖如下:開(kāi)始LCD初始化K5是否按下N計(jì)時(shí)結(jié)束Y開(kāi)始計(jì)時(shí)K6是否按下Music3.2 部分程序如下:#include<reg52.h>#include<intrins.h>#definetime100#defineuintunsignedint#defineucharunsignedcharuintflag,flag0,flag1,flag2,flag3,flag4,flag5,minute,second=60;intt=0,flag6=0;ucharnum,j,i,k=0,time_H,time_L,times,m

7、,n,p;ucharcodetable="TIME00:00"ucharcodeFREQH=0xF2,0xF3,0xF5,0xF5,0xF6,0xF7,0xF8,/低音12345670xF9,0xF9,0xFA,0xFA,0xFB,0xFB,0xFC,0xFC,/1,2,3,4,5,6,7,!0xFC,0xFD,0xFD,0xFD,0xFD,0xFE,/高音12345670xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFF;/超高音1234567ucharcodeFREQL=0x42,0xC1,0x17,0xB6,0xD0,0xD1,0xB6,/低音1234

8、5670x21,0xE1,0x8C,0xD8,0x68,0xE9,0x5B,0x8F,/1,2,3,4,5,6,7,i0xEE,0x44,0x6B,0xB4,0xF4,0x2D,/高音2345670x47,0x77,0xA2,0xB6,0xDA,0xFA,0x16;/超高音1234567uchar code MUSIC=3,2,2,3,2,2,3,2,4,3,2,2,3,2,2,3,2,4,3,2,2,-可編輯修改-5,2,2,1,2,3,2,2,1,3,2,4,4,2,2,4,2,2,4,2,3,4,2,2,4,2,2,3,2,2,3,2,2,3,2,1,3,2,1,3,2,2,2,2,2,

9、2,2,2,1,2,2,2,2,2,5,2,3,5,1,2,5,1,2,3,2,2,2,2,2,1,2,2,5,1,3,5,1,1,5,1,1,5,1,2,3,2,2,2,2,2,1,2,2,6,1,3,6,1,2,6,1,2,4,2,2,3,2,2,2,2,2,6,1,3,6,1,2,0,0,0;sbitkey1=P3A3;sbitkey2=P3A4;sbitkey3=P3A5;sbitkey4=P3A6;sbitkey5=P3A7;sbitP1_0=P1A0;sbitRS=P2A5;sbitRW=P2A6;sbitE=P2A7;sbitled_red=P1A3;voidwrite_time

10、(uintaddr,uintdate);voiddelay(uintz)/延時(shí)函數(shù)/uintx,y;for(x=z;x>0;x-)for(y=110;y>0;y-);voiddelay1(unsignedchard)/us延時(shí)while(-d);voiddelay2(unsignedchard)/延時(shí)1mSwhile(d-)delay1(245);delay1(245);voiddelay3(uchard)/延時(shí)125ms,4/4拍for(m=0;m<d;m+)delay2(125);TR1=0;voidSong()TH1=time_H;/賦值定時(shí)器時(shí)間,決定頻率TL1=ti

11、me_L;TR1=1;/打開(kāi)定時(shí)器delay3(times);/延時(shí)所需要的節(jié)拍voidwrite_com(ucharcom)/1602寫(xiě)命令函數(shù)/RS=0;P0=com;delay(5);E=1;delay(10);E=0;voidwrite_date(uchardate)/1602寫(xiě)數(shù)據(jù)函數(shù)/RS=1;P0=date;delay(5);E=1;delay(10);E=0;voidKEY1()/按鍵1/while(flag1)if(key2=0)delay(time);if(key2=0)if(minute<60)minute=minute+1;write_time(7,minute)

12、;if(key3=0)delay(time);if(key3=0)if(minute>0)minute=minute-1;write_time(7,minute);if(key4=0|key5=0)delay(150);if(key4=0|key5=0)flag1=0;flag=1;TR0=1;voidKEY2()/按鍵2/minute=5;write_time(7,minute);while(flag2)if(key5=0)delay(time);if(key5=0)flag2=0;flag=1;TR0=1;voidKEY3()/按鍵3minute=10;write_time(7,mi

13、nute);while(flag3)if(key5=0)delay(time);if(key5=0)flag3=0;flag=1;TR0=1;voidKEY4()minute=20;write_time(7,minute);while(flag4)if(key5=0)delay(150);if(key5=0)flag4=0;flag=1;TR0=1;voidwrite_time(uintaddr,uintdate)uintge,shi;ge=date%10;shi=date/10;/ 按鍵 4/lcd1602 初始化write_com(0x80+addr);write_date(0x30+sh

14、i);write_date(0x30+ge);if(addr=7&&date=0)j=1;if(j=1&&addr=10&&date=0)flag0=1;TR0=0;TR1=1;flag5=1;/flag5=1voidinit()P3=0xff;RW=0;write_com(0x38);write_com(0x0c);write_com(0x06);write_com(0x80);TMOD=0x11;TH0=(65536-50000)/256;TL0=(65536-50000)%256;TH1=0xfc;TL1=0x44;ET1=1;ET0=1;

15、TR0=1;EA=1;flag0=1;for(num=0;num<12;num+)write_date(tablenum);delay(20);voidstart()/按鍵初始化if(key1=0)delay(time);if(key1=0)flag0=0;flag1=1;KEY1();if(key2=0)delay(time);if(key2=0)flag0=0;flag2=1;KEY2();if(key3=0)delay(time);if(key3=0)flag0=0;flag3=1;KEY3();if(key4=0)delay(150);if(key4=0)flag0=0;flag

16、4=1;KEY4();/ 倒計(jì)程序的子初始化程序voidwrite_time0()minute=minute-1;write_time(7,minute);write_time(10,59);flag=0;/ 倒計(jì)程序voidcounter()while(flag6)led_red=led_red;if(flag=1)write_time0();t=0;flag6=0;second=second-1;write_time(10,second);if(k=1&&second=0)if(minute>0)minute=minute-1;write_time(7,minute);if(second=0)k=1;second=59;intmain()init();while(1)while(flag0)start();counter();while(flag5)TMOD=0x10;/置定時(shí)器1工作方式1EA=1;/打開(kāi)全局中斷ET1=1;/打開(kāi)定時(shí)1中斷while(1i=0;while(i<140)/音樂(lè)數(shù)組長(zhǎng)度,循環(huán)播放-可編輯修改-/ 去音符振

溫馨提示

  • 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ù)網(wǎng)僅提供信息存儲(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)論