基于51单片机的八键电子琴( proteus仿真+程序+设计报告+原理图PCB+讲解视频)
仿真图proteus7.8及以上
程序编译器:keil 4/keil 5
编程语言:C语言
设计编号:S0102
1. 主要功能:
电子琴是现代电子科技与音乐结合的产物,是一种新型的键盘乐器。它在现代音乐扮演重要的角色,单片机具有强大的控制功能和灵活的编程实现特性,它已经溶入现代人们的生活中,成为不可替代的一部分。单片机的开发应用已成为高科技和工程领域的一项重大课题。我们对于电子琴如何实现其功能,如音色选择、声音强弱控制、节拍器、自动放音功能等等也很好奇,设计要求:
(1)用AT89C51单片机为核心控制元件,设计一个电子琴。
(2)以单片机作为主控核心,与键盘扬声器等模块组成核心主控制模块,在主控模块上设有8个按键,和一个复位按键。每一个按键分别指示不同的音符。
(3)数码管显示按下的音符标号。
需注意仿真中51单片机芯片是兼容的,AT89C51,AT89C52是51单片机的具体型号,内核是一样的。相同的原理图里,无论stc还是at都一样,引脚功能都是一样的,程序是兼容的,芯片可以替换为STC89C52/STC89C51/AT89C52/AT89C51等51单片机芯片。
资料下载链接:
通过网盘分享的文件:KEY_S0102
链接: https://pan.baidu.com/s/1DS052dZFL8HxKB-q9g5hXg?pwd=e353
提取码: e353
以下为本设计资料展示图:
2. 讲解视频:
讲解视频包含仿真运行讲解和代码讲解
3. 仿真
打开仿真工程,双击proteus中的单片机,选择hex文件路径,然后开始仿真。
按下DO按键,数码管显示1,蜂鸣器波放DO音调。
按下MI按键,数码管显示3,蜂鸣器波放MI音调
4. 原理图PCB
有原理图PCB
5. 程序代码
使用keil4或者keil5编译,代码有注释,可以结合视频理解代码含义。
sbit K1=P1^0;  //音符按键
sbit K2=P1^1;
sbit K3=P1^2;
sbit K4=P1^3;
sbit K5=P1^4;
sbit K6=P1^5;
sbit K7=P1^6;
sbit K8=P1^7;
sbit Speak=P2^0; //喇叭
/***********************1ms*****************************/
void delay_1ms(unsigned int q)
{
	unsigned int i,j;
	for(i=0;i<q;i++)
		for(j=0;j<120;j++);
}
void main(void)   //主程序
 {			 
  TMOD=0x01;
	ET0=1;
	EA=1;
	while(1)
		{
	
      if(!K1)	       
		    {
			   delay_1ms(20);//延时去抖
				  if(!K1)
				  {
           key=0;//将音乐的值赋值给定时器以便发出对应的声音
					 P0=distab[key+1];//显示1
           STH0=tab[key]/256;	//计算音符对应的定时器计数值
				   STL0=tab[key]%256;
				   TR0=1;
				   while(!K1)
				   ;
          }
        }
				
			 if(!K2)	       
		    {
			   delay_1ms(20);//延时去抖
				  if(!K2)
				  {
           key=1;
					 P0=distab[key+1];//显示2
           STH0=tab[key]/256;	//计算音符对应的定时器计数值
				   STL0=tab[key]%256;
				   TR0=1;
				   while(!K2)
				   ;
          }
        }
				
			if(!K3)	       
		    {
			   delay_1ms(20);//延时去抖
				  if(!K3)
				  {
           key=2;
					 P0=distab[key+1];//显示3
           STH0=tab[key]/256;	//计算音符对应的定时器计数值
				   STL0=tab[key]%256;
				   TR0=1;
				   while(!K3)
				   ;
          }
        }
				
			if(!K4)	       
		    {
			   delay_1ms(20);//延时去抖
				  if(!K4)
				  {
           key=3;
					 P0=distab[key+1];//显示4
           STH0=tab[key]/256;	//计算音符对应的定时器计数值
				   STL0=tab[key]%256;
				   TR0=1;
				   while(!K4)
				   ;
          }
        }
				
			if(!K5)	       
		    {
			   delay_1ms(20);//延时去抖
				  if(!K5)
				  {
           key=4;
					 P0=distab[key+1];//显示5
           STH0=tab[key]/256;	//计算音符对应的定时器计数值
				   STL0=tab[key]%256;
				   TR0=1;
				   while(!K5)
				   ;
          }
        }
				
			if(!K6)	       
		    {
			   delay_1ms(20);//延时去抖
				  if(!K6)
				  {
           key=5;
					P0=distab[key+1];//显示6
           STH0=tab[key]/256;	//计算音符对应的定时器计数值
				   STL0=tab[key]%256;
				   TR0=1;
				   while(!K6)
				   ;
          }
        }
				
			if(!K7)	       
		    {
			   delay_1ms(20);//延时去抖
				  if(!K7)
				  {
           key=6;
					 P0=distab[key+1];//显示7
           STH0=tab[key]/256;	//计算音符对应的定时器计数值
				   STL0=tab[key]%256;
				   TR0=1;
				   while(!K7)
				   ;
          }
        }
				
		if(!K8)	       
		    {
			   delay_1ms(20);//延时去抖
				  if(!K8)
				  {
           key=7;
					P0=distab[key+1];//显示8
           STH0=tab[key]/256;	//计算音符对应的定时器计数值
				   STL0=tab[key]%256;
				   TR0=1;
				   while(!K8)
				   ;
          }
        }
				
			
			  delay_1ms(20);
				TR0=0;
			  Speak=1;//当按键弹起的时候,蜂鸣器停止发音
				
}			
//文章有下载链接有完整代码
}
6. 设计报告
11314字设计报告,内容包括硬件设计、软件设计、软硬件框图、调试、结论等
随着现代电子技术的持续进步与革新,数字电压表在电子测量领域的应用范围愈发广泛,其重要性也日益凸显。传统的指针式电压表,尽管在早期的电子测量中发挥了重要作用,但其固有的缺陷,如读数误差较大、精度相对较低以及读数不够直观等问题,已经难以满足当前高精度、高效率的测量需求。相比之下,数字电压表以其读数准确无误、测量精度高、显示结果直观明了等显著优势,成为了电子测量领域的主流工具。
鉴于数字电压表的诸多优点,我们计划设计一款基于51单片机和ADC0808模数转换器的数字电压表。这款设计不仅具备重要的实际应用价值,能够广泛应用于各种需要精确测量电压的场合,如电子实验室、工业生产线等,而且对于学生而言,更是一次深入理解单片机应用技术和模数转换原理的绝佳机会。通过亲手设计并制作这款数字电压表,学生将能够亲身体验从理论到实践的转化过程,从而更加深入地掌握单片机的硬件电路设计、软件编程以及模数转换技术的核心要点。同时,这一过程也将极大地锻炼学生的实践能力、创新能力和解决问题的能力,为他们未来的学习和职业生涯奠定坚实的基础。
7. 设计资料内容清单&&下载链接
资料设计资料包括仿真,程序代码、讲解视频、功能要求、设计报告、软硬件设计框图等。
0、常见使用问题及解决方法–必读!!!!
1、程序代码注释
2、proteus仿真
3、功能要求
4、软硬件流程图
5、开题报告
6、设计报告
7、原理图
8、PCB图
9、元器件清单
10、讲解视频
Altium Designer 安装破解
KEIL+proteus 单片机仿真设计教程
KEIL安装破解
Proteus元器件查找
Proteus安装
Proteus简易使用教程
单片机学习资料
相关数据手册
答辩技巧
设计报告常用描述
鼠标双击打开查找嘉盛单片机51 STM32单片机课程毕业设计.url
资料下载链接:
通过网盘分享的文件:KEY_S0102
链接: https://pan.baidu.com/s/1DS052dZFL8HxKB-q9g5hXg?pwd=e353
提取码: e353
								
								
								
2003