电子琴设计eda 第5页
ORG 000BH
LJMP HEHE ;定时器T0中断入口
ORG 001BH
LJMP HAHA ;定时器T1中断入口
MAIN: MOV DPTR,#0000H ;定义EEPROM数据存放首地址
PUSH DPH ;把地址高8位压入堆栈
PUSH DPL ;把地址低8位压入堆栈
MOV R0,#00H ;中间寄存器,判写第几个表位
MOV R1,#1EH ;定义音乐长度
LOOP: MOV DPTR,#TAB1 ;把表首地址输入到DPTR
MOV A,R0 ;指定TAB1表中的第几个数
MOVC A,@A+DPTR ;读表
POP DPL
POP DPH ;弹出EEPROM存储地址
MOVX @DPTR,A ;音乐数据存入EEPROM
LCALL DEL15ms ;数据存入所需时间
INC R0 ;指向TAB1的下一位
INC DPTR ;指向下一存储地址
PUSH DPH
PUSH DPL ;EEPROM存储地址压入堆栈
DJNZ R1,LOOP ;是否已写完所有音乐
;**************************************************************
MOV TMOD,#11H ;T0/T1采用定时方式1,16位计数器
MOV IP,#02H ;T0定时为最高优先级
MOV IE,#10001010B ;允许EA、T0、T1中断
MOV TH0,#9EH ;定时25ms12M晶振
MOV TL0,#58H ;初值=65536-25000=40536=9E58H
MOV R0,#00H
MOV DPTR,#0000H ;定义存储器首地址
PUSH DPH
PUSH DPL
MUSIC:POP DPL
POP DPH
MOVX A,@DPTR ;EEPROM中数据读出
MOV R2,A
INC DPTR ;指向下一地址
PUSH DPH
PUSH DPL
www.751com.cn PUSH DPL
CJNE A,#88H,MUSIC1 ;EEPROM中数据是否结束
;******************************************
CLR TR0
CLR TR1 ;关中断
SETB P3.5 ;喇叭不发声
AP:SJMP AP ;等待
;********************************************
;以下程序为EEPROM中的数据赋予对应的频率(TAB2)给定时器T1,用于音乐发音
;********************************************
MUSIC1:RL A ;A中的数据左移一位取高一位
MOV R3,A
MOV DPTR,#TAB2 ;查频率表
MOV A,R3
MOVC A,@A+DPTR ;将TAB2中对应的频率高8位赋给A
MOV R6,A ;R6为频率高8位寄存器
MOV TH1,R6
INC R3
MOV A,R3
MOVC A,@A+DPTR ;将TAB2中对应的频率低8位赋给A
MOV R7,A ;R7为频率低8位寄存器
MOV TL1,R7
SETB TR0
SETB TR1 ;开中断
PP:CJNE R2,#00H,PP ;频率长度是否结束
LJMP MUSIC
;***********************************************
;定时器T0的中断程序
;***********************************************
HEHE: PUSH ACC
MOV TH0,#9EH ;重装定时初值
MOV TL0,#58H
DEC R2 ;音乐长度减1
POP ACC
RETI ;返回
;**************************************************
;定时器T1的中断程序
;**************************************************
HAHA:PUSH ACC
CPL P3.5 ;驱动扬声器
MOV TH1,R6
MOV TL1,R7 ;重装定时初值
POP ACC
RETI ;返回
;****************************************************
DEL15ms:MOV R7,#3CH;60*0.25ms
DEL25: MOV R6,#04FH
DEL15: DJNZ R6,DEL15 ;定时15ms子程序
DJNZ R7,DEL25
RET
TAB1:DB 04H,01H,04H,02H,04H,03H,04H,01H,04H,01H,04H,02H,04H,03H,04H,01H,
DB 04H,03H,04H,04H,08H,05H,04H,03H,04H,04H,08H,05H,88H,88H
TAB2:DB 0FFH,0F9H,0FEH,21H,0FEH,56H,0FEH,84H,0FEH,99H,0FEH,0C1H,0FEH,0E3H,0FFH,02H ;前二位为超声数据
END
第辣章 仪器设备
直流稳压电源(SY1501) 一台
单片机仿真器(伟福H51/S) 一台
万用表(M-830B) 一个
示波器(YB4340) 一台
电烙铁 一把
结束语
通过这段时间的努力,终于完成了对带记忆播放功能的电子琴的设计。虽然在设计过程中遇到了很多困难,但最终还是在易老师的指导和同学的帮助、共同努力下按时完成了。在本次设计中, 我们在硬件上设计了单片机键盘接口线路,单片机LED显示接口线路,AT28C64 EEPROM的接口电路,发音驱动等电路;在软件上, 编写了键盘接口程序,LED显示接口程序,AT28C64B EEPROM驱动程序等.
本次设计,是我在大学期间理论与实践的最好融合。在培养动手能力的同时,更好的掌握了《单片机技术》、《模拟电子技术》、《数字电子技术》、以及PROTEL99SE软件的应用。为今后的工作打下了良好的基础。
参考资料
[1] 黄良充.8051系列单片机原理与实习.学苑出版社.1994.8
[2] 赵德安.单片机原理与运用.机械工业出版社.2005.1
[3] 郭文芹.实用模拟电子技术.电子工业出版社.2001.6
[4] 黄正瑾.综合电子设计与实践.东南大学出版社.2002.3
[5] 苏平.单片机原理与接口技术.电子工业出版社.2002.8
[6] 张志良.单片机原理与控制技术.机械工业出版社.2001.7
[7] 李广弟.单片机技术基础.北京航空航天大学出版社.2003.3
[8] 郭勇. EDA技术基础.机械工业出版社.2003.2
[9] 康华光.电子技术基础.高等教学出版社.2000.1
[10] 范志忠.实用数字电子.电子工业出版社.1998.4
[11] 何立民.单片机实验与实践教程.北京航空航天大学出版社.2001.5
上一页 [1] [2] [3] [4] [5]
电子琴设计eda 第5页下载如图片无法显示或论文不完整,请联系qq752018766