单片机原理课程设计报告--电子琴

上传人:鲁** 文档编号:486846739 上传时间:2022-10-24 格式:DOCX 页数:15 大小:320.20KB
返回 下载 相关 举报
单片机原理课程设计报告--电子琴_第1页
第1页 / 共15页
单片机原理课程设计报告--电子琴_第2页
第2页 / 共15页
单片机原理课程设计报告--电子琴_第3页
第3页 / 共15页
单片机原理课程设计报告--电子琴_第4页
第4页 / 共15页
单片机原理课程设计报告--电子琴_第5页
第5页 / 共15页
点击查看更多>>
资源描述

《单片机原理课程设计报告--电子琴》由会员分享,可在线阅读,更多相关《单片机原理课程设计报告--电子琴(15页珍藏版)》请在金锄头文库上搜索。

1、北京工商大学计算机与信息工程学院 单片机原理课程设计报告题目:用PROTEUS实现:硬件实验二十五 电子琴专业:电气工程及其自动化班级:学号:姓名: 同组姓名:指导教师: 单片机原理课程设计报告一 题目:用protues实现硬件实验25 电子琴二 要求:2.1设计任务 a设计一个4X6的24个按键矩阵,并且1-7键每个键对应一个音。b用AT80C51将键盘连接设计成为电子琴。c编写电子琴的程序,要到达可以随意弹奏想要表达的音乐的目的。d程序的分析与调试。2.2设计要求a用汇编语言编程实现程序设计。b利用查表,中断等方式实现目的。c系统的各个功能模块要清楚,有序。2.3设计说明 a、利用定时器,

2、可以发出不同频率的脉冲,不同频率的脉冲经喇叭驱动电路放大滤波后,就会发出不同的音调.b、定时器按设置的定时参数产生中断,这一次中断发出脉冲低电平,下一次反转发出脉冲高电平.由于定时参数不同,就发出了不同频率的脉冲. 本实验中按键一次,会发50个脉冲.发完后继续检测键盘,如果键还按下,继续发音。各音阶标称频率值:音阶1234567频率HZ444.0493.8554.3587.3659.2739.9830.62.4课设目的a. 了解计算机发声原理。b. 进一步熟悉定时器编程方法.c. 进一步熟悉键盘扫描电路工作原理及编程方法三总体说明:本系统采用单片机AT80C51为电子琴的控制核心,系统主要包括

3、播放模块、按键控制模块。下面对各模块的设计逐一进行论证比拟。3.1 播放模块播放模块是喇叭构成。它几乎不存在噪声,音响效果较好。而且由于所需驱动功率较小,且价格低廉,所以,被广泛应用。 3.2按键控制显示模块电子琴设有24个按键,其中7个作为音符输入。7个按键分别代表7个音符,包括中音段的全部音符。当按下剩余的17个按键时,实现数码管显示全为8.8.8.8.8.8.3.3总体硬件组成框图按键控制显示模块播放模块 喇叭中心控制模块 AT80C51 按 键 状 态 三 硬件设计:电 子 琴 全 图4.1键盘显示电路数码显示电路键盘按键电路键盘采用编程扫描方式,显示译码管采用动态显示方式,左端74L

4、S374和74LS245的输入端接分别接地址锁存器74LS373的输入端。RDWR片选信号CS1A0A1A2Mov dptr, #8001hMovx a, dptrMov dptr,#8002hMovx dptr, aMov dptr,#8004hMov dptr,a4.2片选74ls138A15A14A13A124.3地址锁存器74ls373输入端接单片机P0口,输出分别为A0A74.4单片机80c514.5 音频输出及8255片选输入端D0D7分别接入单片机P0口,A0A1接入地址锁存器输出端A0A1单片机工作于12MHZ时钟频率,使用其定时/计数器T0,工作模式为1,改变计数值TH0和T

5、L0可以产生不同频率的脉冲信号,在此情况下,C调的各音符频率与计数值T的对照如下表:音符频率HZ计数值T值音符频率HZ计数值T值低1DO26263628#4FA#74064860#1DO#27763737中5SO78464898低2RE29463835#5SO#83194934#2RE#31163928中6LA88064968低3MI33064021#6LA#93264994低4FA34964103中7SI96865030#4FA#37064185低1DO104665058低SO39264260#1DO#110965085#5SO#41564331高2RE117565110低6LA440644

6、00#2RE#124565134#6LA#46664463高3MI131865157低7SI49464524高4FA139765178中1DO52364580#4FA#149065198#1DO#55464633高5SO156865217中2RE58764633#5SO#166165235#2RE#62264884高6LA176065252中3MI65964732#6LA#186565268中4FA69864820高7SI196765283五软件设计5.1程序框图5.2 源程序mode equ 082hPORTA equ 08000hCTL equ 08003hOUTBIT equ 09002

7、hIN equ 09001hPulse equ 55hPulseCNT equ 50hToneHigh equ 51hToneLow equ 52hTone equ 53hKeyBuf equ 54hSpeaker equ PORTA ljmp Start org 000bhTimer0Int: ;设置中断0 push PSW clr TR0 mov TH0, ToneHigh mov TL0, ToneLow setb TR0 mov a, Pulse mov dptr, #Speaker movx dptr,a inc Pulse dec PulseCNT pop PSW retiTone

8、Table: ;设置7个音节的频率 dw 64578, 64686, 64778, 64821, 64898, 64968, 65029TestKey: ;检测键输入 mov dptr, #OUTBIT mov a, #0 movx dptr, a mov dptr, #IN movx a, dptr cpl a anl a, #0fh retKeyTable: db 16h, 15h, 14h, 0ffh db 13h, 12h, 11h, 10h db 0dh, 0ch, 0bh, 0ah db 0eh, 03h, 06h, 09h db 0fh, 02h, 05h, 08h db 00h

9、, 01h, 04h, 07hGetKey: 读入键值 mov dptr, #OUTBIT mov P2, dph mov r0, #Low(IN) mov r1, #00100000b mov r2, #6KLoop: mov a, r1 cpl a movx dptr, a cpl a rr a mov r1, a movx a, r0 cpl a anl a, #0fh jnz Goon1 djnz r2, KLoop mov r2, #0ffh sjmp ExitGoon1: mov r1, a mov a, r2 dec a rl a rl a mov r2, a ; r2 = (r

10、2-1)*4 mov a, r1 mov r1, #4LoopC: rrc a jc Exit inc r2 djnz r1, LoopCExit: mov dptr, #OUTBIT clr a movx dptr, a mov a, r2 mov dptr, #KeyTable movc a, a+dptr retStart: mov sp, #70h mov a, #mode mov dptr,#CTL movx dptr,a mov TMOD, #01 ; Timer mov IE, #82h ; EA=1, IT0 = 1 mov Tone,#0MLoop: call TestKey jz MLoop call GetKey mov b, a jz MLoop ; = 0, 7 dec b mov a, b rl a ; a = a*2 mov b, a mov dptr, #ToneTable movc a, a+dptr mov ToneHigh, a mov TH0, a mov a, b inc a movc a, a+dptr mov ToneLow, a

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 商业计划书

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号