新手入坑
單片機電子琴仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
0.png (21.6 KB, 下載次數: 53)
下載附件
2017-12-19 19:44 上傳
0.png (9.82 KB, 下載次數: 62)
下載附件
2017-12-19 19:44 上傳
avr單片機源程序如下:
- //-----------------------------------------------------------------
- // 名稱: 電子琴仿真
- //-----------------------------------------------------------------
- // 說明: 本例在鍵盤矩陣上模擬演奏電子琴,數碼管顯示鍵號.
- // 按下不同按鍵時將輸出不同頻率音符,按鍵長按時發出長音,
- // 短按時發出短音.
- //
- //-----------------------------------------------------------------
- #define F_CPU 1000000UL //1M晶振
- #include <avr/io.h>
- #include <avr/interrupt.h>
- #define INT8U unsigned char
- #define INT16U unsigned int
- //蜂鳴器定義
- #define SPK() (PORTD ^= _BV(PD7))
- //定時器比較中斷啟停定義
- //C調音符頻率表(部分)
- //共陽數碼管段碼表(0~F)
- const INT8U SEG_CODE[]=
- {
- 0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8, //0 1 2 3 4 5 6 7
- 0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E //8 9 A B C D E F
- };
- //鍵盤矩陣相關變量與程序
- //-----------------------------------------------------------------
- // 主程序
- //-----------------------------------------------------------------
- int main()
- {
- }
- //-----------------------------------------------------------------
- // T1定時器比較匹配中斷程序,控制音符頻率輸出
- //-----------------------------------------------------------------
- ISR (TIMER1_COMPA_vect)
- {
- }
復制代碼- //-----------------------------------------------------------------
- // 名稱: 鍵盤矩陣掃描程序
- //-----------------------------------------------------------------
- #include <avr/io.h>
- #include <util/delay.h>
- #define INT8U unsigned char
- #define INT16U unsigned int
- //鍵盤端口定義
- //19:45 2017/12/19
- INT8U KeyNo = 16 ;
- //-----------------------------------------------------------------
- // 判斷鍵盤矩陣是否有鍵按下
- //-----------------------------------------------------------------
- INT8U KeyMatrix_Down()
- {
- }
-
- //-----------------------------------------------------------------
- // 鍵盤矩陣掃描子程序
- //-----------------------------------------------------------------
- void Keys_Scan()
- {
- }
復制代碼
程序在上面,只有框架,求大神補全啊,下面是仿真工程:
02 電子琴仿真.zip
(18.32 KB, 下載次數: 45)
2017-12-19 13:06 上傳
點擊文件名下載附件
經典實例 下載積分: 黑幣 -5
|