基于单片机的电子琴设计-单片机课程设计论文内容摘要:

3。 16 附录 3 源程序 17 通信 103班 付红娜 基于单片机的电子琴设计 IV 附录 4 实物图 23 通信 103班 付红娜 基于单片机的电子琴设计 1 第 1 章 绪论 课题背景 电子琴是电声乐队的中坚力量,常用于奏主旋律并伴以丰富的和声。 还常作为独奏乐器出现,具有鲜明时代特色,但电子琴的局限性也十分明显:旋律与和声缺乏音量变化,过于协和、单一;在模仿各类管、弦乐器时,音色还不够逼真,模仿提琴类乐器的音色时,失真度更大,还需要不断改进。 电子琴的演奏较大一部分通过 和弦伴奏来配合完成的,在音乐中和弦的连接推动了旋律地进行,不同的和声连接,形成了不同的音乐色彩。 本次设计用 AT89C51 单片机为核心控制元件与按键和喇叭等模块,设计一个简易的电子琴。 音乐产生原理 乐曲是由不同音符编制而成的,每个音符(音名)都有一个固定的振动频率,频率的高低决定了音调的高低。 简谱中从低音 1 至高音 1 之间每个音名对应的频率参见表12[1]。 表 12简谱中音名与频率的关系 音 名 频率 /Hz 音 名 频率 /Hz 音 名 频率 /Hz 低音 1 262 中音 1 523 高音 1 1047 低音 2 294 中音 2 587 高音 2 1175 低音 3 330 中音 3 659 高音 3 1319 低音 4 349 中音 4 699 高音 4 1397 低音 5 392 中音 5 784 高音 5 1569 低音 6 440 中音 6 880 高音 6 1760 低音 7 494 中音 7 988 高音 7 1976 现以低音 6 这个音名为例来进行分析。 低音 6 的频率数位 440Hz,则其周期为: T=1/f=1/440== 如果用定时器 1 方式 1 作定时,要 输出周期为 的等宽方波,则定时值为 ,设计数初值为 X,根据:定时值 =( 2^16X) *( 12/晶振频率),求出计数初值为: X=64396(为计算方便,设晶振频率为 12MHz)。 计算出计数器初值后,只要将计数初值装入 TH0、 TL0,就能使 的高电平或低电平的持续时间为 ,从而发出 440Hz 的音调(音乐的音长由按键控制,按键按下时发声,按键释放时停止发声) [2]。 表 13 所列是采用定时器 1 的方式 1 时,各音名与计数初值的对照表。 通信 103班 付红娜 基于单片机的电子琴设计 2 表 13 各音名与计数初值对照表 音 名 计数初值 音 名 计数初值 音 名 计数初值 低音 1 63636 中音 1 64586 高音 1 65066 低音 2 63836 中音 2 64686 高音 2 65116 低音 3 64026 中音 3 64776 高音 3 65156 低音 4 64106 中音 4 64816 高音 4 65176 低音 5 64256 中音 5 64896 高音 5 65216 低音 6 64396 中音 6 64966 高音 6 65256 低音 7 64526 中音 7 65026 高音 7 65286 主要设计任务 用矩阵按键的 16 个按键模拟电子琴的 16 个音符。 具体音符为:按压 S0、 S SS S4 键,发出低音 7;按压 S S S S S S S11 键,发出中音 7;按压 S1 S1 S1 S15 键,发出高音 4。 矩阵按键与各音符的对应关系如表 11 所示 [3]。 表 11矩阵按键与键盘对应关系 低音 3 低音 4 低音 5 低音 6 低音 7 中音 1 中音 2 中音 3 中音 4 中音 5 中音 6 中音 7 高音 1 高音 2 高音 3 高音 4 通信 103班 付红娜 基于单片机的电子琴设计 3 第 2 章 电子琴 系统的基本理论 AT89C51 AT89C51 简介 AT89C51 是美国 ATMEL 公司生产的低电压,高性能 CMOS8 位单片机。 片内含4Kbytes 的可反复擦写的只读程序存储器( PEROM)和 128bytes 的随机存取数据存储器( RAM),器件采用 ATMEL 公司的高密度、非易失性存储技术生产,兼容标准 MCS51指令系统,片内置通用 8 位中央处理器( CPU)和 Flash 存储单元,功能强大 AT89C51单片机可为您提供许多高价比的应用场合,可灵活应用于各种控 制领域。 AT89C51 性能简介 AT89C51 具有如下特点: 40 个引脚, 4k Bytes Flash 片内程序存储器, 128 bytes 的随机存取数据存储器( RAM), 32 个外部双向输入 /输出( I/O)口, 5 个中断优先级 2层中断嵌套中断, 2 个 16 位可编程定时计数器 ,2 个全双工串行通信口,看门狗( WDT)电路,片内时钟振荡器。 此外, AT89C51 设计和配置了振荡频率可为 0Hz 并可通过软件设置省电模式。 AT89C51 在空闲模式下, CPU 暂停工作,而 RAM 定时计数器,串行口,外中断系统可继续工作, 掉电模式冻结振荡器而保存 RAM 的数据,停止芯片其它功能直至外中断激活或硬件复位。 主要特性 [4]: 与 MCS51 兼容 4K 字节可编程闪烁存储器 全静态工作: 0Hz24Hz 三级程序存储器锁定 128*8 位内部 RAM 32 可编程 I/O 线 两个 16 位定时器 /计数器 5 个中断源 可编程串行通道 低功耗的闲置和掉电模式 通信 103班 付红娜 基于单片机的电子琴设计 4 片内振荡器和时钟电路 AT89C51 引脚简介 图 21 为 AT89C51 的引脚图 图 21 AT89C51引脚图 AT89C51 的引脚功能 [5]: VCC:供电电压。 GND:接地。 P0 口: P0 口为一个 8 位漏级开路双向 I/O 口,每脚可吸收 8TTL 门电流。 当 P1 口的管脚第一次写 1 时,被定义为高 电 阻输入。 P0 能够用于外部程序数据存储器,它可以被定义为数据 /地址的第八位。 在 FIASH 编程时, P0 口作为原码输入口,当 FIASH进行校验时, P0 输出原码,此时 P0 外部必须被拉高。 P1 口: P1 口是一个内部提供上拉电阻的 8 位双向 I/O 口, P1 口缓冲器能接收输出4TTL 门电流。 P1 口管脚写入 1 后,被内部上拉为高,可用作输入, P1 口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。 在 FLASH 编程和校验时, P1 口作为第八位地址接收。 P2 口: P2 口为一个内部上拉电阻的 8 位双向 I/O 口, P2 口缓冲器可接收,输出 4个 TTL 门电流,当 P2 口被写 “1”时,其管脚被内部上拉电阻拉高,且作为输入。 并因通信 103班 付红娜 基于单片机的电子琴设计 5 此作为输入时, P2 口的管脚被外部拉低,将输出电流。 这是由于内部上拉的缘故。 P2口当用于外部程序存储器或 16 位地址外部数据存储器进行存取时, P2 口输出地址的高八位。 在给出地址 “1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时, P2 口输出其特殊功能寄存器的内容。 P2 口在 FLASH 编程和校验时接收高八位地址信号和控制信号。 P3 口: P3 口管脚是 8 个带内部上拉电阻的双向 I/O 口,可接收输出 4 个 TTL 门电流。 当 P3 口写入 “1”后,它们被内部上拉为高电平,并用作输入。 作为输入,由于外部下拉为低电平, P3 口将输出电流( ILL)这是由于上拉的缘故。 RST:复位输入。 当振荡器复位器件时,要保持 RST 脚两个机 器周期的高电平时间。 ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。 在 FLASH 编程期间,此引脚用于输入编程脉冲。 在平时, ALE 端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的 1/6。 因此它可用作对外部输出的脉冲或用于定时目的。 然而要注意的是:每当用作外部数据存储器时,将跳过一个 ALE 脉冲。 如想禁止 ALE 的输出可在 SFR8EH地址上置 0。 此时, ALE 只有在执行 MOVX, MOVC指令是 ALE 才起作用。 另外,该引脚被略微拉高。 如果微处理器在外部执行状态 ALE禁止,置 位无效。 /PSEN:外部程序存储器的选通信号。 在由外部程序存储器取指期间,每个机器周期两次 /PSEN 有效。 但在访问外部数据存储器时,这两次有效的 /PSEN 信号将不出现。 /EA/VPP:当 /EA 保持低电平时,则在此期间外部程序存储器( 0000HFFFFH),不管是否有内部程序存储器。 注意加密方式 1 时, /EA 将内部锁定为 RESET;当 /EA 端保持高电平时,此间内部程序存储器。 在 FLASH 编程期间,此引脚也用于施加 12V编程电源( VPP)。 XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2:来自反向振荡器的输出。 LM386 LM386 简介 LM386 是美国国家半导体公司生产的音频功率放大器,主要应用于低电压消费类产品。 LM386 是一种音频功率集成功放,具有自身功耗低、电压增益可调整、电源电压范。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。