×
单片机 > 单片机程序设计 > 详情

avr单片机可演奏的电子琴仿真加源码

发布时间:2020-06-02 发布时间:
|

单片机电子琴仿真原理图如下

avr单片机源程序如下:

//-----------------------------------------------------------------

//  名称: 电子琴仿真

//-----------------------------------------------------------------

//  说明: 本例在键盘矩阵上模拟演奏电子琴,数码管显示键号.

//        按下不同按键时将输出不同频率音符,按键长按时发出长音,

//        短按时发出短音.

//

//-----------------------------------------------------------------

#define  F_CPU   1000000UL //1M晶振

#include

#include

#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

#include

#define INT8U   unsigned char

#define INT16U  unsigned int


//键盘端口定义



//19:45 2017/12/19

INT8U KeyNo = 16 ; 

//-----------------------------------------------------------------

// 判断键盘矩阵是否有键按下

//-----------------------------------------------------------------

INT8U KeyMatrix_Down()

{



}


//-----------------------------------------------------------------

// 键盘矩阵扫描子程序

//-----------------------------------------------------------------

void Keys_Scan()




}



关键字:avr单片机  电子琴  键盘矩阵

『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
C51 特殊功能寄存器SFR的名称和地址