电子琴实训报告

时间:2022-11-20 22:55:13 实训报告 我要投稿
  • 相关推荐

电子琴实训报告范文

  项目描述

电子琴实训报告范文

  电子琴是现代科技与音乐结合的产物,是一种新型的键盘乐器。电子琴在现代音乐中扮演着重要的角色。单片机具有强大的控制功能和灵活的编程实现特性,它已经融入现代人们的生活中,成为不可替代的一部分。本项目中的主要内容是以AT89C51单片机为核心的控制元件,设计一个多音阶电子琴。它具有硬件电路简单,软件功能完善,控制系统可靠,性价比高等优点,具有一定的实用价值。

  项目要求

  基于AT89C51单片机的多音阶电子琴设计要求如下:

  (1) 由4*4组成16个按键矩阵,设计成16个音节。

  (2) 可随意弹奏想要表达的音乐。

  系统设计

  3.1 框图设计

  基于AT89C51单片机的多音阶电子琴系统框图

  硬件设计

  4.1 电路原理图

  4.2 元器件清单

  序号 元件名称 规格 数量 用途

  1 51单片机 AT89C51 1 控制核心

  2 晶振 12M立式 1 晶振电路

  3 三极管 9012 1 音频放大电路

  4 按键 16 按键电路

  5 电解电容 10uF/10V 1 复位电路

  6 瓷片电容 30PF瓷片电容 2 晶振电路

  7 电阻 10K 1 音频放大电路

  电阻 4.7K 1

  电阻 100欧 1

  8 喇叭 8欧/0.5W 1 扬声器

  9 电源 5V/0.5A 1 提供+5V

  软件设计

  5.1程序流程图

  5.2 电子琴程序:

  ORG 0000H

  LJMP MAIN

  ORG 000BH

  LJMP TIMER0

  ORG 0100H

  MAIN:

  DATABUF DATA 30H

  MOV DPTR,#TAB

  MOV TMOD,#01H ;设置定时器0和定时器1工作方式1下

  SETB EA ;开中断

  SETB ET0 ;开定时器0中断

  START:

  MOV R7,#11110111B ;R7暂存键扫描码,低4位作为键扫描输出

  MOV R6,#00H ;R6作为键值的暂存寄存器

  MOV R5,#04H ;R5作为行扫描的计数器

  MOV P2,R7 ;扫描口送P2口

  KEY_SCAN:

  MOV R4,#04H ;R4作为列扫描的计数器

  ORL P2,#0F0H ;设置P2.4—P2。7为读引脚模式

  MOV A,P2 ;读P2口引脚的数据

  MOV DATABUF,A ;将读入的P2口数据存入DATABUF单元

  SETB C ;CY=1

  LINE_DEC:

  RLC A ;A中数据循环左移

  JNC KEY_VAL ;若CY=0,表明某列某键被按下,转去执行取键值程序

  INC R6 ;若CY=1,某列无按键被按下,R6递增

  DJNZ R4,LINE_DEC ;判断每行的第4列是否扫描完毕,没有则继续

  MOV A,R7 ;每行的4列都扫描完,无按键下,去扫描码

  RR A ;右移A中的数据

  MOV R7,A ;扫描码存回R7

  MOV P2,A ;扫描码送P2口

  DJNZ R5,KEY_SCAN ; 判断4行是否扫描完毕

  LJMP START ;扫描完的话,跳回START

  KEY_VAL:

  LCALL DELAY20MS ;延时20ms

  ORL P2,#0F0H ;置P2口为读引脚

  MOV A,P2 ; P2口数据送给A

  CJNE A,DATABUF,START ;新读入的数据和上次读入的数据比较,若相同表明是某键被按下

  MOV 31H,R6 ;R6中存的是对应的键值送31H单元保存

  LCALL TABLE ;调用查表程序,给定时器0赋初值

  SETB TR0 ;启动T0

  LOOP:

  MOV P2,#0F0H

  MOV A,P2

  CJNE A,#0F0H,LOOP ;判断按键是否释放

  CLR TR0 ;已释放按键,关闭T0

  LJMP START

  ;******定时器0中断服务程序******

  TIMER0:

  PUSH ACC

  PUSH PSW

  CLR TR0 ;关闭T0

  MOV TH0,32H ;TH0←(32H),计数器初值高8位赋值

  MOV TL0,33H ;TH0←(33H),计数器初值低8位

  SETB TR0 ;启动T0

  CPL P1.0 ;P1.0输入取反

  POP PSW

  POP ACC

  RETI

  DELAY20MS: ;延时20ms子程序

  MOV R1,#20

  LOOP2: MOV R0,#149

  LOOP1: DJNZ R0,LOOP1

  DJNZ R1,LOOP2

  RET

  TABLE:

  MOV A,31H

  CLR C

  RLC A

  MOV R2,A

  MOVC A,@A+DPTR

  MOV 32H,A

  MOV TH0,A

  INC R2

  MOV A,R2

  MOVC A,@A+DPTR

  MOV 33H,A

  MOV TL0,A

  RET

  ;每个音符对应的计数初值表

  TAB:

  DW 64021,64103,64260,64400

  DW 64524,64580,64684,64777

  DW 64820,64898,64968,65030

  DW 65058,65110,65157,65178

  END

  5.3 AT98C51引脚图

  AT89S51单片机引脚介绍

  牐燗T89S51有PDIP、PLCC、TQFP三种封装方式,其中最常见的就是采用40Pin封装的双列直接PDIP封装,芯片共有40个引脚,引脚的排列顺序为从靠芯片的缺口(见右图)左边那列引脚逆时针数起,依次为1、2、3、4。。。40,其中芯片的1脚顶上有个凹点(见右图)。在单片机的40个引脚中,电源引脚2根,外接晶体振荡器引脚2根,控制引脚4根以及4组8位可编程I/O引脚32根。

【电子琴实训报告】相关文章:

实训的报告01-01

电工实训报告【经典】09-16

电工实训报告07-12

金工实训报告08-03

安装实训报告08-28

外汇实训报告09-07

物流的实训报告09-08

测量实训报告05-10

运营实训报告06-15