单片机音乐倒数计时器c语言,音乐倒数计时器单片机课程设计报告.doc
WORD格式 整理分享
范文范例 參考指導(dǎo)
音樂倒是計(jì)時(shí)器
一、設(shè)計(jì)要求
利用STC89C51單片機(jī)結(jié)合字符型LCD顯示器設(shè)計(jì)一個(gè)簡(jiǎn)易的倒數(shù)計(jì)數(shù)器,可用來(lái)煮方便面、煮開水或小睡片刻等。做一小段時(shí)間倒計(jì)數(shù),當(dāng)?shù)褂?jì)數(shù)為0時(shí),則發(fā)出一段音樂聲響,通知倒計(jì)數(shù)終了,該做應(yīng)當(dāng)做的事。同時(shí)輸出控制一個(gè)繼電器吸合,繼電器驅(qū)動(dòng)一個(gè)3W的大功率LED燈,亮度可以由單片機(jī)控制從50%~100%連續(xù)可調(diào)。
定時(shí)鬧鐘的基本功能如下。
字符型LCD(16???2)顯示器。
顯示格式為“TIME 分分:秒秒”。
用4個(gè)按鍵操作來(lái)設(shè)置當(dāng)前想要倒計(jì)數(shù)的時(shí)間。一旦按下鍵則開始倒計(jì)數(shù),當(dāng)計(jì)數(shù)為0時(shí),發(fā)出一陣音樂聲。
1、程序執(zhí)行后工作指示燈LED閃動(dòng),表示程序開始執(zhí)行,按下操作鍵K1~K4動(dòng)作如下。
K1—可調(diào)整倒計(jì)數(shù)的時(shí)間1~60分鐘。
K2—設(shè)置倒計(jì)數(shù)的時(shí)間為5分鐘,顯示“0500”。
K3—設(shè)置倒計(jì)數(shù)的時(shí)間為10分鐘,顯示“1000”。
K4—設(shè)置倒計(jì)數(shù)的時(shí)間為20分鐘,顯示“2000”。
2、復(fù)位后LCD的畫面應(yīng)能顯示倒計(jì)時(shí)的分鐘和秒數(shù),此時(shí)按K1鍵則在LCD上顯示出設(shè)置畫面。此時(shí),若:
a. 按操作鍵K2—增加倒計(jì)數(shù)的時(shí)間1分鐘。
b. 按操作鍵K3—減少倒計(jì)數(shù)的時(shí)間1分鐘。
c. 按操作鍵K4—設(shè)置完成。
二、系統(tǒng)硬件說(shuō)明
2.1:音樂倒是計(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)。該設(shè)計(jì)具有5個(gè)功能按鍵,用戶可以通過這些按鍵設(shè)置定時(shí)時(shí)間和選擇控制定時(shí),倒計(jì)數(shù)為零時(shí),可通過揚(yáng)聲器將音樂播放出來(lái)。
系統(tǒng)結(jié)構(gòu)圖如下圖所示。
振蕩電路復(fù)位電路
振蕩電路
復(fù)位電路
蜂鳴器輸出電路
89C52芯片
LCD顯示電路
按鍵控制電路
2.2 AT89C52
AT89C52有40個(gè)引腳,32個(gè)外部雙向輸入/輸出(I/O)端口,同時(shí)內(nèi)含2個(gè)外中斷口,3個(gè)16位可編程定時(shí)計(jì)數(shù)器,2個(gè)全雙工串行通信口,2個(gè)讀寫口線,AT89C52可以按照常規(guī)方法進(jìn)行編程,但不可以在線編程(S系列的才支持在線編程)。其將通用的微處理器和Flash存儲(chǔ)器結(jié)合在一起,特別是可反復(fù)擦寫的Flash存儲(chǔ)器可有效地降低開發(fā)成本。
主要特性:
· 兼容MCS51指令系統(tǒng) · 8k可反復(fù)擦寫(>1000次)Flash ROM
· 32個(gè)雙向I/O口 · 256x8bit內(nèi)部RAM
· 3個(gè)16位可編程定時(shí)/計(jì)數(shù)器中斷 · 時(shí)鐘頻率0-24MHz
· 2個(gè)串行中斷 · 可編程UART串行通道
· 2個(gè)外部中斷源 · 共8個(gè)中斷源
· 2個(gè)讀寫中斷口線 · 3級(jí)加密位
· 低功耗空閑和掉電模式
2.3電路原理圖如下:
2.4電路仿真圖如下:
三、系統(tǒng)軟件設(shè)計(jì)
音樂倒數(shù)計(jì)時(shí)器軟件設(shè)計(jì)關(guān)鍵是實(shí)現(xiàn)音樂的播放。利用定時(shí)計(jì)數(shù)器,通過載入不同的計(jì)數(shù)初值,產(chǎn)生頻率不同的方波,輸入到蜂鳴器(SOUNER)中,使其發(fā)出頻率不同的聲音。本設(shè)計(jì)中單片機(jī)晶振為11.0592MHz,通過計(jì)算各音階頻率,可得1、2、3、4、5、6、7共7個(gè)音應(yīng)賦給定時(shí)器的初值為64580、64684、64777、64820、64898、64968、65030。通過K1~K5開關(guān)進(jìn)行控制時(shí)間設(shè)置來(lái)完成其基本功能,當(dāng)?shù)褂?jì)時(shí)為零時(shí),通過通過蜂鳴器放出一段音樂。
3.1系統(tǒng)基本流程圖如下:
3.2 部分程序如下:
#include
#include
#define time 100
#define uint unsigned int
#define uchar unsigned char
uint flag,flag0,flag1,flag2,flag3,flag4,flag5,minute,second=60;
int t=0,flag6=0;
uchar num,j,i,k=0,time_H,time_L,times,m,n,p;
uchar code table[]="TIME 00:00";
uchar code FREQH[]={
0xF2,0xF3,0xF5,0xF5,0xF6,0xF7,0xF8,//低音1234567
0xF9,0xF9,0xFA,0xFA,0xFB,0xFB,0xFC,0xFC,//1,2,3,4,5,6,7,!
0xFC,0xFD,0xFD,0xFD,0xFD,0xFE,//高音1234567
0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFF};//超高音123
總結(jié)
以上是生活随笔為你收集整理的单片机音乐倒数计时器c语言,音乐倒数计时器单片机课程设计报告.doc的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: UML系列图2
- 下一篇: Android中怎么重新启动APP或系统