單片機(jī)實(shí)習(xí)計(jì)劃包含電子琴_第1頁(yè)
單片機(jī)實(shí)習(xí)計(jì)劃包含電子琴_第2頁(yè)
單片機(jī)實(shí)習(xí)計(jì)劃包含電子琴_第3頁(yè)
單片機(jī)實(shí)習(xí)計(jì)劃包含電子琴_第4頁(yè)
單片機(jī)實(shí)習(xí)計(jì)劃包含電子琴_第5頁(yè)
已閱讀5頁(yè),還剩8頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、微控制器教學(xué)實(shí)習(xí)計(jì)劃班級(jí)10大專(zhuān)機(jī)電數(shù)控電子班課程單片機(jī)原理及應(yīng)用老師實(shí)驗(yàn)名稱(chēng)00-59秒定時(shí)器(使用軟件延時(shí)) ,電子琴目的要求掌握MCS51單片機(jī)小應(yīng)用電路的制作流程,訓(xùn)練其編程方法。材料工具單片機(jī)仿真實(shí)驗(yàn)系統(tǒng)、焊接相關(guān)工具、 00-59秒定時(shí)器相關(guān)元件、電子琴相關(guān)元件。實(shí)習(xí)和日程第十屆大專(zhuān)機(jī)電班第十周上半期; 10大專(zhuān)機(jī)電班第十周第十下半場(chǎng);10個(gè)大專(zhuān)班數(shù)控班第11周上半期; 10大學(xué)院電子班第十二周訓(xùn)練步驟:00-59秒定時(shí)器(使用軟件延時(shí))圖 4.11.111.實(shí)驗(yàn)任務(wù)如下圖所示,AT89S51單片機(jī)的P0和P2端口分別接兩個(gè)普通的負(fù)數(shù)碼管。 P0口驅(qū)動(dòng)顯示第二次的十位,P2口驅(qū)動(dòng)顯

2、示第二次的一位。2.電路原理圖3. 系統(tǒng)板上的硬件接線(1、用8芯線將“MCU系統(tǒng)”區(qū)域的P0.0/AD0-P0.7/AD7端口連接到“四路靜態(tài)數(shù)顯模塊”區(qū)域的任意ah端口;要求:P0 .0/AD0對(duì)應(yīng)a,P0.1/AD1對(duì)應(yīng)b,.,P0.7/AD7對(duì)應(yīng)h。(2. 用8芯線將“MCU系統(tǒng)”區(qū)域的P2.0/A8-P2.7/A15端口連接到“四路靜態(tài)數(shù)顯模塊”區(qū)域的任意ah端口;要求:P2 .0/A8對(duì)應(yīng)a,P2.1/A9對(duì)應(yīng)b,.,P2.7/A15對(duì)應(yīng)h。4.編程內(nèi)容(1、在設(shè)計(jì)過(guò)程中,我們使用一個(gè)存儲(chǔ)單元作為秒計(jì)數(shù)單位,當(dāng)一秒到來(lái)時(shí),讓秒計(jì)數(shù)單位加1。當(dāng)秒計(jì)數(shù)達(dá)到60時(shí),會(huì)自動(dòng)回0,計(jì)數(shù)秒再次

3、 。(2、對(duì)于第二個(gè)計(jì)數(shù)單元中的數(shù)據(jù),需要將十位和個(gè)數(shù)分開(kāi),該方法仍然采用10的整除和10的余數(shù)。(3. 顯示在數(shù)位上,仍需查表完成。(4.這里一秒時(shí)間的生成是通過(guò)軟件精確延時(shí)的方法來(lái)完成的,經(jīng)過(guò)精確計(jì)算,一秒時(shí)間是1.002秒。DELY1S: MOV R5,#100D2: MOV R6,#20D1:MOV R7,#248DJNZ R7,$DJNZ R6, D1DJNZ R5, D2RET5.框圖6.匯編源程序圖4.11.2Second EQU 30H ORG 0 START: MOV Second,#00H 7 C語(yǔ)言源程序#include unsigned char code table=

4、0 x3f,0 x06,0 x5b,0 x4f,0 x66,0 x6d,0 x7d,0 x07,0 x7f,0 x6f;unsigned char Second;void delay1s(void)unsigned char i,j,k;for(k=100;k0;k-)for(i=20;i0;i-)for(j=248;j0;j-);void main(void)Second=0;P0=tableSecond/10;P2=tableSecond%10;while(1)delay1s();Second+;if(Second=60)Second=0;P0=tableSecond/10;P2=tabl

5、eSecond%10; NEXT: MOV A,Second MOV B,#10 DIV AB MOV DPTR,#TABLE MOVC A,A+DPTR MOV P0,A MOV A,B MOVC A,A+DPTR MOV P2,A LCALL DELY1S INC 第二個(gè)MOV A,第二個(gè)CJNE A,#60,NEXT LJMP START DELY1S: MOV R5,#100 D2: MOV R6,#20 D1: MOV R7,#248 DJNZ R7,$ DJNZ R6,D1 DJNZ R5,D2 RET表:DB 3FH,06H,5BH,4FH,66H,6DH,7DH, 07H, 7

6、FH, 6FH結(jié)束“叮咚”門(mén)鈴1.實(shí)驗(yàn)任務(wù)當(dāng)按下開(kāi)關(guān)SP1時(shí),AT89S51單片機(jī)從P1.0口產(chǎn)生“叮咚”聲,輸出到LM386,經(jīng)放大后送至揚(yáng)聲器。2.電路原理圖圖 4.19.13. 系統(tǒng)板上的硬件接線(1、將“MCU系統(tǒng)”區(qū)域的P1.0端口用線連接到“音頻放大器模塊”區(qū)域的SPK IN端口;(2、在“Audio Amplifier Module”區(qū)域的SPK OUT口接一個(gè)8歐或16歐的喇叭;(3、將“MCU系統(tǒng)”區(qū)域的P3.7/RD端口用線連接到“獨(dú)立鍵盤(pán)”區(qū)域的SP1端口;4.編程方法(1、我們使用單片機(jī)實(shí)時(shí)定時(shí)器/計(jì)數(shù)器T0產(chǎn)生700HZ和500HZ的頻率。根據(jù)定時(shí)器/計(jì)數(shù)器T0,我們

7、取250us的時(shí)序。所以700HZ的頻率需要經(jīng)過(guò)3次250us定時(shí),500HZ頻率需要經(jīng)過(guò)4次,250us定時(shí)。(2.在設(shè)計(jì)過(guò)程中,只有按下SP1,T0才開(kāi)始工作,當(dāng)T0完成后,又回到初始狀態(tài)。(3、“?!焙汀斑恕钡穆曇舾餍枰?.5秒,所以定時(shí)器/計(jì)數(shù)器T0需要完成0.5秒的計(jì)時(shí),以250us為基準(zhǔn)只能計(jì)時(shí)2000次。5.框圖主框圖 T0中斷服務(wù)框圖圖 4.19.26 LH 編譯源程序T5HZ EQU 30H T7HZ EQ 31H T05SA EQU 32H T05SB EQU 33H FLAG BIT 00H STOP BIT 01H SP1 BIT P3.7 ORG 00H LJMP O

8、RG 0BJMP INT_T0 START: MOV TMOD,#02H MOV TH0,#06H MOV TL0, 06H SETB ET0 SETB EA NSP: SP1,NSP LCALL DELY10MS SP1,NSP SETB TR0 MOV T5HZ,#00H MOV T7HZ,#00H MOV T05SA,#00H MOV T05SB,#00H CLR FLAG CLR STOP JNB STOP,$ LJMP NSP DELY10MS: MOV R6,#20 D1: MOV R7,#248 DJNZ R7,$ DJNZ R6,D1 RET INT_T0: INC T05SA

9、 MOV A,T05SA CJNE A,#100,NEXT MOV T05SA,#00H INC T05SB MOV A,T05SB CJNE A,# 20,NEXT MOV T05SB,#00H FLAG,STP CPL FLAG LJMP NEXT STP: SETB STOP CLR TR0 LJMP DONE NEXT: FLAG,S5HZ INC T7HZ MOV A,T7HZ CJNE A,#03H,DONE MOV T7HZ,#00H CPL P1.0 LJMP DONE S5HZ: INC T5HZ MOV A,T5HZ CJNE A,#04H,DONE MOV T5HZ,#0

10、0H CPL P1.0 LJMP DONE DONE: RETI END 7 C語(yǔ)言源程序#include unsigned char t5hz;無(wú)符號(hào)字符 t7hz;無(wú)符號(hào)整數(shù) tcnt;位停止;位標(biāo)志; void main(void) unsigned char i,j; TMOD=0 x02; TH0=0 x06; TL0=0 x06; ET0=1; EA=1; while(1) if(P3_7=0) for(i=10;i0;i-) for(j=248;j0;j-);如果(P3_7=0) t5hz=0; t7hz=0; tcnt=0;標(biāo)志=0;停止=0; TR0=1;而(停止=0); v

11、oid t0(void) 使用 0 tcnt+;中斷 1如果(tcnt=2000) tcnt=0;如果(標(biāo)志=0) 標(biāo)志=標(biāo)志; 否則停止 = 1; TR0=0; if(flag=0) t7hz+;如果(t7hz=3) t7hz=0; P1_0=P1_0; 其他 t5hz+;如果(t5hz=4) t5hz=0; P1_0=P1_0; 電子琴1.實(shí)驗(yàn)任務(wù)(1. 4X4 組成的 16 鍵矩陣設(shè)計(jì)為 16 音。(2. 隨意彈奏你想表達(dá)的音樂(lè)。2.電路原理圖圖 4.22.13. 系統(tǒng)板硬件接線(1、將“MCU系統(tǒng)”區(qū)域的P1.0端口用線連接到“音頻放大器模塊”區(qū)域的SPK IN端口;(2、用8芯線將“

12、MCU系統(tǒng)”區(qū)域的P3.0-P3.7端口與“4X4行列式鍵盤(pán)”區(qū)域的C1-C4 R1-R4端口相連;4.相關(guān)節(jié)目?jī)?nèi)容(1. 4X4行列式鍵盤(pán)識(shí)別;(二)音樂(lè)制作方法;一首音樂(lè)是由許多不同的音階組成的,每個(gè)音階對(duì)應(yīng)不同的頻率,這樣我們就可以利用不同頻率的組合來(lái)形成我們想要的音樂(lè)。頻率很方便。我們可以使用微控制器的定時(shí)器/計(jì)數(shù)器T0來(lái)產(chǎn)生這樣的方波頻率信號(hào)。因此,我們只需要修正一首歌曲的音階之間的頻率關(guān)系?,F(xiàn)以單片機(jī)的12MHZ晶振為例,單片機(jī)的高、中、低音符和計(jì)數(shù)T0相關(guān)的計(jì)數(shù)值如下表所示筆記頻率(赫茲)編號(hào)符號(hào)代碼(T值)筆記頻率(赫茲)編號(hào)符號(hào)代碼(T值)低 1 DO26263628#4FA

13、#74064860#1 做#27763731中等 5 SO78464898低 2 RE29463835#5 所以#83164934#2 回復(fù) #31163928中 6 洛杉磯88064968低 3 M33064021#693264994低 4 發(fā)34964103中等 7 SI98865030#4 發(fā)#37064185高 1 DO104665058低 5 SO39264260#1 做#110965085#5SO#41564331高 2 RE117565110低 6 洛杉磯44064400#2 回復(fù)#124565134#6466644633 M 高131865157低 7 SI49464524高

14、4 發(fā)139765178中等 1 DO52364580#4FA#148065198#1 做#55464633高 5 SO156865217中等 2 RE58764684#5SO#166165235#2 回復(fù)#62264732高 6 洛杉磯176065252中 3 M65964777#61865年65268中等 4 FA69864820高 7 SI1967年65283接下來(lái),我們將為此筆記創(chuàng)建一個(gè)表格,這將有助于單片機(jī)通過(guò)查找表格來(lái)獲取相應(yīng)的數(shù)據(jù)。低音在 0-19 之間,中音在 20-39 之間,高音在 40-59 之間表:DW 0,63628,63835,64021,64103,64260,6

15、4400,64524,0,0DW 0,63731,63928,0,64185,64331,64463,0,0,0DW 0,64580,64684,64777,64820,64898,64968,65030,0,0DW 0,64633,64732,0,64860,64934,64994,0,0,0DW 0,65058,65110,65157,65178,65217,65252,65283,0,0DW 0,65085,65134,0,65198,65235,65268,0,0,0深空 02.音樂(lè)的節(jié)拍,一拍為單位(C鍵)調(diào)整值延遲調(diào)整值延遲調(diào) 4/4125毫秒調(diào) 4/462毫秒調(diào) 3/4187毫秒

16、調(diào) 3/494 毫秒調(diào) 2/4250毫秒調(diào) 2/4125毫秒對(duì)于不同的曲調(diào),我們也可以使用單片機(jī)的另一個(gè)定時(shí)器/計(jì)數(shù)器來(lái)完成。下面我們用AT89S51單片機(jī)生成一首“生日快樂(lè)”歌曲來(lái)說(shuō)明單片機(jī)是如何生成的。在這個(gè)程序中,使用了兩個(gè)定時(shí)器/計(jì)數(shù)器來(lái)完成。其中,T0用于生成音符頻率,T1用于生成節(jié)拍。5.框圖圖 4.22.26 3源程序KEYBUF EQU 30H STH0 EQU1H STL0 EQU 32H TEMP EQU 33H ORG 00H LJMP START ORG 0BH LJMP INT_T0 START: MOV TMOD,#01H SETB ET0 SETB EA WAIT

17、: MOV P3,#0FFH CLR P3.4 MOV AP3 ANL A,#0FH XRL A,#0FH JZ NOKEY1 LCALL DELY10MS MOV A,P3 ANL A,#0FH XRL A,#0FH JZ NOKEY1 MOV A,P3 ANL A,#0FH CJNE A,#0EH,NK1 MOV KEYBUF,#0 LJMP DK1 NK1: CJNE A,#0DH,NK2 MOV KEYBUF,#1 LJMP DK1 NK2: CJNE A,#0BH,NK3 MOV KEYBUF,#2 LJMP DK1 NK3: CJNE A,#07H,NK4 MOV KEYBUF,#

18、3 LJMP DK1 NK4: NOP DK1: MOV A,KEYBUF MOV DPTR,#TABLE MOVC A,A+DPTR MOV P0,A MOV A,KEYBUF MOV B,#2 MUL AB MOV TEMP,A MOV DPTR,#TABLE1 MOVC A,A+DPTR MOV STH0,A MOV TH0,A INC TEMP MOV A,TEMP MOVC A,A+DPTR MOV STL0,A MOV TL0,A SETB TR0 DK1A: MOV A,P3 ANL A,#0FH XRL A,#0FH JNZ DK1A CLR TR0 NOKEY1: MOV P

19、3,#0FFH CLR P3.5 MOV A,P3 ANL A,#0FH XRL A,#0FH JZ NOKEY2 LCALL DELY10MS MOV A,P3 ANL A,#0FH XRL A,#0FH JZ NOKEY2 MOV A,P3 ANL A,#0FH CJNE A,#0EH, NK5 MOV KEYBUF,#4 LJMP DK2 NK5 : CJNE A,#0DH,NK6 MOV KEYBUF,#5 LJMP DK2 NK6: CJNE A,#0BH,NK7 MOV KEYBUF,#6 LJMP DK 2 NK7: CJNE A,#07H,NK8 MOV KEYBUF,#7 L

20、JMP DK2 NK8: NOP DK2: MOV A,KEYBUF MOV DPTR,#TABLE MOVC A,A+DPTR MOV P0,A MOV A,KEYBUF MOV B,#2 MUL AB MOV TEMP,A MOV DPTR,#TABLE1 MOVC A,A+DPTR MOV STH0,A MOV TH0,A INC TEMP MOV A,TEMP MOVC A,A+DPTR MOV STL0,A MOV TL0,A SETB TR0 DK2A: MOV A,P3 ANL A,#0FH XRL A,#0FH JNZ DK2A CLR TR0 NOKEY2: MOV P3,#

21、0FFH CLR P3.6 MOV A,P3 ANL A,#0FH XRL A,#0FH JZ NOKEY3 LCALL DELY10MS MOV A,P3 ANL A,#0FH XRL A,#0FH JZ NOKEY3 MOV A,P3 ANL A,#0FH CJNE A,#0EH,NK9 MOV KEYBUF,#8 LJMP DK3 NK9: CJNE A,#0DH,NK10 MOV KEYBUF,#9 LJMP DK3 NK10: CJNE A,#0BH,NK11 MOV KEYBUF,#10 LJMP DK3 NK11: CJNE A,#07H,NK12 MOV KEYBUF,#11

22、LJMP DK3 NK12: NOP DK3: MOV A,KEYBUF MOV DPTR,#TABLE MOVC A, A+DPTR MOV P0,A MOV A,KEYBUF MOV B,#2 MUL AB MOV TEMP,A MOV DPTR,#TABLE1 MOVC A,A+DPTR MOV STH0,A MOV TH0,A INC TEMP MOV A,TEMP MOVC A, A+DPTR MOV STL0,A MOV TL0,A SETB TR0 DK3A: MOV A,P3 ANL A,#0FH XRL A,#0FH JNZ DK3A CLR TR0 NOKEY3: MOV

23、P3,#0FFH CLR P3.7 MOV A,P3 ANL A ,#0FH XRL A,#0FH JZ NOKEY4 LCALL DELY10MS MOV A,P3 ANL A,#0FH XRL A,#0FH JZ NOKEY4 MOV A,P3 ANL A,#0FH CJNE A,#0EH,NK13 MOV KEYBUF,#12 LJMP DK4 NK13: CJNE A,#0DH,NK14 MOV KEYBUF,#13 LJMP DK4 NK14: CJNE A,#0BH,NK15 MOV KEYBUF,#14 LJMP DK4 NK15: CJNE A,#07H, NK16 MOV K

24、EYBUF,#15 LJMP DK4 NK16: NOP DK4: MOV A,KEYBUF MOV DPTR, #TABLE MOVC A,A+DPTR MOV P0,A MOV A,KEYBUF MOV B,#2 MUL AB MOV TEMP,A MOV DPTR,#TABLE1 MOVC A,A+DPTR MOV STH0,A MOV TH0,A INC TEMP MOV A ,TEMP MOVC A,A+DPTR MOV STL0,A MOV TL0,A SETB TR0 DK4A: MOV A,P3 ANL A,#0FH XRL A,#0FH JNZ DK4A CLR TR0 NO

25、KEY4: LJMP WAIT DELY10MS: MOV R6,#10 D1 : MOV R7,#248 DJNZ R7,$ DJNZ R6,D1 RET INT_T0: MOV TH0,STH0 MOV TL0,STL0 CPL P1.0 RETI TABLE: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H DB 7FH ,6FH,77H,7CH,39H,5EH,79H,71H表 1:DW 64021,64103,64260,64400 DW 64524,64580,64684,64777 DW 64820,64898,64968,65030 DW 650158,6

26、5178,76,6 C語(yǔ)言源程序#include unsigned char code table=0 x3f,0 x06,0 x5b,0 x4f, 0 x66,0 x6d,0 x7d, 0 x07,0 x7f,0 x6f,0 x77,0 x7c, 0 x39,0 x5e,0 x79,0 x71 ;無(wú)符號(hào)字符溫度;無(wú)符號(hào)字符鍵;無(wú)符號(hào)字符 i,j;無(wú)符號(hào)字符 STH0;無(wú)符號(hào)字符 STL0;無(wú)符號(hào)整數(shù)代碼 tab=64021,64103,64260,64400, 64524,64580,64684,64777, 64820,64898,64968,65030, 65058,65110,6515

27、7,65178;無(wú)效的主要(無(wú)效) TMOD = 0 x01; ET0=1; EA=1;而(1) P3=0 xff; P3_4=0;溫度=P3;溫度=溫度和0 x0f; if (temp!=0 x0f) for(i=50;i0;i-) for(j=200;j0;j-);溫度=P3;溫度=溫度和0 x0f;如果(溫度!=0 x0f) 溫度=P3;溫度=溫度和0 x0f;開(kāi)關(guān)(溫度) 案例0 x0e:鍵= 0;休息;案例0 x0d:鍵= 1;休息;案例0 x0b:鍵= 2;休息;案例0 x07:鍵= 3;休息; 溫度=P3; P1_0=P1_0; P0=表鍵; STH0=tab鍵/256; STL0=tab鍵%256; TR0=1;溫度=溫度和0 x0f;而(溫度!=0 x0f) 溫度=P3;溫度=溫度和0 x0f; TR0=0; P3=0 xff; P3_5=0;溫度=P3;溫度=溫度和0 x0f; if (temp!=0 x0f) for(i=50;i0;i-) for(j=200;j0;j-);溫度=P3;溫度=溫度和0 x0f;如果(溫度!=0 x0f) 溫度=P3;溫度=溫度和0 x0f;開(kāi)關(guān)(溫度) case 0 x0e: key=4;休息;案例0 x0d:鍵= 5;休息;案例0 x0b:鍵= 6;休息;案例0 x07:鍵=

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論