《单片机原理及应用》课程设计 音乐 定时器
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《单片机原理及应用》课程设计
音乐定时器
姓名
院系信息学院
班级电气1082
学号2008116312
指导教师张瑛
时间2011年 5 月 30日
摘要
目录
摘要 I
1设计要求 (1)
2设计思路 (1)
3简易流程图 (1)
4源程序 (2)
4.1定时器部分 (2)
4.2音乐输出部分 (4)
5电路图 (7)
摘要
本设计为基于at89c51芯片设计的音乐定时器,定时器通过键盘输入定时时间,开始计时后等待到达预订时间,即输出两分钟的音乐。设计采用了4位数码管显示时间定时,扫描键盘负责输入、控制,两片89c51同时工作,一个负责定时、输入、显示、控制,另一个专门负责输出音乐。
关键词:定时器;音乐;51单片机
广东海洋大学《电子线路CAD》课程设计
音乐定时器
电气1082,200811631214,黄磊
指导教师:张瑛
1设计要求
设计要求:定时时间可任意设置(小于60分钟),设定值通过键盘输入,定时时间到发出音乐.音乐响2分钟,自动结束,中间也可以手动控制.
2设计思路
通过数码管的动态显示,显示定时器的定时。定时的时间由扫描键盘输入,并启动以及暂停定时,音乐通过另一片89C51实现音乐发声器。设计通过掌握汇编语言的编程方法. 运用89C51单片机定时器产生固定频率的方波信号,推动喇叭发出旋律。
实现功能:
定时启动音乐演奏。
定时时间由用户通过键盘输入。
可以中途停止音乐演奏。
3简易流程图
鸣谢4源程序
4.1定时器部分
ORG 0000H
LJMP MAIN
ORG 0003H
LJMP BREAK0
MAIN:
SETB IT0 ;设置中断
SETB EX0
MOV TMOD,#01H;设置定时器0方式1
MOV TH0,#0D8H ;初D8F0定时10ms
MOV TL0,#0F0H
CLR A
MOV R0,#0H
MOV R1,#0H
MOV R4,#0H
MOV R5,#0H
CALL KEY
MOV R0,A
MOV A,#0E0H ;输出显示十位
MOV P2,A
MOV A,R0
MOV DPTR,#TAB
MOVC A,@A+DPTR
MOV P1,A
CALL KEY
MOV R1,A ;输入个位
SETB EA ;设置中断允许
WAIT: CALL SHOW ;等待开始
JMP W AIT
BEGIN: SETB EA ;设置中断允许JP0: CALL SHOW
DEC R5
CJNE R5,#0FFH,JP0
DEC R4
MOV R5,#9H
CJNE R4,#0FFH,JP0
DEC R1
MOV R4,#5H
CJNE R1,#0FFH,JP0
DEC R0
MOV R1,#9H
CJNE R0,#0FFH,JP0
JMP BEEP
SHOW: MOV R3,#25H
LOOP: MOV R2,#0D0H ;设置分输出个位
MOV P2,R2
MOV A,R1 ;取分个位数值
MOV DPTR,#TAB
MOVC A,@A+DPTR
MOV P1,A ;输出
CALL DY12
MOV R2,#0E0H ;设置输出分十位
MOV P2,R2
MOV A,R0
MOV DPTR,#TAB
MOVC A,@A+DPTR
MOV P1,A
CALL DY12
MOV R2,#70H ;设置输出秒个位
MOV P2,R2
MOV A,R5
MOV DPTR,#TAB
MOVC A,@A+DPTR
MOV P1,A
CALL DY12
MOV R2,#0B0H ;设置输出秒十位
MOV P2,R2
MOV A,R4
MOV DPTR,#TAB
鸣谢
MOVC A,@A+DPTR
MOV P1,A
CALL DY12
DJNZ R3,LOOP
RET
BREAK0: SETB EA
CALL KEY0 ;中断程序
SETB EA
RET
STOP: SETB C
MOV P3.7,C
SETB EA
JMP W AIT
BEEP: SETB EA
CLR C
MOV P3.7,C
MOV R1,#2H
MOV R0,#0H
MOV R4,#0H
MOV R5,#0H
JP1: CALL SHOW
SETB EA
DEC R5
CJNE R5,#0FFH,JP1
DEC R4
MOV R5,#9H
CJNE R4,#0FFH,JP1
DEC R1
MOV R4,#5H
CJNE R1,#0FFH,JP1
DEC R0
MOV R1,#9H
CJNE R0,#0FFH,JP1
JMP MAIN
KEY0: CLR A
SETB RS1
ACALL KEY2 ;处理特殊键
CJNE A,#0AH,KK
CLR RS1
JMP BEGIN
KK: CJNE A,#0BH,KEND
CLR RS1
AJMP STOP
KEY2: ACALL KS1
JNZ LK11
AJMP KEND
LK11: ACALL DY12
ACALL KS1
JNZ LK2
AJMP KEY2
KEY: CLR A
SETB RS1
ACALL KEY1 ;处理特殊键
CJNE A,#0AH,KKK
CLR RS1
JMP BEGIN
KKK: CJNE A,#0BH,KEND
CLR RS1
AJMP STOP
KEY1: ACALL KS1 ;键盘程序JNZ LK1
AJMP KEY1
LK1: ACALL DY12
ACALL KS1
JNZ LK2
AJMP KEY1
LK2: MOV R2,#0FEH
MOV R4,#00H
LK4: MOV A,R2
MOV P2,A
MOV A,P0
JB ACC.0,LONE
MOV A,#00H
AJMP LKP
LONE: JB ACC.1,LTWO
MOV A,#04H
AJMP LKP
LTWO: JB ACC.2,LTHR
MOV A,#08H