實(shí)習(xí)修正版-音樂倒數(shù)計(jì)數(shù)器_第1頁
實(shí)習(xí)修正版-音樂倒數(shù)計(jì)數(shù)器_第2頁
實(shí)習(xí)修正版-音樂倒數(shù)計(jì)數(shù)器_第3頁
實(shí)習(xí)修正版-音樂倒數(shù)計(jì)數(shù)器_第4頁
實(shí)習(xí)修正版-音樂倒數(shù)計(jì)數(shù)器_第5頁
已閱讀5頁,還剩18頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

東北石油大學(xué)課 程 設(shè) 計(jì)課程單片機(jī)課程設(shè)計(jì)題目音樂倒數(shù)計(jì)數(shù)器學(xué)院電氣信息工程學(xué)院專業(yè)班級(jí) 自動(dòng)化11-1學(xué)生姓名 羅宏星學(xué)生學(xué)號(hào) 110601140121指導(dǎo)教師 李艷輝 邵克勇2014年7月7日東北石油大學(xué)課程設(shè)計(jì)任務(wù)書課程單片機(jī)課程設(shè)計(jì)題目音樂倒數(shù)計(jì)數(shù)器專業(yè)自動(dòng)化姓名羅宏星學(xué)號(hào)110601140121(2)顯示主要內(nèi)容:利用 AT89C51單片機(jī)結(jié)合字符型 LCD顯示器設(shè)計(jì)一個(gè)簡易的倒數(shù)計(jì)數(shù)器,做一小段時(shí)間倒計(jì)數(shù),當(dāng)?shù)褂?jì)數(shù)為 0時(shí),則發(fā)出一段音樂聲響?;疽螅憾〞r(shí)鬧鐘的基本功能如下。(1)字符型LCD(16 2)顯示器。格式為“TIME 分分:秒秒”。用4個(gè)按鍵操作來設(shè)置當(dāng)前想要倒計(jì)數(shù)的時(shí)間。 當(dāng)計(jì)數(shù)為0時(shí),發(fā)出一陣音樂聲。程序執(zhí)行后工作指示燈 LED閃動(dòng),表示程序開始執(zhí)行。主要參考資料:張毅剛.單片機(jī)原理及應(yīng)用[M].北京:高等教育出版社,2003.李廣第.單片機(jī)基礎(chǔ)[M].北京:北京航空航天打?qū)W出版社,2009.吳金戎.8051單片機(jī)實(shí)踐與應(yīng)用[M].北京:清華大學(xué)出版社,2003.楊文龍.單片機(jī)技術(shù)及其應(yīng)用[M].北京:電子工業(yè)出版社,2008.王德彪.MCS-51單片機(jī)原理及接口技術(shù)[M].北京:電子工業(yè)出版社,2005.完成期限 2014.6.30-2014.7.4指導(dǎo)教師 李艷輝 邵克勇專業(yè)負(fù)責(zé)人目錄第1章概述. 11.1發(fā)展前景 11.2設(shè)計(jì)要求 11.3設(shè)計(jì)方案 1第2章系統(tǒng)結(jié)構(gòu)及主要元器件 . 22.1AT89C51單片機(jī) 22.2LCD顯示器 3第3章硬件設(shè)計(jì). 43.1顯示電路 43.2輸入電路 43.3復(fù)位電路 53.4報(bào)警電路 5第4章軟件設(shè)計(jì). 64.1程序流程圖 64.2程序源代碼 6第5章系統(tǒng)仿真及調(diào)試. 155.1軟件調(diào)試 155.2軟硬件調(diào)試 155.3系統(tǒng)仿真 17參考文獻(xiàn). 191單片機(jī)控制系統(tǒng)課程設(shè)計(jì)(報(bào)告)第1章概述1.1 發(fā)展前景隨著人們生活水平的不斷提高單片機(jī)控制無疑是人們追求的目標(biāo)之一,它給人帶來的方便也是不可置否的,人們對(duì)它的要求越來越高,要為現(xiàn)代人工作、科研、生活、提供更好的更方便的設(shè)施就需要從單片機(jī)技術(shù)入手, 一切向著數(shù)字化控制,智能化控制方向發(fā)展。本設(shè)計(jì)利用AT89C51單片機(jī)結(jié)合字符型LCD顯示器設(shè)計(jì)一個(gè)簡易的倒數(shù)計(jì)數(shù)器,可用來煮方便面、煮開水或小睡片刻等。做一小段時(shí)間倒計(jì)數(shù),當(dāng)?shù)褂?jì)數(shù)為0時(shí),則發(fā)出一段音樂聲響,通知倒計(jì)數(shù)終了,該做應(yīng)當(dāng)做的事。1.2 設(shè)計(jì)要求利用數(shù)字AT89C51單片機(jī)實(shí)現(xiàn)倒數(shù)計(jì)數(shù)器的功能,設(shè)定時(shí)間后在LED數(shù)碼管上顯示相應(yīng)的時(shí)間。其功能和性能指標(biāo)如下:1、字符型LCD(16 2)顯示器,顯示格式為“ TIME 分分:秒秒”。2、用4個(gè)按鍵操作來設(shè)置當(dāng)前想要倒計(jì)數(shù)的時(shí)間。3、一旦按下鍵則開始倒計(jì)數(shù),當(dāng)計(jì)數(shù)為 0時(shí),發(fā)出一陣音樂聲。4、程序執(zhí)行后工作指示燈 LED閃動(dòng),表示程序開始執(zhí)行,按下操作鍵 K1~K4動(dòng)作如下:1)K1—可調(diào)整倒計(jì)數(shù)的時(shí)間1~60分鐘。2)K2—設(shè)置倒計(jì)數(shù)的時(shí)間為5分鐘,顯示“0500”。3)K3—設(shè)置倒計(jì)數(shù)的時(shí)間為10分鐘,顯示“1000”。4)K4—設(shè)置倒計(jì)數(shù)的時(shí)間為20分鐘,顯示“2000”。5、復(fù)位后LCD的畫面應(yīng)能顯示倒計(jì)時(shí)的分鐘和秒數(shù),此時(shí)按K1鍵,則在LCD上顯示出設(shè)置畫面。此時(shí),若:1)按操作鍵K2—增加倒計(jì)數(shù)的時(shí)間1分鐘。2)按操作鍵K3—減少倒計(jì)數(shù)的時(shí)間1分鐘。3)按操作鍵K4—設(shè)置完成。1.3 設(shè)計(jì)方案音樂倒數(shù)計(jì)數(shù)器所倒數(shù)的時(shí)間由數(shù)字顯示,控制器使用單片機(jī)AT89C51。本設(shè)計(jì)基于單片機(jī)技術(shù)原理,以單片機(jī)芯片AT89C51作為核心控制器,通過硬件電路的制作以及軟件程序的編制,設(shè)計(jì)制作出一個(gè)計(jì)數(shù)器,包括以下功能:輸出時(shí)間,按下鍵就開始計(jì)時(shí),并將時(shí)間顯示在LCD1602顯示器上。當(dāng)?shù)褂?jì)數(shù)為0時(shí),蜂鳴器就發(fā)出音樂聲響等等。該1單片機(jī)控制系統(tǒng)課程設(shè)計(jì)(報(bào)告)計(jì)數(shù)器系統(tǒng)主要由計(jì)數(shù)器模塊、LCD顯示器模塊、蜂鳴器模塊、鍵盤模塊、復(fù)位模塊等部分組成。總體設(shè)計(jì)方框圖如圖1-1所示。復(fù)位電路LCD1602AT89C51鍵盤 蜂鳴器圖1-1總體設(shè)計(jì)方框圖第2章系統(tǒng)結(jié)構(gòu)及主要元器件2.1AT89C51單片機(jī)AT89C51是一種帶4K字節(jié)閃爍可編程可擦除只讀存儲(chǔ)器( FPEROM—FalshProgrammableandErasableReadOnlyMemory)的低電壓,高性能CMOS8位微處理器,俗稱單片機(jī)。AT89C2051是一種帶2K字節(jié)閃爍可編程可擦除只讀存儲(chǔ)器的單片機(jī)。單片機(jī)的可擦除只讀存儲(chǔ)器可以反復(fù)擦除100次。該器件采用ATMEL高密度非易失存儲(chǔ)器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲(chǔ)器組合在單個(gè)芯片中,ATMEL的AT89C51是一種高效微控制器,AT89C2051是它的一種精簡版本。AT89C單片機(jī)為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價(jià)廉的方案。圖2-1AT89C51單片機(jī)引腳2單片機(jī)控制系統(tǒng)課程設(shè)計(jì)(報(bào)告)2.2LCD顯示器1602液晶也叫1602字符型液晶,它是一種專門用來顯示字母、數(shù)字、符號(hào)等的點(diǎn)陣型液晶模塊。它由若干個(gè)5×7或者5×11等點(diǎn)陣字符位組成,每個(gè)點(diǎn)陣字符位都可以顯示一個(gè)字符,每位之間有一個(gè)點(diǎn)距的間隔,每行之間也有間隔,起到了字符間距和行間距的作用。圖2-2LCD1602引腳圖表2-1LCD1602各引腳功能表引腳符號(hào)功能說明1VSS一般接地2VDD接電源+5V3V0液晶顯示器對(duì)比度調(diào)整4RS高電平1時(shí)選擇數(shù)據(jù)寄存器、低電平0時(shí)選擇指令寄存器5R/W高電平1時(shí)進(jìn)行讀操作、低電平0時(shí)進(jìn)行寫操作6E使能端,下降沿使能7DB0低4位三態(tài)、雙向數(shù)據(jù)總線0位8DB1低4位三態(tài)、雙向數(shù)據(jù)總線1位9DB2低4位三態(tài)、雙向數(shù)據(jù)總線2位10DB3低4位三態(tài)、雙向數(shù)據(jù)總線3位11DB4高4位三態(tài)、雙向數(shù)據(jù)總線4位12DB5高4位三態(tài)、雙向數(shù)據(jù)總線5位13DB6高4位三態(tài)、雙向數(shù)據(jù)總線6位14DB7高4位三態(tài)、雙向數(shù)據(jù)總線7位15BLA背光電源正級(jí)16BLK背光電源負(fù)極3單片機(jī)控制系統(tǒng)課程設(shè)計(jì)(報(bào)告)第3章硬件設(shè)計(jì)3.1 顯示電路顯示電路硬件連接如圖3-1所示,有單片機(jī)和一個(gè)LCD1602液晶顯示器組成,P0為輸入口,P2為片選口。圖3-1 顯示電路連接圖3.2 輸入電路按鍵用于控制數(shù)碼顯示、LCD顯示、揚(yáng)聲器等模塊的工作。通過掃描按鍵是否按下,來設(shè)定各模塊的工作情況,使各模塊可以在按鍵的控制下,有序地進(jìn)行工作。設(shè)計(jì)中使用單個(gè)按鍵實(shí)現(xiàn)單個(gè)功能,屬于較為簡單的控制方式。在多功能系統(tǒng)設(shè)計(jì)的試驗(yàn)中我們使用五個(gè)按鍵分別與單片機(jī)的P1.0、P1.1、P1.2、P1.3、P1.4相連。通過按下相應(yīng)的按鍵來處理相應(yīng)的程序。輸入電路連接圖如圖 3-2所示。圖3-2輸入電路連接圖4單片機(jī)控制系統(tǒng)課程設(shè)計(jì)(報(bào)告)3.3 復(fù)位電路當(dāng)MCS-5l系列單片機(jī)的復(fù)位引腳RST(全稱RESET)出現(xiàn)2個(gè)機(jī)器周期以上的高電平時(shí),單片機(jī)就執(zhí)行復(fù)位操作。如果RST持續(xù)為高電平,單片機(jī)就處于循環(huán)復(fù)位狀態(tài)。上電復(fù)位要求接通電源后,自動(dòng)實(shí)現(xiàn)復(fù)位操作。當(dāng)單片機(jī)已在運(yùn)行當(dāng)中時(shí),按下復(fù)位鍵后松開,也能使RST為一段時(shí)間的高電平,從而實(shí)現(xiàn)上電或開關(guān)復(fù)位的操作。復(fù)位電路連接如3-4所示。圖3-3 復(fù)位電路連接圖3.4 報(bào)警電路利用I/O定時(shí)翻轉(zhuǎn)電平來產(chǎn)生驅(qū)動(dòng)波形的方式必須利用定時(shí)器來做定時(shí),通過定時(shí)翻轉(zhuǎn)電平產(chǎn)生符合蜂鳴器要求的頻率的波形,這個(gè)波形就可以用來驅(qū)動(dòng)蜂鳴器了。比如為2500Hz的蜂鳴器的驅(qū)動(dòng),可以知道周期為400μs,這樣只需要驅(qū)動(dòng)蜂鳴器的I/O口每200μs翻轉(zhuǎn)一次電平就可以產(chǎn)生一個(gè)頻率為2500Hz,占空比為1/2duty的方波,再通過三極管放大就可以驅(qū)動(dòng)這個(gè)蜂鳴器了。本設(shè)計(jì)中用單片機(jī)的P1.5引腳控制蜂鳴器。報(bào)警電路連接圖如圖3-4所示。圖3-4 報(bào)警電路連接圖5單片機(jī)控制系統(tǒng)課程設(shè)計(jì)(報(bào)告)第4章軟件設(shè)計(jì)4.1 程序流程圖主程序開始初始化,然后掃描鍵盤、復(fù)位電路和計(jì)數(shù)器。當(dāng)鍵盤按鍵有按下時(shí),調(diào)整計(jì)數(shù)器值,LCD顯示新值。當(dāng)K5鍵按下時(shí)開始計(jì)時(shí),當(dāng)計(jì)數(shù)器值倒計(jì)為 0時(shí),蜂鳴器發(fā)出聲音,計(jì)數(shù)器停止倒計(jì),程序結(jié)束。主程序流程圖如圖 4-1所示。開始初始化是掃描計(jì)數(shù)器掃描鍵盤是否按K5是否是否為按下零下是是否hi否蜂鳴器發(fā)聲調(diào)整計(jì)時(shí)器否LCD顯示計(jì)數(shù)值計(jì)數(shù)器停止計(jì)數(shù)結(jié)束圖4-1 主程序流程圖4.2程序源代碼#include<reg51.h>6單片機(jī)控制系統(tǒng)課程設(shè)計(jì)(報(bào)告)#include<intrins.h>#definetime100#defineuintunsignedint#defineucharunsignedcharuintt,flag,flag0,flag1,flag2,flag3,flag4,flag5,minute,second=60;ucharnum,j,i,k=0;ucharcodetable[]="TIME 00:00";uintcodetable1[]={64580,64684,64777,64820,64898,64968,65030};sbitkey1=P1^0;sbitkey2=P1^1;sbitkey3=P1^2;sbitkey4=P1^3;sbitkey5=P1^4;sbitP1_5=P1^5;sbitRS=P2^6;sbitRW=P2^5;sbitLcdE=P2^7;sbitled_green=P2^0;voidwrite_time(uintaddr,uintdate);voiddelay(uintz){uintx,y;for(x=z;x>0;x--)for(y=110;y>0;y--);}voiddelay1(void){uchara,b,c;for(c=13;c>0;c--)for(b=247;b>0;b--)for(a=142;a>0;a--);_nop_();}voidwrite_com(ucharcom){RS=0;RW=0;7單片機(jī)控制系統(tǒng)課程設(shè)計(jì)(報(bào)告)P0=com;delay(5);LcdE=1;delay(10);LcdE=0;}voidwrite_date(uchardate){RS=1;RW=0;P0=date;delay(5);LcdE=1;delay(10);LcdE=0;}voidKEY1(){while(flag1){if(key2==0){delay(time);if(key2==0){if(minute<60)minute=minute+1;write_time(7,minute);}}if(key3==0){delay(time);if(key3==0){if(minute>0)8單片機(jī)控制系統(tǒng)課程設(shè)計(jì)(報(bào)告)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(){minute=5;write_time(7,minute);while(flag2){if(key5==0){delay(time);if(key5==0){flag2=0;flag=1;TR0=1;}}}}voidKEY3(){9單片機(jī)控制系統(tǒng)課程設(shè)計(jì)(報(bào)告)minute=10;write_time(7,minute);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){10單片機(jī)控制系統(tǒng)課程設(shè)計(jì)(報(bào)告)uintge,shi;ge=date%10;shi=date/10;write_com(0x80+addr);write_date(0x30+shi);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;}}voidinit(){P1=0xff;RW=0;write_com(0x38);write_com(0x0c);write_com(0x06);write_com(0x01);write_com(0x80);TMOD=0x11;TH1=(65536-50000)/256;TL1=(65536-50000)%256;TH0=0xff;TL0=0xff;ET0=1;ET1=1;TR0=0;TR1=0;EA=1;flag0=1;11單片機(jī)控制系統(tǒng)課程設(shè)計(jì)(報(bào)告)for(num=0;num<12;num++){write_date(table[num]);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();12單片機(jī)控制系統(tǒng)課程設(shè)計(jì)(報(bào)告)}}if(key4==0){delay(150);if(key4==0){flag0=0;flag4=1;KEY4();}}}voidwrite_time0(){minute=minute-1;write_time(7,minute);write_time(10,59);flag=0;}voidcounter(){if(t==20){led_green=led_green^1;if(flag==1)write_time0();t=0;second=second-1;write_time(10,second);if(k==1&&second==59){if(minute>0)minute=minute-1;write_time(7,minute);}13單片機(jī)控制系統(tǒng)課程設(shè)計(jì)(報(bào)告)if(second==0){k=1;second=60;}}}intmain(){init();while(1){while(flag0)start();counter();while(flag5){delay1();i++;if(i>7)i=0;}}return0;}voidTimer0() interrupt1{TH0=(65536-50000)/256;TL0=(65536-50000)%256;t++;}voidTimer1()interrupt3{TH1=table1[i]/256;TL1=table1[i]%256;P1_5=~P1_5;14單片機(jī)控制系統(tǒng)課程設(shè)計(jì)(報(bào)告)if(key5==0){delay(100);if(key5==0){TR1=0;flag5=0;k=0;j=0;}}}第5章系統(tǒng)仿真及調(diào)試5.1 軟件調(diào)試軟件調(diào)試是通過對(duì)程序的匯編、連接、執(zhí)行來發(fā)現(xiàn)程序中存在的語法錯(cuò)誤與邏輯錯(cuò)誤并加以排除糾正的過程。通過反復(fù)調(diào)試修改找出了程序中的語法與邏輯錯(cuò)誤,并加以改正,最后調(diào)試成功。5.2軟硬件調(diào)試軟硬件聯(lián)調(diào)是指把調(diào)試無誤的軟件程序燒制進(jìn)單片機(jī)芯片內(nèi)部, 通上電源后,檢查硬件工作是否有預(yù)期的效果,如果沒有則需要檢測軟件是否在實(shí)現(xiàn)功能上有欠缺。若有錯(cuò)誤,通過改寫軟件來調(diào)試,直至達(dá)到預(yù)期效果,則設(shè)計(jì)圓滿成功。本程序在調(diào)試時(shí)發(fā)現(xiàn)k1鍵未達(dá)到預(yù)期效果,通過反復(fù)試驗(yàn),不斷修改最后達(dá)到了預(yù)期效果。修改后的部分程序如下。voidKEY1(){while(flag1){if(key2==0){delay(time);if(key2==0){15單片機(jī)控制系統(tǒng)課程設(shè)計(jì)(報(bào)告)if(minute<60)minute=minute+1;write_time(7,minute);}}if(key3==0){delay(time);if(key3==0){if(minute>0)minute=minute-1;write_time(7,minute);}}if(key4==0||key5==0){dela

溫馨提示

  • 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. 人人文庫網(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)論