单片机实现电子琴课程设计.docx

上传人:b****3 文档编号:3220155 上传时间:2022-11-20 格式:DOCX 页数:17 大小:906.44KB
下载 相关 举报
单片机实现电子琴课程设计.docx_第1页
第1页 / 共17页
单片机实现电子琴课程设计.docx_第2页
第2页 / 共17页
单片机实现电子琴课程设计.docx_第3页
第3页 / 共17页
单片机实现电子琴课程设计.docx_第4页
第4页 / 共17页
单片机实现电子琴课程设计.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

单片机实现电子琴课程设计.docx

《单片机实现电子琴课程设计.docx》由会员分享,可在线阅读,更多相关《单片机实现电子琴课程设计.docx(17页珍藏版)》请在冰豆网上搜索。

单片机实现电子琴课程设计.docx

单片机实现电子琴课程设计

第1章引言

当今社会,随着人们物质生活的不断提高,电子产品能够已经走进了家家户户,无论是生活或学习,还是娱乐消遣几乎样样离不开电子产品。

单片机由于其微小的体积和极低的成本,广泛应用于家用电器,工业控制等领域中。

单片微型计算机是微型计算机的一个重要分支,也是颇具生命力的机种。

单片微型计算机简称单片机,特别适用于控制领域,故又称为微控制器。

电子琴是高科技在音乐领域的一个代表,它是古典文化与现代文明的一个浓缩体。

它不但可以帮助我们的音乐教师进行传统音乐文化的教育教学工作,而且由于它又具备现代与音乐,特别是电子音乐,电脑音乐的基本结构,特征,因而是我们的教师在进行现代音乐、电子音乐、电脑音乐的教学时,更直接、更简便。

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

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

本文的主要内容是以单片机为核心控制元件,设计一个电子琴。

以单片机为主控核心,与8255、键盘、扬声器等模块组成核心主控制模块。

利用定时器发出不同频率的脉冲,经喇叭放大电路放大滤波后,发出不同的音调。

每按键一次发出五十个脉冲,发完后继续检查有无键按下。

 

第2章芯片引脚介绍

2.18031引脚介绍

8051单片机的引脚及相关功能;  

40个引脚按引脚功能大致可分为4个种类:

电源、时钟、控制和I/O引脚。

  

⒈电源:

  ⑴VCC-芯片电源,接+5V;  ⑵VSS-接地端; 

⒉时钟:

XTAL1、XTAL2-晶体振荡电路反相输入端和输出端。

  

⒊控制线:

控制线共有4根, 

⑴ALE/PROG地址锁存允许/片内EPROM编程脉冲  

①ALE功能:

用来锁存P0口送出的低8位地址  

②PROG功能:

片内有EPROM的芯片,在EPROM编程期间,此引脚输入编程脉冲。

  

⑵PSEN:

外ROM读选通信号。

  

⑶RST/VPD:

复位/备用电源。

  

①RST(Reset)功能:

复位信号输入端。

  

②VPD功能:

在Vcc掉电情况下,接备用电源。

  

⑷EA/Vpp:

内外ROM选择/片内EPROM编程电源。

  

①EA功能:

内外ROM选择端。

  

②Vpp功能:

片内有EPROM的芯片,在EPROM编程期间,施加编程电源Vpp。

  

⒋I/O线  

80C51共有4个8位并行I/O端口:

P0、P1、P2、P3口,共32个引脚。

  P3口还具有第二功能,用于特殊信号输入输出和控制信号(属控制总线)  

5.P3口第二功能  

P30RXD串行输入口,P31TXD串行输出口  

P32INT0外部中断0(低电平有效)  

P33INT1外部中断1(低电平有效)  

P34T0定时计数器0,P35T1定时计数器1  

P36WR外部数据存储器写选通(低电平有效)  

P37RD外部数据存储器读选通(低电平有效)

2.28255引脚介绍

 RESET:

复位输入线,当该输入端处于高电平时,所有内部寄存器(包括控制寄存器)均被清除,所有I/O口均被置成输入方式。

  

CS:

芯片选择信号线,当这个输入引脚为低电平时,即/CS=0时,表示芯片被选中,允许8255与CPU进行通讯;/CS=1时,8255无法与CPU做数据传输.  

RD:

读信号线,当这个输入引脚为低电平时,即/RD=0且/CS=0时,允许8255通过数据总线向CPU发送数据或状态信息,即CPU从8255读取信息或数据。

  

WR:

写入信号,当这个输入引脚为低电平时,即/WR=0且/CS=0时,允许CPU将数据或控制字写入8255。

  

D0~D7:

三态双向数据总线,8255与CPU数据传送的通道,当CPU执行输入输出指令时,通过它实现8位数据的读/写操作,控制字和状态信息也通过数据总线传送。

PA0~PA7:

端口A输入输出线,一个8位的数据输出锁存器/缓冲器,一个8位的数据输入锁存器。

  

PB0~PB7:

端口B输入输出线,一个8位的I/O锁存器,一个8位的输入输出缓冲器。

  

PC0~PC7:

端口C输入输出线,一个8位的数据输出锁存器/缓冲器,一个8位的数据输入缓冲器。

端口C可以通过工作方式设定而分成2个4位的端口,每个4位的端口包含一个4位的锁存器,分别与端口A和端口B配合使用,可作为控制信号输出或状态信号输入端口。

'  

A1,A0:

地址选择线,用来选择8255的PA口,PB口,PC口和控制寄存器.  当A1=0,A0=0时,PA口被选择;  

当A1=0,A0=1时,PB口被选择;  

当A1=1,A0=0时,PC口被选择;  

当A1=1.A0=1时,控制寄存器被选择.

第3章电子琴实验

1、实验要求

利用实验仪上提供的键盘,是数字键1、2、3、4、5、6、7作为电子琴键,按下即发出相应的音调。

用8255的PA.0口发出音频脉冲,驱动喇叭。

二、实验目的

1、了解计算机发声原理。

2、进一步熟悉定时器编程方法。

3.、进一步熟悉键盘扫描电路工作原理及编程方法

三、实验电路及连接

键盘草图如下:

 

喇叭发声原理如下图:

PA0输出脉冲驱动喇叭:

 

连线:

连线

连接孔1

连接孔2

1

8255-CS

CS0

2

KEY/LED-CS

CS1

3

PA0

喇叭脉冲输入

 

四、实验说明

1、利用定时器,可以发出不同频率的脉冲,不同频率的脉冲经喇叭驱动电路放大滤波后,就会发出不同的音调。

2、定时器按设置定时的参数产生中断,这一次中断发出脉冲低电平,下一次反转发出脉冲高电平。

由于定时参数不同,就发出了不同频率的脉冲。

本实验中按键一次,会发50个脉冲。

发完后继续检测键盘,如果键还按下,继续发音。

各音阶标称频率值:

音阶

1

2

3

4

5

6

7

频率(Hz)

440.00

493.88

554.37

587.33

659.26

739.99

830.61

 

五、实验框图

主程序框图定时中断程序框图

第四章实验程序

modeequ082h

PORTAequ08000h

CTLequ08003h

OUTBITequ09002h

INequ09001h

Pulseequ55h

PulseCNTequ50h

ToneHighequ51h

ToneLowequ52h

Toneequ53h

KeyBufequ54h

SpeakerequPORTA

ljmpStart

org000bh

Timer0Int:

pushPSW

clrTR0

movTH0,ToneHigh

movTL0,ToneLow

setbTR0

mova,Pulse

movdptr,#Speaker

movx@dptr,a

incPulse

decPulseCNT

popPSW

reti

ToneTable:

dw64578,64686,64778,64821,64898,64968,65029

TestKey:

movdptr,#OUTBIT

mova,#0

movx@dptr,a

movdptr,#IN

movxa,@dptr

cpla

anla,#0fh

ret

KeyTable:

db16h,15h,14h,0ffh

db13h,12h,11h,10h

db0dh,0ch,0bh,0ah

db0eh,03h,06h,09h

db0fh,02h,05h,08h

db00h,01h,04h,07h

GetKey:

movdptr,#OUTBIT

movP2,dph

movr0,#Low(IN)

movr1,#00100000b

movr2,#6

KLoop:

mova,r1

cpla

movx@dptr,a

cpla

rra

movr1,a

movxa,@r0

cpla

anla,#0fh

jnzGoon1

djnzr2,KLoop

movr2,#0ffh

sjmpExit

Goon1:

movr1,a

mova,r2

deca

rla

rla

movr2,a;r2=(r2-1)*4

mova,r1

movr1,#4

LoopC:

rrca

jcExit

incr2

djnzr1,LoopC

Exit:

movdptr,#OUTBIT

clra

movx@dptr,a

mova,r2

movdptr,#KeyTable

movca,@a+dptr

ret

Start:

movsp,#70h

mova,#mode

movdptr,#CTL

movx@dptr,a

movTMOD,#01;Timer

movIE,#82h;EA=1,IT0=1

movTone,#0

MLoop:

callTestKey

jzMLoop

callGetKey

movb,a

jzMLoop;=0,<1

anla,#!

7

jnzMLoop;>7

decb

mova,b

rla;a=a*2

movb,a

movdptr,#ToneTable

movca,@a+dptr

movToneHigh,a

movTH0,a

mova,b

inca

movca,@a+dptr

movToneLow,a

movTL0,a

setbTR0

movPulseCNT,#100

Wait:

mova,PulseCNT

jnzWait

clrTR0

ljmpMLoop

end

 

第5章原理电路图

总电路图:

单片机外部电路:

数据存储器扩展:

程序存储器与数据存储器基本相似

第六章修改程序

将七个键发其中音调改为十五个键发十五个音调。

延长发音时间,即将没按键一次发五十个脉冲改为没按键一次发一百个脉冲。

(修改部分为大号加粗字体)

修改后程序如下:

modeequ082h

PORTAequ08000h

CTLequ08003h

OUTBITequ09002h

INequ09001h

Pulseequ55h

PulseCNTequ50h

ToneHighequ51h

ToneLowequ52h

Toneequ53h

KeyBufequ54h

SpeakerequPORTA

ljmpStart

org000bh

Timer0Int:

pushPSW

clrTR0

movTH0,ToneHigh

movTL0,ToneLow

s

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

当前位置:首页 > 法律文书 > 调解书

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

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