模拟电子琴设计仿真.docx

上传人:b****5 文档编号:2899077 上传时间:2022-11-16 格式:DOCX 页数:12 大小:84.63KB
下载 相关 举报
模拟电子琴设计仿真.docx_第1页
第1页 / 共12页
模拟电子琴设计仿真.docx_第2页
第2页 / 共12页
模拟电子琴设计仿真.docx_第3页
第3页 / 共12页
模拟电子琴设计仿真.docx_第4页
第4页 / 共12页
模拟电子琴设计仿真.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

模拟电子琴设计仿真.docx

《模拟电子琴设计仿真.docx》由会员分享,可在线阅读,更多相关《模拟电子琴设计仿真.docx(12页珍藏版)》请在冰豆网上搜索。

模拟电子琴设计仿真.docx

模拟电子琴设计仿真

摘要

电子琴是现代电子科技与音乐结合的产物,是一种新型的键盘乐器。

它在现代音乐扮演着重要的角色,单片机具有强大的控制功能和灵活的编程实现特性,它已经融入现代人们的生活中,成为不可替代的一部分。

本次设计的主要内容是用AT89S51单片机为核心控制元件,利用定时器,发出不同频率的脉冲,不同频率的脉冲经喇叭驱动电路放大滤波后,就会发出不同的音调,利用不同的频率的组合,可构成我们想要的音乐,从而设计成一个与键盘、扬声器等模块组成核心主控制模块,在主控模块上设有16个按键和扬声器的简易电子琴。

本系统运行稳定,硬件电路简单,软件功能完善,控制系统可靠,所开发的程序通过调试运行、仿真验证,实现了设计目标,具有一定的实用和参考价值。

关键词:

单片机、按键、扬声器、音阶

目录

1课题描述1

2问题分析和任务定义2

3硬件电路设计3

4程序设计4

4.1程序流程图4

4.2程序代码5

5电路仿真与分析10

5.1仿真软件10

5.2仿真过程10

6调试、测试与结果分析11

6.1调试与测试11

6.2结果分析11

7总结12

参考文献13

1课题描述

一首音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率,这样我们就可以利用不同的频率的组合,构成我们所想要的音乐了,对于单片机,可以利用定时器,发出不同频率的脉冲,不同频率的脉冲经喇叭驱动电路放大滤波后,就会发出不同的音调,利用不同的频率的组合,从而设计成一个与键盘、扬声器等模块组成核心主控制模块,在主控模块上设有16个按键和扬声器的简易电子琴。

本次设计主要应用AT89C51单片机为核心控制元件,与键盘、扬声器等模块组成核心主控制模块,通过软硬件设计,模式转换按键触发外部中断,中断使程序跳转,实现模式转换,启动电子琴,通过查询电子琴所按下的按键,读取电子琴输入状态,跳转到对应的程序人口,实现用户自编歌曲。

 

开发环境:

微机WINdowsXP系统VisuALBaSIc6.0环境

2问题分析和任务定义

本次设计主要通过对AT89C51的基本认识,利用定时器,发出不同频率的脉冲,不同频率的脉冲经喇叭驱动电路放大滤波后,就会发出不同的音调,利用不同的频率的组合,从而设计成一个与键盘、扬声器等模块组成核心主控制模块,在主控模块上设有16个按键和扬声器的简易电子琴。

在操作过程中应满足以下要求:

(1)电子琴设有16个按键,通过软硬件设计,模式转换按键触发外部中断,中断使程序跳转,实现模式转换,启动电子琴;

(2)利用定时器,可以发出不同频率的脉冲,不同频率的脉冲经喇叭驱动电路放大滤波后,可以发出不同的音调;

(3)使数字键1、2、3、4、5、6、7作为电子琴键,按下数字键发出相应的音调,PB0作为定时器门控信号,OUT1发出音频信号,驱动喇叭。

(4)通过查询电子琴所按下的按键,读取电子琴输入状态,跳转到对应的程序人口,实现用户自编歌曲;

该系统在使用过程中,应该实现以下基本功能:

(1)按要求连接电路图,当按下数字键1、2、3、4、5、6、7时可以发出相应的音调;

(2)通过不同的数字键组合,可以自编曲目;

(3)利用protues仿真软件,装载程序,实现对电子琴的仿真。

3硬件电路设计

电子琴设计硬件电路图,如图3.1所示:

图3.1电子琴设计硬件电路图

 

4程序设计

4.1程序流程图

(1)主程序流程图

本次课程设计实现了一个以AT89C51单片机为核心控制元件,与键盘、扬声器等模块组成核心主控制模块,通过按键,实现用户自编曲目的简易电子琴。

主程序流程图如图4.1所示:

图4.1电子琴设计主程序流程图

(2)音频脉冲产生程序流程图

要产生音频脉冲,只要算出某一音频半周期的时间然后利用T0定时器计时半周期时间,每当计时终止后就将P1.0反相,然后重复计时再反相,就可在P1.0引脚上得到此频率的脉冲。

音频脉冲产生程序流程图如图4.2所示:

图4.2音频脉冲产生程序流程图

4.2程序代码

CODE             SEGMENT;DZQ.ASM

                       ASSUMECS:

CODE,DS:

CODE

CONTROL    EQU43h

COUNT0       EQU40h

COUNT1       EQU41h

COUNT2       EQU42h

IOCONPT      EQU0FF2BH

IOBPT            EQU0FF29H

IOAPT           EQU0FF28H

PA                  EQU0FF21H;字位口

PB                   EQU0FF22H;字形口

PC                 EQU0FF23H;键入口

ORG18F0H

START:

         JMPSTART0

BUF               DB?

?

?

?

?

?

KZ                  DB?

LTIME             DB?

LKEY          DB?

ZP                 DW?

DATA1:

          DB0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h,88h,83h,0c6h,0a1h

                     DB86h,8eh,0FFH,0ch,89h,0deh,0c7h,8ch,0f3h,0bfh,8FH,0F1H

DATA3:

          DW2273,2024,1805,1704

                     DW1517,1353,1205,1136

START0:

    MOVAX,CS

                     MOVDS,AX

                     CALLBUF1

                    MOVAL,88H

                    MOVDX,IOCONPT

                    OUTDX,AL

                    MOVDX,IOBPT

                    MOVAL,00

                    OUTDX,AL

                    MOVZP,OFFSETBUF

REDIKEY:

    CALLDISPKEY

                    CMPKZ,09h

                    JNCREDIKEY

                    CMPKZ,01h

                    JCREDIKEY

                    MOVBX,ZP

                    MOVAL,KZ

                    MOV[BX],AL

                    CMPBX,OFFSETBUF+5

                    JZZP1

                    INCBX

                    MOVZP,BX

                    JMPOUTTONE

ZP1:

            MOVZP,OFFSETBUF

OUTTONE:

   MOVDX,IOBPT

                   MOVAL,0FFH

                   OUTDX,AL

                   MOVAL,KZ

                   MOVAH,00h

                   DECAX

                   SHLAX,1

                   MOVBX,OFFSETDATA3

                   ADDBX,AX

                    MOVAX,[BX]

                   CALLT8253

                   MOVCX,20h

 CON1:

         PUSHCX

                   CALLDISP

                   POPCX

                   LOOPCON1

                   MOVDX,IOBPT

                   MOVAL,00

                  OUTDX,AL

                   JMPREDIKEY

T8253:

        PUSHAX

                   MOVAL,76h;计数器1,16位二进制,方式3。

        MOVDX,CONTROL

                   OUTDX,AL

                   POPAX

                   MOVDX,COUNT1

                   OUTDX,AL

                    MOVAL,AH

                    OUTDX,AL

                    RET

;-------------------------

DISPKEY:

    CALLDISP

                   CALLKEY

                   MOVAH,AL;NEWKEY

                   MOVBL,LTIME;LTIME

                   MOVBH,lKEY;lKEY

                   MOVAL,01h

                   MOVDX,0FF21H

                   OUTDX,AL

                   CMPAH,BH

                   MOVBH,AH;BH=NEWKEY

                   MOVAH,BL;AL=TIME

                   JZDISK4

                   MOVBL,88h

                   MOVAH,88h

 DISK4:

       DECAH

                  CMPAH,82h

                  JZDISK6

                  CMPAH,0eh

                   JZDISK6

                  CMPAH,00h

                  JZDISK4

          

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 成人教育 > 成考

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1