![硬件課程設(shè)計(jì)數(shù)字時(shí)鐘電子琴_第1頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/9/ee4755a0-4a9c-4266-9b6a-b6c59462ba6e/ee4755a0-4a9c-4266-9b6a-b6c59462ba6e1.gif)
![硬件課程設(shè)計(jì)數(shù)字時(shí)鐘電子琴_第2頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/9/ee4755a0-4a9c-4266-9b6a-b6c59462ba6e/ee4755a0-4a9c-4266-9b6a-b6c59462ba6e2.gif)
![硬件課程設(shè)計(jì)數(shù)字時(shí)鐘電子琴_第3頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/9/ee4755a0-4a9c-4266-9b6a-b6c59462ba6e/ee4755a0-4a9c-4266-9b6a-b6c59462ba6e3.gif)
![硬件課程設(shè)計(jì)數(shù)字時(shí)鐘電子琴_第4頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/9/ee4755a0-4a9c-4266-9b6a-b6c59462ba6e/ee4755a0-4a9c-4266-9b6a-b6c59462ba6e4.gif)
![硬件課程設(shè)計(jì)數(shù)字時(shí)鐘電子琴_第5頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/9/ee4755a0-4a9c-4266-9b6a-b6c59462ba6e/ee4755a0-4a9c-4266-9b6a-b6c59462ba6e5.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、硬件課程設(shè)計(jì)實(shí)踐報(bào)告目:硬件課程設(shè)計(jì)級(jí): 號(hào): 名:指導(dǎo)教師:37 / 29實(shí)驗(yàn)、 開發(fā)背景二、 系統(tǒng)總體方案及設(shè)計(jì)2.1基本原理2.2樂理知識(shí)簡(jiǎn)述目錄4.4.5三、 音樂播放器硬件電路的設(shè)計(jì)和調(diào)試3.1 硬件原理電路的設(shè)計(jì)3.2 電路原理圖四、 軟件編程設(shè)計(jì)與測(cè)試4.1 編程思路簡(jiǎn)述.74.2 編程方案設(shè)計(jì).8五、 心得體會(huì)11實(shí)驗(yàn)、 數(shù)字時(shí)鐘的硬件設(shè)計(jì)h .12、 數(shù)字時(shí)鐘的軟件設(shè)計(jì)3.1主程序流程圖- .143.2鬧鐘檢測(cè)程序流程框圖 .163.3音樂程序流程圖 .173.4 顯示子程序流程圖 .17、 開發(fā)背景.12四、核心代碼4.1 初始化代碼.184.2 時(shí)鐘芯片模塊代碼.194.
2、3 音樂模塊代碼.204.4 顯示程序代碼.224.5 按鍵程序代碼.234.6 主程序代碼.26五、焊接工藝總結(jié)27六、心得體會(huì)28一、 開發(fā)背景近年來隨著計(jì)算機(jī)在社會(huì)領(lǐng)域的滲透 , 單片機(jī)的應(yīng)用正在不斷地走向深入, 同時(shí)帶動(dòng)傳統(tǒng)控制檢測(cè)日新月益更新, 在實(shí)時(shí)檢測(cè)和自動(dòng)控制的單片機(jī)應(yīng)用系統(tǒng) 中,單片往是作為一個(gè)核心部件來使用, 智能儀器就是以單片機(jī)為核心開發(fā)的一 系列產(chǎn)品。隨著科技的發(fā)展,智能儀器和單片機(jī)被各個(gè)領(lǐng)域所重視,工業(yè)方面、 冶金方面都存在著許多控制難題, 為了提高工作效率這就需要智能儀器和單片機(jī) 技術(shù)的快速發(fā)展, 為了提高本科生的設(shè)計(jì)創(chuàng)新能力開設(shè)了智能儀器和單片機(jī)的課 程設(shè)計(jì)。本設(shè)
3、計(jì)的目的是培養(yǎng)理論聯(lián)系實(shí)際的學(xué)習(xí)方法以及獨(dú)立解決工程實(shí)際問 題的能力,主要內(nèi)容是利用 89C51 單片機(jī)及其他一些器件來構(gòu)成音樂播放器。二、系統(tǒng)總體方案和設(shè)計(jì)2.1 基本原理聲音是通過振動(dòng)產(chǎn)生的。單片機(jī)對(duì)某一引腳以一定的頻率循環(huán)置1置0,該 引腳便產(chǎn)生一定頻率的方波, 方波通過放大,作用于一定的物理實(shí)件 (揚(yáng)聲器), 就產(chǎn)生了一定頻率的聲音。 若改變輸出方波的頻率, 產(chǎn)生的聲音隨之改變。 通過 控制輸出方波的時(shí)間長(zhǎng)短,聲音的長(zhǎng)短也可以得到控制,因此,根據(jù)樂譜,以類 似的音及同樣的節(jié)拍, 單片機(jī)就可以產(chǎn)生電子音樂。 音樂的播放模式及選擇可以 通過按鍵的輸入得以實(shí)現(xiàn)。為簡(jiǎn)便起見, 以一定的頻率方波
4、產(chǎn)生的音在其每個(gè)周期內(nèi)高低幅值得時(shí)間各占一半因此,輸出引腳在每個(gè)方波周期內(nèi)要?jiǎng)幼鲀纱危阂淮紊?,一次降低。?輸出引腳的頻率是原音頻率的兩倍。方波的產(chǎn)生由定時(shí)器控制。定時(shí)器TO工作 在定時(shí)方式1,改變THO及TLO,產(chǎn)生不同的音頻頻率。必須考慮到中斷響應(yīng)時(shí) 間的影響, 尤其在高音部分, 若忽略中斷響應(yīng)時(shí)間, 會(huì)使音頻頻率比標(biāo)準(zhǔn)值低幾 十Hz,相當(dāng)于1/4音程,很容易聽出來,對(duì)低音部分影響不大。一般中斷響應(yīng) 時(shí)間為36個(gè)機(jī)器周期,經(jīng)過反復(fù)試驗(yàn)取5個(gè)機(jī)器周期作為校正最為恰當(dāng),表1中所給的定時(shí)初值就是考慮中斷響應(yīng)后的定時(shí)常數(shù)。另外,為避免T1中斷可 能引起雜音,應(yīng)將定時(shí)器TO中斷設(shè)為高優(yōu)先級(jí)。這樣編
5、寫出來的程序播放的音 與標(biāo)準(zhǔn)音叉進(jìn)行差頻校音,非常準(zhǔn)確和諧。音樂播放器的基本硬件電路有六部分組成:?jiǎn)纹瑱C(jī)、時(shí)鐘與復(fù)位電路、選擇 按鍵輸入電路、 音頻發(fā)生器、 音頻放大器和揚(yáng)聲器。 音樂播放器硬件電路設(shè)計(jì)框 圖如圖所示。2.2樂理知識(shí)簡(jiǎn)述1、數(shù)組之中的奇數(shù)位數(shù)據(jù)(下劃線的數(shù)組)實(shí)現(xiàn)了對(duì)聲音頻率的控制。2、數(shù)組之中的偶數(shù)位數(shù)據(jù)(沒有下劃線的數(shù)據(jù))實(shí)現(xiàn)了對(duì)于每一個(gè)聲音頻率 的延時(shí)時(shí)長(zhǎng)的控制,即對(duì)應(yīng)樂譜圖上面的節(jié)拍數(shù);3、另外,經(jīng)本人分析之后,我們需要知道的就是:這里的程序其實(shí)就是使用 了不同的聲音頻率實(shí)現(xiàn)對(duì)于低音、中音、高音的do、re、mi、fa、sol、la、si,共21個(gè)音的控制。數(shù)組中的數(shù)值
6、 0x60,0x55,0x4c,0x48,0x40,0x39,0x33,對(duì)應(yīng)低音:do、re、 mi、fa、sol、la、si 數(shù)組中的數(shù)值 0x30,0x2b,0x26,0x24,0x20,0x1c,0x19對(duì)應(yīng)中音: do、re、mi、fa、sol、la、si 數(shù)組中的數(shù)值 0x18,0x15,0x13,0x12,0x10,0x0e,0x0d,對(duì) 應(yīng)高音:do、re、mi、fa、sol、la、si5、樂譜知識(shí)補(bǔ)充:(1)(2)(3)4、使用延時(shí)時(shí)長(zhǎng)來實(shí)現(xiàn)了對(duì)于音樂節(jié)拍數(shù)的控制:樂譜上面數(shù)字上畫點(diǎn)為高音,下畫點(diǎn)為低音,例如:為高音,為低音一個(gè)音符本身為一拍,加下劃線后為 1/2拍,下加等號(hào)為
7、1/4拍; 音符后加-或.表示延長(zhǎng):加-延長(zhǎng)一拍,加.延長(zhǎng)原來的1/2。三、音樂播放器硬件電路的設(shè)計(jì)和調(diào)試3.1硬件原理電路的設(shè)計(jì)S9c51ResetC=22uf R1 = 1E,CAPCAPh *口:RYSTALXIKXDTXDALZ/PP沖v:cU4AYWOT音頻發(fā)生與放大電路Rie(771QQIIPbSPEAKTR3.2電路原理圖四、軟件編程設(shè)計(jì)與測(cè)試4.1編程思路簡(jiǎn)述要產(chǎn)生音頻信號(hào),只要算出某一音頻的周期(頻率的倒數(shù)),將此周期除以 2即為半周期的時(shí)間,利用定時(shí)器計(jì)時(shí)此半周期時(shí)間,計(jì)時(shí)到后取反輸出,重復(fù)此過程即得到此頻率的聲音信號(hào)。此信號(hào)從P3.0腳輸出。定時(shí)器TO工作在定時(shí)方式1,改
8、變THO及TLO,產(chǎn)生不同的音頻頻率。必須 考慮到中斷響應(yīng)時(shí)間的影響,尤其在高音部分,若忽略中斷響應(yīng)時(shí)間,會(huì)使音頻 頻率比標(biāo)準(zhǔn)值低幾十Hz,相當(dāng)于1/4音程,很容易聽出來,對(duì)低音部分影響不 大。一般中斷響應(yīng)時(shí)間為36個(gè)機(jī)器周期,經(jīng)過反復(fù)試驗(yàn)取 5個(gè)機(jī)器周期作為 校正最為恰當(dāng),表2.1中所給的定時(shí)初值就是考慮中斷響應(yīng)后的定時(shí)常數(shù)。另外, 為避免T1中斷可能引起雜音,應(yīng)將定時(shí)器TO中斷設(shè)為高優(yōu)先級(jí)。這樣編寫出來 的程序播放的音與標(biāo)準(zhǔn)音叉進(jìn)行差頻校音,非常準(zhǔn)確和諧。本設(shè)計(jì)中單片機(jī)晶振 頻率為 11.0592MHz每個(gè)音符使用兩個(gè)字節(jié)。低位字節(jié)(偶地址)代表音級(jí),00H表示不發(fā)音(休止符),01hH3
9、0H依次表示的音級(jí)為 C、# C、d、# d、e、f、a3、# a3、b3,詳見表2.1。高位字節(jié)(奇地址)代表音符的時(shí)值(拍數(shù)),OOH-OFH依次表示拍數(shù)為1/8拍(0.10s )8拍(6.40s ),見表2.2。樂曲的結(jié)束標(biāo)志是兩個(gè)字節(jié): 0FFH,0FFH。設(shè)計(jì)延時(shí)程序125ms來控制節(jié)拍,并在延時(shí)中判斷是否有停止鍵按下,以 便隨時(shí)停止音樂。改變延時(shí)程序的延遲時(shí)間,即可實(shí)現(xiàn)歌曲的快慢演奏。主程序的任務(wù)是按順序讀取數(shù)據(jù)表中的字節(jié), 根據(jù)情況調(diào)用音級(jí)子程序和演 唱子程序,啟動(dòng)定時(shí)器TO;通過延時(shí)控制節(jié)拍,并循環(huán)回音級(jí)子程序,等待演 唱完畢。要編寫的樂譜按要求以音符字節(jié)數(shù)據(jù)表的形式存放在程序
10、中, 改變樂曲就是 通過改變?cè)摂?shù)據(jù)表的內(nèi)容來實(shí)現(xiàn)的。主程序的任務(wù)是按順序讀取數(shù)據(jù)表中的字節(jié), 根據(jù)情況調(diào)用音級(jí)子程序和音 長(zhǎng)子程序,啟動(dòng)定時(shí)器TO;根據(jù)定時(shí)器T1應(yīng)中斷的次數(shù),啟動(dòng)定時(shí)器T1。數(shù)據(jù) 表讀完后, 根據(jù)所設(shè)置的循環(huán)演奏次數(shù)決定是否結(jié)束程序。 音級(jí)子程序的任務(wù)是 取出字節(jié)中的音級(jí)部分,分析 THO和TLO中應(yīng)送入何值,送給33H,34耳演唱子 程序的任務(wù)是取出對(duì)應(yīng)頻率值,并乘以 2,啟動(dòng)TO,實(shí)現(xiàn)發(fā)音。之后執(zhí)行延時(shí)程 序,體現(xiàn)節(jié)拍,依此循環(huán),直到音樂結(jié)束。定時(shí)器TO的中斷服務(wù)程序任務(wù)是取反 P3.0輸出產(chǎn)生方波,重新為TH0 TLO 送初值。定時(shí)器 T1 的中斷服務(wù)程序任務(wù)是:判斷計(jì)
11、數(shù)完成否,給 373的控制端高或 低電平,從而實(shí)現(xiàn)數(shù)據(jù)輸出或禁止,達(dá)到二極管亮滅閃爍的效果。當(dāng)樂曲較長(zhǎng)時(shí)(超過 254個(gè)字節(jié)),數(shù)據(jù)表指針溢出,應(yīng)及時(shí)修改基址寄存 器DPTF內(nèi)容,即數(shù)據(jù)表的表頭指針。4.2 編程方案設(shè)計(jì)#include #define uint unsigned int #define uchar unsigned char sbit voice=P IM;uchar code sound=Oxff,Ox4O,Ox4O,Ox4O,Ox2O,Ox4c,Ox2O,Ox26,Ox2O,Ox2b,Ox2O,Ox2b,Ox4O,Ox3O,Ox4O,0x30,0x20,0x4c,0x20
12、,0x20,0x40,0x20,0x40,0x39,0x40,0x40,0x20,0x4c,0x20, 0x40,0x20,0x30,0x20,0x30,0x20,0x30,0x20,0x2b,0x40,0x2b,0x20,0x30,0x20, 0x26,0x20,0x2b,0x40,0x2b,0x20,0x26,0x40,0x26,0x20,0x20,0x20,0x20,0x40, 0x26,0x20,0x2b,0x20,0x30,0x40,0x30,0x20,0x2b,0x20,0x30,0x20,0x39,0x40, 0x39,0x20,0x39,0x20,0x26,0x20,0x2b,
13、0x60,0x30,0x60,0x39,0x40,0x39,0x40, 0x39,0x40,0x26,0x20,0x2b,0x60,0x30,0x60,0x39,0x40,0x39,0x40,0x26,0x20,0x30,0x20,0x2b,0x40,0x2b,0x40,0xff,0x40,0xff,0x40,0x00, ;uchar zdjs=0, jp;del(yj);void main(void)uint dpjs=0;uchar yj;TMOD=0x01,IE=0x82;TH0=0xd8, TL0=0xef;TR0=1;while(1)zdjs=0;dpjs+; yj=sounddpj
14、s;dpjs+; jp=sounddpjs; while(zdjs!=jp)if(yj!=0xff)if(yj!=0)voice=!voice;del(yj); else dpjs=0;break; else voice=0;del(jp);time0() interrupt 1 using 1TH0=0xd8, TL0=0xef; zdjs+;del(yj)uchar yj2=2;while(yj!=0) while(yj2!=0) yj2-;yj2=2; yj-;五、心得體會(huì)通過本次對(duì)音樂播放器的設(shè)計(jì)與制作, 讓我詳細(xì)的了解了關(guān)于音樂播放器的 原理和設(shè)計(jì)理念, 同時(shí)我更進(jìn)一步的了解了各個(gè)芯
15、片的結(jié)構(gòu), 掌握了各個(gè)芯片的 工作原理和具體使用方法。 在連接單片機(jī)外部電路的實(shí)驗(yàn)中, 如熟悉邏輯電路和 各個(gè)引腳的功能,那么電路出錯(cuò)時(shí)便能準(zhǔn)確地找出錯(cuò)誤并及時(shí)修正。實(shí)驗(yàn)、開發(fā)背景數(shù)字鐘是實(shí)現(xiàn)對(duì)“時(shí)”、 “分”、 “秒”數(shù)字顯示的計(jì)時(shí)裝置, 廣泛用于個(gè)人家庭、車站、碼頭、辦公室等公共場(chǎng)所,成為人們生活中不可缺少的必需品, 由于數(shù)字集成電路的發(fā)展和石英晶體振蕩器的廣泛使用, 數(shù)字鐘的精度、 穩(wěn)定度 遠(yuǎn)遠(yuǎn)超過老式機(jī)械鐘。 與傳統(tǒng)機(jī)械鐘相比, 它具有走時(shí)準(zhǔn)確、 顯示直觀無機(jī)械傳 動(dòng)裝置等優(yōu)點(diǎn)。它以其小巧,價(jià)格低廉,走時(shí)精度高,使用方便,便于集成化而 受到了人們的歡迎并很快走進(jìn)了千家萬戶。 因此, 研
16、究數(shù)字鐘, 有著非?,F(xiàn)實(shí)的 意義。二、數(shù)字時(shí)鐘的硬件設(shè)計(jì)本設(shè)計(jì)采用STC89C52R單片機(jī)設(shè)計(jì)一個(gè)數(shù)字電子鐘,通過兩個(gè) 4位一體LED數(shù)碼管顯示時(shí)、分、秒,并設(shè)有6個(gè)按鍵。電路分為6部分,分別為復(fù)位電 路、鍵盤電路、時(shí)鐘電路、蜂鳴器電路、顯示電路和控制電路。復(fù)位電路采用按 鍵復(fù)位方式。鍵盤電路采用獨(dú)立式鍵盤。時(shí)鐘電路用12MHZ的晶振產(chǎn)生時(shí)鐘信號(hào)。蜂鳴器電路由三極管與蜂鳴器組成。 顯示電路采用 8個(gè)三極管驅(qū)動(dòng)兩個(gè) 4位 LED 顯示。控制電路采用8位的STC89C52R單片機(jī)作為CPUSTC89C52R是整個(gè)系統(tǒng)的核心,本項(xiàng)目一共使用的STC89C52R的端口有P1、P0、P2 口及P3 口,
17、其中P0接數(shù)碼管的段控制,P2用于接數(shù)碼管的位控制,實(shí) 現(xiàn)時(shí)鐘的顯示。STC89C52R使用的是12MHz的無源晶振,其振蕩周期是時(shí)鐘周 期的12倍,因此每一條單周期指令的執(zhí)行時(shí)間是 1us;使用P3 口來實(shí)現(xiàn)鍵盤的 操作功能。在程序中對(duì)鍵盤的控制采用的是掃描的方式, 在需要得到鍵盤輸入時(shí),就每 200 毫秒對(duì)鍵盤進(jìn)行一次掃描, 以次來避免鍵盤的過快反應(yīng)從而出現(xiàn)紊亂現(xiàn) 象。STC89C5沖的P3.2、P3.3、P3.4、P3.5及P 1.6 口實(shí)現(xiàn)了整個(gè)系統(tǒng)的五個(gè) 控制鍵,這五個(gè)控制鍵分別是“設(shè)置”、“加一”、“減一”、 “換屏”和“鬧 鐘開關(guān)”, 這五個(gè)控制鍵是整個(gè)系統(tǒng)中的總控制鍵。 同樣,
18、 這五個(gè)控制鍵也是使用掃描的方式進(jìn)行判斷的。但是這五個(gè)控制鍵不需要使用專門的解碼, 而是直接使用低電平的判斷方式來進(jìn)行控制。STC89C52R中的P1.4用于控制蜂鳴器。本系統(tǒng)基本框如圖所示:VCCBT1 13.6V =U4 Y232768HZVCC1VCCIXI3CLEX210GNDRsr7fi5ComiiienT: DSB02時(shí)鐘芯片電路共陽數(shù)碼管管腳圖Q 3站99 ikh 亡0 UlLzlfitisJ6U6IE?12 PSJu 問14 PBZR6 39XSR1374LS244Jll鬥* Pi 辱I屮E. 4LETyT.JI丹 V *M -O *1 h 4LErxRJ7很2?A導(dǎo)一逹仝15
19、74LS244三、數(shù)字時(shí)鐘的軟件設(shè)計(jì)3.1主程序流程圖HdAkU hfU數(shù)碼管顯示電路主程序流程框圖3.2讀DS1302中斷及鬧鐘檢測(cè)程序流程框圖中斷服務(wù)程序流程圖3.3音樂程序流程圖音樂程序流程圖3.4顯示子程序流程圖顯示子程序流程圖四、核心代碼4.1初始化代碼uchar code table=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90;/七段共陽管顯示定義(0,1,2,3,4,5,6,7,8,9)定義年月日-星期定義時(shí)分秒定義鬧鐘的時(shí)分秒uchar day, mon, year,week;uchar hour,m in, sec;uc
20、har h_clock,m_clock,s_clock;uchar or,clock_b,s n, bjcs;/*定義各變量地址*/#defi ne w_s 0x80#defi ne w_m 0x82#defi ne w_h 0x84#defi ne w_d 0x86#defi ne w_mon 0x88#defi ne w_year 0x8c#defi ne w_week 0x8a#define r_s 0x81#defi ne r_m 0x83#define r_h 0x85#define r_day 0x87#define r_mon 0x89#define r_year 0x8d#de
21、fine r_week 0x8b#define w_wp 0x8e4.2 時(shí)鐘芯片模塊代碼void write_c(uchar dat) uchar i; for(i=0;i1;sclk=1;void write_ds(uchar add,uchar dat)rst =0;sclk=0;rst=1;write_c(add);write_c(dat);rst=0;io=1;sclk=1;uchar read_ds(uchar add)uchar i,value;rst=0;sclk=0;rst=1;write_c(add);for(i=0;i=1;sclk=0;if(io)value=value
22、|0x80;/寫數(shù)據(jù)/讀數(shù)據(jù)sclk=1;sclk=1;/10 進(jìn)制轉(zhuǎn)換為 16 進(jìn)制value=(value/16)*10+value%16;return value;/* 設(shè)置時(shí)鐘芯片函數(shù) */void init_ds1302()write_ds(w_wp,0x00); write_ds(w_h,0x00); write_ds(w_year,0x11); write_ds(w_mon,0x12); write_ds(w_d,0x16); write_ds(w_week,0x05); write_ds(w_h,0x11); write_ds(w_m,0x58); write_ds(w_s,0
23、x57);write_ds(w_wp,0x80);/打開寄存器輸入/設(shè)置 24 制/設(shè)置初始年份: /設(shè)置初始月份: /設(shè)置初始日期: /設(shè)置初始星期: /設(shè)置初始時(shí)鐘:2011年12月15日星期 212點(diǎn)00分 00秒/關(guān)閉寄存器輸入4.3 音樂模塊代碼/c 為節(jié)拍常數(shù)變量unsigned char c=0;unsigned char code music_tab = 0x18, 0x30, 0x1C , 0x10, 0x20, 0x40, 0x1C , 0x10, 0x18, 0x10, 0x20 , 0x10, 0x1C, 0x10, 0x18 , 0x40, 0x1C, 0x20, 0
24、x20 , 0x20, 0x1C, 0x20, 0x18 , 0x20, 0x20, 0x80, 0xFF , 0x20, 0x30, 0x1C, 0x10 , 0x18, 0x20, 0x15, 0x20 , 0x1C, 0x20, 0x20, 0x20 , 0x26, 0x40, 0x20, 0x20 , 0x2B, 0x20, 0x26, 0x20 , 0x20, 0x20, 0x30, 0x80 , 0xFF, 0x20, 0x20, 0x1C , 0x10, 0x18, 0x10, 0x20 , 0x20, 0x26, 0x20, 0x2B , 0x20, 0x30, 0x20, 0
25、x2B , 0x40, 0x20, 0x20, 0x1C , 0x10,0x18, 0x10, 0x20 , 0x20,0x26, 0x20, 0x2B , 0x20, 0x30, 0x20, 0x2B , 0x40, 0x20, 0x30, 0x1C , 0x10, 0x18, 0x20, 0x15 , 0x20, 0x1C, 0x20, 0x20 , 0x20, 0x26, 0x40, 0x20 , 0x20, 0x2B, 0x20, 0x26 , 0x20, 0x20, 0x20, 0x30 , 0x80, 0x20, 0x30, 0x1C , 0x10, 0x20, 0x10, 0x1
26、C , 0x10, 0x20, 0x20, 0x26 , 0x20, 0x2B, 0x20, 0x30 , 0x20, 0x2B, 0x40, 0x20 , 0x15, 0x1F, 0x05, 0x20 , 0x10, 0x1C, 0x10, 0x20 , 0x20, 0x26, 0x20, 0x2B , 0x20, 0x30, 0x20, 0x2B , 0x40, 0x20, 0x30, 0x1C , 0x10, 0x18, 0x20, 0x15 , 0x20, 0x1C, 0x20, 0x20 , 0x20, 0x26, 0x40, 0x20 , 0x20, 0x2B, 0x20, 0x2
27、6 , 0x20, 0x20, 0x20, 0x30 , 0x30, 0x20, 0x30, 0x1C , 0x10, 0x18, 0x40, 0x1C , 0x20, 0x20, 0x20, 0x26 , 0x40, 0x13, 0x60, 0x18 , 0x20, 0x15, 0x40, 0x13 , 0x40, 0x18, 0x80, 0x00;/格式為: 頻率常數(shù), 節(jié)拍常數(shù), 頻率常數(shù) , 節(jié)拍常數(shù),Void int0() interrupt 1 /采用中斷 0 控制節(jié)拍TH0=0xd8;TL0=0xef; c-;/控制頻率延時(shí)void delays (unsigned char m
28、) unsigned i=3*m; while(-i);void delaysms(unsigned char a) while(-a);/豪秒延時(shí)子程序void music() unsigned char p,m; unsigned char i=0; TMOD&=0x0f; TMOD =0x01;TH0=0xd8;TL0=0xef;IE=0x82;/m 為頻率常數(shù)變量play: while(k5=0) a:p=music_tabi;if(p=0x00)/如果碰到結(jié)束符 ,延時(shí) 1 秒,回到開始再來一遍 i=0; delaysms(1000); goto play;else if(p=0xf
29、f) /若碰到休止符,延時(shí)100ms繼續(xù)取下一音符i=i+1;delaysms(IOO);TR0=0; goto a;else m=music_tabi+; c=music_tabi+;TR0=1;/取頻率常數(shù)和節(jié)拍常數(shù)/ 開定時(shí)器 1while(c!=0) fm=fm,delays(m);/等待節(jié)拍完成 , 通過 P1 口輸出音頻TR0=0;/關(guān)定時(shí)器 14.4 顯示程序代碼/顯示時(shí)間函數(shù)void dis_t()sec=read_ds(r_s); min=read_ds(r_m); hour=read_ds(r_h); v_time();if(h_clock=read_ds(r_h)&(m_
30、clock=read_ds(r_m)&(s_clock=read_ds(r_s)&clock_b) / 鬧鈴時(shí)間 music();sec=read_ds(r_s);min=read_ds(r_m);hour=read_ds(r_h);v_time(); if(read_ds(r_m)=00)&(read_ds(r_s)=00)feng(1);void dis_d()/顯示日期函數(shù)day=read_ds(r_day); mon=read_ds(r_mon); year=read_ds(r_year); week=read_ds(r_week); view_d();if(h_clock=read_
31、ds(r_h)&(m_clock=read_ds(r_m)&(s_clock=read_ds(r_s) &clock_b)music();if(read_ds(r_m)=00)&(read_ds(r_s)=00) /整點(diǎn)報(bào)時(shí) feng(1);/ 按鍵程序4.5 按鍵程序代碼void key_time()uchar temp,kk; if(k1=0) delay(10); if(k1=0) while(k1=0); sn+;if(sn=1)kk=read_ds(r_s); temp=kk/10*16+kk%10; write_ds(w_wp,0x00); write_ds(w_s,temp);
32、write_ds(w_wp,0x80);switch(sn)case 1:if(k2=0)delay(10);if(k2=0)while(k2=0);kk=read_ds(r_s);temp=(kk+1)/10*16+(kk+1)%10;if(temp=96)temp=0;write_ds(w_wp,0x00);write_ds(w_s,temp);write_ds(w_wp,0x80); if(k3=0) delay(10); if(k3=0) while(k3=0); kk=read_ds(r_s);/禁止寫保護(hù)時(shí)鐘暫停允許寫保護(hù)禁止寫保護(hù)秒初始化 允許寫保護(hù)temp=(kk-1)/10*
33、16+(kk-1)%10; if(temp=0) temp=89; write_ds(w_wp,0x00); write_ds(w_s,temp); write_ds(w_wp,0x80);break;case 2:if(k2=0) delay(10); if(k2=0) while(k2=0); kk=read_ds(r_m); temp=(kk+1)/10*16+(kk+1)%10; if(temp=96) temp=0; write_ds(w_wp,0x00); write_ds(w_m,temp); write_ds(w_wp,0x80); if(k3=0) delay(10); if
34、(k3=0) while(k3=0); kk=read_ds(r_m); temp=(kk-1)/10*16+(kk-1)%10; if(temp=0) temp=89; write_ds(w_wp,0x00); write_ds(w_m,temp); write_ds(w_wp,0x80); break; case 3 : if(k2=0)/禁止寫保護(hù)秒初始化允許寫保護(hù)禁止寫保護(hù)分初始化允許寫保護(hù)禁止寫保護(hù)分初始化 允許寫保護(hù)delay(10); if(k2=0) while(k2=0); kk=read_ds(r_h); temp=(kk+1)/10*16+(kk+1)%10; if(te
35、mp=36) temp=0; write_ds(w_wp,0x00); write_ds(w_h,temp); write_ds(w_wp,0x80); if(k3=0)delay(10);if(k3=0) while(k3=0); kk=read_ds(r_h); temp=(kk-1)/10*16+(kk-1)%10; if(temp=0) temp=35; write_ds(w_wp,0x00); write_ds(w_h,temp); write_ds(w_wp,0x80); break; default: sn=0;/4.6 主程序代碼void main()or=1; h_clock=11; m_clock=59; s_clock=05; clock_b=1; init_ds1
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年五股東共同投資協(xié)議文本
- 2025年新型可控氣氛爐項(xiàng)目申請(qǐng)報(bào)告模稿
- 2025年醫(yī)療行業(yè)信息共享合同樣式
- 2025年創(chuàng)意企業(yè)合作協(xié)議標(biāo)準(zhǔn)文本
- 2025年分期付款合同服務(wù)全方位指南
- 2025年供應(yīng)商與采購商海鮮交易合同
- 2025年酸堿平衡調(diào)節(jié)藥項(xiàng)目規(guī)劃申請(qǐng)報(bào)告
- 2025年廢棄土地資源化合同
- 2025年專利申請(qǐng)買賣雙方協(xié)議
- 2025年人才選拔與委托合作協(xié)議標(biāo)準(zhǔn)文本
- 2025年陜西延長(zhǎng)石油集團(tuán)礦業(yè)公司招聘筆試參考題庫含答案解析
- 2025中國煙草/中煙工業(yè)招聘易考易錯(cuò)模擬試題(共500題)試卷后附參考答案
- 2025至2030年中國PVC熱縮封帽數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 2025年遼寧農(nóng)業(yè)職業(yè)技術(shù)學(xué)院高職單招高職單招英語2016-2024年參考題庫含答案解析
- 《教育強(qiáng)國建設(shè)規(guī)劃綱要(2024-2035年)》解讀與培訓(xùn)
- 2025年市場(chǎng)營銷人員工作計(jì)劃
- 老年髖部骨折患者圍術(shù)期下肢深靜脈血栓基礎(chǔ)預(yù)防專家共識(shí)(2024版)解讀 課件
- 三年級(jí)上冊(cè)豎式計(jì)算練習(xí)300題及答案
- 民事庭審筆錄
- 《安全監(jiān)理上崗培訓(xùn)》PPT課件.ppt
- 青島海洋地質(zhì)研究所公開招聘面試答辯PPT課件
評(píng)論
0/150
提交評(píng)論