基于单片机音乐倒数计时器与流水灯的课程设计Word下载.docx

上传人:b****4 文档编号:15884334 上传时间:2022-11-16 格式:DOCX 页数:16 大小:77.04KB
下载 相关 举报
基于单片机音乐倒数计时器与流水灯的课程设计Word下载.docx_第1页
第1页 / 共16页
基于单片机音乐倒数计时器与流水灯的课程设计Word下载.docx_第2页
第2页 / 共16页
基于单片机音乐倒数计时器与流水灯的课程设计Word下载.docx_第3页
第3页 / 共16页
基于单片机音乐倒数计时器与流水灯的课程设计Word下载.docx_第4页
第4页 / 共16页
基于单片机音乐倒数计时器与流水灯的课程设计Word下载.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

基于单片机音乐倒数计时器与流水灯的课程设计Word下载.docx

《基于单片机音乐倒数计时器与流水灯的课程设计Word下载.docx》由会员分享,可在线阅读,更多相关《基于单片机音乐倒数计时器与流水灯的课程设计Word下载.docx(16页珍藏版)》请在冰豆网上搜索。

基于单片机音乐倒数计时器与流水灯的课程设计Word下载.docx

通过学生独立完成课题来实现对学生的综合性训练,培养学生运用课程中所学到的理论与实践紧密结合,独立解决实际问题的能力,同时也是对知识技能的巩固和深化

3、主要人员:

完成期限:

2013年12月23号

指导教师签名:

课程负责人签名:

2013年12月23日

基于单片机音乐倒数计时器与流水灯的设计

一、设计功能描述

用4个按键操作来设置当前想要倒计数的时间。

一旦按下键则开始倒计数,当计数为0时,发出一阵音乐声。

程序执行后工作指示灯LED闪动,表示程序开始执行,按下操作键K1~K4动作如下。

K1—可调整倒计数的时间1~60分钟。

K2—设置倒计数的时间为5分钟,显示“0500”。

K3—设置倒计数的时间为10分钟,显示“1000”。

K4—设置倒计数的时间为20分钟,显示“2000”。

复位后LCD的画面应能显示倒计时的分钟和秒数,此时按K1键,则在LCD上显示出设置画面。

此时,若:

a.按操作键K2—增加倒计数的时间1分钟。

b.按操作键K3—减少倒计数的时间1分钟。

c.按操作键K4—设置完成。

二、系统分析与设计

1.原理图

图为音乐倒数计时器与流水灯的设计原理图,由复位电路,晶振电路,显示电路,输入电路组成,K1,K2,K3为设置时间开关,K4为确认开关,上电LED灯亮,进行设置,确认后倒计时开始,LED灯灭,时间到后发出音乐提醒,按k1键后音乐停止,流水灯亮。

2.单片机应用系统说明

51系列单片机由CPU、存储器、并行I/O口、定时/计数器、串行口及中断系统等组成,其各组成部分通过内部三总线相连。

(1)中央处理器(CPU)中央处理器是整个单片机的核心部件,是8位数据处理器,能处理8位二进制数据或代码,CPU负责控制、指挥和调度整个单片机系统协调工作,完成运算和控制功能等操作。

(2)数据存储器(内部RAM)89C51/89S51内部有256BRAM,其中包含128B用户数据存储单元(地址为00H~7FH)和128B特殊功能寄存器单元(地址0H~FFH),它们是统一编址的。

特殊功能寄存器只能用于存放控制指令数据,而不能用于存放用户数据。

所以用户能使用的RAM只有128B,可存放读写的数据和运算的中间结果等。

(3)程序存储器,程序存储器用于存放用户程序和原始数据等。

(4)定时/计数器89C51/89S51有2个16位的可编程定时/计数器T0和T1,实现定时或计数功能。

(5)并行输入/输出(I/O)口51系列单片机有4个8位并行I/O口(P0、P1、P2和P3),用于单片机与外部设备之间的数据并行输入/输出。

(6)串行口51系列单片机内置一个全双工异步串行通信口,用于单片机与其他具有相应接口的设备之间的异步串行数据传送。

对51系列单片机来说,单片机+晶振电路+复位电路,便组成了一个最小系统.但是一般我们在设计中总是喜欢把按键输入、显示输出等加到上述电路中,成为小系统。

应用89C51(52)单片机设计并制作一个单片机最小系统,达到如下基本要求:

(1)具有上电复位和手动复位功能。

(2)使用单片机片内程序存储器。

(3)具有基本的人机交互接口。

按键输入、LED显示功能。

(4)具有一定的可扩展性,单片机I/O口可方便地与其他电路板连接。

主程序

ORG0000H

LJMPSTART;

跳转到主程序

ORG0003H

LJMPJIA1FEN;

跳转到外部中断0

ORG000BH

LJMPTIME0;

跳转到计数器中断0

ORG0013H

LJMPJIAN1FEN;

跳转到外部中断1

ORG0001BH

LJMPTIME2;

跳转到计数器中断1

START:

MOVP0,#00H

MOVIE,#0FH;

打开外部中断01口和计数器中断01口

MOVTCON,#05H;

让外部中断判别下降沿为信号

MOVTMOD,#11H;

让计数器中断0和1实行方式1

MOVTH0,#3CH;

T0赋1S初值

MOVTL0,#0B0H

MOVR0,#00H;

秒钟赋初值

MOVR1,#00H;

分钟赋初值

MOVR2,#20;

T01S次数赋初值

MOV40H,#00H

;

*******************初始时间的调试*******************

K1:

CLRP3.5;

开启LED灯

MOVA,R0;

两位动态显示的主程序

MOVB,#10

DIVAB

MOVDPTR,#TAB

MOVCA,@A+DPTR

MOVP2,#04H

MOVP1,A

LCALLTIME1

MOVA,B

MOVP2,#08H

K2:

MOVA,R1

MOVP2,#01H

MOVP2,#02H

JBP3.1,K3;

按下K1按钮确定时间

JNBP3.1,$

SETBEA;

开启EA,外部中断和计数器中断开启

LJMPX1;

跳转到时间微调子程序

K3:

JBP3.2,K4;

按下K2按钮给予5分钟定时

JNBP3.2,$

MOVR1,#5

K4:

JBP3.3,K5;

按下K3按钮给予10分钟定时

JNBP3.3,$

MOVR1,#10

K5:

JBP3.4,K1;

按下K4按钮给予20分钟定时

JNBP3.4,$

MOVR1,#20

LJMPK1

*******************初始时间微调的子程序*******************

X1:

MOVA,R0

X2:

JBP3.4,NEXT1;

按下K4按钮时间确定

SETBTR0;

开启计数器T0

CLREX0;

关闭外部中断0(即K2开关)

CLREX1;

关闭外部中断1(即K1开关)

LJMPX1

*******************歌曲主程序************************

NEXT1:

CJNER0,#0,X1;

比较秒钟是否已经为0,若为0则下一步,如不为则继续运行

CJNER1,#0,X1;

比较分钟是否已经为0,若为0则下一步,如不为则继续运行

CLRTR0

SETBP3.5

KAISI:

MOVA,40H;

蜂鸣器播放音乐的主程序

MOVDPTR,#TABLE

CJNEA,#00H,PLAY

LJMPKAISI

PLAY:

MOVR3,A

ANLA,#0FH

MOVR5,A

MOVA,R3

ANLA,#0F0H

CJNEA,#00H,MUSIC

CLRTR1

LJMPDEL

MUSIC:

SWAPA

DECA

MOV22H,A

ADDA,22H

MOVDPTR,#TABLE1

MOVTH1,A

MOV21H,A

MOVA,R5

INCA

MOVTL1,A

MOV20H,A

SETBTR1

DEL:

LCALLDELAY1

INC40H

JBP3.1,HUIQU;

按下按钮关闭音乐,并重新赋值,待再次开启

关闭外部中断1(即K3开关)

LJMPDENG

HUIQU:

LJMPKAISI

*******************所有程序的子程序*******************

DELAY1:

MOVR7,#0EH;

音乐程序的延时子程序

L11:

MOVR6,#125

L22:

MOVR5,#248

DJNZR5,$

DJNZR6,L22

DJNZR7,L11

RET

JIA1FEN:

CLREA;

外部中断0,分钟微调加1分钟

INCR1

CJNER1,#60,Q1;

比较分钟是否到60

MOVR1,#1;

分钟到60重新赋值

Q1:

SETBEA

RETI

JIAN1FEN:

外部中断1,分钟微调减1分钟

CJNER1,#1,Q2;

比较分钟是否到1

MOVR1,#60;

分钟到1重新赋值

Q2:

DECR1

TIME0:

DJNZR2,NEXT;

计数器中断0,T0溢出20次即1秒

R2重新赋值

CJNER0,#0,Q4;

比较秒钟是否为0

CJNER1,#0,Q3;

比较分钟是否为0

SETBTR1;

开启计数器中断1

Q3:

MOVR0,#60;

秒钟重新赋值

DECR1;

减少1分钟

DECR0;

减少1秒钟

LJMPNEXT

Q4:

NEXT:

T0重新赋初值

*******************流水灯主程序*******************

DENG:

MOVP0,#0FFH

LCALLTIM3

MOVP0,#0FFH

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 外语学习 > 法语学习

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1