【正文】
30 p FV c c6I N +3I N 2B Y P A S S7V O U T5G A I N1G A I N8G N D4U2L M 38 6C210 u FC30. 1u FV C CC410 u FR410KC50. 1u FL S 1揚(yáng)聲器CR4CR3CR2CR1BR4BR3BR2BR1 圖 音頻放大器電路 單片機(jī)課程設(shè)計(jì)報(bào)告 Z10102 YangQingming 11 LED 數(shù)碼管 agdefbcdpa7b6c4d2e1f9GND3GND8g10dp5 圖 34 7 段數(shù)碼管 數(shù)碼管(如圖 34 所示)使用條件: a、段及小數(shù)點(diǎn)上加限流電阻 b、使用電壓:段:根據(jù)發(fā)光顏色決定;小數(shù)點(diǎn):根據(jù)發(fā)光顏色決定 c、使用電流:靜態(tài):總電流 80mA(每段 10mA);動(dòng)態(tài):平均電流 45mA 峰值電流 100mA 上面這個(gè)只是七段數(shù)碼管引腳圖,其中共陽(yáng)極數(shù)碼管引腳圖和共陰極的是一樣的。 編碼鍵盤:鍵盤本身帶有實(shí)現(xiàn)接口主要功能所需的硬件電路。 非編碼鍵盤:鍵盤只簡(jiǎn)單地提供按鍵開關(guān)的行列矩陣。 系統(tǒng)板上硬件連線設(shè)計(jì) 鍵盤模塊 硬件連線如圖 41所示: 單片機(jī)課程設(shè)計(jì)報(bào)告 Z10102 YangQingming 13 1 2 3 4 5 6ABCD654321DCBAT i t l eN um be r R e v i s i onS i z eBD a t e : 1 J u n 20 1 0 S he e t o f F i l e : D : \ P r o t e l 99 S E \楊文蕊 + 06 9 05 02 4 10 23 .D db D r a w n B y :Vcc40EA31RST9GND20X119X218P 1. 01P 1. 12P 1. 23P 1. 34P 1. 45P 1. 56P 1. 67P 1. 78P 3. 0/ R X D10P 3. 1/ T X D11P 3. 2/ I N T 012P 3. 3/ I N T 113P 3. 4/ T 014P 3. 5/ T 115P 3. 6/ W R16P 3. 7/ R D17P 0. 0/ A D 039P 0. 1/ A D 138P 0. 2/ A D 237P 0. 3/ A D 336P 0. 4/ A D 435P 0. 5/ A D 534P 0. 6/ A D 633P 0. 7/ A D 732A L E30P S E N29P 2. 7/ A 1528P 2. 6/ A 1427P 2. 5/ A 1326P 2. 4/ A 1225P 2. 3/ A 1124P 2. 2/ A 1023P 2. 1/ A 922P 2. 0/ A 821U1A T 89 S 51R110KR210KR310KY112 M H zC730 p FC630 p F12345678P1 H E A D E R 8S1SWPBS2SWPBS3SWPBS4SWPBS5SWPBS6SWPBS7SWPBS8SWPBS9SWPBS 10SWPBS 11SWPBS 12SWPBS 13SWPBS 14SWPBS 15SWPBS 16SWPBC110 u FV C CV c c6I N +3I N 2B Y P A S S7V O U T5G A I N1G A I N8G N D4U2L M 38 6C210 u FC30. 1u FV C CC410uFR410KC50. 1u FL S 1揚(yáng)聲器CR4CR3CR2CR1BR4BR3BR2BR1CR4CR3CR2CR1BR4BR3BR2BR1R4220agdefbcdpa7b6c4d2e1f9GND3GND8g10dp5D S 1D P Y 7_ S E G _D P 圖 41 鍵盤 模塊 連線圖 ( 1) 把 “ 單片機(jī)系統(tǒng) “ 區(qū)域中的 - 端口用 8 芯排線連接到 “4X4 行列式鍵盤 ” 區(qū)域中的 C1- C4 R1- R4端口上; ( 2) 把 “ 單片機(jī)系統(tǒng) ” 區(qū)域中的 - “ 四路單片機(jī)課程設(shè)計(jì)報(bào)告 Z10102 YangQingming 14 靜態(tài)數(shù)碼顯示模塊 ” 區(qū)域中的任一個(gè) a- h 端口上;要求: , 對(duì)應(yīng)著 b, ?? , 。鍵盤處理程序的任務(wù)是:確定有無(wú)鍵按下,判斷哪一個(gè)鍵按下,鍵的功能是什么;還要消除按鍵在閉合或斷開時(shí)的抖動(dòng)。 系統(tǒng)板上硬件連線:(如圖 43所示) 把 “ 單片機(jī)系統(tǒng) ” 區(qū)域中的 - “ 四路靜態(tài)數(shù)碼顯示模塊 ” 區(qū)域中的任一個(gè)數(shù)碼管的 a- h端口上;要求: , 與 b 相 連 , , ?? , 。 程序框圖: 程序框圖如圖 43 所示 : 單片機(jī)課程設(shè)計(jì)報(bào)告 Z10102 YangQingming 17 圖 43 數(shù)碼顯示程序框圖 C 語(yǔ)言源程序: include unsigned char code table[]={0x3f,0x06,0x5b,0x4f,0x66, 0x6d,0x7d,0x07,0x7f,0x6f}。i0。k0。dispcount++) { P0=table[dispcount]。 unsigned char key。 temp=P3。i0。 temp=P3。 temp=temp amp。 case 0x0d: key=8。 case 0x07: key=10。 單片機(jī)課程設(shè)計(jì)報(bào)告 Z10102 YangQingming 20 P0=table[key]。 temp=temp amp。 temp=P3。i0。 temp=P3。 temp=temp amp。 case 0x0d: key=5。 case 0x07: key=11。 P0=table[key]。 temp=temp amp。 temp=P3。i0。 temp=P3。 temp=temp amp。 case 0x0d: key=2。 case 0x07: key=12。 P0=table[key]。 temp=temp amp。 temp=P3。i0。 temp=P3。 temp=temp amp。 case 0x0d: key=13。 case 0x07: key=15。 單片機(jī)課程設(shè)計(jì)報(bào)告 Z10102 YangQingming 24 P0=table[key]。 temp=temp amp。利用定時(shí)器計(jì)時(shí)半周期時(shí)間,每當(dāng)計(jì)時(shí)終止后就將 反相,然后重復(fù)計(jì)時(shí)再反相。2247。fr 例如:設(shè) K= 65536, fi= 1MHz,求低音 DO( 261Hz)、中音 DO( 523Hz)、高音 DO( 1046Hz)的計(jì)數(shù)值。2247。其中 T0 用來(lái)產(chǎn)生音符頻率, T1用來(lái)產(chǎn)生音拍。 unsigned char i,j。 void main(void) { TMOD=0x01。 P3_4=0。 if (temp!=0x0f) { for(i=50。j)。 if (temp!=0x0f) { temp=P3。 break。 break。 單片機(jī)課程設(shè)計(jì)報(bào)告 Z10102 YangQingming 29 P1_0=~P1_0。 TR0=1。 temp=temp amp。 P3_5=0。 if (temp!=0x0f) { for(i=50。j)。 if (temp!=0x0f) { temp=P3。 break。 break。 P1_0=~P1_0。 TR0=1。 temp=temp amp。 P3_6=0。 if (temp!=0x0f) { for(i=50。j)。 if (temp!=0x0f) { temp=P3。 break。 break。 P1_0=~P1_0。 TR0=1。 temp=temp amp。 P3_7=0。 if (temp!=0x0f) { for(i=50。j)。 if (temp!=0x0f) { temp=P3。 單片機(jī)課程設(shè)計(jì)報(bào)告 Z10102 YangQingming 33 break。 break。 P1_0=~P1_0。 TR0=1。 temp=temp amp。 TL0=STL0。一首音樂(lè)是許多不同的音階組成的,而每個(gè)音階對(duì)應(yīng)著不同的頻率,這樣我們就可以利用不同的頻率的組合,即可構(gòu)成我們所想要的音樂(lè)了,于是我們可以利用單片機(jī)的定時(shí) /計(jì)數(shù)器 T0來(lái)產(chǎn)生這樣方波頻率信號(hào),因此,我們只要把一首歌曲的音階對(duì)應(yīng)頻率關(guān)系弄正確即可,然后我們利用功放電路來(lái)將音樂(lè)聲音放大,同時(shí)通過(guò)顯示模塊來(lái)確知自己所彈的音符。 王 老師給我提供了許多寶貴建議。 第三,感謝我的父母親,你們是我力量的源泉,只要有你們,不管面對(duì)什么樣的困難,我都不會(huì)害怕,謝謝你們對(duì)我的支持與鼓勵(lì)! 再次,感謝我的室友及其他好友,因?yàn)橛心銈兊膸椭?,我的論?才能 得以順利完成 。不僅使我樹立了遠(yuǎn)大的學(xué)術(shù)目標(biāo)、掌握了基本的研究方法,還使我明白了許多待人接物與為人處世的道理。我要在這里對(duì)他們表示深深的謝意! 首先,要特別感謝我的指導(dǎo)老師 。 }單片機(jī)課程設(shè)計(jì)報(bào)告 Z10102 YangQingming 35 5 結(jié)束語(yǔ) 本 課程設(shè)計(jì) 通過(guò)制作電子琴,將幾個(gè)模塊很好的融合起來(lái),對(duì)使用單片機(jī)設(shè)計(jì)簡(jiǎn)易電子琴 進(jìn)行了分析,并介紹了基于單片機(jī)電子琴統(tǒng)硬件組成。 } TR0=0。 0x0f。 STH0=tab[key]/256。 break。 break。 0x0f。 temp=temp amp。i) for(j=200。 temp=temp amp。 } TR0=0。 0x0f。 單片機(jī)課程設(shè)計(jì)報(bào)告 Z10102 YangQingming 32 STH0=tab[key]/256。 break。 break。 0x0f。 temp=temp amp。i) for(j=200。 temp=temp amp。 } TR0=0。 0x0f。 STH0=tab[key]/256。 break。 break。 0x0f。 temp=temp amp。i) for(j=200。 temp=temp amp。 } TR0=0。 0x0f。 STH0=tab[key]/256。 break。 break。 0x0f。 temp=temp amp。i) for(j=200。 temp=temp amp。