freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于單片機的音樂數(shù)字鐘的設(shè)計與仿真畢業(yè)設(shè)計(文件)

2025-07-30 15:57 上一頁面

下一頁面
 

【正文】 利用單片機的內(nèi)部定時器 0 1 TH0和TL0來產(chǎn)生不同頻率。一首樂曲演奏的原理是不同音階分別對應不同的頻率單片機輔以相應的接口來設(shè)計音樂播放器。 51部件。揚聲器作為輸出部分按照鍵盤給單片機的指令發(fā)出樂曲。從名稱上就可以看出來,它們既具有計數(shù)功能又具有定時功能,通過設(shè)置與它們相關(guān)的特殊功能寄存器可以選擇工作在定時功能或計數(shù)功能。 MCS51 單片機的定時 /計數(shù)器的結(jié)構(gòu)如圖 613 所示。如果定時 /計數(shù)器工作在定時功能,則表示定時的時間到;若工作在計數(shù)功能,則表示計數(shù)器計滿回零。如果定時少于 65536μs,怎么為呢?這就好比一個空的水瓶,要滴 1 萬滴水才會滴滿溢出,我們在開始滴水之前先放入一些水,就不需要1 萬滴了。 當定時 /計數(shù)器處于計數(shù)功能時,外部脈沖信號加在 T0( )腳或 T1( )腳。后 1 個模擬開關(guān)受控制信號的控制,它決定了脈沖是否加到計數(shù)器輸入端,即決定了加 1 計數(shù)器的運行與關(guān)閉。每組 I/O 端口均為 8位,每位由鎖存器、輸出驅(qū)動器和輸入緩沖器等電路組成。 1) P0口:對應 ~ 。 基于單片機的音樂數(shù)字鐘的設(shè)計與仿真 25 2) P1口:對應 ~ 。 P2口為 8位準雙向 I/O 端口,可作為通用 I/O 端口使用,內(nèi)部具有上拉電阻,作為輸入端口時應先將端口的輸出鎖存器置 1。 P3口為 8位準雙向 I/O 端口,可作為通用 I/O 端口使用,內(nèi)部具有上拉電阻,作為輸入端口時應先將端口的輸出鎖存器置 1。 sbit key2=P1^7。 //set 對設(shè)置鍵計次,實現(xiàn) 1 個鍵多個功能 bit flash_m,flash_h,ge_shi,flag_alarm。 unsigned char buf[8]。 if (flash_m) //分鐘閃爍標志 { buf[3]=0xff。 } buf[5]=0xbf。 buf[7]=tab[hour/10]。 if (flash_h) //分鐘閃爍標志 { buf[3]=0xff。 } buf[2]=0xbf。 buf[1]=tab[alarm_min/10]。 P0=buf[i]。 } if (flag_alarm) { P2=01。 } } unsigned char keypress() //按鍵處 理子函數(shù) { unsigned char temp,num。 if (P1!=0xf0) //判斷是否有按鍵按下 { delay(1000)。 //列作輸出,行作輸入 temp=temp|P1。 break。 break。 break。 break。 break。 break。 } button() { unsigned char keyNum。 } ge_shi=!ge_shi。 ge_shi=!ge_shi。 if (alarm_hour23) { alarm_hour=23。 } } } if (set==4) //鬧鐘分鐘數(shù)值調(diào)整 { if (ge_shi) { alarm_min=alarm_min/10*10+keyNum。 } } } } if (keyNum==11) //按下的是設(shè)置鍵 { set=(set+1)%5。 //保證每次都是先調(diào)整十位再調(diào)整個位 } if (keyNum==10) //鬧鐘開啟和關(guān)閉 { flag_alarm=!flag_alarm。 EA=1。 sounder=1。 if (flag_alarmamp。alarm_min==min) { sounder=0。 count++。 min++。 } } } 基于單片機的音樂數(shù)字鐘的設(shè)計與仿真 32 } count_f++。 case 2:flash_m=!flash_m。 case 4:flash_m=!flash_m。 目前, Proteus 仿真系統(tǒng)支持的主流單片機有 ARM 8051/52 系列, AVR 系列、 PIC 系列、 HC11 系列等,它支持的第三方軟件開發(fā)、編譯和調(diào)試環(huán)境有 Keil μVision2/ MPLAB等。后來隨著開發(fā)人員的不斷努力以及版本的不斷升級,使它已經(jīng)成為了一個重要的單片機開發(fā)平臺,不過 KEIL 的界面并不是非常復雜,操作也不是非常困難,很多工程師的開發(fā)的優(yōu)秀程序都是在 KEIL 的平臺上編寫出來的。 Keil 提供了包括 C編譯器、 宏匯編、連接器、庫管理和一個功能強大的仿真調(diào)試器等在內(nèi)的完整開發(fā)方案,通過一個集成開發(fā)環(huán)境( uVision)將這些部份組合在一起。載入目標文件的方法是,雙擊打開 AT89C51 的屬性編輯對話框,如圖 110所示。 由于過分的自信,我以為構(gòu)思也有了寫程 序應該是相對容易的。 徐艷 老師平日里工作繁多,但在我做 畢業(yè)設(shè)計的每個階段,從查閱資料,設(shè)計草案的確定和修改,中期檢查,后期詳 細設(shè)計,裝配草圖等整個過程中都給予了我悉心的指導。此次畢業(yè)設(shè)計才會 順利完成。除了敬佩 徐艷 老師的專業(yè)水平外, 她 的治學嚴謹和科學研究的精神也是我永遠學習的榜樣,并將積極影響我今后的 學習和工作。 基于單片機的音樂數(shù)字鐘的設(shè)計與仿真 37 致謝 經(jīng)過 一 個來來月的忙碌和學習,本次畢業(yè)設(shè)計已經(jīng)接近尾聲,作為一個大專 生的畢業(yè)設(shè)計,由于經(jīng)驗的匱乏,難免有許多考慮不周全的地方,如果沒有導師 的督促指導,以及一起工作的同學們的支持,想要完成這個設(shè)計是難以想象的。 圖 110 單片機載入目標文件對話框 基于單片機的音樂數(shù)字鐘的設(shè)計與仿真 36 Proteus 與 Keil 軟件實現(xiàn) 結(jié)束語 設(shè)計的過程總是充滿了許多的困難與樂趣的,在這不斷的解決問題的過程中,我也在 不斷的進步開始的時候由于沒有經(jīng)驗,不知如何下手,也不知道自己的畢業(yè)設(shè)計應該如何定位,所以就去圖書館找了一些書看,盡管有許多設(shè)計方案,可是總覺得自己還有許多的東西弄不太清楚,于是就請教同學,并與祁春清老師多次交流。 基于單片機的音樂數(shù)字鐘的設(shè)計與仿真 35 圖 118 Keilμ V3 的啟動界面 Proteus 與 Keil 軟件實現(xiàn) 仿真運行 在進行模擬電路、數(shù)字電路仿真時,只需點擊仿真運行按鈕 就可 以了。 單片機開發(fā)中除必要的硬件外,同樣離不開軟件,我們寫的匯編語言源程序要變?yōu)?CPU可以執(zhí)行的機器碼有兩種方法,一種是手工匯編,另一種是機器匯編,目前已極少使用手工匯編的方法了。 Proteus 從原理圖設(shè)計到 PCB 設(shè)計,再到電路板完成的流程如圖 11 所示。 } } } Proteus 軟件仿真與實現(xiàn) 一、仿真軟件 Proteus 簡介 Proteus 軟件是由英國 Labcenter Electronics 公司開發(fā)的 EDA(電子設(shè)計自動化)工具軟件,已有近 20 年的歷史,在全球得到了廣泛應用。 case 3:flash_h=!flash_h。 switch (set) { case 1:flash_h=!flash_h。 hour++。 sec++。 } } } void timer_0( ) interrupt 1 //定時器 0 中斷函數(shù) { TH0=0x3c。alarm_hour==houramp。 button( )。 基于單片機的音樂數(shù)字鐘的設(shè)計與仿真 31 TR0=1。 TH0=0x3c。 //保證分鐘不閃爍時是亮著的 flash_h=0。 } else { if (keyNum6) { alarm_min=keyNum*10+alarm_min%10。 } else { 基于單片機的音樂數(shù)字鐘的設(shè)計與仿真 30 if(keyNum3) { alarm_hour=keyNum*10+alarm_hour%10。 ge_shi=!ge_shi。 ge_shi=!ge_shi。 //返回按鍵號,帶返回值的函數(shù)的應用 if (keyNum10) //按下的是數(shù)字鍵 { if (set==1) //小時數(shù)值調(diào)整 { if (ge_shi) { hour=hour/10*10+keyNum。 while (P1!=0xf0)display()。 break。 break。 break。 break。 break。 break。 //行作輸出,列作輸入 temp=P1。 temp=0xff。 delay(100)。 wk=_crol_(wk,1)。i=7。 buf[1]=0xff。 } else { buf[3]=tab[alarm_hour%10]。 //顯示字母 L buf[7]=tab[10]。 buf[7]=0xff。 } else { buf[3]=tab[min%10]。 buf[1]=tab[sec/10]。 delay(unsigned int j) { while(j)。 unsigned char count,count_f,sec,min,hour,alarm_min,alarm_hour。同時它是雙功能復用口,常使用其第二功能,見表 13。 P2口可驅(qū)動 4個 TTL 負載。 P1口可驅(qū)動 4個 TTL 負載。當訪問外部擴展存儲器時,可作為地址總線低 8位與數(shù)據(jù)總線的分時復用口。同時,還可對每組 I/O 端口進行按位尋址。即對內(nèi)部時鐘脈沖計數(shù)就是定時功能,對外部輸入脈沖計數(shù)就是計數(shù)功能。 圖 613 中有 2 個模擬的位開關(guān),前者決定了定時 /計數(shù)器的功能:當開關(guān)處于上方時為定時功能,處于下方時為計數(shù)功能。在單片機中,也采用類似的方法,稱為預置計數(shù)初值法。由于每個機器周期時間恒定不變,計數(shù)值也就代表了時間,這樣就把定時問題轉(zhuǎn)化成了 計數(shù)問題。計數(shù)器 對兩 個 脈沖源之一進行計數(shù),每輸入 1 個脈沖,計數(shù)值加 1, TH0(或 TH1)和 TL0(或 TL1)是用來存放所計脈沖個數(shù)的寄存器。如果輸入脈沖的周期是固定的,即計數(shù)脈沖的時間間隔相等,那么計數(shù)值就代表了時間,從而可以實現(xiàn)定時。 LED 顯示電路。 如果 1拍為 1/4拍為 求得節(jié)拍的時間。調(diào)整時間時,按下 “設(shè)置 ”鍵,小時數(shù)開始閃爍,表示設(shè)置小時數(shù),第一次輸入數(shù)字鍵調(diào)整十位,第二次輸入數(shù)字鍵調(diào)整個位,再次按下 “設(shè)置 ”鍵,分鐘數(shù)開始閃爍,第一次輸入數(shù)字鍵調(diào)整十 位,第二次輸入數(shù)字鍵調(diào)整個位,再次按下 “設(shè)置 ”鍵,退出調(diào)整,數(shù)碼管不再閃爍。 1. 技能要求 數(shù)字時鐘 需要顯示時、分、秒三個計時單位,每個計時單位有 2 位數(shù)字共需 6 個數(shù)碼管,為顯示美觀和讀取時間方便,在時、分、秒之間顯示分隔符“ ”,共用 8 個數(shù)碼管,顯示格式如圖 66 所示。由于人的動作再快也會使按鈕保持接通達數(shù)十毫基于單片機的音樂數(shù)字鐘的設(shè)計與仿真 21 秒,所以,完全能夠滿足復位的時間要求。單片機系統(tǒng)的復位方式有:手動按鈕復位和上電復位 手動按鈕復位 手動按鈕復位需要人為在復位輸入端 RST 上加入高電平(圖 1)。許多用戶在設(shè)計完單片機系統(tǒng) ,并在實驗室調(diào)試成功后 ,在現(xiàn)場卻出現(xiàn)了“死機”、“程序走飛”等現(xiàn)象 ,這主要是單片機的復位電路 設(shè)計不可靠引起的。 蜂鳴器 的制作 ( 1)制備電磁鐵 M:在長約 6厘米的鐵螺栓上繞 100圈導線 ,線端留下 5厘米作引線 ,用透明膠布把線圈粘好 ,以免線圈松開 ,再用膠布把它粘在一個盒子上 ,電磁鐵就做好了 . ( 2)制備彈片 P:從鐵罐頭盒上剪下一條寬約 2厘米的長鐵片,彎成直 角,把電磁鐵的一條引線接在彈片上,再用膠布把彈片緊貼在木板上. ( 3)用曲別針做觸頭 Q,用書把曲別針墊高,用膠布粘牢,引出一條導線,如圖連接好電路. ( 4)調(diào)節(jié) M 與 P 之間的距離(通過移動盒子),使電磁鐵能吸引彈片,調(diào)節(jié)觸點與彈片之間的距離,使它們能恰好接觸,通電后就可以聽到蜂鳴聲 。在陶瓷片的
點擊復制文檔內(nèi)容
研究報告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1