《单片机实现电子琴课程设计(共18页).doc》由会员分享,可在线阅读,更多相关《单片机实现电子琴课程设计(共18页).doc(18页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上第一章 引言当今社会,随着人们物质生活的不断提高,电子产品能够已经走进了家家户户,无论是生活或学习,还是娱乐消遣几乎样样离不开电子产品。单片机由于其微小的体积和极低的成本,广泛应用于家用电器,工业控制等领域中。单片微型计算机是微型计算机的一个重要分支,也是颇具生命力的机种。单片微型计算机简称单片机,特别适用于控制领域,故又称为微控制器。电子琴是高科技在音乐领域的一个代表,它是古典文化与现代文明的一个浓缩体。它不但可以帮助我们的音乐教师进行传统音乐文化的教育教学工作,而且由于它又具备现代与音乐,特别是电子音乐,电脑音乐的基本结构,特征,因而是我们的教师在进行现代音乐、电
2、子音乐、电脑音乐的教学时,更直接、更简便。电子琴是现代电子科技与与音乐结合的产物,是一种新型的键盘乐器。他在现代音乐扮演者重要的角色,单片机具有强大的控制功能和灵活的编程实现特性,它已经融入现代人们的生活中,成为不可替代的一部分。本文的主要内容是以单片机为核心控制元件,设计一个电子琴。以单片机为主控核心,与8255、键盘、扬声器等模块组成核心主控制模块。利用定时器发出不同频率的脉冲,经喇叭放大电路放大滤波后,发出不同的音调。每按键一次发出五十个脉冲,发完后继续检查有无键按下。 第二章 芯片引脚介绍 2.1 8031引脚介绍8051单片机的引脚及相关功能; 40个引脚按引脚功能大致可分为4个种类
3、:电源、时钟、控制和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功能:内外R
4、OM选择端。 Vpp功能:片内有EPROM的芯片,在EPROM编程期间,施加编程电源Vpp。 I/O线 80C51共有4个8位并行I/O端口:P0、P1、P2、P3口,共32个引脚。 P3口还具有第二功能,用于特殊信号输入输出和控制信号(属控制总线) 5. P3口第二功能 P30 RXD 串行输入口 ,P31 TXD 串行输出口 P32 INT0 外部中断0(低电平有效) P33 INT1 外部中断1(低电平有效) P34 T0 定时计数器0 ,P35 T1 定时计数器1 P36 WR 外部数据存储器写选通(低电平有效) P37 RD 外部数据存储器读选通(低电平有效) 2.2 8255引脚介
5、绍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。 D0D7:三态双向数据总线,8255与CPU数据传
6、送的通道,当CPU 执行输入输出指令时,通过它实现8位数据的读/写操作,控制字和状态信息也通过数据总线传送。 PA0PA7:端口A输入输出线,一个8位的数据输出锁存器/缓冲器, 一个8位的数据输入锁存器。 PB0PB7:端口B输入输出线,一个8位的I/O锁存器, 一个8位的输入输出缓冲器。 PC0PC7:端口C输入输出线,一个8位的数据输出锁存器/缓冲器, 一个8位的数据输入缓冲器。端口C可以通过工作方式设定而分成2个4位的端口, 每个4位的端口包含一个4位的锁存器,分别与端口A和端口B配合使用,可作为控制信号输出或状态信号输入端口。 A1,A0:地址选择线,用来选择8255的PA口,PB口,
7、PC口和控制寄存器. 当A1=0,A0=0时,PA口被选择; 当A1=0,A0=1时,PB口被选择; 当A1=1,A0=0时,PC口被选择; 当A1=1.A0=1时,控制寄存器被选择.第三章 电子琴实验一、 实验要求利用实验仪上提供的键盘,是数字键1、2、3、4、5、6、7作为电子琴键,按下即发出相应的音调。用8255的PA.0口发出音频脉冲,驱动喇叭。二、实验目的1、了解计算机发声原理。2、进一步熟悉定时器编程方法。3.、进一步熟悉键盘扫描电路工作原理及编程方法三、实验电路及连接键盘草图如下: 喇叭发声原理如下图:PA0输出脉冲驱动喇叭:连线:连线连接孔1连接孔218255-CSCS02KE
8、Y/LED-CSCS13PA0喇叭脉冲输入四、实验说明1、 利用定时器,可以发出不同频率的脉冲,不同频率的脉冲经喇叭驱动电路放大滤波后,就会发出不同的音调。2、 定时器按设置定时的参数产生中断,这一次中断发出脉冲低电平,下一次反转发出脉冲高电平。由于定时参数不同,就发出了不同频率的脉冲。本实验中按键一次,会发50个脉冲。发完后继续检测键盘,如果键还按下,继续发音。各音阶标称频率值:音阶1234567频率(Hz)440.00493.88554.37587.33659.26739.99830.61五、实验框图 主程序框图 定时中断程序框图第四章 实验程序mode equ 082hPORTA equ
9、 08000hCTL equ 08003hOUTBIT equ 09002hIN equ 09001hPulse equ 55hPulseCNT equ 50hToneHigh equ 51hToneLow equ 52hTone equ 53hKeyBuf equ 54hSpeaker equ PORTA ljmp Start org 000bhTimer0Int: push PSW clr TR0 mov TH0, ToneHigh mov TL0, ToneLow setb TR0 mov a, Pulse mov dptr, #Speaker movx dptr,a inc Pulse
10、 dec PulseCNT pop PSW retiToneTable: 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
11、, 08h db 00h, 01h, 04h, 07hGetKey: mov dptr, #OUTBIT mov P2, dph mov r0, #Low(IN) mov r1, #b 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 = (r2
12、-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
13、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 mov TL0, a setb TR0 mov PulseCNT, #100Wait: mov a,PulseCNT jnz Wait clr TR0 ljmp MLoop end第五章 原理电路图 总电路图:
14、 单片机外部电路:数据存储器扩展:程序存储器与数据存储器基本相似第六章 修改程序将七个键发其中音调改为十五个键发十五个音调。延长发音时间,即将没按键一次发五十个脉冲改为没按键一次发一百个脉冲。(修改部分为大号加粗字体)修改后程序如下:mode equ 082h PORTA equ 08000h CTL equ 08003hOUTBIT equ 09002hIN equ 09001hPulse equ 55h PulseCNT equ 50hToneHigh equ 51hToneLow equ 52hTone equ 53h KeyBuf equ 54hSpeaker equ PORTA lj
15、mp Start org 000bhTimer0Int: 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 retiToneTable: dw 64578, 64686, 64778, 64821, 64898, 64968, 65029 dw 65058, 65110, 65157, 65178, 65217, 65252,65283,65301TestKey: mov d
16、ptr, #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, 01h, 04h, 07hGetKey: mov dptr, #OUTBIT mov P2, dph mov r0, #Low(IN) mov r1, #b mov r2,
17、#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 = (r2-1)*4 mov a, r1 mov r1, #4LoopC: rrc a jc Exit inc r2 djnz r1, LoopCExit: mov dptr, #OUTBIT clr a mov
18、x 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, 9 dec b mov a, b rl a ; a = a*2 mov b, a mov dptr, #Ton
19、eTable movc a, a+dptr mov ToneHigh, a mov TH0, a mov a, b inc a movc a, a+dptr mov ToneLow, a mov TL0, a setb TR0 mov PulseCNT, #200Wait: mov a,PulseCNT jnz Wait clr TR0 ljmp MLoop end第七章 心得体会一周的课程设计结束了。在这次课程设计的过程中,我不仅加深了对单片机的理解,将理论很好的应用于实践中去,而且学会了应用伟福软件,绘图软件。刚开始拿到程序的时候是一头雾水,什么都看不懂,后来经过查阅书籍,同学之间互相讨论,才弄懂程序。然后根据程序画电路原理图,了解了单片机,8255各引脚功能,掌握单片机复位电路、振荡电路和喇叭发声原理图,键盘、程序存储器和数据存储器的接法,逐渐对单片机有了系统的认识。在理解了程序和电路原理图的基础上,我又改动了程序,将原本的七个音扩展到八个音和十五个音,将按键一次发声的时间延长和缩短。做到了真正会用程序。在设计过程中,同学之间互相讨论,才使很多问题得到解决,我认识到合作的重要性。通过这次课程设计,我真正的懂得了“世上无难事,只怕有心人”这句话,不论多么难的事,只要用心了,认真了,就能成功。最后,感谢老师的认真指导。专心-专注-专业