浓毛老太交欧美老妇热爱乱,蜜臀性色av免费,妺妺窝人体色www看美女,久久久久久久久久久大尺度免费视频,麻豆人妻无码性色av专区

位置:51電子網(wǎng) » 技術(shù)資料 » 音響技術(shù)

簡易電子琴的設(shè)計(jì)

發(fā)布時(shí)間:2007/8/20 0:00:00 訪問次數(shù):669

一、設(shè)計(jì)題目:
設(shè)計(jì)一簡易電子琴,要求能夠發(fā)出1、2、3、4、5、6、7等七個(gè)音符。
使用元件:AT89C51、LM324,喇叭,按鍵等
二、設(shè)計(jì)目的
(1)能夠?qū)﹄娮与娐贰㈦娮釉骷、印制電路板等方面的知識(shí)有進(jìn)一步的認(rèn)識(shí),獨(dú)立對(duì)其進(jìn)行測試與檢查。
(2)熟悉8051單片機(jī)的內(nèi)部結(jié)構(gòu)和功能,合理使用其內(nèi)部寄存器,能夠完成相關(guān)軟件編程設(shè)計(jì)工作。
(3)為實(shí)現(xiàn)預(yù)期功能,能夠?qū)ο到y(tǒng)進(jìn)行快速的調(diào)試,并能夠?qū)Τ霈F(xiàn)的功能故障進(jìn)行分析,及時(shí)修改相關(guān)軟硬件。
(4)對(duì)軟件編程、排錯(cuò)調(diào)試、焊接技術(shù)、相關(guān)儀器設(shè)備的使用技能等方面得到較全面的鍛煉和提高。
三、系統(tǒng)硬件圖



流程圖:




原理:
(一)音樂產(chǎn)生原理及硬件設(shè)計(jì)
由于一首音樂是許多不同的音階組成的,而每個(gè)音階對(duì)應(yīng)著不同的頻率,這樣我們就可以利用不同的頻率的組合,即可構(gòu)成我們所想要的音樂了,當(dāng)然對(duì)于單片機(jī)來產(chǎn)生不同的頻率非常方便,我們可以利用單片機(jī)的定時(shí)/計(jì)數(shù)器T0來產(chǎn)生這樣方波頻率信號(hào),因此,我們只要把一首歌曲的音階對(duì)應(yīng)頻率關(guān)系弄正確即可。
本次設(shè)計(jì)中單片機(jī)晶振為12MHZ,那么定時(shí)器的計(jì)數(shù)周期為1MHZ,假如選擇工作方式1,那T值便為T=216--5﹡105/相應(yīng)的頻率,那么根據(jù)不同的頻率計(jì)算出應(yīng)該賦給定時(shí)器的計(jì)數(shù)值,列出不同音符與單片機(jī)計(jì)數(shù)T0相關(guān)的計(jì)數(shù)值如下表所示:



采用查表程序進(jìn)行查表時(shí),可以為這個(gè)音符建立一個(gè)表格,有助于單片機(jī)通過查表的方式來獲得相應(yīng)的數(shù)據(jù):
TABLEDW64580,64684,64777,64820,64898,64968,65030
源程序:
方案一:產(chǎn)生按鍵音符
ORG0000H
LJMPMAIN
ORG000BH
LJMPBREAK
MAIN:MOVTMOD,#01H;設(shè)置定時(shí)器0的工作方式
SETBEA
SETBET0;設(shè)置定時(shí)器0中斷
SETBTR0;啟動(dòng)定時(shí)器0
WAIT1:LCALLKEY;調(diào)用KEY子程序,判斷有鍵按下否?第幾個(gè)鍵?
CLREA;屏蔽中斷
CJNER3,#00H,WAIT1;如果R3=0,表示有鍵按下
MOVA,22H;將22H里存放的按鍵號(hào)送給A
RLA;因?yàn)椴楸砝锒际亲,所以得?查得數(shù)據(jù)
MOVDPTR,#TABLE;指向表頭
MOVCA,@A+DPTR;查表
MOVTH0,A;將數(shù)據(jù)高位送TH0
MOV21H,A;將高位備份
MOVA,22H;將22H里存放的按鍵號(hào)送給A
RLA;因?yàn)椴楸砝锒际亲,所以得?查得數(shù)據(jù)
INCA;取低位數(shù)據(jù)
MOVCA,@A+DPTR
MOVTL0,A
MOV20H,A
WAIT2:LCALLKEY
SETBEA
CJNER3,#00H,WAIT1
JMPWAIT2
KEY:MOVR3,#00H;KEY子程序,判斷有鍵按下否?第幾個(gè)鍵?
MOVR1,#0FFH
MOVR0,#00H
MOVA,R1
MOVP2,A
MOVA,P2
CLRC
CPLC;利用標(biāo)志位CY來判斷是哪個(gè)鍵按下
MOVR2,#08H
WAIT3:RLCA;移位判斷
JNCSTORE
INCR0
DJNZR2,WAIT3
STORE:MOV22H,R0;將按鍵號(hào)存22H,R3=0有鍵按下
MOVR3,#00H
RET
BREAK:PUSHACC;中斷產(chǎn)生方波,從P1.0口輸出
PUSHPSW
MOVTL0,20H
MOVTH0,21H
CPLP1.0
POPPSW
POPACC
RETI
TABLE:DW65030,64968,64898,64820,64777,64684,64580;7,6,5,4,3,2,1
END
方案二:產(chǎn)生按鍵音符
ORG0000H
SJMPSTART
ORG000BH
AJMPINT_0
ORG0030H
START:MOVP1,#00H
SETBEA
SETBET0;計(jì)數(shù)器0
MOVTMOD,#02H
MOVTH1,#09CH
MOVTL1,#09CH;定時(shí)器初植
CLRTR0;定時(shí)器不允許
SCAN:;鍵盤掃描
MOVA,P2;判斷鍵盤按下,跳到SCAN_1,若未按,繼續(xù)掃描
CJNEA,#0FFH,SCAN_1
NOP
SJMPSCAN
SCAN_1:ACALLDELAY;是不是真的要按下?如果是,則跳轉(zhuǎn)SU_KEY查詢是哪個(gè)按下?
MOVA,P2
CJNEA,#0FFH,SU_KEY
NOP
SJMPSCAN
SU_KEY:JNBP2.1,MU_1;判斷是哪個(gè)鍵按下?
JNBP2.2,MU_2
JNBP2.3,MU_3
JNBP2.4,MU_4
JNBP2.5,MU_5
JNBP2.6,MU_6
JNBP2.7,MU_7
SJMPSCAN
;R1信號(hào)周期
MU_1:MOVR1,#19;如果第一個(gè)按鍵按下,則R1=19,同時(shí)程序轉(zhuǎn)NEXT
SJMPNEXT
MU_2:MOVR1,#17
SJMPNEXT
MU_3:MOVR1,#15
SJMPNEXT
MU_4:MOVR1,#14
SJMPNEXT
MU_5:MOVR1,#13
SJMPNEXT
MU_6:MOVR1,#11
SJMPNEXT
MU_7:MOVR1,#10
SJMPNEXT
NEXT:MOVA,R1
MOVR0,A
SETBTR0;啟動(dòng)定時(shí)器0
NEXT_1:MOVA,P2;沒鍵按下繼續(xù)執(zhí)行,有鍵按下,返回讀引腳
CJNEA,#0FFH,NEXT_1
ACALLDELAY
MOVA,P2;真的沒鍵按下?
CJNEA,#0FFH,NEXT_1
CLRTR0;不響
AJMPSCAN;掃描鍵盤去
INT_0:;中斷程序
DJNZR0,RE;R0不等于0時(shí),返回
CPLP1.0
MOVA,R1
MOVR0,A
RE:RETI
DELAY:MOVR7,#100;延長時(shí)間等待,鍵盤消抖<

一、設(shè)計(jì)題目:
設(shè)計(jì)一簡易電子琴,要求能夠發(fā)出1、2、3、4、5、6、7等七個(gè)音符。
使用元件:AT89C51、LM324,喇叭,按鍵等
二、設(shè)計(jì)目的
(1)能夠?qū)﹄娮与娐、電子元器件、印制電路板等方面的知識(shí)有進(jìn)一步的認(rèn)識(shí),獨(dú)立對(duì)其進(jìn)行測試與檢查。
(2)熟悉8051單片機(jī)的內(nèi)部結(jié)構(gòu)和功能,合理使用其內(nèi)部寄存器,能夠完成相關(guān)軟件編程設(shè)計(jì)工作。
(3)為實(shí)現(xiàn)預(yù)期功能,能夠?qū)ο到y(tǒng)進(jìn)行快速的調(diào)試,并能夠?qū)Τ霈F(xiàn)的功能故障進(jìn)行分析,及時(shí)修改相關(guān)軟硬件。
(4)對(duì)軟件編程、排錯(cuò)調(diào)試、焊接技術(shù)、相關(guān)儀器設(shè)備的使用技能等方面得到較全面的鍛煉和提高。
三、系統(tǒng)硬件圖



流程圖:




原理:
(一)音樂產(chǎn)生原理及硬件設(shè)計(jì)
由于一首音樂是許多不同的音階組成的,而每個(gè)音階對(duì)應(yīng)著不同的頻率,這樣我們就可以利用不同的頻率的組合,即可構(gòu)成我們所想要的音樂了,當(dāng)然對(duì)于單片機(jī)來產(chǎn)生不同的頻率非常方便,我們可以利用單片機(jī)的定時(shí)/計(jì)數(shù)器T0來產(chǎn)生這樣方波頻率信號(hào),因此,我們只要把一首歌曲的音階對(duì)應(yīng)頻率關(guān)系弄正確即可。
本次設(shè)計(jì)中單片機(jī)晶振為12MHZ,那么定時(shí)器的計(jì)數(shù)周期為1MHZ,假如選擇工作方式1,那T值便為T=216--5﹡105/相應(yīng)的頻率,那么根據(jù)不同的頻率計(jì)算出應(yīng)該賦給定時(shí)器的計(jì)數(shù)值,列出不同音符與單片機(jī)計(jì)數(shù)T0相關(guān)的計(jì)數(shù)值如下表所示:



采用查表程序進(jìn)行查表時(shí),可以為這個(gè)音符建立一個(gè)表格,有助于單片機(jī)通過查表的方式來獲得相應(yīng)的數(shù)據(jù):
TABLEDW64580,64684,64777,64820,64898,64968,65030
源程序:
方案一:產(chǎn)生按鍵音符
ORG0000H
LJMPMAIN
ORG000BH
LJMPBREAK
MAIN:MOVTMOD,#01H;設(shè)置定時(shí)器0的工作方式
SETBEA
SETBET0;設(shè)置定時(shí)器0中斷
SETBTR0;啟動(dòng)定時(shí)器0
WAIT1:LCALLKEY;調(diào)用KEY子程序,判斷有鍵按下否?第幾個(gè)鍵?
CLREA;屏蔽中斷
CJNER3,#00H,WAIT1;如果R3=0,表示有鍵按下
MOVA,22H;將22H里存放的按鍵號(hào)送給A
RLA;因?yàn)椴楸砝锒际亲郑缘贸?查得數(shù)據(jù)
MOVDPTR,#TABLE;指向表頭
MOVCA,@A+DPTR;查表
MOVTH0,A;將數(shù)據(jù)高位送TH0
MOV21H,A;將高位備份
MOVA,22H;將22H里存放的按鍵號(hào)送給A
RLA;因?yàn)椴楸砝锒际亲,所以得?查得數(shù)據(jù)
INCA;取低位數(shù)據(jù)
MOVCA,@A+DPTR
MOVTL0,A
MOV20H,A
WAIT2:LCALLKEY
SETBEA
CJNER3,#00H,WAIT1
JMPWAIT2
KEY:MOVR3,#00H;KEY子程序,判斷有鍵按下否?第幾個(gè)鍵?
MOVR1,#0FFH
MOVR0,#00H
MOVA,R1
MOVP2,A
MOVA,P2
CLRC
CPLC;利用標(biāo)志位CY來判斷是哪個(gè)鍵按下
MOVR2,#08H
WAIT3:RLCA;移位判斷
JNCSTORE
INCR0
DJNZR2,WAIT3
STORE:MOV22H,R0;將按鍵號(hào)存22H,R3=0有鍵按下
MOVR3,#00H
RET
BREAK:PUSHACC;中斷產(chǎn)生方波,從P1.0口輸出
PUSHPSW
MOVTL0,20H
MOVTH0,21H
CPLP1.0
POPPSW
POPACC
RETI
TABLE:DW65030,64968,64898,64820,64777,64684,64580;7,6,5,4,3,2,1
END
方案二:產(chǎn)生按鍵音符
ORG0000H
SJMPSTART
ORG000BH
AJMPINT_0
ORG0030H
START:MOVP1,#00H
SETBEA
SETBET0;計(jì)數(shù)器0
MOVTMOD,#02H
MOVTH1,#09CH
MOVTL1,#09CH;定時(shí)器初植
CLRTR0;定時(shí)器不允許
SCAN:;鍵盤掃描
MOVA,P2;判斷鍵盤按下,跳到SCAN_1,若未按,繼續(xù)掃描
CJNEA,#0FFH,SCAN_1
NOP
SJMPSCAN
SCAN_1:ACALLDELAY;是不是真的要按下?如果是,則跳轉(zhuǎn)SU_KEY查詢是哪個(gè)按下?
MOVA,P2
CJNEA,#0FFH,SU_KEY
NOP
SJMPSCAN
SU_KEY:JNBP2.1,MU_1;判斷是哪個(gè)鍵按下?
JNBP2.2,MU_2
JNBP2.3,MU_3
JNBP2.4,MU_4
JNBP2.5,MU_5
JNBP2.6,MU_6
JNBP2.7,MU_7
SJMPSCAN
;R1信號(hào)周期
MU_1:MOVR1,#19;如果第一個(gè)按鍵按下,則R1=19,同時(shí)程序轉(zhuǎn)NEXT
SJMPNEXT
MU_2:MOVR1,#17
SJMPNEXT
MU_3:MOVR1,#15
SJMPNEXT
MU_4:MOVR1,#14
SJMPNEXT
MU_5:MOVR1,#13
SJMPNEXT
MU_6:MOVR1,#11
SJMPNEXT
MU_7:MOVR1,#10
SJMPNEXT
NEXT:MOVA,R1
MOVR0,A
SETBTR0;啟動(dòng)定時(shí)器0
NEXT_1:MOVA,P2;沒鍵按下繼續(xù)執(zhí)行,有鍵按下,返回讀引腳
CJNEA,#0FFH,NEXT_1
ACALLDELAY
MOVA,P2;真的沒鍵按下?
CJNEA,#0FFH,NEXT_1
CLRTR0;不響
AJMPSCAN;掃描鍵盤去
INT_0:;中斷程序
DJNZR0,RE;R0不等于0時(shí),返回
CPLP1.0
MOVA,R1
MOVR0,A
RE:RETI
DELAY:MOVR7,#100;延長時(shí)間等待,鍵盤消抖<

相關(guān)IC型號(hào)

熱門點(diǎn)擊

 

推薦技術(shù)資料

基準(zhǔn)電壓的提供
    開始的時(shí)候,想使用LM385作為基準(zhǔn),HIN202EC... [詳細(xì)]
版權(quán)所有:51dzw.COM
深圳服務(wù)熱線:13751165337  13692101218
粵ICP備09112631號(hào)-6(miitbeian.gov.cn)
公網(wǎng)安備44030402000607
深圳市碧威特網(wǎng)絡(luò)技術(shù)有限公司
付款方式


 復(fù)制成功!