单片机音乐倒数定时器的设计
音乐倒计时
摘要:本设计是基于STC89C51单片机的音乐倒数计数器,根据单片机技术原理,通过硬件电路设计与软件设计,制作出的音乐倒数计数器能稳定运行,并能正常播放音乐,该设计硬件部分主要包括按键电路,复位电路,LCD显示电路及蜂鸣器组成,其中K1键作为第二功能键加入外部中断0,用以切换时间选择模式,计数值为零时,通过定时器T1调节音频,使蜂鸣器发出不同的音调,本设计利用Keil作为编程软件进行源程序设计及调试,同时使用PROTEUS进行硬件电路的搭建仿真。
关键字:单片机计数器 PROTEUS 蜂鸣器1 任务提出与方案论证1.1 采用555定时器555定时器是一种模拟和数字功能相结合的中规模集成器件。
555定时器的功能主要由两个电压比较器决定,两个电压比较器的输出电压控制RS触发器和放电管的状态。
在电源与地之间加上电压,当5脚悬空时,则电压比较器A1的反向输入端的电压为2VCC/3,A2的同向输入端的电压为VCC/3,若触发器输入端TR的电压小于VCC/3,则比较器A2的输出为1,可使RS触发器置1,使输出端OUT=1,如果阈值输入端TH的电压大于2VCC/3,同时TR端的电压大于VCC/3,则A1的输出为1,A2的输出为0,可将RS触发器置0,是输出为0电平。
本方案由于555定时器回差太小,且不能调整,功能上有所欠缺等缺点不宜选择。
1.2 采用单片机控制单片机具有性能高,速度快,体积小,稳定可靠,应用广泛,通用性强等突出优点,它在硬件结构,指令系统,I/O端口,功率消耗及可靠性等方面有其独特之处,其显著特点之一就是具有非常有效的控制功能。
而LCD显示器具有体积小,重量轻,工作电压低,功耗低,稳定可靠等特点。
这个方案价格便宜,编程简单,专用性强,功能可随单片机的选择而调整。
综上所述,方案1.2有很大的优势,可以利用单片机和LCD显示器来实现定时倒数,通过蜂鸣器发出音乐。
2 总体设计2.1 系统硬件设计以STC89C51单片机作为主控器,外加按键电路,复位电路,LCD显示电路和蜂鸣器构成其系统框图如下:2.2 系统软件设计本设计将合个功能部分分别封装为函数,故在主函数只需进行相关的初始化即可。
AT89C51单片机设计的音乐倒数计数器解析
塔里木大学《单片机原理与外围电路》课程论文基于单片机设计的音乐倒数计数器姓名:古再丽努尔·阿卜来提学号: **********班级:通信工程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)系统整体电路.............................................................................................错误!未定义书签。
音乐倒数计数器单片机课程设计
目录第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 发展前景随着人们生活水平的不断提高单片机控制无疑是人们追求的目标之一,它给人带来的方便也是不可置否的,人们对它的要求越来越高,要为现代人工作、科研、生活、提供更好的更方便的设施就需要从单片机技术入手,一切向着数字化控制,智能化控制方向发展。
本设计利用AT89C51单片机结合字符型LCD显示器设计一个简易的倒数计数器,可用来煮方便面、煮开水或小睡片刻等。
做一小段时间倒计数,当倒计数为0时,则发出一段音乐声响,通知倒计数终了,该做应当做的事。
1.2 设计要求利用数字AT89C51单片机实现倒数计数器的功能,设定时间后在LED数码管上显示相应的时间。
其功能和性能指标如下:1、字符型LCD(16 2)显示器,显示格式为“TIME 分分:秒秒”。
2、用4个按键操作来设置当前想要倒计数的时间。
3、一旦按下键则开始倒计数,当计数为0时,发出一阵音乐声。
4、程序执行后工作指示灯LED闪动,表示程序开始执行,按下操作键K1~K4动作如下:(1)K1—可调整倒计数的时间1~60分钟。
(2)K2—设置倒计数的时间为5分钟,显示“0500”。
(3)K3—设置倒计数的时间为10分钟,显示“1000”。
(4)K4—设置倒计数的时间为20分钟,显示“2000”。
5、复位后LCD的画面应能显示倒计时的分钟和秒数,此时按K1键,则在LCD 上显示出设置画面。
基于单片机音乐倒数计数器设计
随着人们生活水平的不断提高,单片机 控制 无疑 是人们追 求 的 目标之一 ,要为现代人工作、科研、生活、提供更好 的更 方 便的设施就 需要 从单片机技术入手 ,一切 向着数 字化控制 , 智 能化控 制方 向发展 。本 设计基 于 A T 8 9 S 5 1 单 片机设 计 了音 乐倒数 计数器 ,通过按键控制 ,实现时间倒计数。在规定的时 间里, 当倒计 数为 0 时, 则发 出一段音乐声响 , 通知倒计数终止 。 该 系统 具 有 走 时 准 确 ,显 示 直 观 , 低 功 耗 等 特 点 。 1系统设计方案 音 乐倒数计数器所倒数 的时间 由数字显示,控制器使用单 片机 A T 8 9 C 5 1 。本 设计基 于单 片机技 术原理 , 以单 片机芯 片 A T 8 9 C 5 1 作为核 心控制器 ,通过硬件 电路的制作 以及 软件 程序 的编制,设计制作 出一个计数器 ,包 括 以下功 能 :输 出时 间, 按 下键就 开始计 时,并将时 间显示在 L C D1 6 0 2 显 示 器 上 。 当 倒计数 为 0 时,蜂 鸣器就 发出音乐声响等等 。该计数器系 统主 要 由计 数器模块、L C D显示器模块 、蜂鸣器模 块、键盘模块 、 复位 模 块 等 部 分 组 成 。 2 系统硬件 电路设计 音 乐倒数 计数器 系统主要 由计数 器模块 、L C D 显示器模 块 、蜂 鸣器模块 、键盘模块 、复位模块等部分组成 。本设计采 用5 1 系列 单片机 A T 8 9 S 5 1 单 片机, 当系 统启动 时,单片机 首 先 对 内部资源和 L C D进行初始 化,随后从 时钟 芯片读取 时间 并将其 信号传 输给 L C D显示 ,并对键 盘 电路进 行循环 扫描 , 通 过键 盘 电路 完 成 系 统 时 间 、计 数 时 间 的设 置 。下 面 分 别 介 绍 各 个 模 块 的功 能实 现 。 2 . 1 A T 8 9 c 5 1 单 片 机 A T 8 9 C 5 1 是带 4 K 字 节 闪烁 可 编 程 可 擦 除 只 读 存 储 器 的 低 电压,高性能 C MOS 8 位微处 理器 ,俗 称单片机 。单 片机 的可 擦 除只读存储器 可 以反复擦 除 1 0 0 次。该器件采用 A T ME L高 密度非易失存储器制造技术制造 ,与工业标准 的 MC S . 5 1 指令 集和输 出管脚 相兼容 。由于将 多功能 8 位C P U和 闪烁存储 器 组合在 单个 芯片 中, A T ME L的 A T 8 9 C 5 1 是一种 高效微控制器 , A T 8 9 C 5 1 单片机 为很 多嵌入式控制系统提供 了一种灵活性高且 价廉的方案 。 2 . 2 显 示 电路 显示 电路 有单 片机 和一个 L C D1 6 0 2 液 晶显 示器组成 ,P 0 为输入 口,P 2 为片选 口。1 6 0 2 液晶也 叫 1 6 0 2 字符型 液晶 ,它 是一种专 门用 来显示字母 、数字 、符号等 的点阵型液 晶模块 。 它 由若 干 个 5 ×7 或者5 ×1 1 等 点 阵 字 符 位 组 成 ,每 个 点 阵 字 符 位都可以显示一个字符 ,每位之 间有一个点距 的间隔 ,每行之 间也有间隔,起 到了字符 间距和行 间距 的作用 。
倒数计数器单片机课程设计
2.4.4按键控制模块
按键用于控制数码显示、LCD显示、扬声器等模块的工作。通过扫描按键是否按下,来设定各模块的工作情况,使各模块可以在按键的控制下,有序地进行工作。设计中使用单个按键实现单个功能,属于较为简单的控制方式,在多功能系统设计的试验中我们使用四个按键分别与单片机的p1.0、p1.1、p1.2、p1.3相连。通过按下相应的按键来处理相应的程序。如下图6所示。
图6 按键控制模块图
2.4.5其它元件
其它元件图如下图7所示。
图7 其他元件图
2.5绘制中遇到的问题及解决办法
在绘图的过程中主要出现的问题是有些元器件在protues中找不到,出现这样的问题是对protues软件的应用不是很熟悉,当遇到找不的元器件时,就只有通过网络来查找。
第三章系统软件设计
3.1软件设计
高4位三态、双向数据总线4位
12
DB5
高4位三态、双向数据总线5位
13
DB6
高4位三态、双向数据总线6位
14
DB7
高4位三态、双向数据总线7位(最高位)(也是busy flag)
15
BLA
背光电源正极
16
BLK
背光电源负极
2.4.3晶振电路
时钟是单片机的心脏,单片机各功能部件的运行都是以时钟频率为基准,有条不紊地一拍一拍地工作。因此,时钟频率直接影响单片机的速度,时钟电路的质量也直接影响单片机系统稳定性。常用的时钟电路有两种方式,一种是内部时钟方式,另一种是外部时钟方式。
音乐提示定时器
目录第1章、概述 (1)第2章、系统总体方案设计 (2)第3章硬件设计 (5)第4章软件设计及调试 (9)第5章系统联调及操作说明 (11)第6章总结 (12)参考文献附录A 系统硬件原理图附录 B 程序清单第1章概述1、课程设计的要求以51系列单片机为核心,以开发板为平台,设计一个音乐提示定时器,具备倒数计时、时间修改、音乐演奏等功能。
该定时器设置4个按键:K1—设置倒数时间为60分钟,显示为“60”;K2—设置倒数计时时间为5分钟,显示为“05”;K3—设置倒数计时时间为10分钟,显示为“10”;K4—设置倒数计时时间为20分钟,显示为“20”。
一旦按键后则开始倒计时,当计时为0则演奏一曲音乐;内定倒数计时时间为5分钟,显示为“05-00”。
定时器可作为微电脑倒数计数器,做一小段时间计时,放在家中使用,例如煮泡面、煮开水或小睡片刻等;用于全自动洗衣机洗涤完毕音乐提示定时器。
设计任务包括控制系统硬件设计和应用程序设计。
2、课程设计的目的有:(1)加深对基础知识的理解,进一步熟悉和掌握单片机的结构及工作原理。
(2)掌握单片机的接口技术及相关外围芯片的外特性,控制方法。
明确原理图中所使用的元器件功能及在图中的作用,各器件的工作过程及顺序。
(3)通过课程设计,掌握以单片机核心的电路设计的基本方法和技术,了解有关电路参数的计算方法。
(4)通过实际程序设计和调试,逐步掌握模块化程序设计方法和调试技术。
了解程序设计总体功能及结构,对各子模块的功能以及各子模块之间的关系有较详细的描述。
(5)通过完成一个包括电路设计和程序开发的完整过程,通过实际操作,将理论用于实践,提高对本课程的实际运用能力,在设计的过程中发现问题、解决问题,掌握更多的知识。
第2章系统总体方案设计1、总体方案的选择本课题要求以单片机为核心设计一个音乐提示定时器,具备倒数计时、时间设置、音乐演奏等功能。
设计K1为60分钟、K2为5分钟、K3为10分钟、K4为20分钟的按键,例如60分钟,显示为“60-00”,内定倒数计时时间为5分钟,显示为05-00(开机状态)。
音乐倒数计数器课程设计报告
湖南涉外经济学院课程设计报告课程名称:单片机原理及应用报告题目:音乐倒数计数器学生姓名:所在学院:信息科学与工程学院专业班级:学生学号:指导教师:廖亦凡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)一、概述随着科技的发展和社会的进步,人们对数字钟的要求越来越高,多功能数字钟不管在性能还是在样式上都发生了质的变化。
C51音乐倒数计数器
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显示的音乐倒数计数器
测试结果:记录测 试结果,分析程序 性能
问题解决:针对测 试中发现的问题, 进行修改和优化
06
音乐倒数计数器的硬件 设计
电路板设计流程
确定电路板尺寸和形状 绘制电路原理图 设计电路板布局
制作电路板文件 制作电路板 测试电路板性能
元器件的选择与布局
单片机:选择合适的型号,如 STC89C52
音乐芯片:选择合适的音乐芯片,如 YM2413
电源模块:为整个电路提 供稳定的电源电压
04
单片机与LCD显示模块 的连接
LCD显示模块简介
LCD显示模块是一种常用的显示设备,广泛应用于各种电子设备中。
LCD显示模块具有低功耗、高亮度、长寿命等优点。 LCD显示模块的工作原理是通过控制液晶分子的排列,实现对光线的调 制。 LCD显示模块的接口类型包括并行接口、串行接口等。
添加项标题
2000年代,ARM公司推出Cortex系列微处理器,成为智 能手机、平板电脑等设备的主流单片机
单片机的应用领域
工业控制:如 家电产品:如
自动化生产线、 洗衣机、冰箱、
机器人等
空调等
汽车电子:如 汽车电子控制 系统、车载娱
乐系统等
医疗设备:如 医疗仪器、医 疗电子设备等
通信设备:如 手机、路由器
单片机与LCD显示模块的接口电路
接口信号:时钟信号、数据 信号、控制信号等
接口类型:I2C、SPI、 UART等
接口设计:根据单片机和 LCD显示模块的接口要求进
行设计
接口测试:通过测试确保接 口电路的正常工作
接口电路:单片机与LCD显 示模块之间的连接电路
接口优化:根据测试结果对 接口电路进行优化和改进
02 单片机概述
单片机音乐倒数定时器的设计
1.基于单片机音乐倒数定时器的设计报告2.【摘要】计时器在单片机模块中是比较常见的模块,计时器是一种用数字电路技术实现的计时装置,与机械师中相比具有更高的准确性与直观性,且无机械装置,具有更长的使用寿命,因此得到了广泛的使用。
本设计采用AT89C51单片机对定时器的设计来实现一个简单的多功能的音乐倒计时报警器,通过三个按键可设定任意时间的倒计时报警器来满足用户的简单要求,如烧开水,煮面等简单问题。
3.【关键词】定时计数器;音乐代码;1602液晶显示4.目录5.引言 16.一、设计要求 27.二、设计目的 28.三、设计的具体实现2 8.1.1.系统概述 2 8.1.1.1.1总体方案论证 2 8.1.2.1.2单片机选择方案 3 8.2.2.单元电路设计 4 8.2.1.2.1控制电路 4 8.2.2.2.2控制程序8 8.3.3.软件程设计和调试7 8.3.1.3.1延时时间的计算7 8.3.2.3.2工作方式设计8 8.3.3.3.3有定时器产生各种频率的声音88.3.4.3.4程序说明89.四、结论和展望1 410.五、心得和体会1 411.六、参考文献1 512.引言12.1.随着电子技术的飞速发展,各类分立电子元件及其所构成的相关功能单元,已逐步被功能更强大、性能更稳定、使用更方便的集成芯片所取代。
由集成芯片和一些外围电路构成的各种自动控制、自动报警、自动显示电路遍及各种电子产品和设备。
数字系统和数字设备已广泛应用于各个领域,更新换代速度可谓日新月异。
12.2.计时器在单片机模块中是比较常见的模块,计时器是一种用数字电路技术实现的计时装置,与机械师中相比具有更高的准确性与直观性,且无机械装置,具有更长的使用寿命,因此得到了广泛的使用,本次设计的任意时间倒计时器,是基于单片机的基础,日常生活中相关的设备是很多的,诸如定时报警、报时自动打铃、时间程序自动控制、定时广播、自动闭路灯等都是以计时器为基础的。
音乐倒数计时器单片机课程设计报告
音乐倒是计时器一、设计要求利用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 系列的才支持在线编程)。
基于wave6000的单片机音乐倒数计时器设计
基于wave6000的单片机音乐倒数计时器设计带有LED显示的音乐倒数计时器一.实验内容要求利用AT89C51结合七段数码管设计一个倒数计时器,做一小段时间计时。
当倒数计时为0时,则发出一段音乐,通知倒数终了,该做重要的事情了。
实验内容具体要求:(1)四个七段数码管显示目前倒数的时间。
显示格式为“分分:秒秒”;(2)具有4个按键操作来设置现在想要倒数的时间;一旦按键后则开始倒数计时,当计时为零则发出一阵音乐声响;(3)程序执行后,数码管显示“0000”,当按下操作键K1~K4动作如下:★操作键K1,设置倒数计时时间3min,显示“0300”;★操作键K2,设置倒数计时时间为2min,显示“0200”;★操作键K3,设置倒数计时时间为4min,显示“0400”;★操作键K4,控制K1,K2,K3。
当计时时间错误时,按下K4,可即使调节时间,使当前倒数计时关闭,此时,再按下K1,K2,K3时,可重新倒数计时。
(4)倒数计时时,相应指示灯亮;当计时完成时,指示灯灭,音乐响起。
三.软件设计思路及流程图本课程设计中,可以学习利用单片机定时器设计时间计时处理,其时间控制,定时器1计时中断程序每个100m中断一次判任课教师:日期:年月日断计数值是否为10,若为10,则计数值加一,表示1到了,秒变量加1,同理再判断是否1min到了,若计数到了则将相关变量清除为0。
单片机定时器负责定时的技术,不会因为案件处理而中断时间描述的增加。
分,秒数据是存入寄存器内并写入七段数码管而显示相关时间的。
在主控程序循环中主要工作为程序初始化和循环调用显示子程序。
在显示子程序中判断是否有按键按下,若有按键则做相应的功能处理。
而在定时器中断子程序中完成的主要功能是时间的减一操作。
同时检查所倒数的时间是否为0,若为0表示倒数终了,应该执行想对应的工作了。
K1,K2,K3,K4是否按下YK1:倒数计时时间为3min;K2:倒数计时时间为2min;K3:倒数计时时间为4min;K4:控制K1,K2,K3;程序整体流程图N开始数码管显示“8888”开T1中断,赋初值40H~43H内容清零将44H、45H的高四位和低四位分别送入40H~43H中。
单片机课程设计--音乐倒数计数器
单片机课程设计--音乐倒数计数器单片机课程设计--音乐倒数计数器任务书设计任务:利用STC89C52单片机结合字符型LCD显示器设计一个简易的倒数计数器。
做一小段时间倒计数,当倒计数为0时,则发出一段音乐声响,通知倒计数终了,该做应当做的事。
设计要求:1.字符型LCD(16×2)显示器,显示格式为“TIME 分分:秒秒”。
2.用4个按键操作来设置当前想要倒计数的时间。
3.一旦按下键则开始倒计数,当计数为0时,发出一阵音乐声。
4.程序执行后工作指示灯LCD闪动,表示程序开始执行,按下操作键K1~K4动作如下:●K1---可调整倒计数的时间1~60分钟。
●K2---设置倒计数的时间为5分钟,显示“0500”。
●K2---设置倒计数的时间为10分钟,显示“1000”。
●K2---设置倒计数的时间为20分钟,显示“2000”。
5.复位后LCD的画面应能显示倒计时的分钟和秒数,此时按K1键,则在LCD上显示出设置画面。
此时,若:按K2键---增加倒计数的时间1分钟。
按K2键---减少倒计数的时间1分钟。
按K4键---设置完成。
目录任务书............................................................ I 1 绪论 (2)1.1 单片机基础知识 (2)1.2 单片机的发展趋势 (3)1.3 项目设计任务与要求 (3)2 系统设计 (5)2.1 框图设计 (5)2.2部分硬件方案论述 (6)2.3电路原理图 (6)2.4元件清单 (7)2.4.1STC89C52芯片 (7)2.4.2字符型LCD1602 ..................... 错误!未定义书签。
2.4.3按键控制模块 (8)2.4.4其它元件 (12)3软件设计 (14)3.1 程序流程图 (14)4 系统的仿真与调试 (12)4.1 硬件调试 (12)4.2 软件调试 (12)4.3 软硬件调试 (12)5总结 (13)参考文献 (14)附录程序 (25)1 绪论1.1 单片机基础知识单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.基于单片机音乐倒数定时器的设计报告2.【摘要】计时器在单片机模块中是比较常见的模块,计时器是一种用数字电路技术实现的计时装置,与机械师中相比具有更高的准确性与直观性,且无机械装置,具有更长的使用寿命,因此得到了广泛的使用。
本设计采用AT89C51单片机对定时器的设计来实现一个简单的多功能的音乐倒计时报警器,通过三个按键可设定任意时间的倒计时报警器来满足用户的简单要求,如烧开水,煮面等简单问题。
3.【关键词】定时计数器;音乐代码;1602液晶显示4............................................................ 目录5.引言 (1)6.一、设计要求 (2)7.二、设计目的 (2)8.三、设计的具体实现 (2)8.1.1.系统概述 (2)8.1.1....................................................................................... 1.1总体方案论证 (2)8.1.2....................................................................................... 1.2单片机选择方案 (3)8.2.2.单元电路设计 (4)8.2.1....................................................................................... 2.1控制电路 (5)8.2.2....................................................................................... 2.2控制程序 (8)8.3.3.软件程设计和调试 (7)8.3.1....................................................................................... 3.1延时时间的计算 (7)8.3.2....................................................................................... 3.2工作方式设计 (8)8.3.3....................................................................................... 3.3有定时器产生各种频率的声音 (8)8.3.4....................................................................................... 3.4程序说明 (8)9.四、结论和展望 (14)10....................................................................................... 五、心得和体会 (14)11....................................................................................... 六、参考文献 (15)12.引言12.1.随着电子技术的飞速发展,各类分立电子元件及其所构成的相关功能单元,已逐步被功能更强大、性能更稳定、使用更方便的集成芯片所取代。
由集成芯片和一些外围电路构成的各种自动控制、自动报警、自动显示电路遍及各种电子产品和设备。
数字系统和数字设备已广泛应用于各个领域,更新换代速度可谓日新月异。
12.2.计时器在单片机模块中是比较常见的模块,计时器是一种用数字电路技术实现的计时装置,与机械师中相比具有更高的准确性与直观性,且无机械装置,具有更长的使用寿命,因此得到了广泛的使用,本次设计的任意时间倒计时器,是基于单片机的基础,日常生活中相关的设备是很多的,诸如定时报警、报时自动打铃、时间程序自动控制、定时广播、自动闭路灯等都是以计时器为基础的。
12.3.通过对基于单片机控制的倒数计时器的设计过程中,让自己对单片机有进一步的了解,激发兴趣,做到主动探索和学习。
13.设计要求13.1.利用单片机结合LCD显示器设计一个倒数计时器,可以放在家中使用,例如煮方便面、煮开水或小睡片刻等,做一小段时间计时。
当倒数计时为0时,则发出一段音乐,通知倒数终了,该做重要的事情了。
13.2.具体要求:13.3.①文字型LCD(16*2)显示目前倒数的时间;显示格式为“COUNT DOWN时时:分分:秒秒”;具有3个按键操作来设置现在想要倒数的时间;一旦按键后则开始倒数计时,当计时为零则发出一阵音乐声响,②程序开始执行,显示器显示“0009”,按下操作键S1~S3动作如下:操作键S1,可调整倒数时间时分秒;操作键S2,设置倒数计时时间为上升,显示“增加”;操作键S3,设置倒数计时时间为下降,显示“减少”;③RESET 按下后显示如下:13.3.1.COUNT DOWN13.3.2.00:00:09 倒数时间14.操作键S2:增加倒数计时,操作键S3,减少倒数计时,操作键S1按第四下设置完成。
④一旦按键后则开始倒数计时,当计时为0时则发出一段音乐。
15.设计目的15.1.通过该设计能提高学生分析解决问题的能力。
15.2.了解模拟电路及数字电路的相关知识。
15.3.学习单片机定时器时间计时处理、按键扫描、LCD显示及音乐旋律演奏的设计方法。
16.设计的具体实现16.1.1. 系统概述16.2.总体方案论证16.3.要实现音乐倒数定时器可以用两种方案实现。
17.方案一:利用PROG-110可编程控制器17.1.PROG-110 可编程器,是一种用《数字简码》控制的产品,它的特点是:自带一套用于输入数码的按键和显示程序的数码管,只要我们现场输入一列2位数码,编制的程序即能完成,即编,即用。
每一种《数字简码》控制器,它都自带一套系统软件,每一套系统软件都有一套相对应的指令表,配套的指令表表明,只要输入什么样的数,程序将去做什么事,输入一列数,它就会按次序去完成你要求它做的所有的事。
17.2.但是首先PROG-110模块总共只有6个I/O端口,这就必须扩展模块端口,用两部以上模块串联,但花钱要多;其次是程序过长,PROG-110模块的E2PROM存储器24C01只可输入128步程序;第三是受PROG-110模块跳转指令步数的限制。
18.方案二:利用单片机、LCD显示器和压电喇叭18.1.单片机具有性能高、速度快、体积小、价格低、稳定可靠、应用广泛、通用性强等突出优点。
它在硬件结构、指令系统、I/O端口、功率消耗及可靠性等方面均有其独特之处,其最显著的特点之一就是具有非常有效的控制功能。
而LCD显示器具有体积小、重量轻、工作电压低、功耗极低、显示内容丰富、稳定可靠、成本低、控制驱动方便、接口简单易用、模块化结构紧凑等特点。
18.2.综上所述,按照设计要求我选择第二种方案,即利用单片机和LCD显示器来实现定时倒数,通过压电喇叭来发出音乐。
18.3.单片机选择方案18.4.采用8051单片机18.5.8051单片机内部包含一个8位CPU、一个片内振荡器及时钟电路、ROM程序存储器、RAM数据存储器、两个16位定时器/计数器、可分别寻址64KB的程序存储器空间和64KB的数据存储器空间、32条可编程的I/O口线(4个8位并行I/O端口)、一个可编程全双工串行口、具有5个中断源和2个优先级的中断结构。
可以有效实现本次设计中要求的各项功能。
18.6.具体的设计流程可见图1:19.图 1设计流程图19.1.1. 单元电路设计19.1.2. 2.1控制电路19.2.倒数计数器的控制电路可以见附图,其中主要分为以下几部分19.2.1.1. 单片机805119.3.8051 基本资料如下:20.21.图2 8051引脚图21.1.8051主要使用引脚功能说明如下:22.8051的引脚40接+5V电源,引脚20接电源地线。
23.传统8051工作时钟的最高为12MHz。
24.EA引脚低电平动作用来存取外部程序ROM控制。
25.EA接地,由外部程序ROM来执行程序。
26.EA接高电平,由内部ROM来执行程序。
27.开机时必须加入芯片重置信号。
(RESET)28.RESET信号高电平动作,高电平时产生芯片重置。
29.RESET信号低电平时,由程序ROM地址0开始执行程序。
29.1.在本次设计中采用的8051外接电路如图3所示:29.2.29.3.图3 8051外接电路图29.4.8051系列的单片机的时钟方式分为内部方式和外部方式。
内部方式就是在单片机的引脚18、19外接晶振,就够成了自激振荡器在单片机内部产生时钟脉冲信号。
外部时钟方式是把外部已经有的时钟信号引入到单片机内部。
时钟电路在计算机系统中起着非常重要的作用,是保证系统正常工作的基础。
在一个单片机应用系统中,时钟有两方面的含义:一是指为保障系统正常工作的基准振荡定时信号,主要由晶振和外围电路组成,晶振频率的大小决定了单片机系统工作的快慢;二是指系统的标准定时时钟,即定时时间。
29.5.用一个12MHz晶振和两个30Pf瓷片电容组成,为单片机提供标准时钟,其中两个瓷片电容可以增加电路的稳定性,可以抗噪声增加稳定性,不容易死机。
29.6.在8051中之所以采用高性能的振荡电路,因为:29.6.1.1.1.单片机电子钟的计时脉冲基准是由外部晶振的频率经过12分频后提供,采用内部的定时/计数器来实现计时功能。
所以,外接晶振频率精确度直接影响电子钟计时的准确性。
29.6.1.1.2.单片机电子钟利用内部定时/计数器溢出产生中断(12M晶振一般为50ms)再乘以相应的倍率来实现秒、分、时的转换。
大家都知道从定时/计数器产生中断请求到响应中断需要3-8个机器周期,定时中断子程序中的数据入栈和重装定时/计数器的初值还需要占用数个机器周期,还有从中断入口转到中断子程序也要占用一定的机器周期。
29.6.1.2. 复位电路29.7.29.8.图4 单片机复位电路29.9.本次设计使用的倒数计时LCD控制,使用的是16字*2行设计。
图4中为4位控制电路,以8051 P0的6调输出控制线来实现控制,P0还有提升电阻以增强其驱动能力,控制信号如下:R/W=0,LCD执行写入的动作,RS寄存器选择控制线。
EN启用控制线。