1、八按键简易电子琴的设计制作八按键简易电子琴的设计制作1.功能分析和方案论证说明(1)功能分析a.采用AT89C2051CPU,设计时钟电路和复位电路,上电复位和手动复位,3V供电(2节电池);b.具有电子琴输入按键8个,包含17和高音1;c.具有手动复位键1个,播放音乐和弹奏切换功能按键1个,在PCB图上标注“复位”、“功能切换”字样,这两个键在PCB图上分别布局于左右上角;d.有发光二极管显示程序运行状态(用1个发光二极管指示对应的1个按键,实际是8个发光二极管,只用1个代表);e.采用扬声器输出声音信号;f.实现电子琴功能并且至少有一首存储歌曲。g.发挥部分即时编辑音乐并且可回放,可实现实
2、现定时器功能,产生和弦音。(2)方案论证说明a.设计思路1)选择AT89C2051单片机,通过T0定时中断,并配合引脚输出音频频率;2)引脚输出接扬声器;3)通过接入八个按键,包含17和高音1,通过查询方式,获取输入;4)引脚接入一个指示灯,每有按键按下指示灯就亮一次;5)通过引脚接入功能按键,实现播放音乐和弹奏的切换,中断方式接入。b.硬件电路设计电子琴的硬件电路由4部分组成:单片机、时钟与复位电路、选择按键输入电路和扬声器组成电路框图如下所示。c. AT89C2051单片机性能、特点在我国MCS-51系列单片机,尤其是Philip公司的80C51及其派生产品受到普遍欢迎。美国ATMEL公司
3、生产的与MCS-51系列完全兼容的内含闪电存储器型单片机AT89C2051后来居上,大有取代MCS-51系列中EPROM之势。其中AT89C2051单片机是AT89C51系列中结构最紧凑,体积最小的单片机,它的片内有2k字节闪烁存储器,管脚封装为20引脚,与8751图1 电子琴硬件电路设计框图相比只去掉P0口、P2口,片内多一个模拟电压比较器。用它设计产品,外围元器件少,接口技术简单,缩小电路板面积,成本低,开发容易,可广泛应用于小型简单不需很多I/O口控制的各种智能产品设计,现已得到开发人员广泛认可。1) 硬件结构 AT89C2051主要特点(1)指令与MCS-51芯片兼容。(2)内含2k字
4、节的可反复电气烧录及擦除内存。(3)工作电压至6V。(4)工作频率最高至24 MHz。(5)内含128字节RAM。(6)15条可编程控制I/O线。(7)一个模拟电压比较器。硬件结构硬件结构如图1所示。图1AT89C2051管脚图1.2.1 引脚电气性能 AT89C2051单片机的P口特点P1口:P1口是一个8位双向I/O端口,其中引脚带有内部上拉电阻,和要求外部上拉电阻。和还分别作为片内精密模拟比较器的同相输入(AIN0)和反相输入(AIN1)。P1口输出缓冲器可吸收20mA电流,并能直接驱动LED显示。对端口写1时,通过内部的上拉电阻把端口拉到高电位,这时可作输入口。P2口作输入口使用时,因
5、为内部有上拉电阻,那些被外部信号拉低的引脚会输出一个电流(Iil)。P3口:、是带有内部上拉电阻的7个双向I/O端口。是比较器输出端,用于固定输入片内比较器的输出信号并且它作为一通用I/O口引脚而只读。位用于内部比较器输出控制,无法做一般I/O控制,P3口输出缓冲器可吸收20mA电流。对端口写1时,通过内部的上拉电阻把端口拉到高电位,这时可作输入口。P3口作输入口使用时,因为内部有上拉电阻,那些被外部信号拉低的引脚会输出一个电流(Iil)。、外部中断端口。在稳定的状态条件下Io 低被外部限制如下:1)每个管脚的最大IOL 15mA 注85 规格 2)每个8 位口的最大IOL 26 mA 3)I
6、OL 输出最大总和 71mA 4)如果IOL 超过测试条件VOL 可能会超过相应规格不能保证超过测试电流1.2.2 内部单元、运算器 1)算术逻辑部件ALU:用以完成+、-、*、/ 的算术运算及布尔代数的逻辑运算,并通过运算结果影响程序状态寄存器PSW的某些位,从而为判断、转移、十进制修正和出错等提供依据。 2)累加器A:在算术逻辑运算中存放一个操作数或结果,在与外部存储器和I/O接口打交道时,进行数据传送都要经过A来完成。 3)寄存器B:在 *、/ 运算中要使用寄存器B 。乘法时,B用来存放乘数以及积的高字节;除法时,B用来存放除数及余数。不作乘除时,B可作通用寄存器使用。 4)程序状态标志
7、寄存器PSW:用来存放当前指令执行后操作结果的某些特征,以便为下一条指令的执行提供依据。PSW: (D0H)D7 D6 D5 D4 D3 D2 D1 D0 Cy AC F0 RS1 RS0 OV P Cy:进位标志。有进位或借位,则Cy1,否则Cy0 ;在布尔运算时,Cy(简称C)作为布尔处理器。 AC:辅助进位标志位。 F0:用户标志位:用户可用软件对F0置位“1”或清“0”,以决定程序的流向。 OV:溢出标志位:当运算结果溢出时,OV为“1”,否则为“0”。 :未定义。 P: 奇偶校验位:当累加器A中的“1”的个数为奇数时,P置“1”,否则P置“0”。RS1、RS0:工作寄存区选择位:、片
8、内工作寄存器组 RS1、RS0与片内工作寄存器组的对应关系 RS1 RS0 寄存器区 片内RAM地址 通用寄存器名称 0 0 0 00H07H R0R7 0 1 1 08H0FH R0R7 1 0 2 10H17H R0R7 1 1 3 18H1FH R0R7、控制器:1)指令寄存器IR和指令译码器。2)程序计数器:存放CPU执行下一条指令的地址。是一个16位寄存器,可寻址64KB。3)堆栈指针SP:用于子程序调用和中断处理。【机器复位后,SP#07H ,因此压栈的第一个数据在08H单元中】。4)数据指针寄存器DPTR:16位的寄存器,也可以作为两个8位寄存器DPH和DPL 。DPTR主要作外
9、部数据指针,可对64KB外部RAM进行间接寻址。 MCS-51由包括PC在内的22个特殊功能寄存器,它们除有各自的名称外,还有唯一的地址,离散的分布在片内RAM中的80HFFH共128个存储单元中。在这128个储存单元构成的SFR块中,未被占用的单元不可使用。、21个特殊功能寄存器SFR特殊功能寄存器 功能名称 地址复位后状态B *寄存器 F0H 00HA *累加器 E0H 00HPSW *程序状态标志寄存器 D0H 00HIP *中断优先级控制器 B8HXXX00000BP3 *P3口数据寄存器 B0H FFHIE *中断允许控制寄存器 A8H 0XX00000BP2 *P2口数据寄存器 A
10、0H FFHSBUF 串行口发送接收缓冲器 99H 不定SCON *串行口控制寄存器 98H 00HP1 *P1口数据寄存器 90H FFHTL1 T1计数器低8位8BH 00HTL0 T0计数器低8位8AH 00HTH1 T1计数器高8位8DH 00HTH0 T0计数器高8位8CH 00HTMOD 定时器计数器方式控制寄存器 89H 00HTCON *定时器控制寄存器 88H 00HPCON 电源控制寄存器 87H 00HDPL 地址寄存器低8位 82H 00HDPH 地址寄存器高8位 83H 00HSP 堆栈指针寄存器 81H 07HP0 *P0口数据寄存器 80H FFHPC 程序计数器
11、 无地址 0000H注:“*”表示可位寻址。;SP赋值方法:(其中#50H为寄存器50H,不可直接写为50H,否则SP指向寄存器00H) MOV SP,#50H2 )复位电路的可靠性设计 影响单片机系统运行稳定性的因素可大体分为外因和内因两部分: (1)外因 射频干扰,它是以空间电磁场的形式传递 在机器内部的导体(引线或零件引脚)感生出相应的干扰,可通过电磁屏蔽和合理的布线/器件布局衰减该类干扰; 电源线或电源内部产生的干扰,它是通过电源线或电源内的部件耦合或直接传导,可通过电源滤波、隔离等措施来衰减该类干扰。(2)内因 振荡源的稳定性,主要由起振时间频率稳定度和占空比稳定度决定起振时间可由电
12、路参数整定稳定度受振荡器类型温度和电压等参数影响复位电路的可靠性。 基本复位电路 复位电路的基本功能是:系统上电时提供复位信号,直至系统电源稳定后,撤销复位信号。为可靠起见,电源稳定后还要经一定的延时才撤销复位信号,以防电源开关或电源插头分-合过程中引起的抖动而影响复位。图2所示的RC复位电路可以实现上述基本功能。 单片机的复位电路1复位电路单片机复位是使CPU和系统中的其他功能部件都处在一个确定的初始状态,并从这个状态开始工作,例如复位后PC=0000H,使单片机从第一个单元取指令。复位电路一般有上电复位、手动开关复位等电路,如图2所示。2复位后的状态(1) 复位后PC值为0000H,表明复
13、位后程序从0000H开始执行。(2) SP值为07H,表明堆栈底部在07H。一般需重新设置SP值。(3) P0P3口值为FFH。P0P3口用作输入口时,必须先写入“1”。单片机在复位后,已使P0P3口每一端线为“1”,为这些端线用作输入口做好了准备。 图2 常用复位电路 时钟电路与时序在MCS-51芯片内部有一个高增益反相放大器,其输入端为芯片引脚XTAL1,其输出端为引脚XTAL2。而在芯片的外部,XTAL1和XTAL2之间跨接晶体振荡器和微调电容,构成一个稳定的自激振荡器,这就是单片机的时钟电路,如图3所示。时钟电路产生的振荡脉冲经过触发器进行二分频之后,才成为单片机的时钟脉冲信号。(电子
14、琴设计晶振采用12M,电容30PF)。图3 单片机的时钟电路 时序图4 时序图(1)节拍与状态把振荡脉冲的周期定义为节拍(用P表示)。振荡脉冲经过二分频后,就是单片机的时钟信号的周期,其定义为状态(用S表示)。这样,一个状态就包含两个节拍。 (2) 机器周期 规定一个机器周期的宽度为6个状态,并依次表示为S1S6。由于一个状态又包括两个节拍,因此,一个机器周期总共有12个节拍。 (3)指令周期 指令周期是最大的时序定时单位, 执行一条指令所需要的时间称为指令周期。它一般由若干个机器周期组成。指令周期时序如图4所示。 3 )软件设计指令使用限制(1)AT89C2051内部有19个专用寄存器,比A
15、T89C51少了P0、P2两个专用寄存器。(2)AT89C2051含有2k字节闪电存储器用来存放程序,与MCS-51体系结构完全兼容,可用MCS-51指令系统对其进行程序设计。然而,当我们用某些指令对AT89C2051进行程序设计时,一定要牢记某些特点。(3)因为AT89C2051内部只有2k字节程序存储器,所以,所有跳转指令之目的地址必须落在该器件2k字节的程序存储器物理空间之内,这是程序设计人员责任。例如:LJMP7EOH指令有效,而LJMP900H则无效。分支指令:LCALL、LJMP、 ACALL、SJMP等无条件分支指令,只要程序设计人员保证它们的目的地址一定落在000H7FFH范围
16、内就可执行无误;超出物理空间的界限就会引起 不可知的程序执行结果。CJNE、DJNE、JB、JNB等无条件分支指令,也须遵从上述规则。另外,MOVX指令:AT89C2051不可外扩数据存储器,亦不可外扩程序存储器。故在程序中不应包括访问片外数据存储器的MOVX指令。通常汇编程序只顾汇编,不管它所翻译的这些指令是否违反上述规则,这就 要求程序设计人员在这方面特别注意。闪电存储器的编程AT89C2051片内存储器售后通常处于擦除状态,即每个地址单元内容均为FFH,人们可随时对其编程。编程电压Vpp有高压12V的,也有低压 5V的。低压编程方式可以实现在用户系统内对AT89C2051进行编程;而高压
17、编程方式则与常规闪电存储器或EPROM编程相兼容。在这两种编程方式下,AT89C2051代入程序阵列均是逐个字节编程的,为了对片内闪电存储器任一非空白字节进行编程,必须用芯片擦除方式将整个存储器擦掉。编程器开发片内闪电存储器程序代码或数据可在线写入,亦可通过常规的编程器编程。例如:南京万利达MP-100这样一种经济型编程器,它支持通用EPROM等各种存储器,INTEL、ATMEL和Philips等各公司的全系列51单片机编程。ME5103和ME5105仿真器支持AT89系列所有器件调试、仿真和编程。为了实验或节省开发成本,可以只购买一个支持ATMEL89C2051编程器和逻辑测试笔,通过它编程
18、写入芯片后,可以在实际电路系统中实验,如果发现问题,可以重新修改,重新编程写入。它可反复擦写使用,在不更改硬件前提下,通过软件编程,轻松实现产品功能变化的要求。AT89C2051系列单片机主要产品见表1。表1AT89C51系列单片机主要产品型号存储规模说明AT89C10511 k8 V6 V 20引脚封装AT89C20512 k8 V6 V 20引脚封装AT89C514 k8含4 k字节闪电存储器80C31AT89C528 k8含8 k字节闪电存储器80C324) 总结AT89C2051单片机具有体积小巧,内建2KB电擦除程序存储器,造价低,外围元器件小,开发简单,是工程技术人员及单片机爱好者
19、制作各种智能产品首选机型,也是许多数字电路、分立元件组成的老产品更新换代最好选择。2.电路原理设计和PCB设计(1)电路原理设计a.时钟电路的设计单片机工作的时间基准是由时钟电路提供的。在单片机的XTAL1和XTAL2两个引脚间接一只晶振和两只电容就构成了单片机的时钟电路。电路中C1和C2对振荡频率有微调作用,这里选用30pf,石英晶体采用12MHz。如下图。图2 时钟与复位电路b.复位电路的设计单片机的RST引脚为主机提供一个外部复位信号输入端口。复位信号是高电平有效,高电平有效的持续时间应为2个机器周期以上。复位以后,单片机内各部件恢复到初始状态,单片机从ROM0000H开始执行程序。本设
20、计中采用手动复位方式,电容用10uF,电阻采用10K欧姆的。如上图。c.外围电路P1口中的引脚带有内部上拉电阻,可直接与按键相接,和要求外接上拉电阻。接指示灯,接喇叭,接功能切换键。图3 电子琴原理图(2)PCB设计整体布局如下:图 4 PCB布局1、焊盘内径是0.9mm,外径是3.0mm,普通线宽是1.4mm ,电源线宽度比普通线要加宽为2mm,线与线的安全间距为0.5mm左右。2、三极管管脚间距5mm,三个角成三角形,电阻焊盘间距11mm,电容焊盘间距5mm,焊盘直径大小均在3.0mm。 3、AT89C2051两排管脚间距为7.62mm,每排各管脚间距为2.54mm,其管脚焊盘是运动场型(
21、椭圆形),长:X=3.5mm(长34mm),宽:Y=2mm;按键57mm,焊盘直径不小于3.0mm (或140160mil),二极管管脚间距4mm。4、电源标出“+”,“-”极,靠边并排引出,焊盘设计成椭圆形,并增大面积,正负极之间距离为9mm。6、焊盘采用水滴形,以增加焊盘的牢固性。 图 5 PCB打印图 6 实物图3.软件设计与调试说明程序结构、程序流程图、仿真结果以及源程序代码。1程序结构MAIN.主程序MM.按键程序YINYUE.歌曲程序2程序流程图图 7程序流程图 3.源程序代码: ORG 0000H LJMP MAIN ORG 0003H LJMP ZD ORG 000BH LJM
22、P TIM ORG 001BH LJMP T0_SEV ORG 0100HMAIN: SETB MOV TMOD,#01H MOV IE,#83H SETB IT0 SS: JNB ,MM1 JMP MM2 MM1:LJMP AA MM2:CLR TR0 MOV TH0,#00H MOV TL0,#00HMM: JNB ,N1 ;电子琴程序 JNB ,N2 JNB ,N3 JNB ,N4 JNB ,NN5 JNB ,NN6 JNB ,NN7 JNB ,NN8 JNB ,AA LJMP NOKEYNN5: LJMP N5NN6: LJMP N6NN7: LJMP N7NN8: LJMP N8AA
23、: CLR LCALL DEY SETB LCALL YINYUE LJMP MMN1: MOV DPTR,#TAB MOV A,#00H MOVC A,A+DPTR MOV R1,A MOV A,#01H MOVC A,A+DPTR MOV R0,A MOV TH0,R1 MOV TL0,R0 SETB TR0 CLR RE1: JB ,MAIN AJMP RE1N2: MOV DPTR,#TAB MOV A,#02H MOVC A,A+DPTR MOV R1,A MOV A,#03H MOVC A,A+DPTR MOV R0,A MOV TH0,R1 MOV TL0,R0 SETB TR0
24、 CLR RE2: JB ,MAIN AJMP RE2N3: MOV DPTR,#TAB MOV A,#04H MOVC A,A+DPTR MOV R1,A MOV A,#05H MOVC A,A+DPTR MOV R0,A MOV TH0,R1 MOV TL0,R0 SETB TR0 CLR RE3: JB ,Y0 AJMP RE3Y0: LJMP MAINN4: MOV DPTR,#TAB MOV A,#06H MOVC A,A+DPTR MOV R1,A MOV A,#07H MOVC A,A+DPTR MOV R0,A MOV TH0,R1 MOV TL0,R0 SETB TR0 CL
25、R RE4: JB ,Y1 AJMP RE4Y1: LJMP MAINN5: MOV DPTR,#TAB MOV A,#08H MOVC A,A+DPTR MOV R1,A MOV A,#09H MOVC A,A+DPTR MOV R0,A MOV TH0,R1 MOV TL0,R0 SETB TR0 CLR RE5: JB ,Y2 AJMP RE5Y2: LJMP MAINN6: MOV DPTR,#TAB MOV A,#0AH MOVC A,A+DPTR MOV R1,A MOV A,#0BH MOVC A,A+DPTR MOV R0,A MOV TH0,R1 MOV TL0,R0 SETB TR0 CLR RE6: JB ,M1 AJMP RE6M1: LJMP MAINN7: MOV DPTR,#TAB MOV A,#0CH MOVC A,A+DPTR MOV R1,A MOV A,#0DH MOVC A,A+DPTR MOV R0,A MOV TH0,R1 MOV TL0,R0 SETB TR0 CLR RE7: JB ,M2 AJMP RE7M2: LJMP MAINN8: MOV DPTR,#TAB MOV A,#0EH MOVC A,A+DPTR MOV R1,A MOV A,#0FH MOVC A,A+
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1