最新版)單片機控制LED及蜂鳴器畢業(yè)課程設(shè)計報告_第1頁
最新版)單片機控制LED及蜂鳴器畢業(yè)課程設(shè)計報告_第2頁
最新版)單片機控制LED及蜂鳴器畢業(yè)課程設(shè)計報告_第3頁
最新版)單片機控制LED及蜂鳴器畢業(yè)課程設(shè)計報告_第4頁
最新版)單片機控制LED及蜂鳴器畢業(yè)課程設(shè)計報告_第5頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、武漢*大學(xué)單片機設(shè)計報告課 程單片機課程設(shè)計設(shè)計題目LED 燈及蜂鳴器年級專業(yè)信息與計算科學(xué)09級學(xué) 號學(xué)生姓名 指導(dǎo)教師 2012年04 月17 日設(shè)計題目:、要求1. 了解LED顯示流水燈的原理。2. 能夠在LED上顯示和控制蜂鳴器的工作3. 熟悉掌握keil軟件的使用。二、分析本設(shè)計使用AT89C52R做為主控制模塊,利用簡單的外圍電路來驅(qū)動LED蝴蝶。設(shè)計分為三個模塊:單片機控制模塊,輸出顯示模塊 和驅(qū)動模塊,單片機控制模塊以單片機為核心,以軟件 KEIL編程實 現(xiàn)信號輸出,以驅(qū)動LED及蜂鳴器為目的。三、設(shè)計1、硬件方面(1)、LED驅(qū)動模塊圖文顯示有靜態(tài)和動態(tài)兩種方案, 本設(shè)計中靜

2、動態(tài)都用到了。動 態(tài)掃描的意思簡單的說就是輪流點亮。 具體就圖案來說,把內(nèi)部同行 的發(fā)光管的陽極相連在一起,先送出對應(yīng)行的發(fā)光管亮滅的數(shù)據(jù)并鎖 存,然后選通其它行使其燃亮相同的時間,然后熄滅。反復(fù)循環(huán)。蜂鳴器的控制則是加入三極管接在 VCC單片機的第20引腳和 負極上,以此來控制蜂鳴器的工作。(2)、硬件設(shè)計實驗板上設(shè)計一個蝴蝶狀的 LED顯示,可用于簡單的圖形圖像。 蝴蝶的圖案是由74個LED綠燈、8個紅燈、10個黃燈拼接而成。其中綠燈直接接到正負極上,黃燈和紅燈接到單片機的P2 口,來控制其閃動。2、軟件編程(包括流程圖、完整的匯編源程序及其注釋)1.電路圖本軟件要求實現(xiàn)如下要求:外圈綠燈

3、亮度明亮,紅燈和黃燈都 不停地閃動,蜂鳴器自動播放歌曲。電路圖如下:-hmh.PMIpi blZEP4J/ft&TCF oQE TXDPl.lSiINTdJfl.2 12INTfPSJLHTOF3.43IT1JW.5HE wA:pa.Hi iti RD:陽 JTflF kf a. ?rf83TC 二 LBOXrl39 I PdOI PQ.l37 | PG.?Jtl M3IE POd 丑P0.5 卻 P0.6JB P0.7| 良凸4啟 彈 Mle. pm a I iwwu Xl-wa2. 主程序本設(shè)計的系統(tǒng)軟件能使系統(tǒng)LED各點亮度均勻,充足,可顯示清 晰圖案,并且閃動。系統(tǒng)主程序開始后,首先是

4、對系統(tǒng)環(huán)境初始化,包括設(shè)置串 口,中斷和端口;然后閃動紅黃燈,由于單片機沒有停機指令,所 以可以設(shè)置系統(tǒng)程序不斷循環(huán)。3. 序代碼如下:#in elude #in elude #in elude #i nclude vintrin s.h#defi ne uchar un sig ned char#defi ne uint un sig ned int#define DY_PORT P2 / 設(shè)置 LED連接的 I/O 組#define DY_SPEED 100 /設(shè)置每一個明亮級的停留時間(值域:065535)struct music_type uchar tone;uchar delay;

5、;void delay (un sig ned int a) / 1ms延時程序un sig ned int i;while( -a != 0)for(i = 0; i 600; i+);/STC單片機在外部晶振為 12MHz時i值上限為600/AT89C51單片機在外部晶振為12MHz時i值上限為125uint code tonetab=/D 調(diào) 7 聲音階 3 個 8度64704,/ 低音 1765120,/ 中音 1765328/ 高音 17;/ ”三十里鋪”/曲譜,每個音符兩項數(shù)據(jù):第1項為音高,第2項為節(jié)拍(以1/4拍為 單位)struct music_type code no te

6、tab=曲譜1 + 14,0x02,2+14,0x04,2+14,0x02,5+14,0x02,1 + 14,0x04,6+7,0x0255+7,0x03,6+7,0x01,5+7,0x02,2+7,0x02,5+7,0x08,1 + 14,0x02,2+14,0x04,2+14,0x02,5+14,0x02,1 + 14,0x04,6+7,0x0255+7,0x03,6+7,0x01,5+7,0x02,2+7,0x02,5+7,0x08,1 + 14,0x02,4+7,0x04,5+7,0x02,1 + 14,0x02,1 + 14,0x04,6+7,0x02,5+7,0x03,6+7,0x

7、01,5+7,0x02,2+7,0x02,5+7,0x08,4+7,0x03,4+7,0x01,3+7,0x02,2+7,0x02,1+7,0x03,2+7,0x01,5+7,0x02,2+7,0x02,1+7,0x08,1 + 14,0x02,2+14,0x04,2+14,0x02,5+14,0x02,1 + 14,0x04,6+7,0x0255+7,0x03,6+7,0x01,5+7,0x02,2+7,0x02,5+7,0x08,1 + 14,0x02,2+14,0x04,2+14,0x02,5+14,0x02,1 + 14,0x04,6+7,0x0255+7,0x03,6+7,0x01,

8、5+7,0x02,2+7,0x02,5+7,0x08,1 + 14,0x02,4+7,0x04,5+7,0x02,1 + 14,0x02,1 + 14,0x04,6+7,0x02,5+7,0x03,6+7,0x01,5+7,0x02,2+7,0x02,5+7,0x08,4+7,0x03,4+7,0x01,3+7,0x02,2+7,0x02,1+7,0x03,2+7,0x01,5+7,0x02,2+7,0x02,1+7,0x08,0,0x00;sbit P10=P1A0;/*sbit SDAT二卩3八4;存器sbit SCLK二P3A5;*/volatile uchar tl1,th1;參數(shù)ui

9、nt led=0x0001;bit dir=0;void T1_sev() in terrupt 3蜂鳴器發(fā)聲頻率 TL1=tl1;TH1=th1;P10=!P10;void INT1_serv() in terrupt 2LED流水方向標志 dir二!dir;void ini t() _task_ 0/連接無源蜂鳴器/連接顯示數(shù)碼的移位寄/存控制定時器1定時/LED初始顯示數(shù)據(jù)/LED流水方向控制標志/定時器T1中斷:控制/重裝定時數(shù)據(jù)/蜂鳴器驅(qū)動倒相/外中斷1,改變/流水方向控制標志改變/任務(wù)0:初始化,激活任務(wù)13 TMOD|=0x10;ET1 = 1;IT 仁1;EX1 = 1;os_

10、create_task(1);/* os_create_task(2);*/os_create_task(3);os_delete_task(0);void disled() _task_ 1顯示 un sig ned int temp;un sig ned int i;while(1) temp=0xA0;for(i=0;i8;i+) /8DY_PORT=temp; delay(DY_SPEED); temp=1;/系統(tǒng)硬件初始化/啟動任務(wù)13/自身撤退/任務(wù)1:16個LED流水個流水燈逐個閃動/調(diào)用延時函數(shù)temp=0xA7;for(i=0;i=1;temp=OxAO;for(i=0;i8

11、;i+) /8個流水燈依次全部點亮DY_PORT=temp;delay(DY_SPEED); / 調(diào)用延時函數(shù)temp=1;temp=0xA7;for(i=0;i=1;os_wait2(K_IVL,10);節(jié)奏void musicplay() _task_ 3三十里鋪”個流水燈依次反向全部點亮調(diào)用延時函數(shù)/控制LED流水顯示的/任務(wù)3:蜂鳴器演奏” uchar i,j;while(1) i=0;while( no tetabi.delay) if(!notetabi.tone) TR1=0;/ 音高數(shù)據(jù)為 0else/音高數(shù)據(jù)不為0 th 仁TH仁 to netab no tetabi.to

12、ne-1/256;/ 用定時參數(shù)控制T1的振蕩頻率(音高)tl仁 TL 仁to netab no tetabi.to ne-1%256;TR 仁1;for(j=0;j no tetabi.delay;j+) 的持續(xù)時間(節(jié)拍)os_wait2(K_IVL,20);i+;TR1=0;os_wait2(K_IVL,100);/該音符發(fā)聲/控制音符/擬換下個音符/停奏/奏完1遍后的等待3、調(diào)試說明使用LEIL軟件編譯調(diào)試代碼,確保無誤后下載到單片機里,硬 件電路連接p2 口 LED的所有跳帽,下載生成的hex文件,即可看到 LED屏幕上能夠出現(xiàn)明亮的蝴蝶圖案并且有歌曲的伴隨。4、設(shè)計結(jié)果及錯誤分析能夠在LED屏上清晰顯示蝴蝶圖案,但是沒有達到流水燈和歌曲 同時實現(xiàn)的目的,經(jīng)努力修改程序代碼還是沒能實現(xiàn)。 直到主動找老 師詢問后,才知道是因為應(yīng)該用10中斷來控制程序的并發(fā)進行,以 后會吸取教訓(xùn)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論