基于单片机的LCD显示的音乐倒计数计数器的设计
- 格式:pdf
- 大小:1.04 MB
- 文档页数:24
塔里木大学《单片机原理与外围电路》课程论文基于单片机设计的音乐倒数计数器姓名:古再丽努尔·阿卜来提学号: **********班级:通信工程16-1摘要:单片机技术是一门不可或缺的技术,对我们将来的工作以及生活和学习都有很密切的联系。
近年来,随着电子技术和微机计算机的迅速发展,单片机的档次不断提高,其应用领域也在不断的扩大,已在工业控制、尖端科学、智能仪器仪表、日用家电、汽车电子系统、办公自动化设备、个人信息终端及通信产品中得到了广泛的应用,成为现代电子系统中最重要的智能化的核心部件。
单片机由CPU、一定容量的RAM和ROM构成,定时、计数和多种接口于一体的微控制器。
它体积小,成本低,功能强,广泛应用于智能产业和工业自动化上。
而51系列单片机是各单片机中最为典型和最有代表性的一种。
这次课程设计通过对它的学习、应用,从而达到学习、设计、开发软、硬的能力。
本设计利用AT89C51单片机结合字符型LCD显示器设计一个简易的倒数计数器。
用4个按键操作来设置当前想要倒计数的时间。
做一小段时间倒计数,当倒计数为0时,则发出一段音乐声响,通知倒计数终了,该做应当做的事。
应用Proteus的ISIS软件和Keil uVision3来实现该计数器的设计与仿真。
该方法仿真效果真实、准确,节省了硬件资源。
该多功能计数器可以应用于一般的生活和工作中,也可以通过改装,提高性能,增加新功能,从而给人们的生活和工作带来更多的方便。
关键词:AT89C51,计数器,键盘控制,LCD显示,protues,Keil 。
目录1绪论 (4)1.1课题背景及研究意义 (4)1.2国内外现状 (4)1.3课题的设计目的 (4)1.4课题的主要工作 (4)2系统概述 (5)2.1方案论证 (5)2.2系统设计原理 (5)3系统硬件设计 (5)3.1主控电路设计 (5)3.2LCD液晶显示器接口电路设计 (6)4系统软件设计 (6)4.1主程序设计 (6)4.2硬件调试 (8)4.3仿真结果 (16)结论 (16)参考文献 (17)系统整体电路.............................................................................................错误!未定义书签。
音乐倒数计数器学院:计算机与控制工程学院专业班级:自动化 082学号: __________________学生姓名:引言随着人们生活水平的不断提高,单片机控制无疑是人们追求的目标之一,它给人带来的方便也是不可置否的,人们对它的要求越来越高,要为现代人工作、科研、生活、提供更好的更方便的设施就需要从单片机技术入手,一切向着数字化控制,智能化控制方向发展。
本设计利用AT89C51单片机结合字符型LCD显示器设计一个简易的倒数计数器,可用来煮方便面、煮开水或小睡片刻等。
做一小段时间倒计数,当倒计数为0时,则发出一段音乐声响,通知倒计数终了,该做应当做的事。
1 项目概述和要求1.1 设计要求利用数字AT89C51单片机实现倒数计数器的功能,设定时间后在LED数码管上显示相应的时间。
其功能和性能指标如下:⑴字符型LCD(16×2)显示器,显示格式为“TIME 分分:秒秒”。
⑵用4个按键操作来设置当前想要倒计数的时间。
⑶一旦按下键则开始倒计数,当计数为0时,发出一阵音乐声。
⑷程序执行后工作指示灯LCD闪动,表示程序开始执行,按下操作键K1~K4动作如下:● K1---可调整倒计数的时间1~60分钟。
● K2---设置倒计数的时间为5分钟,显示“0500”。
● K3---设置倒计数的时间为10分钟,显示“1000”。
● K4--设置倒计数的时间为20分钟,显示“2000”⑸复位后LCD的画面应能显示倒计时的分钟和秒数,此时按K1键,则在LCD上显示出设置画面。
此时,若:●按K2键---增加倒计数的时间1分钟。
●按K2键---减少倒计数的时间1分钟。
●按K4键---设置完成。
1.2 设计方案音乐倒数计数器所倒数的时间由数字显示,控制器使用单片机AT89C51。
本设计基于单片机技术原理,以单片机芯片AT89C51作为核心控制器,通过硬件电路的制作以及软件程序的编制,设计制作出一个计数器,包括以下功能:输出时间,按下键就开始计时,并将时间显示在LCD1602显示器上。
题目:音乐倒数计数器1. 设计要求利用数字AT89C51单片机实现倒数计数器的功能,设定时间后在LED数码管上显示相应的时间。
其功能和性能指标如下:⑴字符型LCD(16×2)显示器,显示格式为“TIME 分分:秒秒”。
⑵用4个按键操作来设置当前想要倒计数的时间。
⑶一旦按下键则开始倒计数,当计数为0时,发出一阵音乐声。
⑷程序执行后工作指示灯LCD闪动,表示程序开始执行,按下操作键K1~K4动作如下:● K1---可调整倒计数的时间1~60分钟。
● K2---设置倒计数的时间为5分钟,显示“0500”。
● K3---设置倒计数的时间为10分钟,显示“1000”。
● K4--设置倒计数的时间为20分钟,显示“2000”⑸复位后LCD的画面应能显示倒计时的分钟和秒数,此时按K1键,则在LCD上显示出设置画面。
此时,若:●按K2键---增加倒计数的时间1分钟。
●按K3键---减少倒计数的时间1分钟。
●按K4键---设置完成。
2. 工作原理音乐倒数计数器所倒数的时间由数字显示,控制器使用单片机AT89S52。
本设计基于单片机技术原理,以单片机芯片AT89S52作为核心控制器,通过硬件电路的制作以及软件程序的编制,设计制作出一个计数器,包括以下功能:输出时间,按下键就开始计时,并将时间显示在LCD1602显示器上。
当倒计数为0时,蜂鸣器就发出音乐声响等等。
该计数器系统主要由计数器模块、LCD显示器模块、蜂鸣器模块、键盘模块、复位模块等部分组成。
3. 硬件设计电路原理图下图所示.3.1 AT89C52单片机A T89C52是一个低电压,高性能CMOS 8位单片机,片内含8k bytes的可反复擦写的Flash只读程序存储器和256 bytes的随机存取数据存储器(RAM),器件采用A TMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,A T89C52单片机在电子行业中有着广泛的应用。
目录目录 (1)摘要 (3)ABSTRACT (4)第一章设计要求与方案确定 (5)1.1设计意义 (5)1.2设计要求 (5)1.3方案确定 (5)第二章硬件电路 (6)2.1单片机概述 (6)2.1.1 单片机基础 (6)2.1.2单片机与单片机系统 (7)2.1.3 单片机的产生与发展 (7)2.2MCS-51系列单片机介绍 (8)2.2.1 80C51 芯片介绍 (8)2.2.3 最小系统 (9)2.2.4 定时与中断的概念 (10)2.4LED显示电路设计与器件选择 (12)2.4.1.LED显示器的选择 (13)2.4.2LED驱动芯片选择 (13)2.5按键电路设计 (13)2.6蜂鸣器电路的设计 (14)第三章倒计时器的设计 (15)3.1倒计时器系统设计方案及框图 (15)3.2程序设计 (15)3.2.1主程序设计 (15)3.2.2倒计时模块设计 (17)3.2.3键盘扫描数码管显示程序 (17)第四章倒计时器设计仿真 (18)4.1设置倒计时初值 (18)4.2开始倒计时 (18)4.3倒计时结束并报警 (18)总结 (20)参考文献 (21)致谢 (22)附录1 倒计时器设计源程序 (23)附录2 所用元器件清单 (23)摘要近年来随着计算机在社会领域的渗透,单片机的应用正在不断的走向深入,同时带动传统控制检测日新月异更新。
在实时控制和自动控制的单片机应用系统中,单片机往往是作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构,以及针对具体应用对象特点的软件结合,以作完善。
本系统由单片机系统、矩阵式键盘、蜂鸣器和LED数码管显示系统组成。
装置利用AT89C51单片机与74LS245驱动器驱动LED数码管显示。
通过按键控制设定倒计时时间,再通过中断控制系统开始倒计时。
当倒计时时间到时,由P1.0口驱动蜂鸣器发声报警。
为了简化电路,降低成本,采用以软件为主的的接口方法。
音乐倒数计数器学院:运算机与操纵工程学院专业班级:自动化 082学号: __________________学生姓名:引言随着人们生活水平的不断提高,单片机操纵无疑是人们追求的目标之一,它给人带来的方便也是不可置否的,人们对它的要求愈来愈高,要为现代人工作、科研、生活、提供更好的更方便的设施就需要从单片机技术入手,一切向着数字化操纵,智能化操纵方向进展。
本设计利用AT89C51单片机结合字符型LCD显示器设计一个简易的倒数计数器,可用来煮方便面、煮开水或小睡片刻等。
做一小段时刻倒计数,当倒计数为0时,那么发出一段音乐声响,通知倒计数终了,该做应当做的事。
1 项目概述和要求设计要求利用数字AT89C51单片机实现倒数计数器的功能,设按时刻后在LED数码管上显示相应的时刻。
其功能和性能指标如下:⑴字符型LCD(16×2)显示器,显示格式为“TIME 分分:秒秒”。
⑵用4个按键操作来设置当前想要倒计数的时刻。
⑶一旦按下键那么开始倒计数,当计数为0时,发出一阵音乐声。
⑷程序执行后工作指示灯LCD闪动,表示程序开始执行,按下操作键K1~K4动作如下:● K1---可调整倒计数的时刻1~60分钟。
● K2---设置倒计数的时刻为5分钟,显示“0500”。
● K3---设置倒计数的时刻为10分钟,显示“1000”。
● K4--设置倒计数的时刻为20分钟,显示“2000”⑸复位后LCD的画面应能显示倒计时的分钟和秒数,现在按K1键,那么在LCD上显示出设置画面。
现在,假设:●按K2键---增加倒计数的时刻1分钟。
●按K2键---减少倒计数的时刻1分钟。
●按K4键---设置完成。
设计方案音乐倒数计数器所倒数的时刻由数字显示,操纵器利用单片机AT89C51。
本设计基于单片机技术原理,以单片机芯片AT89C51作为核心操纵器,通过硬件电路的制作和软件程序的编制,设计制作出一个计数器,包括以下功能:输出时刻,按下键就开始计时,并将时刻显示在LCD1602显示器上。
东北石油大学课程设计2014年7 月7 日东北石油大学课程设计任务书课程单片机课程设计题目音乐倒数计数器专业自动化姓名罗宏星学号110601140121(2)显示主要内容:利用AT89C51单片机结合字符型LCD显示器设计一个简易的倒数计数器,做一小段时间倒计数,当倒计数为0时,则发出一段音乐声响。
基本要求:定时闹钟的基本功能如下。
(1)字符型LCD(16 2)显示器。
格式为“TIME 分分:秒秒”。
用4个按键操作来设置当前想要倒计数的时间。
当计数为0时,发出一阵音乐声。
程序执行后工作指示灯LED闪动,表示程序开始执行。
主要参考资料:[1] 张毅刚. 单片机原理及应用[M]. 北京: 高等教育出版社, 2003.[2] 李广第. 单片机基础[M]. 北京: 北京航空航天打学出版社, 2009.[3] 吴金戎. 8051单片机实践与应用[M]. 北京: 清华大学出版社, 2003.[4] 杨文龙. 单片机技术及其应用[M]. 北京: 电子工业出版社, 2008.[5] 王德彪. MCS-51单片机原理及接口技术[M]. 北京: 电子工业出版社, 2005.完成期限2014.6.30-2014.7.4指导教师李艳辉邵克勇专业负责人目录第1章概述 (1)1.1 发展前景 (1)1.2 设计要求 (1)1.3 设计方案 (1)第2章系统结构及主要元器件 (2)2.1 AT89C51单片机 (2)2.2 LCD显示器 (3)第3章硬件设计 (4)3.1 显示电路 (4)3.2 输入电路 (4)3.3 复位电路 (5)3.4 报警电路 (5)第4章软件设计 (6)4.1 程序流程图 (6)4.2程序源代码 (6)第5章系统仿真及调试 (15)5.1 软件调试 (15)5.2软硬件调试 (15)5.3系统仿真 (17)参考文献 (19)第1章概述1.1 发展前景随着人们生活水平的不断提高单片机控制无疑是人们追求的目标之一,它给人带来的方便也是不可置否的,人们对它的要求越来越高,要为现代人工作、科研、生活、提供更好的更方便的设施就需要从单片机技术入手,一切向着数字化控制,智能化控制方向发展。
湖南涉外经济学院课程设计报告课程名称:单片机原理及应用报告题目:音乐倒数计数器学生姓名:所在学院:信息科学与工程学院专业班级:学生学号:指导教师:廖亦凡20 14年6月4日课程设计任务书利用数字AT89C51单片机实现倒数计数器的功能,设定时间后在LED数码管上显示相应的时间。
其功能和性能指标如下:⑴字符型LCD(16X 2)显示器,显示格式为“ TIME分分:秒秒”。
⑵ 用4个按键操作来设置当前想要倒计数的时间。
⑶一旦按下键则开始倒计数,当计数为0时,发出一阵音乐声。
⑷ 程序执行后工作指示灯LCD闪动,表示程序开始执行,按下操作键K1~K4动作如下:•K1---可调整倒计数的时间•K2---设置倒计数的时间为•K3---设置倒计数的时间为•K4--设置倒计数的时间为1~60分钟。
5分钟,显示“ 0500”。
10分钟,显示“ 1000”。
⑸复位后LCD的画面应能显示倒计时的分钟和秒数,此时按置画面。
此时,若:•按K2键---增加倒计数的时间1分钟。
•按K3键---减少倒计数的时间1分钟。
• 按K4键---设置完成。
K1键,则在LCD上显示出设工作内容及时间进度安排摘要单片机自20世纪70年代问世以来,以其极高的性能价格比,收到人们的重视和关注,应用很广、发展很快。
而51 单片机是各单片机最为典型和最有代表性的一种。
本实验是基于MCS5係列单片机所设计的,可以实现键盘按键与数字动态显示并可以用音乐倒数的计数器。
本设计基于单片机技术原理,以单片机芯片STC89C51 乍为核心控制器,通过硬件电路的制作以及软件程序的编程,设计制作出一个计数器,包括以下功能:输出时间,按下键就开始计时,并将时间显示在LCD1602显示器上。
当倒数计数为0是,蜂鸣器就发出音乐声响等等。
该计数系统主要由计数器模块、LCD显示快、蜂鸣器模块、键盘模块、复位模块等部分组成。
关键词:STC89C51键盘;LCD1602显示;蜂鸣器目录一、概述 (1)二、方案设计与论证 (2)2三、系统硬件电路设计与分析................................................主控制器一AT89S5单机 (2)显示电路一LCD数码 (2)四、系统软件程序设计与分析 (2)程序流程图 (2)源程序 (6)五、系统的仿真与调试 (13)硬件调试 (13)软件调试 (13)软硬件调试 (13)六、总原理图及元器件清单 (14)总原理图 (14)元器件清单 (14)AT89C51 芯片 (14)字符型LCD1602 (15)按键控制模块 (16)其它元件 (17)七、结论与心得 (17)八、参考文献 (18)一、概述随着科技的发展和社会的进步,人们对数字钟的要求越来越高,多功能数字钟不管在性能还是在样式上都发生了质的变化。
PCB图,仿真语言程序原理图等全套设计,联系153893706课程设计说明书课程名称: 微机原理及应用课程设计课程代码:题目:基于单片机设计的音乐倒数计数器年级/专业/班: 2009级车辆工程汽电四班学生姓名:学号:开始时间:2012 年07 月02 日完成时间:2012 年07 月06 日课程设计成绩:学习态度及平时成绩(30)技术水平与实际能力(20)创新(5)说明书(计算书、图纸、分析报告)撰写质量(45)总分(100)指导教师签名:年月日目录摘要 (2)1 项目概述和要求 (3)1.1单片机基础知识 (3)1.2 单片机的发展趋势 (4)1.3设计概述和设计要求 (5)2 系统设计 (6)2.1 框图设计 (6)2.2系统硬件电路设计 (7)2.2.1 AT89C51介绍 (7)2.2.2 1602LCD 介绍 (7)2.2.3 键盘介绍 (9)2.2.4 蜂鸣器介绍 (10)3、系统软件设计 (11)3.1 proteus软件环境介绍 (11)3.2 Protel软件环境介绍 (12)3.3流程图 (13)3.4蜂鸣器发声电路原理 (17)4 PROTEUS仿真结果 (19)4.1 电路原理图及仿真 (19)4.2 倒计时设置仿真如下图4-2(a)所示 (21)4.3 蜂鸣器的仿真如下图4-3所示 (22)5 总结 (23)致谢 (24)参考文献 (24)附表(本设计所有程序) (25)摘要单片机技术是一门不可或缺的技术,对我们将来的工作以及生活和学习都有很密切的联系。
近年来,随着电子技术和微机计算机的迅速发展,单片机的档次不断提高,其应用领域也在不断的扩大,已在工业控制、尖端科学、智能仪器仪表、日用家电、汽车电子系统、办公自动化设备、个人信息终端及通信产品中得到了广泛的应用,成为现代电子系统中最重要的智能化的核心部件。
单片机由CPU、一定容量的RAM和ROM构成,定时、计数和多种接口于一体的微控制器。
C51音乐倒数计数器题目要求:利用AT89C51单片机结合字符型LCD显示器设计一个简易的倒数计数器,可用来煮方便面、煮开水或小睡片刻等。
做一小段时间倒计数,当倒计数为0时,则发出一段音乐声响,通知倒计数终了,该做应当做的事。
定时闹钟的基本功能如下。
字符型LCD(16 ´ 2)显示器。
显示格式为“TIME 分分:秒秒”。
用4个按键操作来设置当前想要倒计数的时间。
一旦按下键则开始倒计数,当计数为0时,发出一阵音乐声。
程序执行后工作指示灯LED闪动,表示程序开始执行,按下操作键K1~K4动作如下。
K1—可调整倒计数的时间1~60分钟。
K2—设置倒计数的时间为5分钟,显示“0500”。
K3—设置倒计数的时间为10分钟,显示“1000”。
K4—设置倒计数的时间为20分钟,显示“2000”。
复位后LCD的画面应能显示倒计时的分钟和秒数,此时按K1键运行截图程序代码:#include<reg51.h>#define uchar unsigned char#define uint unsigned int#define busy 0x80sbit k1=P1^0;sbit k2=P1^1;sbit k3=P1^2;sbit k4=P1^3;sbit k5=P1^4;sbit RS=P2^5;sbit RW=P2^6;sbit E=P2^7;sbit led=P2^0;sbit sound=P3^7;uchar code tableee[]=" 20:00 20:00";uchar code tablee[]=" 10:00 10:00";uchar code table[]=" 05:00 05:00";uchar code table1[]={'0','1','2','3','4','5','6','7','8','9'};uchar code table3[]="14 dao ji shi";uchar code table2[]="888888888888";uchar code table5[]=" 05:00";uchar code table4[]=" TIME OUT! ";uchar d,e,num,t,shishi,shige,fenshi,fenge,miaoshi,miaoge,b,b1,a,aa;uint counter=0;uchar code array[]= {0x18, 0x30, 0x1C, 0x10, 0x20, 0x40, 0x1C, 0x10,0x18, 0x10, 0x20, 0x10, 0x1C, 0x10, 0x18, 0x40,0x1C, 0x20, 0x20, 0x20, 0x1C, 0x20, 0x18, 0x20,0x20, 0x80, 0xFF, 0x20, 0x30, 0x1C, 0x10, 0x18,0x20, 0x15, 0x20, 0x1C, 0x20, 0x20, 0x20, 0x26,0x40, 0x20, 0x20, 0x2B, 0x20, 0x26, 0x20, 0x20,0x20, 0x30, 0x80, 0xFF, 0x20, 0x20, 0x1C, 0x10,0x18, 0x10, 0x20, 0x20, 0x26, 0x20, 0x2B, 0x20,0x30, 0x20, 0x2B, 0x40, 0x20, 0x20, 0x1C, 0x10,0x18, 0x10, 0x20, 0x20, 0x26, 0x20, 0x2B, 0x20,0x30, 0x20, 0x2B, 0x40, 0x20, 0x30, 0x1C, 0x10,0x18, 0x20, 0x15, 0x20, 0x1C, 0x20, 0x20, 0x20,0x26, 0x40, 0x20, 0x20, 0x2B, 0x20, 0x26, 0x20,0x20, 0x20, 0x30, 0x80, 0x20, 0x30, 0x1C, 0x10,0x20, 0x10, 0x1C, 0x10, 0x20, 0x20, 0x26, 0x20,0x2B, 0x20, 0x30, 0x20, 0x2B, 0x40, 0x20, 0x15,0x1F, 0x05, 0x20, 0x10, 0x1C, 0x10, 0x20, 0x20,0x26, 0x20, 0x2B, 0x20, 0x30, 0x20, 0x2B, 0x40,0x20, 0x30, 0x1C, 0x10, 0x18, 0x20, 0x15, 0x20,0x1C, 0x20, 0x20, 0x20, 0x26, 0x40, 0x20, 0x20,0x2B, 0x20, 0x26, 0x20, 0x20, 0x20, 0x30, 0x30,0x20, 0x30, 0x1C, 0x10, 0x18, 0x40, 0x1C, 0x20,0x20, 0x20, 0x26, 0x40, 0x13, 0x60, 0x18, 0x20,0x15, 0x40, 0x13, 0x40, 0x18, 0x80, 0x00};char shi,fen,miao;void LCD_init();bit lcd_busy();void write_1602cmd(uchar cmd); //写命令void write_1602Data(uchar Data); //写数据void sound_delay(uchar n);void playmusic();void delay(uchar z);void init(){t=0,led=1;TMOD=0X11; //设置定时器0,置定时器1在工作方式1 TH0=0xff;TL0=0xff;TH1=(65536-50000)/256; //给定时器1装初值TL1=(65536-50000)%256;EA=1; //开启总中断ET0=1; // 开启外部中断0中断ET1=1;// 开启定时器1中断TR0=0;TR1=0;LCD_init();write_1602cmd(0x80);for(num=0;num<14;num++){write_1602Data(table3[num]);delay(5);}write_1602cmd(0x80+0x40);for(num=0;num<12;num++){write_1602Data(table2[num]);delay(5);}}void key_check(){if(k2==0) //5min{delay(10);if(k2==0){for(num=0;num<12;num++){write_1602Data(table[num]);delay(5);}TR1=1;fen=5;miao=0;}}if(k3==0) //10min{delay(10);if(k3==0){write_1602cmd(0x80+0x40);for(num=0;num<12;num++){write_1602Data(tablee[num]);delay(5);}TR1=1;fen=10;miao=0;}}if(k4==0) //20min{delay(10);if(k4==0){write_1602cmd(0x80+0x40);for(num=0;num<12;num++){write_1602Data(tableee[num]);delay(5);}TR1=1;fen=20;miao=0;}}if(k1==0){delay(10);if(k1==0){for(num=0;num<12;num++){write_1602Data(table5[num]);delay(5);}fen = 5;while(k4 != 0){if(k2==0){delay(10);if(k2==0){fen++;fenge=fen%10;fenshi=fen/10;write_1602cmd(0x80+0x40+2);write_1602Data(table1[fenge]);write_1602cmd(0x80+0x40+1);write_1602Data(table1[fenshi]);write_1602cmd(0x0f); //打开光标闪烁while(k2==0);}}if(k3==0){delay(10);if(k3==0){fen--;fenge=fen%10;fenshi=fen/10;write_1602cmd(0x80+0x40+2);write_1602Data(table1[fenge]);write_1602cmd(0x80+0x40+1);write_1602Data(table1[fenshi]);write_1602cmd(0x0f); //打开光标闪烁while(k3==0);}}}TR1=1;write_1602cmd(0x0c); //关闭光标闪烁}}}void main(){a=0,aa=0,d=0;e=0;init();delay(100);while(1){if(TR1 == 0) key_check();while(TR0==1&&TR1==0){playmusic();}}}void time1() interrupt 3 //定时器1中断{TH1=(65536-50000)/256;TL1=(65536-50000)%256;a++;aa++;if(a==20) //定时达到1s{a=0;if(fen==0 && miao==0) //到达了指定时间{TR1=0;TR0=1;led=0;write_1602cmd(0x80+0x40);for(num=0;num<15;num++){write_1602Data(table4[num]);delay(5);goto end; //直接跳出定时器中断}if(miao==0){miao = 59;fen--;fenge=fen%10;fenshi=fen/10;write_1602cmd(0x80+0x40+8);write_1602Data(table1[fenge]);write_1602cmd(0x80+0x40+7);write_1602Data(table1[fenshi]);}miaoge = miao%10;miaoshi = miao/10;write_1602cmd(0x80+0x40+11);write_1602Data(table1[miaoge]);write_1602cmd(0x80+0x40+10);write_1602Data(table1[miaoshi]);miao--;}if(aa==10) //开启流水灯,让它随时间的流动{aa=0;led=~led;write_1602cmd(0x80+0x40+9);if(led ==1){write_1602Data(':');}else{write_1602Data(' ');}}end: //结束了直接跳到这里来;}//********************************************* void delay(uchar z){uchar x,y;for(x=z;x>0;x--)for(y=200;y>0;y--);}bit lcd_busy() //测试LCD忙碌状态{bit result;E= 0;RS= 0; //指令RW= 1; //读出E= 1;delay(4);//高电平读出1usresult = (bit)(P0 & busy);E= 0;return result;}void write_1602cmd(uchar cmd) //写命令{while(lcd_busy());RS=0;delay(5);RW=0;delay(5);E=0;delay(5);P0=cmd;E=1;delay(10);E=0;}void write_1602Data(uchar Data) //写数据{while(lcd_busy());RS=1;delay(5);RW=0;delay(5);E=0;P0=Data;delay(5);E=1;delay(10);E=0;}//lcd初始化void LCD_init(){write_1602cmd(0x01); //清屏delay(5);write_1602cmd(0x38); //功能设定delay(5);write_1602cmd(0x0c); //光标不闪烁delay(5);write_1602cmd(0x06); //lcd模式设定,delay(5);}void sound_delay(uchar n){uchar i;while(n--){for(i=0;i<2;i++);}}void time0() interrupt 1 //定时器0中断{counter=counter+1;//节拍次数计数TH0=0xd8; //定义单位节拍的延时大小TL0=0xef;}void playmusic(){uint i;uchar sound_signal;//定义音符大小uchar sound_pace;while(1){i=0;while(array[i]!=0x00){ //如果是休止符,延时100ms,并终止本次循环,进入下一个循环if(array[i]==0xff){TR0=0;i++;delay(100);continue;} //从表中取得音符?sound_signal=array[i];i=i+1; //从表中取得节拍大小sound_pace=array[i];TR0=1; //当节拍数未达到时候,继续循环,产生该音调的声音while(counter!=sound_pace){sound=~sound;sound_delay(sound_signal);}i++;counter=0;//节拍计数器置0,进入下一个?}delay(10); //歌曲演唱完毕后,延时一段时间}}Proteus 仿真图:。
信息工程学院课程设计报告书题目: 带有LCD显示的音乐倒数计时器专业:计算机科学与技术日近年来随着科技的飞速发展,单片机的应用正在不断地走向深入,同时带动传统控制系统日新月益更新。
单片机具有强大的控制功能和灵活的编程实现特性,它已经溶入现代人们的生活中,成为不可替代的一部分。
本次课程设计的项目是带有LED显示的音乐倒数计时器。
主体使用89C52,通过几个开关进行控制,其中开关K1用于切换时间设置状态和时钟运行状态;开关K2用于切换修改时间数值;开关K3用于使相应数值加1调节;开关K4用于减1调节;开关K5用于设定倒计时时间,并且设定好后到时间通过实验箱音频放出一段乐曲作为闹铃。
选做增加项目:还可增加秒表功能(精确到0.01s)或年月日设定功能关键词:单片机课程项目计时器 89C52摘要 (I)1前言 (1)1.1课题开发背景 (1)1.2课题研究的目的和意义 (1)1.3课题的主要研究工作 (1)2 系统硬件设计及说明 (3)2.1系统组成及总体框图 (3)2.2部分硬件方案论述 (3)2.3硬件电路图 (4)2.4元件清单 (4)2.4.1 AT89C52 (4)2.4.2 LCD1602 (5)2.4.3按键控制单元 (6)2.4.4 SPEAKER (7)3系统软件设计 (8)3.1系统总体功能流程图 (8)3.2使用单片机实现音乐节拍 (10)3.3使用单片机产生音频脉冲 (11)3.4使用定时器实现定时功能 (12)3.5程序描述 (12)4总结与展望 (15)参考文献 (16)1.1 课题开发背景随着单片机技术的成熟,单片机已经渗透到我们的学习、生活、生产和工作各个领域中, 凡是有自动控制要求的地方一般都会有单片机的身影出现:从简单到复杂,从空中、地面到地下,凡是能想象到的地方几乎都有使用单片机的需求。
单片机的应用有利于铲平的小型化、多功能化和智能化。
有利于提高生产、生活效率,保证安全。
音乐倒是计时器一、设计要求利用STC89C51单片机结合字符型LCD显示器设计一个简易的倒数计数器,可用来煮方便面、煮开水或小睡片刻等。
做一小段时间倒计数,当倒计数为0时,则发出一段音乐声响,通知倒计数终了,该做应当做的事。
同时输出控制一个继电器吸合,继电器驱动一个3W的大功率LED灯,亮度可以由单片机控制从50%~100%连续可调。
定时闹钟的基本功能如下。
⏹字符型LCD(16 2)显示器。
⏹显示格式为“TIME 分分:秒秒”。
⏹用4个按键操作来设置当前想要倒计数的时间。
一旦按下键则开始倒计数,当计数为0时,发出一阵音乐声。
1、程序执行后工作指示灯LED闪动,表示程序开始执行,按下操作键K1~K4动作如下。
K1—可调整倒计数的时间1~60分钟。
K2—设置倒计数的时间为5分钟,显示“0500”。
K3—设置倒计数的时间为10分钟,显示“1000”。
K4—设置倒计数的时间为20分钟,显示“2000”。
2、复位后LCD的画面应能显示倒计时的分钟和秒数,此时按K1键则在LCD上显示出设置画面。
此时,若:a. 按操作键K2—增加倒计数的时间1分钟。
b. 按操作键K3—减少倒计数的时间1分钟。
c. 按操作键K4—设置完成。
二、系统硬件说明2.1:音乐倒是计时器要实现一种由单片机控制的带LCD 显示的倒数计时器,单片机工作于12MHZ 时钟频率,使用其定时/计数器T0,改变计数值TH0和TL0可以产生不同频率的脉冲信号。
该设计具有5个功能按键,用户可以通过这些按键设置定时时间和选择控制定时,倒计数为零时,可通过扬声器将音乐播放出来。
系统结构图如下图所示。
2.2 AT89C52AT89C52有40个引脚,32个外部双向输入/输出(I/O )端口,同时内含2个外中断口,3个16位可编程定时计数器,2个全双工串行通信口,2个读写口线,AT89C52可以按照常规方法进行编程,但不可以在线编程(S 系列的才支持在线编程)。
湖南涉外经济学院课程设计报告课程名称:单片机原理及应用报告题目:音乐倒数计数器学生姓名:所在学院:信息科学与工程学院专业班级:学生学号:指导教师:廖亦凡20 14 年 6 月 4日课程设计任务书摘要单片机自20世纪70年代问世以来,以其极高的性能价格比,收到人们的重视和关注,应用很广、发展很快。
而51单片机是各单片机最为典型和最有代表性的一种。
本实验是基于MCS51系列单片机所设计的,可以实现键盘按键与数字动态显示并可以用音乐倒数的计数器。
本设计基于单片机技术原理,以单片机芯片STC89C51作为核心控制器,通过硬件电路的制作以及软件程序的编程,设计制作出一个计数器,包括以下功能:输出时间,按下键就开始计时,并将时间显示在LCD1602显示器上。
当倒数计数为0是,蜂鸣器就发出音乐声响等等。
该计数系统主要由计数器模块、LCD显示快、蜂鸣器模块、键盘模块、复位模块等部分组成。
关键词:STC89C51;键盘;LCD1602显示;蜂鸣器目录一、概述 (1)二、方案设计与论证 (2)三、系统硬件电路设计与分析 (2)主控制器—AT89S51单机 (2)显示电路—LCD数码 (2)四、系统软件程序设计与分析 (2)程序流程图 (2)源程序 (6)五、系统的仿真与调试 (13)硬件调试 (13)软件调试 (13)软硬件调试 (13)六、总原理图及元器件清单 (14)总原理图 (14)元器件清单 (14)AT89C51芯片 (14)字符型LCD1602 (15)按键控制模块 (16)其它元件 (17)七、结论与心得 (17)八、参考文献 (18)一、概述随着科技的发展和社会的进步,人们对数字钟的要求越来越高,多功能数字钟不管在性能还是在样式上都发生了质的变化。
数字钟实际上是一个对标准频率进行计数的计数电路,走时精度高,稳定性好,使用方便,不需要经常调校。
单片计算机即单片微型计算机,是集CPU,RAM,ROM,定时/计数和多种接口于一体的微控质器。