《单片机原理及应用》课程设计 音乐 定时器

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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

相关文档
最新文档