基于单片机多功能音乐闹钟设计论文
基于单片机的音乐闹钟毕业设计
摘要20世纪末,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了社会的各个领域,在以AT89S51单片机为代表的电子技术有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。
本课题基于单片机完成了音乐电子闹钟的设计与实现,通过软、硬件结合实现了设定时间、按时闹铃、数字显示等功能。
硬件部分是通过STC89C51实现音乐电子闹钟的基本框架。
软件设计利用C51单片机语言完成了时间显示、走时计数、判断时间及按时响铃等功能。
本电子闹钟系统结构简单、成本低,具有比较好的市场前景。
关键词:单片机闹钟设计2 I目录摘要 (I)目录 (II)前言 (1)第一章绪论 (2)1.1概述 (2)1.1.1 音乐电子闹钟发展趋势 (2)1.1.2 本课题研究的主要内容 (2)1.2音乐电子闹钟简介 (3)1.2.1 开发的目的和意义 (3)1.2.2 音乐电子闹钟的优点 (4)1.2.3 音乐电子闹钟的用途 (4)1.2.4 音乐电子闹钟的特点 (4)第二章 STC89C51单片机基础知识简介 (4)2.1单片机的特点及应用 (4)2.1.1 单片机的特点 (4)2.1.2 单片机的应用 (5)2.2 STC89C51芯片基本工作原理及其应用 (5)2.2.1 AT89S51简介 (6)2.2.2 电源 (9)2.2.3 应用 (10)第三章系统方案设计 (11)3.1 系统功能描述 (11)3.2系统设计思路与步骤 (11)第四章系统设计 (12)4.1系统硬件设计 (12)4.1.1 按键电路 (12)4.1.2 复位电路 (13)4.1.3 显示电路 (14)4.1.4 发音部分 (15)4.1.5 晶振电路 (16)4.1.6 电源电路 (17)4.2系统软件设计 (17)4.2.1 软件设计 (17)4.2.2系统软件部分总体设计 (19)第五章系统调试和性能分析 (20)5.1系统调试方法 (20)1II5.1.1 输入按键调试 (21)5.1.2 显示电路调试 (21)5.1.3 系统联调 (21)5.2系统性能分析 (21)结束语 (22)参考文献 (23)附录1 电路图 (24)附录2 实物图 (25)附录3 程序 (26)2 III音乐电子闹钟的设计前言自单片机问世以来,性能得到不断提高和完善,因其资源能够满足很多应用场合的需要,加之单片机具有集成度高、功能强、速度快、体积小、功耗低、使用方便、性能可靠、价格低廉等优点。
基于51单片机的多功能电子钟设计
基于51单片机的多功能电子钟设计1. 本文概述随着现代科技的发展,电子时钟已成为日常生活中不可或缺的一部分。
本文旨在介绍一种基于51单片机的多功能电子钟的设计与实现。
51单片机因其结构简单、成本低廉、易于编程等特点,在工业控制和教学实验中得到了广泛应用。
本文将重点阐述如何利用51单片机的这些特性来设计和实现一个具有基本时间显示、闹钟设定、温度显示等功能的电子钟。
本文的结构安排如下:将详细介绍51单片机的基本原理和特点,为后续的设计提供理论基础。
接着,将分析电子钟的功能需求,包括时间显示、闹钟设定、温度显示等,并基于这些需求进行系统设计。
将详细讨论电子钟的硬件设计,包括51单片机的选型、时钟电路、显示电路、温度传感器电路等。
软件设计部分将介绍如何通过编程实现电子钟的各项功能,包括时间管理、闹钟控制、温度读取等。
本文将通过实验验证所设计的电子钟的功能和性能,并对实验结果进行分析讨论。
通过本文的研究,旨在为电子钟的设计提供一种实用、经济、可靠的方法,同时也为51单片机的应用提供一个新的实践案例。
2. 51单片机概述51单片机,作为一种经典的微控制器,因其高性能、低功耗和易编程的特性而被广泛应用于工业控制、智能仪器和家用电器等领域。
它基于Intel 8051微处理器的架构,具备基本的算术逻辑单元(ALU)、程序计数器(PC)、累加器(ACC)和寄存器组等核心部件。
51单片机的核心是其8位CPU,能够处理8位数据和执行相应的指令集。
51单片机的内部结构主要包括中央处理单元(CPU)、存储器、定时器计数器、并行IO口、串行通信口等。
其存储器分为程序存储器(ROM)和数据存储器(RAM)。
程序存储器通常用于存放程序代码,而数据存储器则用于存放运行中的数据和临时变量。
51单片机还包含特殊功能寄存器(SFR),用于控制IO端口、定时器计数器和串行通信等。
51单片机的工作原理基于冯诺伊曼体系结构,即程序指令和数据存储在同一块存储器中,通过总线系统进行传输。
毕业设计(论文)-基于单片机多功能电子时钟的设计与仿真(含程序仿真)[管理资料]
程序仿真等全套设计,联系153893706第1章绪论二十一世纪的今天,最具代表性的计时产品就是电子万年历,它是近代世界钟表业界的第三次革命。
第一次是摆和摆轮游丝的发明,相对稳定的机械振荡频率源使钟表的走时差从分级缩小到秒级,代表性的产品就是带有摆或摆轮游丝的机械钟或表。
第二次革命是石英晶体振荡器的应用,发明了走时精度更高的石英电子钟表,使钟表的走时月差从分级缩小到秒级。
第三次革命就是单片机数码计时技术的应用(电子万年历),使计时产品的走时日差从分级缩小到1/600万秒,从原有传统指针计时的方式发展为人们日常更为熟悉的夜光数字显示方式,直观明了,并增加了全自动日期、星期、温度以及其他日常附属信息的显示功能,它更符合消费者的生活需求!因此,电子万年历的出现带来了钟表计时业界跨跃性的进步……我国生产的电子万年历有很多种,总体上来说以研究多功能电子万年历为主,使万年历除了原有的显示时间,日期等基本功能外,还具有闹铃,报警等功能。
商家生产的电子万年历更从质量,价格,实用上考虑,不断的改进电子万年历的设计,使其更加的具有市场。
本设计为软件,硬件相结合的一组设计。
在软件设计过程中,应对硬件部分有相关了解,这样有助于对设计题目的更深了解,有助于软件设计。
基本的要了解一些主要器件的基本功能和作用。
除了采用集成化的时钟芯片外,还有采用MCU的方案,利用AT89系列单片微机制成万年历电路,采用软件和硬件结合的方法,控制LED数码管输出,分别用来显示年、月、日、时、分、秒,其最大特点是:硬件电路简单,安装方便易于实现,软件设计独特,可靠。
AT89C52是由ATMEL公司推出的一种小型单片机。
95年出现在中国市场。
其主要特点为采用Flash存贮器技术,降低了制造成本,其软件、硬件与MCS-51完全兼容,可以很快被中国广大用户接受。
本文介绍了基于AT89C52单片机设计的电子万年历。
选题背景及研究的目的与意义设计的目的电子钟已成为人们日常生活中必不可少的物品,广泛用于个人家庭以及车站码头、剧院、办公室等公共场所,给人们的生活、学习、工作、娱乐带来了极大的方便。
毕业论文基于单片机定时闹钟系统设计
江西理工大学南昌校区毕业设计(论文)题目:基于单片机定时闹钟系统设计系别:信息工程系专业:电气自动化技术班级:09自动化2班学生:贺明波学号:09321229指导教师:刘秋平职称:助教摘要随着科技的快速发展和生活水平的不断提高,人们对时钟的精确度和实用性要求越来越高。
本文采用AT89S52单片机,通过DS1302日历芯片进行定时,并通过LCD1602液晶进行显示。
通过C语言程序编写,将设计出更准确定时、更省电的数字时钟。
单片机数字时钟具有设置时间、日期、星期的基本功能,并且能够显示年、月、日、时、分、秒、星期。
单片机数字钟不管在性能还是在样式上都发生了质的变化,实践证明单片机数字时钟具有更加准确性、精密性等功能。
关键字:数字时钟;DS1302;LCD1602;AT89S52AbstractIn daily life, time is science, technology and everyday life is one of the most basic physics, we often deal with temporal clocks, such as hand watch, wall clock, even on a computer program, the clock on the phone can be generalized a clock display on the clock, along with the rapid development of technology and the continuous improvement of living standards, people on the clock's accuracy and practical demand is higher and higher. Based on the single chip microcomputer principle, USES the monolithic integrated circuit AT89S52 series, through the hardware circuit and software production procedure formulation, will design a more accurate timing, electricity -saving digital clock, SCM in performance or digital clock no matter in style have undergone a qualitative change, digital clock has proved microcontroller more accuracy, precision sex etc. Function.Key Words:Digital clock ; DS1302; LCD1602;目录第一章引言 (1)1.1单片机的发展史 (1)1.2 单片机的应用 (1)1.3 单片机发展趋势 (2)1.4 数字时钟方案论证比较 (3)1.4.1 数字电路与单片机性能比较 (3)1.4.2数码管与LCD液晶显示性能比较 (4)1.4.3单片机编程时钟与时钟芯片性能比较 (4)第二章系统的硬件设计与实现 (6)2.1 系统概述 (6)2.2模块电路的设计 (7)2.2.1时钟电路 (7)2.2.3 复位电路与晶振电路 (11)2.3 总体电路图设计 (11)第三章系统的软件设计与实现 (13)3.1 程序功能 (13)3.2 编程思路 (13)3.3 程序设计流程图 (13)3.3.1 DS1302软件设计流程图 (14)3.3.2 LCD1602程序序流程图 (16)3.4写入显示数据到LCD子程序模块设计 (17)3.5时间闹铃设置流程 (18)第四章仿真软件Proteus ISIS使用方法简单介绍 (19)4.1 简介 (19)4.2 简单项目设计过程 (20)4.3仿真执行 (24)4.3.1一般仿真 (24)第五章系统组装与调试 (26)5.1 硬件系统的组装与调试 (26)5.2 软件调试 (27)总结 (29)参考文献 (30)附录1单片机定时闹钟程序源代码 (41)致谢 (41)第一章引言1.1单片机的发展史单片机是在一块硅片上集成了各种部件的微型计算机。
基于单片机的多功能数字电子钟设计学士学位毕业设计论文
学士学位毕业设计(论文)基于单片机的多功能数字电子钟设计学生姓名:XX学号:XXXXXX指导教师:XXXX所在学院:XXXXXXXX专业:XXXXXXXXXXXXX中国·大庆2014 年 5 月黑龙江八一农垦大学本科毕业设计(论文)任务书注:1.任务书由指导教师填写后交给学生,要求学生妥善保存。
2.此任务书夹于论文扉页与论文一并装订,作为论文评分依据之。
摘要电子钟是当今社会中最主要的计时工具,它广泛的被应用在电脑,手机,和其他社会生活的各个方面,和所有要求时间的场所。
20世纪90年代,电子技术的飞速成长推动了现代电子商品的发展,电子产品已经深入社会的各个领域,为社会生产力的发展和社会信息化程度的发展提供了强大的动力,电子技术的发展如今越来越快,电子产品的更新换代的节奏更快。
在当今社会,人们越来越重视时间,生活节奏越来越快,时间就是金钱。
时间如果不准确,会对那些需要精确时间的人带来极大的麻烦。
本设计的核心元件是STC89C52,LCD12864液晶模块、DHT11温湿度感应模块、DS1302时间模块及按键模块组成。
本设计实现了万年历的基本功能,显示年、月、日、时、分、秒、星期,温湿度而且可以整点报时,闹表功能,无源时钟芯片再接一个3V电源,掉电后能正常工作,重新上电后不用调整时间。
整个设计具有操作简单,性价比高,环保无噪音,低功耗等优点。
关键词:电子时钟单片机DS1302 DHT11ABSTRACTDigital electronic clock is one of the main timing tool in the modern world, widely used cell phones, computers, cars and so on all aspects of social life, and the time required for the occasion.20th century, electronic technology gained rapid development, driven in its modern electronics into almost all areas of society, a strong impetus to the development of the social productive forces and social improvement in the level of information, but also to modern electronic products further improve the performance, product upgrading faster and faster pace.Modern life more and more attention from the concept of time, time and money can be said to equate. For those who are very strict on time and accurate grasp of people and things, time is not accurate will bring great trouble.This design uses AT89S52 micro-controller as the core component, attach ed above power-on reset circuit, crystal oscillator circuit, LCD12864B liquid crystal display modules, DHT11 temperature and humidity sensor module, DS1302 time module and key tone circuit.The design and implementation of the basic functions of the calendar, year, month, day, hour, minute, second, day, temperature and humidity but also the whole point timekeeping, alarm clock function, followed by a clock chip passive 3V power supply can power down after working properly, do not adjust the time after power outages. The whole design is simple, cost-effective, environmentally friendly no noise, low power consumption.Keywords: Electronic Clock MCU DS1302 DHT11目录摘要 (I)ABSTRACT (II)前言 (V)1 绪论 (1)1.1电子时钟的研究背景 (1)1.2电子时钟的国内外研究现状 (1)2 元件介绍 (3)2.1单片机STC89C52 (3)2.2实时时钟芯片DS1302 (5)2.3温湿度传感器DHT11 (7)2.4液晶显示屏LCD12864 (8)2.5本章小结 (8)3 总体方案 (9)3.1系统的设计思路 (9)3.2系统硬件描述 (9)3.3系统软件描述 (10)3.4设计流程 (10)3.5本章小结 (10)4 系统硬件架构 (11)4.1单片机最小系统 (11)4.2时钟模块 (13)4.3温湿度传感器模块 (13)4.4液晶显示模块 (13)4.5按键模块 (14)4.6蜂鸣器报警模块 (14)4.7本章小结 (15)5 软件设计 (16)5.1 软件设计总体说明 (16)5.2系统程序流程图设计 (16)5.3系统程序设计(见附录) (20)5.4本章小结 (20)结论 (21)参考文献 (22)致谢 (23)附录一 (24)附录二 (25)前言近年来,电子产品的成长越来越快,社会竞争也更剧烈,人们对电子时钟的要求更高了。
【设计】参考基于单片机的打铃器硬件设计毕业论文
【关键字】设计CHANGZHOU INSTITUTE OF TECHNOLOGY科研实践题目:基于单片机的打铃器设计二级学院(直属学部):延陵学院专业:电气工程及其自动化班级:10电Y3学生姓名:学号:指导教师姓名:范力旻职称:副教授至摘要单片机自1976年由Inter公司推出MCG-48开始,迄今已有二十多年了。
由于单片机集成度高、功能强、可靠性高、体积小、功耗低、使用方便、价格低廉等一系列优点,目前已经渗入到人们工作和生活的方方面面,几乎“无处不在,无所不为”。
单片机的应用领域已经从面相工业控制、通讯、交通。
智能仪表等迅速发展到家用消费产品、办公自动化、汽车电子、PC机外围以及网络通讯等广大领域。
按照内部数据通道的宽度,单片机可分为4位、8位、16位及32位等。
单片机的中央处理器(CPU)和通用微处理器基本相同,只是增设了“面向控制”的处理功能。
例如:位处理、查表、多种地址询问方式、多种跳转、乘除法运算、状态监控、中断处理器,强了实时性。
本设计以AT89S52芯片为核心,利用DS1302作时钟芯片,具有实时显示当前时间,按设定时间报时,能修改当前时钟等功能。
关键词:定时打铃;DS1302时钟;LCD1602液晶显示目录第一章绪论1.1 选题背景及研究意义随着科技的不断发展,各种芯片都得到了很好的发展,89S52同样如此,从开始的无人问津到现在的随处可见,红绿灯,记分牌,电子秒表,遥控器,电饭煲,电视等只要是电子产品,都会和芯片有关,其实芯片并不是什么神秘的高科技,它只是里面装了一些己编好的程序而己.而自动打铃系统是用汇编语言来编程的一个系统,它能够让一个学校或企业集团实现打铃自动化,总之,一个需要时间系统的机构实现自动提醒功能。
当今时代是一个新技术层出不穷的时代,在电子领域尤其是自动化智能控制领域,传统的分立元件或数字逻辑电路构成的控制系统,正以前所未有的速度被单片机智能控制系统所取代。
单片机具有体积小、功能强、成本低、应用面广等优点,可以说,智能控制与自动控制的核心就是单片机。
基于51单片机内部定时器的简易闹钟课程设计论文
基于51单片机内部定时器的简易闹钟摘要现代社会电子闹钟已广泛用于各种私人和公众场合,成为我们生活、工作和学习中不可缺少的好帮手,因此研究实用性更强的电子闹钟具有十分重要的意义。
本设计是基于单片机的电子钟设计,不仅具有时分秒的显示功能,还具有双闹铃和倒计时的功能,实用性非常强。
电子钟的计时部分采用AT89S52单片机内部定时器实现,而显示功能是采用液晶模块LCD1602来实现,该电子闹钟可以让使用者通过按键来轻松选择的功能菜单和调节时间,具有非常良好地人机界面。
关键词:电子闹钟;倒计时;AT89S52;液晶LCD1602;按键AbstractIn modern society, the electronic alarm clock has been widely used in various occasions and become indispensable to life.It is a good helper to our work and learning. So,there is very important significance to research more practical electronic alarm clock.This design is based on single chip microcomputer,It has display function of hours,minutes and seconds,dual alarm and countdown.The internal timer of AT89S52 achieve the part of time.The liquid crystal LCD1602 achieve the part of display.The users can use the push-buttons to choice the menu of functions and adjust the time.The man-machine interface is very good.Key words: electronic alarm; countdown; AT89S52; liquid crystal LCD1602; button目录引言 (1)1 设计要求 (2)2 方案论证 (2)2.1 计时方案的选择 (2)2.2 显示方案的选择 (2)2.3 按键功能方案设计 (3)2.4 指示灯和响铃方案设计 (3)3 系统组成 (3)4 硬件设计 (4)4.1 单片机最小系统设计 (4)4.2 显示电路设计 (5)4.3 蜂鸣器电路设计 (5)4.4 按键电路设计 (6)5 软件设计 (6)5.1 走时部分 (6)5.2 闹铃检测部分 (7)5.3 键盘扫描部分 (7)5.4 液晶部分 (8)5.5 流程图 (8)6 仿真设计 (11)7 系统调试及结果 (11)7.1 软件调试 (11)7.2 硬件调试 (12)7.3 调试结果 (13)8 总结 (13)谢辞 (14)参考文献........................................... 错误!未定义书签。
单片机定时闹钟毕业设计论文
单片机定时闹钟一、[电路概述]该时钟电路主要以单片机AT89S52为核心而设计的,通过单片机对信息的分析与处理控制外围设备。
电路整体设计思想是想把它做成一个实用的器件,所以在题目要求的前提下,我们又加入了星期程序,温度程序,年、月、日程序以及时间的12—24转换程序。
[关键字]:单片机数码显示温度传感器光识电路二、[题目分析与方案论证]按照系统设计功能的要求,初步确定设计系统由复位模块、时钟模块、温度模块、音乐模块、光识模块及显示模块共五个模块组成,后来在时钟模块的基础上又加载了日历、星期的模块从单片机AT89S52入手,通过使用AT89S52的内部的可编程定时器/计数器,结合对外接晶振的调节来确定一个合适的振荡周期,从而确定出内部的机器周期。
再通过对内部中断程序的设置来设计出时钟程序,即设计出了电子时钟的核心。
根据题目的要求,我们设计了以下方案:[方案一]设计中加载了年、月、日的设计,刚开始时打算用18个共阳数码管,考虑到数码管太多是毕会给硬件电路带来麻烦,经过考虑后,决定把年、月、日与时间设置到一组数码管上来,即六个数码管即能显示时间又能显示年、月、日,这样一来就方便了硬件电路;[方案二]主控芯片使用51系列AT89S52单片机设计时温度模块设计温度元件用AD590,利用AD590以及接口电路把温度转换成模拟电压,经由ADC0804转换成数字信号,然后经AT89S52处理显示温度。
但由于AD590价钱比较贵,且只能转换成模拟电压,这样一来硬件就要增加更多的器件且又不经济,经查找发现18B20温度传感器价钱便宜且可以直接把温度转换成数字量测温范围为-55—125度,最大分辨率可达0.0625度,采用3线制与单片机相连,减少了外部的硬件电路,具有低成本和易使用的特点,所以我们选择了18B20温度传感器。
附18B20温度传感器工作原理:DS18B20温度传感器是美国DALLAS半导体公司最新推出的一种改进型智能温度传感器,与传统的热敏电阻等测温元件相比,它能直接读出被测温度,并可根据实际要求通过简单的编程实现9—12位的数字值读数方式。
大学毕业论文-—基于单片机的音乐数字钟的设计与仿真
郑州轻工业学院轻工职业学院专科毕业设计题目基于单片机的音乐数字钟的设计与仿真学生姓名张培成专业班级自动化生产设备及应用121 学号院(系)机电工程系指导教师(职称)徐艳完成时间基于单片机的音乐数字钟的设计与仿真基于单片机的音乐数字钟的设计与仿真摘要近年来随着计算机在社会领域的渗透和大规模集成电路的发展,单片机的应用正在不断地走向深入,由于它具有功能强,体积小,功耗低,价格便宜,工作可靠,使用方便等特点,因此特别适合于与控制有关的系统,越来越广泛地应用于自动控制,智能化仪器,仪表,数据采集,军工产品以及家用电器等各个领域,单片机往往是作为一个核心部件来使用,在根据具体硬件结构,以及针对具体应用对象特点的软件结合,以作完善。
单片机是单片微型计算机的简称,随着制造集成电路技术的发展可以将完成计算机功能的零部件集成在一个芯片上。
这样的一个芯片就具有计算机的全部或大部分功能,称为单片机微型计算机,简称单片机。
关键词单片机/设计/开发/调试Music based on single chip microcomputer digital clock design and simulationABSTRACTIn recent years, along with the computer penetration in the field of society and the development of large scale integrated circuit, SCM applications are constantly go, because it has strong function, small volume, low power consumption, cheap, reliable work, convenient use, etc, therefore particularly suitable for related to the control system, more and more widely used in automatic control, intelligent instruments, meters, data acquisition, military products and household appliances and other fields, the microcontroller is often used as a core component, in according to the specific hardware structure, and in combination with the software according to the characteristics of the specific application object, to be improved. Microcontroller is short for single chip microcomputer, with the development of integrated circuit technology manufacturing complete computer functions of components can be integrated on a chip. Such a chip has all or most of the function of the computer, known as the single chip microcomputer, referred to as "single chip microcomputer.KEY WORDS SCM,design,development,debugging目录摘要 (1)ABSTRACT (2)1课题介绍 (5)1.1 单片机与单片机系统 (5)2单片机系统的硬件设计2.1系统构成2.1.1AT89C51芯片的介绍 (6)2.1.2引脚功能 (9)2.2显示部分2.2.1 LED显示器 (9)2.2.2 LED数码显示管的基本原理 (9)2.2.3 数码管显示模块分析 (11)2.3 键盘 (13)2.4 74LS245简介 (18)2.5 蜂鸣器 (19)3 控制部分电路的设计3.1 系统复位设置 (20)3.2 数字时钟的设计 (21)3.3 音乐模块 (22)4 硬件电路端口分配 (24)5 软件设计5.1 程序 (25)5.2 Proteus软件仿真与实现 (32)结束语 (35)致谢 (36)参考文献 (36)1 课题介绍 本设计是基于单片机的音乐数字钟设计,由单片机AT89C51芯片和LED 数码管为核心,辅以必要的电路,构成的一个单片机电子音乐数字钟。
应用单片机设计的电子闹钟的毕业论文
摘要51电子闹钟是集电子技术、数字显示技术为一体的高产品,具有按时闹铃,使用方便等优点。
本论文从51电子闹钟系统的功能,硬件电路设计,软件设计和产品介绍四部分分别论述这一系统。
本系统51电子闹钟硬件部分结构简单、成本低,具有比较好的市场前景。
现代的快节奏生活给人们的精神上带来了很大压力。
如何排解或缓解这些压力已经成为很多人和探索者多年来的一个重要研究项目,电子闹钟减压正是应此而生。
目录第一章绪论 (1)1.1概述 (1)1.1.1 51电子闹钟发展趋势 (1)1.1.2 本课题研究的主要内容 (1)1.251电子闹钟简介 (1)1.2.1 开发的目的和意义 (2)1.2.2 51电子闹钟的优点 (2)1.2. 3 51电子闹钟的特点 (2)第二章系统方案的设计 (3)2.1系统概述 (3)2.1.1系统功能描述 (3)2.1.2系统方案的确定 (3)2.1.3系统设计思路与步骤 (3)2.2芯片基本工作原理及其应用 (5)2.2.1 AT89S51简介 (5)2.2.2引脚介绍 (5)2.2.3电源 (6)2.2.4存储器 (6)2.2.5应用 (6)2.3LM386简介 (6)2.3.1 LM386介绍 (7)2.3.2 LM386特点..................................... 错误!未定义书签。
第三章系统的设计.. (8)3.1系统硬件设计 (8)3.1.1单片机系统的设计 (8)3.1.2 按键电路的设计 (9)3.1.3复位电路的设计 (10)3.1.4显示电路的设计 (11)3.2系统软件的设计 (12)3.2.1软件设计 (12)3.2.2整个系统软件部分的总体设计 (16)第四章系统的调试和性能分析 (16)4.1系统的调试方法 (16)4.1.1输入按键的调试 (16)4.1.2复位电路的调试 (17)4.1.3显示电路的调试 (17)4.1.4整个系统的联调 (17)第五章结论 (18)参考文献 (19)附录1 原理图 (20)附录2 实物图 (21)附录3 (程序) (22)第一章绪论1.1概述电子闹钟在科学技术高度发展的今天,千家万户都少不了它,所以很多家庭个人都需要有一个电子闹钟,为人们提供报时方便,但普通电子闹钟不够方便实用。
基于stm32音乐mp3闹钟设计与实现大学学位论文
本科毕业论文(设计、创作)题目:基于STM32音乐MP3闹钟的设计与实现学生姓名:学号:所在系院:专业:入学时间:年月导师姓名:职称/学位 :导师所在单位:完成时间:年月基于STM32音乐MP3闹钟的设计与实现摘要:改革开放以来,中国迅速崛起,各种电子产品层出不穷,人们对电子产品的要求也越来越高。
本设计采用ARM Cortex-M3内核的STM32F103ZE作为微控器,选用开发板的SRAM&Flash模块,SD卡,LCD液晶显示屏模块,Codec音频模块等,以及移植FATFS文件系统,目的是存储SD卡中的大数据文件和管理SD 卡中的文件。
本设计还移植了UCOSII操作系统,任务的实时调度使得程序变得更加简单,运行环境也更加的稳定。
另外,加入MP3软解码,使得系统能够识别MP3格式,正确播放出音乐。
本系统设计并实现了集音乐播放,时间显示,时间设置为一体的音乐闹钟,解决了闹钟铃声单调,重复的苦恼。
关键词:STM32;MP3;闹钟,UCOSII;FATFS;SD卡Design and implementation of STM32 MP3 based on thealarm clock musicAbstract: Since the reform and opening up, China's rapid rise, all kinds of electronic products emerge in endlessly, people also more and more high to the requirement of electronic products.This design USES the ARM architecture (M3 kernel STM32F103ZE as a micro control unit, choose development board SRAM&Flash module, SD card, LCD liquid crystal display module, audio Codec module, etc, and transplanted FATFS file system, the purpose is to store large data files in SD card, and manage the files of SD card.This design also transplant UCOSII operating system, the task of real-time scheduling makes the program more simple and running environment is also more stable.In addition, add soft decode MP3, enables the system to identify MP3 format, right plays music.This system was designed and implemented the collection of music playback, time display, time setting for the integration of music alarm clock, solved the alarm sound monotonous, repetitive.Keywords :STM32,MP3,UCOSII,FATFS ,SD card目录第一章绪论 (1)1.1 设计背景 (1)第二章硬件介绍 (2)2.1 STM32F103ZE (2)2.2 按键模块 (3)2.3 I/O 模块 (3)2.4 存储模块设计 (4)2.5 LCD液晶屏模块 (5)2.6 Codec音频模块 (7)2.7 USART串口模块 (8)第三章系统软件设计 (9)3.1 文件系统FAT (9)3.2 SPI驱动 (10)3.2 SD卡的软件设计 (11)3.2 MP3软解码 (12)3.2.1 方案选择 (12)3.2.2 Helix MP3 解码器 (12)3.3 时钟 (12)3.3.1 实现的基本功能 (12)3.4 固件库的使用 (13)3.5 嵌入式操作系统UCOSII (14)第四章系统测试与开发 (15)4.1 搭建开发环境 (15)4.1.1 安装 JLINK 驱动 (15)4.1.2 安装 MDK (15)4.2 硬件测试 (15)4.2.1 按键中断测试 (15)4.2.3 LCD测试 (17)4.3 软件测试 (17)4.3.1 FATFS文件系统移植测试 (17)4.3.2. UCOSII 操作系统移植 (19)4.4 系统总体测试与调试 (21)致谢 (22)参考文献 (23)第一章绪论1.1 设计背景自单片机出现至今,电子技术和计算机技术迅猛发展,其应用领域随着人们的需求越来越大。
基于单片机电子闹钟的设计
基于单片机电子闹钟的设计电子闹钟是一种基于单片机技术的智能设备,可以通过设置闹钟时间来提醒人们起床、上班或者进行其他活动。
本文将介绍基于单片机的电子闹钟的设计过程和实现功能。
首先,我们选择一款适合作为控制核心的单片机芯片。
常用的单片机有51系列和AVR系列,其中51系列的代表性芯片是STC89C52,AVR系列的代表性芯片是ATmega16、我们可以根据具体需求选择适合的芯片。
其次,我们需要设计电子闹钟的硬件电路。
主要包括时钟电路、显示电路、按键输入电路和报警电路。
时钟电路通过晶体振荡器产生准确的时钟信号,显示电路通过数码管或液晶屏显示时间等信息,按键输入电路用来设置闹钟和调整时间,报警电路则用来发出可听到的声音提醒。
在硬件设计完成之后,我们还需要编写单片机的软件程序。
首先,我们需要初始化各个硬件模块,包括时钟模块、IO口模块和定时器模块等。
然后,我们需要编写定时中断函数,用来更新显示时间。
接下来,我们需要编写按键处理函数,用来设置闹钟和调整时间。
最后,我们需要编写报警函数,通过发出蜂鸣器的声音来提醒。
设计的基本功能包括:设置时间、设置闹钟、调整时间、调整闹钟、报警功能等。
用户可以通过按键输入来设置时间和闹钟,并且可以通过按键调整时间和闹钟的设置。
当闹钟时间到达时,蜂鸣器会发出声音提醒用户。
同时,数码管或液晶屏会显示当前的时间。
为了提高闹钟的实用性,我们还可以添加一些其他功能。
例如,可以加入温湿度传感器来测量当前的环境温度和湿度,并在数码管或液晶屏上显示。
还可以加入闹铃音乐的选择功能,让用户可以选择自己喜欢的音乐作为报警铃声。
总之,基于单片机的电子闹钟设计涉及到硬件电路设计和软件程序编写两个方面。
通过合理设计硬件电路和编写完善的软件程序,可以实现各种实用的功能。
电子闹钟可以帮助人们准时起床、上班或进行其他活动,提高人们的时间管理能力和生活质量。
基于单片机多功能音乐闹钟设计论文
课程设计说明书课题:基于单片机多功能音乐闹钟的设计学院(部):专业:班级:学号:姓名:2010年11月第1部分概述1.1 设计目的(1)、熟悉集成电路的引脚安排。
(2)、掌握各芯片的逻辑功能及使用方法。
(3)、了解硬件电路的焊接方法。
(4)、了解音乐钟的组成及工作原理。
(5)、熟悉音乐钟的设计与制作。
1.2 设计思路本次设计音乐闹钟电路,使用了AT89S51单片机芯片控制电路,单片机控制电路简单且省去了很多复杂的线路,使得电路简明易懂,使用按键来调整时钟的时、分、秒,设定闹钟和挑选铃音,用一蜂鸣器来进行定时提醒和播放铃音,同时使用C语言程序来控制整个时钟显示,使得编程变得更容易,这样通过四个模块:按键、芯片、蜂鸣器、数码管显示即可满足设计要求。
1.3 设计功能说明(1)时间以24小时为一个周期,本设计采用C语言程序设计,使单片机控制数码管显示时、分、秒,当秒计数计满60时就向分进位,分计满60后向时进位,小时按“23翻0”规律计数。
时、分、秒的计数结果经过数据处理可直接送数码管显示。
当计时发生误差的时候可以用校时电路进行校正。
设计采用的是时、分、秒显示,单片机对数据进行处理同时在数码管上显示。
(2)正常显示时、分、秒:12.00.00,闹钟显示:12.00-1,铃音欣赏显示:--01--;(3)有校时功能,可以分别对时、分秒进行单独校时,使其校正到标准时间;(4)计时过程具有报时和闹铃功能,当时间到达整点进行蜂鸣报时,达到闹钟调定时间播放调定闹钟对应音乐(闹钟的优先级高于整点报时),并显示当前闹钟的序号,闹铃音乐可在任意时候强行停止,一共可调定9个闹铃;(5)在正常显示状态下,通过按键可以挑选音乐欣赏,在非闹铃音乐播放时显示当前播放音乐的序号,并且能够在任意时候强行停止音乐,一共有11首音乐可供选择。
(6)为了保证计时的稳定及准确须由晶体振荡器提供表针时间基准信号。
第2部分硬件电路的设计2.1电子钟的原理图2.2 复位电路MCS-51单片机的复位是由外部的复位电路来实现的。
基于单片机的多功能数字钟设计报告毕业设计(论文)
目录1..............设计整体思路2.............基本原理3.............单元电路设计及单元电路4..............安装调试步骤5..............故障分析与电路改进6..............总结与体会7..............参考文献8..............附录(元器件清单及总电路图)一.设计的整体思路:1.课程设计要求:要用时序逻辑电路设计出一个多功能可调的数字钟,这个数字钟要可调,能显示时分秒,并且要能准确的显示。
2.设计的目的:1 掌握集成电路的引脚安排2 掌握各芯片的逻辑功能及使用方法3 理解数字钟的组成和工作原理4 熟悉数字钟的设计与制作要求:时间以24小时为一个计时周期显示时分秒有校时功能,可以分别对时分进行校时计数器有整点报时功能须有晶体振荡器提供表针时间基准信号画出电路原理图元器件及参数选择电路仿真及调试自行装配和调试,并能发现问题和解决问题编写设计报告二.基本原理及其框图1.主电路是由一个4060芯片,六个74161四位同步二进制计数器和六个CD4511七段显示译码器构成。
其中4060是用来产生始终脉冲信号,74161是用来计数的工作时,每秒一次的方波作为“秒”脉冲信号,因每分钟有60秒,所以“秒”计数器为六十进制计数器,“分”的计数器亦同,而“时”采用二十四进制计数器。
当“秒”计数器满60时,输出秒进位脉冲,送“分”计数器;当“分”计数器满60时,输出“分”进位脉冲,送“时”计数器计数;当“时”计数器满24小时候,“时”“分”“秒”计数器同时自动复零。
每个计数器输出均要经过译码器,显示器显示时钟的“时”“分”“秒”。
三.单元电路设计及单元电路1.如图所示:多谐振荡器该电路由一个4060,一个晶振和一个10M电阻两个22pf电容组成.如图所示2.译码显示电路如图所示:该电路由一个4511BD芯片与共阴极数码管构成图3——1该电路时有两个74LS161和一个74LS04与门,两个数码管和两个的CD4511译码器构成,他们构成一个六十进制计数器,是用来显示秒。
基于单片机的多功能数字钟的设计本科毕业设计
本科毕业设计基于单片机的多功能数字钟摘要在21世纪社会的迅猛发展浪潮下,电子信息技术也有了快速的推广和应用。
在日常工作生活的快节奏下,时间占有着至关重要的位置。
也许人们不太在意,在各种各样的日常生活以及各类社会活动中,大家无时无刻地都在留意着时间的变化。
时间与人们的生活息息相关,而时间的计算方法发展至今已经演变成时钟和表。
本文所阐述的数字钟有多种功能,不仅能够准确的显示时间年月日、时分秒,还有对环境温度进行测量,闹钟设置,秒表计时,电子钟,MP3播放等功能。
相比于机械时钟,因为数字钟所采用的是数字电路技术来实现时、分、秒计时,有着更高的准确性和稳定性,而数字钟的结构与装置也更加科学与方便化。
本文主要介绍了基于单片机的多功能数字钟的设计,硬件电路包含时钟模块、温度检测模块、液晶显示模块、按键模块、电源模块,声音模块和复位电路,软件设计包含闹钟设计、秒表计时、电子书阅览、MP3播放等。
本设计的数字钟有:时间显示年月日、时分秒,闹钟,秒表计时,电子书,MP3等功能。
单片机与多功能数字钟的结合,不仅使得时间的测量更加准确稳定,对环境测试的温度也更加简单、方便、灵活,为我们的日常生活提供了更优质与方便的服务。
因此,单片机不仅有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高。
关键词:单片机数字钟温度传感器Multi-function Digital Clock Based On MCUCai Bingnan(College of Engineering, South China Agricultural University, Guangzhou 510642, China) Abstract: The rapid development in the twenty-first Century social tide, electronic information technology has been rapid promotion and application. In their daily work life fast rhythm, time occupies a crucial position. Maybe people don't care too much, in a variety of daily life and all kinds of social activities, we every hour and moment are watching the change of time. The time of our lives, and the calculation method of time has evolved into a clock and watch. Digital clock is described in this paper has a variety of functions, not only can display the date when the minutes and seconds time, accurate, and measurement of environmental temperature, alarm clock, stopwatch, electronic clock, MP3 player and other functions. Compared to the mechanical clock, because the digital clock is used in the digital circuit technology to realize, when, seconds, has a higher accuracy and stability, and the structure and device of digital clock is more scientific and convenient.This paper mainly introduces the design of multi-function digital clock based on MCU, the hardware circuit consists of the clock module, temperature detecting module, liquid crystal display module, keyboard module, power module, voice module and a reset circuit, software design including alarm clock, stopwatch design, electronic book reading, MP3 player etc.. The design of the digital clock: time date display, minutes and seconds, alarm clock, stopwatch, e-books, MP3 etc.. Combined with the MCU and the multi-function digital clock, not only makes the measurement more accurate and stable time, environmental testing temperature is more simple, convenient, flexible, provides better quality and convenience to our daily life. Therefore, the single chip not only promoted the development of social productive forces and the improvement of social information-based degree, simultaneously also makes the modern electronic products to further improve the performance.Key words: SCM digital clock the temperature sensor目录1 前言 (1)1.1 课题的研究背景 (1)1.2 课题的开发目的 (1)2系统方案分析与选择论证 (2)2.1系统方案设计 (2)2.1.1主控芯片方案 (2)2.1.2 显示模块方案 (2)2.1.3 键盘模块方案 (2)2.1.4 温度模块方案 (2)2.2 系统最终方案 (3)3硬件电路设计 (3)3.1 单片机最小系统 (3)3.2 DS1302时钟模块的设计 (4)3.3 LCD1602显示模块的设计 (5)3.4 DS18B20温度模块的设计 (7)3.5 声音模块和按键控制模块的设计 (7)4 程序设计 (8)4.1 时间调整程序设计 (9)4.2 闹钟处理程序设计 (10)4.3 秒表计时程序设计 (10)4.4 音乐播放程序设计 (10)4.5 电子书程序设计 (12)5调试与调试结果 (12)5.1 硬件调试 (12)5.2 调试结果 (13)6 结论 (13)参考文献 (14)附录A电路原理图 (15)附录B设计程序 (16)致谢 (1)华南农业大学本科生毕业设计成绩评定表1 前言1.1 课题的研究背景在这个快节奏的年代,时间就是效益,就是金钱,因此准确的掌握时间和分配时间对人们来说至关重要。
基于单片机的多功能门铃设计论文
毕业设计(论文)设计(论文)题目:基于单片机的多功能门铃设计学生姓名: XX 指导教师: XXX二级学院: XXXXXXXXX 专业: XXXXXXXX班级: XXXXXXXXXX 学号: XXXXXXXXX提交日期: 2014 年 4 月 10日答辩日期:2014 年 5月10日目录摘要 (III)Abstract .................................................................................................................... I V 1 绪论 (1)1.1课题背景 (1)1.2课题研究的目的和意义 (1)2 单片机门铃系统的总体设计 (2)2.1 技术指标 (2)2.2 设计方案 (2)2.3 系统设计原理 (2)2.4 系统开发平台和设计流程 (2)3 硬件设计 (3)3.1主控模块 (3)3.2 ISD1420语音电路 (5)3.3人体红外感应模块 (10)3.4 键盘扫描电路的设计 (11)3.5 照明电路 (12)3.6 整体电路图 (12)4软件设计 (14)4.1 keil软件的介绍及应用 (14)4.2 程序设计流程图 (14)5成果及使用说明 (19)5.1 成果展示 (19)5.2 系统使用说明 (19)结论 (20)参考文献 (21)附录 (22)附录1 (22)附录2 (23)附录3 (24)致谢 (31)基于单片机的多功能门铃设计摘要本课题主要设计出一种小型的语音门铃系统,它具有提示、留言、警报等功能。
基于这样的思想,本次设计以89C51单片机为核心,结合ISD1420语音芯片及其它成型的芯片,以模块化原则设计一种语音门铃系统,其中ISD1420语音芯片通过单片机实现控制,可以充分的发挥其录放功能。
同时,结合红外检测模块,提升了系统的安全性能。
多功能门铃系统能够实现有按键(门铃)按下,播放门铃声,根据门磁开关(简易开关代替)的信息来判断是否有人开门,如果没有人在家,进行留言提示,有留言按键按下,进行留言,可进行多段录音,每段录音有一定持续时间。
单片机多功能电子钟毕业设计论文机械毕业设计论文[管理资料]
XX大学本科生毕业设计说明书(毕业论文)题目:单片机多功能电子钟的设计—硬件设计学生姓名:昊天学号:20011616专业:电子信息工程班级:010203指导教师:刘华摘要电子钟主要是利用现代电子技术将时钟电子化、数字化。
与传统的机械钟相比,具有时钟精确、显示直观、无机械传动装置等优点,因而得到广泛应用。
另外,在生活和工农业生产中,人们对电子钟的功能又提出了诸多要求:报时、闹钟、日历、温度显示,这就需要电子时钟的多功能性。
根据人们的不同要求,本设计主要为实现一款可正常显示时钟/日历、测量环境温度、带有定时闹铃的多功能电子时钟。
笔者通过查阅大量的资料。
对当前电子钟开发技术进行了认真的比较和分析,最终确定采用单片机技术实现多功能电子时钟。
本设计基于AT89C51芯片作为核心,7位LED 数码管显示,使用DS1302时钟日历芯片完成时钟/日历的基本功能,同时利用DS18B20温度传感器测量环境温度。
这种设计方法的优点是电路简单,性能稳定,实时性好,时间和温度精度高,性价比高,开发较为容易。
关键词:电子时钟;多功能;DS1302时钟日历芯片;AT89C51;温度传感器The Design with Investigation of the Multi-function ElectronClock-The Design of the HardwareAbstractThe electronic clock mainly uses the electronic technology make the clock computerization, the with the traditional mechanical bell, it has the clock precision, intuitive display, the advantages of no mechanical transmission device, which is widely addition, living and industrial and agricultural production, people on the clock's function has also put forward many demands: alarm clock, calendar, temperature display, so electronic clock need multi-function.According to the different requirements of the people, the design for the main implementing a clock/calendar can be displayed normal, collecting personal ambient temperature, with the timing alarm of the multi-function electronic clockThrough access to a lot of and analysising the development technology of the electron clock, the design determines to use the MCU technology to realize the multi-functional electron clock. This design application AT89C51 as a core chips, 7 LED digital displaying, using DS1302 real-time clock chip to complete the basic function of the clock/calendar. At the same time the design use of DS18B20 temperature sensors to collect the environmental temperature. The method has the advantage of being simple circuit, reliable performance, good real-time, high precision of the time and temperature, cost-effective to develop more easily.Key words:Electronic clock; Multi-function; DS1302; AT89C51; Temperature pickup目录摘要 (I)Abstract (II)第一章引言 (1)多功能电子时钟研究的背景和意义 (1)电子时钟的功能 (2)第二章电子时钟设计方案分析 (3)NE555时基电路设计方案 (3)单片机设计方案 (4)第三章基于单片机的电子时钟硬件设计 (5)主要IC芯片选择 (5)微处理器选择 (5) (6)DS1302简介 (6)DS1302引脚说明 (7)DS1302的控制字和读写时序说明 (7)DS1302的片内寄存器 (9)环境温度传感器选择 (10)常用温度传感器比较 (10)DS18B20简介 (11)DS18B20内部结构 (11)电子时钟硬件电路设计 (13)时钟电路设计 (14)环境温度采集电路设计 (14)显示电路 (15)按键电路设计 (16)闹铃电路设计 (17)复位电路设计 (18)第四章电子时钟软件设计 (20)主程序设计 (20)子程序设计 (20)实时时钟日历子程序设计 (20)环境温度采集子程序设计 (21)显示子程序设计 (24)键盘扫描子程序 (25)闹铃子程序设计 (25)结论 (29)参考文献 (30)附录A 多功能电子时钟元器件一览表 (31)附录B 多功能电子时钟硬件原理图 (32)致谢 (33)第一章引言一寸光阴一寸金,寸金难买寸光阴。
基于AT89C51单片机的定时闹钟系统设计毕业论文
基于AT89C51单片机的定时闹钟系统设计毕业论文1.概述1.1单片机简介◆单片机基本概念单片机是一种特殊的计算机,它是在一块半导体上集成了CPU、存储器、以及输入输出接口电路,这种芯片被称为单片微型计算机,简称单片机。
由于单片机的集成度高、功能强、通用性好,贴别是他具有体积小、重量轻、能耗低、价格便宜、可靠性高、抗干扰能力强和使用方便等特点,使的单片机迅速得到了推广,目前已成为测量控制应用系统中的优选机种和新电子产品的关键部件。
◆单片机产生与发展单片机是应工业测控系统数字化、智能化的迫切要求提出的。
超大规模集成电路的出现,通用CPU及其外围电路技术的发展成熟,伟大偏激的诞生和发展提供了可能。
单片机的发展完全从工业测控对象、环境、接口等特点出发,不断增强其控制功能,保证在工业测控环境中的可靠性,器接口界面也是按照能灵活、方便的构成工业测控用计算机系统而设计的。
它的出现标志着计算机技术在工业领域中的应用开始走向完善与成熟。
8位单片机从1976年开始至今,其技术已有了巨大的发展,目前仍是单片机的主流机型。
其发展阶段大致分为单片机探索阶段、单片机完善阶段、MCU形成阶段和MCU完善阶段。
◆单片机的发展方向(1)主流机型发展趋势(2)全盘CMOS化趋势(3)RISC体系结构的大发展(4)大力发展专用性单片机(5)单片机中的软件嵌入◆单片机的应用领域(一)单机应用(1)智能产品(2)智能仪表(3)测控系统(4)智能接口(二)多机应用(1)多功能弥散系统(2)并行多机控制系统(3)局部网络系统◆单片机分类(1)按应用领域(2)按通用性(3)按总线结构分(4)按位数分类1.2 本设计简介◆课程设计的目的和意义课程设计是在学完《单片机原理及接口技术》课程之后综合利用所学单片机知识完成一个单片机应用系统设计并在实验室实现,从而加深对单片机软硬知识的理解,获得初步的应用经验,为走出校门从事单片机应用的相关工作打下基础.◆课程设计的要求1)能显示:时时—分分—秒秒2)能够设定定时时间、修改定时时间3)定时时间到能发出报警声◆课程设计的内容这一次课程设计,所设计的是一个定时闹钟,能显示时-分-秒,能够设计定时时间,修改定时时间,并且定时时间到了能发出报警声。
毕业设计(论文)-基于at89c51单片机的数字闹钟设计(电路图+源程序)[管理资料]
摘要近年来随着计算机在社会领域的渗透和大规模集成电路的发展,单片机的应用正在不断地走向深入,由于它具有功能强,体积小,功耗低,价格便宜,工作可靠,使用方便等特点,因此特别适合于与控制有关的系统,越来越广泛地应用于自动控制,智能化仪器,仪表,数据采集,军工产品以及家用电器等各个领域,单片机往往是作为一个核心部件来使用,在根据具体硬件结构,以及针对具体应用对象特点的软件结合,以作完善。
本次做的数字闹钟以89C51单片机作为控制核心,使用串行时钟芯片PCF8563实现时间的显示设置和闹钟功能。
为了方便驱动其它电路,通过总线驱动器74LS245增加单片机的驱动能力。
将数据及地址等信号通过40线的总线引出,便于将来对此单片机系统作进一步的扩展。
作为一款多功能数字闹钟它除具有括时钟显示、闹钟功能外,还有具有秒表、温度测量、电压测量等功能。
本次设计的难点与重点在于各个模块的设计。
关键词:单片机89C51数字闹钟时钟芯片PCF8563AbstractIn recent years, with computers in the infiltration and the development of large-scale integrated circuits. SCM application is steadily deepening, as it has strong function, small size, low power dissipation, low prices, reliable, easy to use features, it is particularly suited to and control of the system, increasingly widely used in automatic control, intelligent instruments, gauges, data acquisition, military products and household appliances, and other areas, is often microcontroller as a core component to use, In light of specific hardware architecture, and application specific software features object combine to make perfect.The figures do bell on SCM (AT89C51) at the core, Combined with the components, and factoring in the corresponding software, Easy to produce digital clock purposes, as part of the hardware components is a difficult choice, layout and welding.Keywords : Single Chip Microcomputer 89C51 bell PCF8563目录摘要 (I)Abstract ...................................................................................................... I I 第一章引言 (1)第二章方案设计与比较 (2) (2)系统工作原理: (2) (2)温度采集方案 (3)键盘显示方案 (3) (3) (4)闹钟功能方案 (4)电压、频率测量方案 (4)第三章主要元器件介绍与说明 (5)AT89C51单片机工作原理与性能 (5)AT89C51单片机管脚说明 (6)振荡器特性 (8)PCF8563时钟芯片及其应用 (8)PCF8563时钟芯片特性 (9)PCF8563时钟芯片管脚配置与描述 (9)功能描述 (10)报警功能模式 (11)定时器 (11)复位 (11)内部寄存器的功能 (11) (14)第四章系统硬件设计 (14) (14) (15)时钟接口电路设计 (15)液晶显示器(LCD)电路设计 (17)键盘接口电路电路设计 (17)声光报警接口电路设计 (18)温度测量电路设计 (19)交流电特性测量设计 (22) (25) (25)主程序流程图 (25)蜂鸣器闹铃中断服务子程序流程图 (27) (28) (28) (30)结束语 (31)致谢 (32)参考文献 (33)附录一:系统总电路图 (33)附录二:多功能数字闹钟主程序 (35)第一章引言现在是一个知识爆炸的新时代。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程设计说明书课题:基于单片机多功能音乐闹钟的设计学院(部):专业:班级:学号:姓名:2010年11月第1部分概述1.1 设计目的(1)、熟悉集成电路的引脚安排。
(2)、掌握各芯片的逻辑功能及使用方法。
(3)、了解硬件电路的焊接方法。
(4)、了解音乐钟的组成及工作原理。
(5)、熟悉音乐钟的设计与制作。
1.2 设计思路本次设计音乐闹钟电路,使用了AT89S51单片机芯片控制电路,单片机控制电路简单且省去了很多复杂的线路,使得电路简明易懂,使用按键来调整时钟的时、分、秒,设定闹钟和挑选铃音,用一蜂鸣器来进行定时提醒和播放铃音,同时使用C语言程序来控制整个时钟显示,使得编程变得更容易,这样通过四个模块:按键、芯片、蜂鸣器、数码管显示即可满足设计要求。
1.3 设计功能说明(1)时间以24小时为一个周期,本设计采用C语言程序设计,使单片机控制数码管显示时、分、秒,当秒计数计满60时就向分进位,分计满60后向时进位,小时按“23翻0”规律计数。
时、分、秒的计数结果经过数据处理可直接送数码管显示。
当计时发生误差的时候可以用校时电路进行校正。
设计采用的是时、分、秒显示,单片机对数据进行处理同时在数码管上显示。
(2)正常显示时、分、秒:12.00.00,闹钟显示:12.00-1,铃音欣赏显示:--01--;(3)有校时功能,可以分别对时、分秒进行单独校时,使其校正到标准时间;(4)计时过程具有报时和闹铃功能,当时间到达整点进行蜂鸣报时,达到闹钟调定时间播放调定闹钟对应音乐(闹钟的优先级高于整点报时),并显示当前闹钟的序号,闹铃音乐可在任意时候强行停止,一共可调定9个闹铃;(5)在正常显示状态下,通过按键可以挑选音乐欣赏,在非闹铃音乐播放时显示当前播放音乐的序号,并且能够在任意时候强行停止音乐,一共有11首音乐可供选择。
(6)为了保证计时的稳定及准确须由晶体振荡器提供表针时间基准信号。
第2部分硬件电路的设计2.1电子钟的原理图2.2 复位电路MCS-51单片机的复位是由外部的复位电路来实现的。
复位引脚RST通过一个斯密特触发器与复位电路相连,斯密特触发器用来抑制噪声,在每个机器周期的S5P2,斯密特触发器的输出电平由复位电路采样一次,然后才能得到内部复位操作所需要的信号。
上电按键复位:上电复位电路是—种简单的复位电路,只要在RST复位引脚接一个电容到VCC,接一个电阻到地就可以了。
上电复位是指在给系统上电时,复位电路通过电容加到RST复位引脚一个短暂的高电平信号,这个复位信号随着VCC 对电容的充电过程而回落,所以RST引脚复位的高电平维持时间取决于电容的充电时间。
为了保证系统安全可靠的复位,RST引脚的高电平信号必须维持足够长的时间。
为了调试方便,我们设计了按键复位电路,只要在复位电容上并接一个串电阻的按键即可,当按键按下时RST引脚高电平,单片机复位。
电路图如下:2.3 时钟电路时钟是单片机的心脏,单片机各功能部件的运行都是以时钟频率为基准,有条不紊的一拍一拍地工作。
因此,时钟频率直接影响单片机的速度,时钟电路的质量也直接影响单片机系统的稳定性。
常用的时钟电路有两种方式:一种是内部时钟方式,另一种为外部时钟方式。
本设计用的是内部时钟方式。
电路图如下:MCS-51单片机内部有一个用于构成振荡器的高增益反相放大器,该高增益反向放大器的输入端为芯片引脚XTAL1,输出端为引脚XTAL2。
这两个引脚跨接石英晶体振荡器和微调电容,就构成一个稳定的自激振荡器。
2.4 按键电路按键的开关状态通过一定的电路转换为高、低电平状态。
按键闭合过程在相应的I/O端口形成一个负脉冲。
闭合和释放过程都要经过一定的过程才能达到稳定,这一过程是处于高、低电平之间的一种不稳定状态,称为抖动。
抖动持续时间的常长短与开关的机械特性有关,一般在5-10ms之间。
为了避免CPU多次处理按键的一次闭合,应采用措施消除抖动。
本设计采用的是独立式按键,直接用I/O 口线构成单个按键电路,每个按键占用一条I/O口线,每个按键的工作状态不会产生互相影响。
电路图如下:P1.0(K1)口:表示功能移位键,按键选择要调整的时位、分位或秒位,按第一下时位闪烁,按第二下分位闪烁,按第三下秒位闪烁,按第四下调整完毕,回到正常显示界面。
当按一下此键后再按一下P1.3(K4)键(按几下进入第几个闹钟)进入闹钟调整状态,用同样的方法可选择调整时和分位。
P1.1(K2)口:当在时间或闹钟调整状态下按下此键后表示数字“+“键,按一下则对应的数字加1。
P1.2(K3)口:当在时间或闹钟调整状态下按下此键后表示数字“-”键,按一下则对应的数字减1。
(非整点报时)蜂鸣器发声状态下按下此键为音乐和闹铃强行停止键。
P1.3(K4)口:当功能键按一下后此键为闹钟选择键,按一下闹钟序号加一,正常显示状态下按下此键为音乐欣赏选择键,按一下换一首音乐。
2.5 控制响铃电路P0.0口控制三极管进而控制蜂鸣器工作。
当时钟当前的时间和设定闹钟时间一致时,相应的标志位为1,P0.0口输出低电平,蜂鸣器电路导通,发出音乐铃声。
打铃一定时间,标志位置0,P0.0输出高电平,蜂鸣器停止工作。
电路图如下:2.6 数码管显示电路数码管显示器成本低,配置灵活,与单片机接口简单,在单片机应用系统中广泛应用。
2.6.1 LED数码显示器简介发光二极管LED是一种通电后能发光的半导体器件,其导电性质与普通二极管类似。
LED数码显示器就是由发光二极管组合而成的1种新型显示器件。
在单片机系统中应用非常普遍。
2.6.2 LED数码显示器的结构LED数码显示器是1种由LED发光二极管组合显示字符的显示器件。
它使用了8个LED发光二极管,其中7个用于显示字符,1个用于显示小数点。
2.6.3 LED数码显示器有两种连接方法(1)共阳极接法。
把发光二极管的阳极连在一起构成公共阳极,使用时公共阳极接+5V,每个发光二极管的阴极通过电阻与输入端相连。
当阴极端输入低电平时,段发光二极管就导通点亮,而输入高电平时则不点亮。
(2)共阴极接法。
把发光二极管的阴极连在一起构成公共阴极,使用时公共阴极接地。
每个发光二极管的阳极通过电阻与输入端相连。
当阳极端输入高电平时,段发光二极管就导通点亮,而输入低电平时则不点亮。
在本设计中所采用的是共阳极LED数码显示器,其引脚排列如下图所示:本设计的6个数码管均采用动态显示方式,显示当前的时间。
整个显示电路应用了6个三极管V9012,这六位控制数码管的片选信号,即控制动态显示的是哪一位数码管,采用74HC244做段码驱动。
在片选信号和段选信号的控制下,数码管就正确的动态显示当前的时间。
第3部分软件的设计3.1 软件程序内容本设计的软件程序包括主程序、中断子程序、铃音子程序、时钟显示程序、延时子程序等等。
另外由于电路中有四个按键,还另外设计了去抖动延时处理程序来防止干扰。
3.2 程序流程图主程序流程图单个按键处理程序流程图24小时的时钟显示程序流程图按键处理程序流程图参考源程序:#include<reg52.h>#include<intrins.h>#define uchar unsigned char#define uint unsigned intuchar codefont[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,0xbf};//uchar codetab[]={0xc40,0x79,0x24,0x30,0x19,0x12,0x02,0x7 8,0x00,0x10,0x08,0x03,0x46,0x21,0x06,0x0e};uint code note_value[][14]={{0,63628,63835,64021,64103,64260,64400,64524, 63731,63928,0,64185,64331,64463}, //低音1,2,3,4,5,6,7,#1,#2,0(#3在此程序中无需设),#4,#5,#6 相对应的定时器初值{0,64580,64684,64777,64820,64898,64968,65030, 64633,64732,0,64860,64934,64994}, //中音1,2,3,4,5,6,7,#1,#2,0(#3在此程序中无需设),#4,#5,#6 相对应的定时器初值{0,65058,65110,65157,65178,65217,65252,65283, 65085,65134,0,65198,65235,65268} //高音1,2,3,4,5,6,7,#1,#2,0(#3在此程序中无需设),#4,#5,#6 相对应的定时器初值};uint code song[][67]={/* 0 嘀~(按键时的嘀嗒声)*/ {0x2701,0x0},/* 1 茉莉花*/{0x1304,0x1302,0x1502,0x1602,0x2102,0x2102,0x1602,0x1504,0x1502,0x1602,0x1507,0x1001,/*0x1304,0x1302,0x1502,0x1602,0x2102,0x2102,0x1602,0x1504,0x1502,0x1602,0x1507,0x1001,*/0x1504,0x1504,0x1504,0x1302,0x1502,0x1604,0x1604,0x1507,0x1001,0x1304,0x1202,0x1302,0x1504,0x1302,0x1202,0x1104,0x1102,0x1202,0x1107,0x1001,0x1302,0x1202,0x1102,0x1302,0x1204,0x1002,0x1302,0x1504,0x1602,0x2102,0x1507,0x1001,0x1202,0x1302,0x1502,0x1202,0x1302,0x1102,0x0602,0x0507,0x1001,0x0604,0x0602,0x1102,0x1206,0x1302,0x1102,0x1202,0x1102,0x0602,0x050d,0x0},/* 2 莫斯科郊外的晚上*/{0x0602,0x1102,0x1302,0x1102,0x1204,0x1102,0x070 2,0x1304,0x1204,0x0607,0x1001,0x1102,0x1302,0x1502,0x1502,0x1604,0x1502,0x1402,0x1307,0x1001,0x1414,0x1514,0x1702,0x1602,0x1304,0x1002,0x0704,0x0602,0x1302,0x1202,0x1404,0x1004,0x1502,0x1402,0x1304,0x1202,0x1102,0x1304,0x1204,0x060c, 0x0},/* 3 祝你生日快乐*/{0x0502,0x0502,0x0604,0x0504,0x1104,0x0708,0 x0502,0x0502,0x0604,0x0504,0x1204,0x1108,0x0502,0x0502,0x1504,0x1304,0x1104,0x0704,0x0604,0x1402,0x1402,0x1304,0x1104,0x1204,0x1108,0x0},/* 4 铃儿响叮当*/{0x1302,0x1302,0x1303,0x1001,0x1302,0x1303,0x1001,0x1302,0x1502,0x1102,0x1202,0x1307,0x1001,0x1402,0x1402,0x1402,0x1402,0x1402,0x1302,0x1302,0x1302,0x1302,0x1202,0x1202,0x1302,0x1204,0x1503,0x1001, 0x1302,0x1302,0x1303,0x1001,0x1302,0x1303,0x1001,0x1302,0x1502,0x1102,0x1202,0x1307,0x1001,0x1402,0x1402,0x1402,0x1402,0x1402,0x1302,0x1302,0x1302,0x1502,0x1502,0x1402,0x1202,0x1108,0x0}, /* 5 喀秋莎*/{0x0606,0x0702,0x1106,0x0602,0x1102,0x1102,0x0702,0x0602,0x0704,0x1002,0x0706,0x1102,0x1206,0x0702,0x1202,0x1202,0x1102,0x0702,0x0607,0x1001,0x1304,0x1604,0x1504,0x1602,0x1502,0x1402,0x1402,0x1302,0x1202,0x1304,0x0604,0x1002,0x1404,0x1202,0x1306,0x1102,0x0702,0x0302,0x1102,0x0702,0x0608,0x0},/* 6 欢乐颂*/{0x1304,0x1304,0x1404,0x1504,0x1504,0x1404,0 x1304,0x1204,0x1104,0x1104,0x1204,0x1304,0x1306,0x1202,0x1207,0x1001,0x1304,0x1304,0x1404,0x1504,0x1504,0x1404,0x1304,0x1204,0x1104,0x1104,0x1204,0x1304,0x1206,0x1102,0x1107,0x1001, 0x0},/* 7 四季歌*/{0x1304,0x1302,0x1202,0x1104,0x1102,0x0702,0x0604,0x0604,0x0607,0x1001,0x1404,0x1402,0x1302,0x1202,0x1102,0x1202,0x1402,0x130f,0x1001,0x1404,0x1402,0x1302,0x1204,0x1202,0x1402,0x1304,0x1302,0x1102,0x0604,0x0604,0x0704,0x1304,0x1302,0x1102,0x0702,0x1102,0x060f,0x0},/* 8 月亮代表我的心*/{0x150a,0x1302,0x1202,0x1102,0x130f,0x160a,0x1402,0x1202,0x1102,0x070c,0x1002,0x0502,0x1106,0x1302,0x1506,0x1102,0x0706,0x1302,0x1504,0x1002,0x1502,0x1606,0x1702,0x2106,0x1604,0x150a,0x1302,0x1202,0x1106,0x1102,0x1104,0x1302,0x1202,0x1106,0x1102,0x1104,0x1202,0x1302,0x1206,0x1102,0x0606,0x1201,0x1301,0x120c,0x1002,0x0502,0x1106,0x1302,0x1506,0x1102,0x0706,0x1302,0x1504,0x1002,0x1502,0x1606,0x1702,0x2106,0x1604,0x150a,0x1302,0x1202,0x1106,0x1102,0x1104,0x1302,0x0},//0x1202,0x1 106,0x1102,0x1104,0x1202,0x1302,0x1206,0x0602,0x0704,0x1102,011202,0x110c,0x1302,0x1502,0x1306,0x1202,0x1104,0x1504,0x070c,0x0602,0x0702,0x0606,0x0702,0x0604,0x0504,0x130c,0x1504,0x1306,0x1202,0x1104,0x1504,0x070c,0x0602,0x0702,0x1106,0x1102,0x1104,0x1202,0x1302,0x120c,0x1002,0x0502,0x1106,0x1302,0x1506,0x1102,0x0706,0x1302,0x1504,0x1002,0x1502,0x1606,0x1702,0x2106,0x1604,0x150a,0x1302,0x1202,0x1106,0x1102,0x1104,0x1302,0x1202,0x1106,0x1102,0x1104,0x1202,0x1302,0x1206,0x0602,0x0704,0x1102,0x1202,0x1104,0x1502,0x1402,0x1304,0x1202,0x1102,0x1104,0x0702,0x0602,0x0518,0x050f,0x0},/* 9 献给爱丽丝*/{0x2302,0x2212,0x2302,0x2212,0x2302,0x1702,0x220 2,0x2102,0x1604,0x1002,0x1102,0x1302,0x1602,0x1704,0x1002,0x1302,0x1512,0x1702,0x2104,0x1002,0x1302,0x2302,0x2212,0x2302,0x2212,0x2302,0x1702,0x2202,0x2102,0x1604,0x1002,0x1102,0x1302,0x1602,0x1704,0x1002,0x1202,0x2102,0x1702,0x1604,0x1002,0x1702,0x2102,0x2202,0x2305,0x1001,0x1502,0x2402,0x2302,0x2205,0x1001,0x1402,0x2302,0x2202,0x2105,0x1001,0x1302,0x2202,0x2102,0x1704,0x1002,0x1302,0x2302,0x1002, 0x0},//0x2212,0x2302,0x1002,0x1002,0x2212,0x2302,0x2212,0x2302,0x2212,0x2302,0x1702,0x2202,0x2102,0x1604,0x1002,0x1102,0x1302,0x1602,0x1704,0x1002,0x1302,0x1512,0x1702,0x2104,0x1002,0x1302,0x2302,0x2212,0x2302,0x2212,0x2302,0x1702,0x2202,0x2102,0x1604,0x1002,0x1102,0x1302,0x1602,0x1704,0x1002,0x1202,0x2102,0x1702,0x1604,0x1004,0x0}, //* 10 小星星,亮晶晶*/{0x1104,0x1104,0x1504,0x1504,0x1604,0x1604,0x150 7,0x1001,0x1404,0x1404,0x1304,0x1304,0x1204,0x1204,0x1107,0x1001,0x1504,0x1504,0x1404,0x1404,0x1304,0x1304,0x1207,0x1001,0x1504,0x1504,0x1404,0x1404,0x1304,0x1304,0x1207,0x1001,0x1104,0x1104,0x1504,0x1504,0x1604,0x1604,0x1507,0x1001,0x1404,0x1404,0x1304,0x1304,0x1204,0x1204,0x1107,0x1001, 0x0},//* 11 Nokia经典铃声*/{0x2502,0x2402,0x1604,0x1704,0x2302,0x2202,0x140 4,0x1504,0x2202,0x2102,0x1304,0x1504,0x210c,0x2502,0x2402,0x1604,0x1704,0x2302,0x2202,0x1404,0x1504,0x2202,0x2102,0x1304,0x1504,0x210c,0x0} //* 12 两只老虎*/{0x1104,0x1204,0x1304,0x1104,0x1104,0x1204,0 x1304,0x1104,0x1304,0x1404,0x1508,0x1304,0x1404,0x1508,0x1502,0x1602,0x1502,0x1402,0x1304,0x1104,0x1502,0x1602,0x1502,0x1402,0x1304,0x1104,0x1304,0x0504,0x1108,0x1304,0x0504,0x1108,0x0}};sbit key_select=P1^0; //功能键sbit key_inc=P1^1; // 增大建sbit key_dec=P1^2; // 减小键sbit key_alarm_or_song=P1^3; //调闹钟键sbit buzzer=P0^0;bit music_break=0;uchar week=1,hour=12,minute=0,second=0,alarm_num,display[]={1,2,0,0,0,0},n=0,bit_code=0 x04,alarm_break=1,flag_display=0,flag_alarm=0;//定义数组display[6]作为显示缓冲区,n为数组下标,flag_display用于设置时间或闹钟时的闪烁显示标志,flag_alarm用于闹钟键按下的标志uchardisplay_music[6]={0x10,0x10,0,0,0x10,0x10},display_a larm[6]={0,0,0,0,0,0},alarm[][3]={{12},{12,1},{12,3},{12,5},{1},{2},{3},{4},{5},{6}},alarm_num=0,song_num=0; uint initial_value,count_display=0,count=0;//count_display用于设置时间或闹钟时的闪烁显示记时变量void delay_ms(uint t) //延时1ms{uint i,j;for(i=t;i>0;i--)for(j=110;j>0;j--);}void di() //按键发声函数{buzzer=0;delay_ms(100);buzzer=1;}void music(uchar song_number){uchari,section,basic_note,changed_note,pitch,duration,note_num=0; //分别定义i,音区,基本音级,变化音级,音高,时值,所选歌曲的音符的编号uint note; //定义音符变量ET1=1;music_break=1;note=song[song_number][note_num]; while(note!=0&&music_break){section=note/0x1000;basic_note=note/0x100%0x10;changed_note=note/0x10%0x10;duration=note%0x10;if(changed_note==1)pitch=basic_note+7;pitch=basic_note;initial_value=note_value[section][pitch];if(initial_value!=0){TH1=initial_value/256;TL1=initial_value%256;TR1=1;}elseTR1=0;if(key_alarm_or_song==0){delay_ms(10);if(key_alarm_or_song==0)break;}for(i=duration;i>0;i--) //音符延时函数delay_ms(125);note_num++;note=song[song_number][note_num];if(key_dec==0) //强行关闭闹钟{delay_ms(10);if(key_dec==0){while(!key_dec);break;}}}music_break=0;TR1=0;}void alarm_(){for(alarm_num=1;alarm_num<10;alarm_num++) //添加闹钟时需要修改的地方!!!!!!!!!!if(hour==alarm[alarm_num][0]&&minute==alar m[alarm_num][1]&&second==alarm[alarm_num][2]) {display_alarm[0]=alarm[alarm_num][0]/10;display_alarm[1]=alarm[alarm_num][0]%10;display_alarm[2]=alarm[alarm_num][1]/10;display_alarm[3]=alarm[alarm_num][1]%10;display_alarm[4]=0x10;display_alarm[5]=alarm_num;music(alarm_num);}}/*void alarm_ () //闹钟发声函数{if(hour==alarm[0]&&minute==alarm[1]&&second==alarm[2]){uint k;for(k=10;k>0;k--){buzzer=0;delay_ms(100);buzzer=1;}}}*/void scan_key() //按键扫描函数{bit flag_break=0; //flag_break作为跳出按键扫描循环程序的标志位if(key_select==0){delay_ms(10);if(key_select==0) // 确认功能键被按下{while(!key_select); //释放确认di();while(1) //时按键处理{flag_display=1;if(flag_break==1){alarm_num=0;break;}if(key_alarm_or_song==0){delay_ms(10);if(key_alarm_or_song==0){flag_alarm=1;if(flag_break==1){alarm_num=0;break;}alarm_num++;if(alarm_num==10) //添加闹钟时需要修改的地方!!!!!!!!!!alarm_num=1;display_alarm[0]=alarm[alarm_num][0]/10;display_alarm[1]=alarm[alarm_num][0]%10;display_alarm[2]=alarm[alarm_num][1]/10;display_alarm[3]=alarm[alarm_num][1]%10;display_alarm[4]=0x10;display_alarm[5]=alarm_num%10;while(!key_alarm_or_song);di();}}if(key_select==0){delay_ms(10);if(key_select==0) //确认功能键改时被按下{while(!key_select); //释放确认di();while(1) //分按键处理{flag_display=2;if(flag_break==1)break;if(key_select==0){delay_ms(10);if(key_select==0)//确认功能键改分被按下{while(!key_select); //释放确认di();while(1) //秒按键处理{flag_display=3;if(key_select==0){delay_ms(10);if(key_select==0) //确认功能键改秒被按下{while(!key_select); //此处等待按键释放非常重要!!!di();flag_alarm=0;flag_break=1;break;}}if(key_inc==0&&flag_alarm==0){delay_ms(10);if(key_inc==0){if(flag_alarm==0){second++;if(second==60)second=0;display[4]=second/10;display[5]=second%10;while(!key_inc);}else{ alarm[alarm_num][2]++;if(alarm[alarm_num][2]==60)alarm[alarm_num][2]=0;display_alarm[4]=0x10;display_alarm[5]=alarm_num;while(!key_inc);}di();}}if(key_dec==0){delay_ms(10);if(key_dec==0){if(flag_alarm==0){second--;if(second==255)second=59;display[4]=second/10;display[5]=second%10;while(!key_dec);}else{alarm[alarm_num][2]--;if(alarm[alarm_num][2]==255)alarm[alarm_num][2]=59;display_alarm[4]=0x10;display_alarm[5]=alarm_num;while(!key_dec);}di();}}}}}if(key_inc==0){delay_ms(10);if(key_inc==0){if(flag_alarm==0){minute++;if(minute==60)minute=0;display[2]=minute/10;display[3]=minute%10;while(!key_inc);}else{alarm[alarm_num][1]++;if(alarm[alarm_num][1]==60)alarm[alarm_num][1]=0;display_alarm[2]=alarm[alarm_num][1]/10;display_alarm[3]=alarm[alarm_num][1]%10;while(!key_inc);}di();}}if(key_dec==0){delay_ms(10);if(key_dec==0){if(flag_alarm==0){minute--;if(minute==255)minute=59;display[2]=minute/10;display[3]=minute%10;while(!key_dec);}else{alarm[alarm_num][1]--;if(alarm[alarm_num][1]==255)alarm[alarm_num][1]=59;display_alarm[2]=alarm[alarm_num][1]/10;display_alarm[3]=alarm[alarm_num][1]%10;while(!key_dec);}di();}}}}}if(key_inc==0){delay_ms(10);if(key_inc==0){if(flag_alarm==0){hour++;if(hour==24)hour=0;display[0]=hour/10;display[1]=hour%10;while(!key_inc);}else{alarm[alarm_num][0]++;if(alarm[alarm_num][0]==24)alarm[alarm_num][0]=0;display_alarm[0]=alarm[alarm_num][0]/10;display_alarm[1]=alarm[alarm_num][0]%10;while(!key_inc);}di();}}if(key_dec==0){delay_ms(10);if(key_dec==0){if(flag_alarm==0){hour--;if(hour==255)hour=23;display[0]=hour/10;display[1]=hour%10;while(!key_dec);}else{alarm[alarm_num][0]--;if(alarm[alarm_num][0]==255)alarm[alarm_num][0]=23; display_alarm[0]=alarm[alarm_num][0]/10;display_alarm[1]=alarm[alarm_num][0]%10;while(!key_dec);}di();}}}}}flag_display=0;if(key_alarm_or_song==0){delay_ms(10);if(key_alarm_or_song==0){while(!key_alarm_or_song);song_num++;if(song_num==12)song_num=1; //添加歌曲时需要修改的地方!!!!!!!!!!display_music[2]=song_num/10;display_music[3]=song_num%10;music(song_num);}}}void main(){TMOD=0x11;EA=1;ET0=1;ET1=1;TH0=0xf6; //定时50ms 初值TL0=0x3c;TR0=1;PT1=1;PT0=0;while(1){ buzzer=1;alarm_num=0;scan_key();alarm_();}}void timer_0() interrupt 1{TH0=0xf6;TL0=0x3c;count++;if(count==400){count=0;second++;display[4]=second/10;display[5]=second%10;if(second==60){second=0;display[4]=second/10;display[5]=second%10;minute++;display[2]=minute/10;display[3]=minute%10;if(minute==60){minute=0;display[2]=minute/10;display[3]=minute%10;hour++;if(hour==24)hour=0;display[0]=hour/10;display[1]=hour%10;}}}if(flag_alarm==0){if(music_break==1&&alarm_num==0) P3=font[display_music[n]];else{if(music_break==1&&alarm_num!=0){if(n==1)P3=font[display_alarm[n]]&0x7f;elseP3=font[display_alarm[n]];}else{if(n==1||n==3)P3=font[display[n]]&0x7f;elseP3=font[display[n]];}}}elseif(n==1)P3=font[display_alarm[n]]&0x7f;elseP3=font[display_alarm[n]];n++;if(n==6)n=0;switch(flag_display) //调时、调闹钟闪烁部分{case 0: {P2=bit_code;bit_code=_crol_(bit_code,1);if(bit_code==0x01)bit_code=0x04;} break;case 1: {count_display++;if(count_display<=200){P2=bit_code;bit_code=_crol_(bit_code,1);if(bit_code==0x01)bit_code=0x04;}if(count_display>200&&count_display<=400) {if(count_display==400)count_display=0;if(bit_code==0x08||bit_code==0x04)P2=0xff;elseP2=bit_code;bit_code=_crol_(bit_code,1);if(bit_code==0x01)bit_code=0x04;}} break;case 2: {count_display++;if(count_display<=200){P2=bit_code;bit_code=_crol_(bit_code,1);if(bit_code==0x01)bit_code=0x04;}if(count_display>200&&count_display<=400) {if(count_display==400)count_display=0;if(bit_code==0x10||bit_code==0x20)P2=0xff;elseP2=bit_code;bit_code=_crol_(bit_code,1);if(bit_code==0x01)bit_code=0x04;}} break;case 3: {if(flag_alarm==0){count_display++;if(count_display<=200){P2=bit_code;bit_code=_crol_(bit_code,1);if(bit_code==0xfe)bit_code=0xfb;}if(count_display>200&&count_display<=400){if(count_display==400)count_display=0;if(bit_code==0x40||bit_code==0x80)P2=0xff;elseP2=bit_code;bit_code=_crol_(bit_code,1);if(bit_code==0x01)bit_code=0x04;}}else{P2=bit_code;bit_code=_crol_(bit_code,1);if(bit_code==0x01)bit_code=0x04;}} break;default : break;}}void timer_1() interrupt 3{TH1=initial_value/256;TL1=initial_value%256;buzzer=~buzzer;}参考文献【1】求是科技.单片机典型模块设计实例导航(第2版).北京:人民邮电出版社.2008【2】谭浩强.C语言程序设计(第2版).北京:清华大学出版社.2003【3】郭天祥.新概念51单片机C语言教程.电子工业出版社.2009【4】童诗白.华成英.模拟电子技术基础.北京:高等教育出版社.2009【5】陈明荧.8051单片机课程设计实训教材.北京:清华大学出版社.2004。