独立按键数字电子钟
- 格式:doc
- 大小:322.00 KB
- 文档页数:20
基于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单片机的工作原理基于冯诺伊曼体系结构,即程序指令和数据存储在同一块存储器中,通过总线系统进行传输。
数字钟概述一、数字钟的简介数字钟是一种用数字电路技术实现时、分、秒计时的装置,与机械式时钟相比具有更高的准确性和直观性,且无机械装置,具有更长的使用寿命,已得到广泛的使用。
数字钟的设计方法有许多种,例如,可用中小规模集成电路组成电子钟;也可以利用专用的电子钟芯片配以显示电路及其所需要的外围电路组成电子钟;还可以利用单片机来实现电子钟等等。
这些方法都各有其特点,其中利用单片机实现的电子钟具有编程灵活,并便于功能的扩展。
数字钟已成为人们日常生活中不可缺少的生活必需品,广泛地应用于人家庭以及车站、码头、剧场、办公室等家庭和公共场所,给人们的生活,学习,工作,娱乐带来极大的方便[1]。
数字钟一般由振荡器,分频器,译码器,显示器等部分组成,这些都是数字电路中最基本的,应用最广的电路。
当前市场上已有现成数字钟集成电路芯片出售,价格较便宜。
由于数字集成电路技术的发展,采用了先进稳定的石英振荡器技术,使数字钟具有走时准确,性能稳定,携带方便等特点,是目前人们生活和工作不可或缺的报时用品[2]。
二、数字钟的发展前景现在是一个知识爆炸的新时代。
新产品、新技术层出不穷,电子技术的发展更是日新月异。
可以毫不夸张的说,电子技术的应用无处不在,电子技术正在不断地改变我们的生活,改变着我们的世界。
在这快速发展的年代,时间对人们来说是越来越宝贵,在快节奏的生活时,人们往往忘记了时间,一旦遇到重要的事情而忘记了时间,这将会带来很大的损失。
因此我们需要一个定时系统来提醒这些忙碌的人。
数字化的钟表给人们带来了极大的方便。
近些年,随着科技的发展和社会的进步,人们对数字钟的要求也越来越高,传统的时钟已不能满足人们的需求。
多功能数字钟不管在性能还是在样式上都发生了质的变化,有电子闹钟、数字闹钟等等。
单片机在多功能数字钟中的应用已是非常普遍的,人们对数字钟的功能及工作顺序都非常熟悉。
但是却很少知道它的内部结构以及工作原理。
由单片机作为数字钟的核心控制器,可以通过它的时钟信号进行计时实现计时功能,将其时间数据经单片机输出,利用显示器显示出来。
数字电子钟逻辑电路设计一、简述数字电子钟是一种用数字显示秒、分、时、日的计时装置,与传统的机械钟相比,它具有走时准确,显示直观、无机械传动装置等优点,因而得到了广泛的应用;小到人们日常生活中的电子手表,大到车站、码头、机场等公共场所的大型数显电子钟;数字电子钟的电路组成方框图如图所示;图数字电子钟框图由图可见,数字电子钟由以下几部分组成:石英晶体振荡器和分频器组成的秒脉冲发生器;校时电路;六十进制秒、分计数器,二十四进制或十二进制计时计数器;秒、分、时的译码显示部分等;二、设计任务和要求用中、小规模集成电路设计一台能显示日、时、分、秒的数字电子钟,要求如下:1.由晶振电路产生1Hz标准秒信号;2.秒、分为00~59六十进制计数器;3. 时为00~23二十四进制计数器;4. 周显示从1~日为七进制计数器;5. 可手动校时:能分别进行秒、分、时、日的校时;只要将开关置于手动位置,可分别对秒、分、时、日进行手动脉冲输入调整或连续脉冲输入的校正;6. 整点报时;整点报时电路要求在每个整点前呜叫五次低音500Hz,整点时再呜叫一次高音1000Hz;三、可选用器材1. 通用实验底板2. 直流稳压电源3. 集成电路:CD4060、74LS74、74LS161、74LS248及门电路4. 晶振:32768 Hz5. 电容:100μF/16V 、22pF 、3~22pF 之间6. 电阻:200Ω、10K Ω、22M Ω7. 电位器:Ω或Ω8. 数显:共阴显示器LC5011-119. 开关:单次按键10. 三极管:805011. 喇叭:1 W /4,8Ω四、设计方案提示根据设计任务和要求,对照数字电子钟的框图,可以分以下几部分进行模块化设计;1. 秒脉冲发生器脉冲发生器是数字钟的核心部分,它的精度和稳定度决定了数字钟的质量,通常用晶体振荡器发出的脉冲经过整形、分频获得1Hz 的秒脉冲;如晶振为32768 Hz,通过15次二分频后可获得1Hz 的脉冲输出,电路图如图所示;74LS741Hz图 秒脉冲发生器2. 计数译码显示秒、分、时、日分别为60、60、24、7进制计数器、秒、分均为60进制,即显示00~59,它们的个位为十进制,十位为六进制;时为二十四进制计数器,显示为00~23,个位仍为十进制,而十位为三进制,但当十进位计到2,而个位计到4时清零,就为二十四进制了;周为七进制数,按人们一般的概念一周的显示日期“日、1、2、3、4、5、6”,所以我们设计这个七进制计数器,应根据译码显示器的状态表来进行,如表所示;按表状态表不难设计出“日”计数器的电路日用数字8代替;所有计数器的译码显示均采用BCD—七段译码器,显示器采用共阴或共阳的显示器;表状态表3.校时电路在刚刚开机接通电源时,由于日、时、分、秒为任意值,所以,需要进行调整;置开关在手动位置,分别对时、分、秒、日进行单独计数,计数脉冲由单次脉冲或连续脉冲输入;4.整点报时电路当时计数器在每次计到整点前六秒时,需要报时,这可用译码电路来解决;即当分为59时,则秒在计数计到54时,输出一延时高电平去打开低音与门,使报时声按500Hz频率呜叫5声,直至秒计数器计到58时,结束这高电平脉冲;当秒计数到59时,则去驱动高音1KHz频率输出而鸣叫1声;五、参考电路数字电子钟逻辑电路参考图如图所示;图数字电子钟逻辑电路参考图六、参考电路简要说明1. 秒脉冲电路由晶振32768Hz经14分频器分频为2Hz,再经一次分频,即得1Hz标准秒脉冲,供时钟计数器用;2. 单次脉冲、连续脉冲这主要是供手动校时用;若开关K1打在单次端,要调整日、时、分、秒即可按单次脉冲进行校正;如K1在单次,K2在手动,则此时按动单次脉冲键,使周计数器从星期1到星期日计数;若开关K1处于连续端,则校正时,不需要按动单次脉冲,即可进行校正;单次、连续脉冲均由门电路构成;3. 秒、分、时、日计数器这一部分电路均使用中规模集成电路74LS161实现秒、分、时的计数,其中秒、分为六十进制,时为二十四进制;从图3中可以发现秒、分两组计数器完全相同;当计数到59时,再来一个脉冲变成00,然后再重新开始计数;图中利用“异步清零”反馈到/CR端,而实现个位十进制,十位六进制的功能;时计数器为二十四进制,当开始计数时,个位按十进制计数,当计到23时,这时再来一个脉冲,应该回到“零”;所以,这里必须使个位既能完成十进制计数,又能在高低位满足“23”这一数字后,时计数器清零,图中采用了十位的“2”和个位的“4”相与非后再清零;对于日计数器电路,它是由四个D触发器组成的也可以用JK触发器,其逻辑功能满足了表1,即当计数器计到6后,再来一个脉冲,用7的瞬态将Q4、Q3、Q2、Q1置数,即为“1000”,从而显示“日”8;4.译码、显示译码、显示很简单,采用共阴极LED数码管LC5011-11和译码器74LS248,当然也可用共阳数码管和译码器;5.整点报时当计数到整点的前6秒钟,此时应该准备报时;图3中,当分计到59分时,将分触发器QH置1,而等到秒计数到54秒时,将秒触发器QL置1,然后通过QL与QH相与后再和1s标准秒信号相与而去控制低音喇叭呜叫,直至59秒时,产生一个复位信号,使QL清0,停止低音呜叫,同时59秒信号的反相又和QH相与后去控制高音喇叭呜叫;当计到分、秒从59:59—00:00时,呜叫结束,完成整点报时;6.呜叫电路呜叫电路由高、低两种频率通过或门去驱动一个三极管,带动喇叭呜叫;1KHz和500Hz从晶振分频器近似获得;如图中CD4060分频器的输出端Q5和Q6;Q5输出频率为1024Hz,Q6输出频率为512Hz;。
物理与电子工程学院课程设计题目:数字电子钟专业电子信息工程班级12级电信三班学号********学生姓名李长炳指导教师张小英张艳完成日期:2013 年7月数字电子钟前言:数字钟是一个将“时”、“分”、“秒’’显示于人的视觉器官的计时装置。
它的计时周期为24小时,显示满刻度为23时59分59秒,另外应有校时功能和报时闹铃等功能。
一、基本原理时显示器分显示器秒显示器时译码器分译码器秒译码器时计数器分计数器秒计数器振荡器分频器主体电路1.1 振荡电路晶体振荡器的作用是产生时间标准信号。
我采用由门电路或555定时器构成的多谐振荡器作为时间标准信号源。
本系统中的振荡电路选用555定时器构成的多谐振荡器,见图1。
多谐振荡器的振荡频率可由式估算。
图11.2 时、分、秒显示电路模块设计①秒的产生采用74LS160产生60进制的加法计数器,输出端Q0,Q1,Q2,Q3分别接到七段数码管的相应的各端,由上图的555产生的秒脉冲链接秒的两个160的cp,第一片的进位来控制第二片的EP,ET来构成秒。
如下图所示图2注意:两个CP都是连接到555的输出。
②分的产生采用74LS160产生60进制的加法计数器,输出端Q0,Q1,Q2,Q3分别接到七段数码管的相应的各端,由上图的秒产生的进位连接秒的两个160的cp,第一片的进位来控制第二片的EP,ET来构成秒。
如下图所示图3注意:两个CP都是连接的秒的进位的输出。
③小时的产生采用74LS160产生24进制的加法计数器,输出端Q0,Q1,Q2,Q3分别接到七段数码管的相应的各端,由上图的分产生的进位连接秒的两个160的cp,第一片的进位来控制第二片的EP,ET来构成秒。
如下图所示图4注意:两个CP都是连接的秒的进位的输出。
1.3闹钟我设置的闹钟是00:03响的。
会响一分钟,采用与非门和或门组成的电路。
可以得出以下的电路图当达到00:03时就开始响,当不是00:03是就停止了,喇叭一端节地。
目录一前言 (1)1.1数字电子钟的意义1.2数字电子钟的应用二总体方案设计 (1)三系统硬件设计 (2)6单片机最小系统1.I/O 地址分配2.复位电路3 时钟电路4 按键电路5 显示电路四系统软件设计 (6)1 软件程序内容2 软件流程图五系统调试 (9)1 系统功能 (9)2.软件调试问题及解决六设计总结 (9)附录 (11)1)系统原理图 (11)2)系统仿真图源程序 (13)一前言1.1数字电子钟的意义单片机模块中最常见的是数字钟, 数字钟是一种用数字电路技术实现时、分、秒计时的装置, 与机械式时钟相比具有更高的准确性和直观性, 且无机械装置, 具有更更长的使用寿命, 因此得到了广泛的使用。
数字钟是采用数字电路实现对.时,分,秒.数字显示的计时装置,广泛用于个人家庭,车站, 码头办公室等公共场所,成为人们日常生活中不可少的必需品,由于数字集成电路的发展和石英晶体振荡器的广泛应用,使得数字钟的精度,远远超过老式钟表, 钟表的数字化给人们生产生活带来了极大的方便, 而且大大地扩展了钟表原先的报时功能。
诸如定时自动报警、按时自动打铃、时间程序自动控制、定时广播、自动起闭路灯、定时开关烘箱、通断动力设备、甚至各种定时电气的自动启用等, 所有这些, 都是以钟表数字化为基础的。
因此, 研究数字钟及扩大其应用, 有着非常现实的意义。
1.2数字电子钟的应用数字钟已成为人们日常生活中: 必不可少的必需品, 广泛用于个人家庭以及车站、码头、剧场、办公室等公共场所, 给人们的生活、学习、工作、娱乐带来极大的方便。
由于数字集成电路技术的发展和采用了先进的石英技术, 使数字钟具有走时准确、性能稳定、携带方便等优点, 它还用于计时自动报时及自动控制的领域。
二总体方案设计数字钟在日常生活中最常见, 应用也最广泛。
本文主要就是设计一款数字钟, 以89C52单片机为核心, 配备液晶显示模块、时钟芯片、等功能模块。
数字钟采用24小时制方式显示时间, 定时信息以及年月日显示等功能。
多功能电子数字钟设计数字钟在日常生活中最常见, 应用也最广泛。
本文主要就是设计一款数字钟, 以89C52单片机为核心, 配备液晶显示模块、时钟芯片、等功能模块。
数字钟采用24小时制方式显示时间, 定时信息以及年月日显示等功能。
文章的核心主要从硬件设计和软件编程两个大的方面。
硬件电路设计主要包括中央处理单元电路、时钟电路、人机接口电路、信号处理电路、执行电路等几部分组成。
软件用C语言来实现, 主要包括主程序、键盘扫描子程序、时间设置子程序等软件模块。
关键词单片机液晶显示器模块数字钟一硬件电路设计及描述;1.MCS-51单片机单片机是在一块硅片上集成了各种部件的微型计算机。
这些部件包括中央处理器CPU、数据存储器RAM、程序存储器ROM、定时器/计数器和多种I/O接口电路。
8051单片机的结构特点有以下几点: 8位CPU;片内振荡器及时钟电路; 32根I/O线;外部存储器ROM和RAM;寻址范围各64KB;两个16位的定时器/计数器; 5个中断源, 2个中断优先级;全双工串行口。
定时器/计数器8051内部有两个16位可编程定时器/计数器, 记为T0和T1。
16位是指他们都是由16个触发器构成, 故最大计数模值为2 -1。
可编程是指他们的工作方式由指令来设定, 或者当计数器来用, 或者当定时起来用, 并且计数(定时)的范围也可以由指令来设置。
这种控制功能是通过定时器方式控制寄存器TMOD来完成的。
在定时工作时, 时钟由单片机内部提供, 即系统时钟经过12分频后作为定时器的时钟。
技术工作时, 时钟脉冲由TO和T1输入。
中断系统8051的中断系统允许接受五个独立的中断源, 即两个外部中断申请, 两个定时器/计数器中断以及一个串行口中断。
外部中断申请通过INTO和INT1(即P3.2和P3.3)输入, 输入方式可以使电平触发(低电平有效), 也可以使边沿触发(下降沿有效)。
2.8051的芯片引脚如图1-2所示VCC: 供电电压。
电子制作实训报告题目:数字电子钟班级:09电信姓名:苏欣欣指导教师:赵欣湖北轻工职业技术学院完成日期:2011年4月16日目录第一章概述 3第二章数字电子钟的电路原理 4 第三章电路调试与制作12第四章总结与体会12第五章附录13第一章概述数字钟是采用数字电路实现对.时,分,秒.数字显示的计时装置,广泛用于个人家庭,车站, 码头办公室等公共场所,成为人们日常生活中不可少的必需品,由于数字集成电路的发展和石英晶体振荡器的广泛应用,使得数字钟的精度,运运超过老式钟表, 钟表的数字化给人们生产生活带来了极大的方便,而且大大地扩展了钟表原先的报时功能。
诸如定时自动报警、按时自动打铃、时间程序自动控制、定时广播、自动起闭路灯、定时开关烘箱、通断动力设备、甚至各种定时电气的自动启用等,所有这些,都是以钟表数字化为基础的。
因此,研究数字钟及扩大其应用,有着非常现实的意义。
虽然市场上已有现成的数字集成电路芯片出售,价格便宜,使用方便,这里所制作的数字电子可以随意设置时,分的输出,是数字电子中具有体积小、耗电省、计时准确、性能稳定、维护方便等优点。
设计目的(1)加强对电子制作的认识,充分掌握和理解设计个部分的工作原理、设计过程、选择芯片器件、电路的焊接与调试等多项知识。
(2)把理论知识与实践相结合,充分发挥个人与团队协作能力,并在实践中锻炼。
(3)提高利用已学知识分析和解决问题的能力。
(4)提高实践动手能力。
第二章数字电子钟的电路原理数字电子钟的设计与制作主要包括:数码显示电路、计数器与校时电路、时基电路和闹铃报时电路四个部分。
1.数码显示电路译码和数码显示电路是将数字钟的计时状态直观清晰地反映出来。
显示器件选用FTTL-655SB双阴极显示屏组。
在计数电路输出信号的驱动下,显示出清晰的数字符号。
2.计数器电路LM8560是一种大规模时钟集成电路它与双阴极显示屏组可以制成数字钟钟控电路。
3.校时电路数字钟电路由于秒信号的精确性和稳定性不可能做到完全准确无误,时基电路的误差会累积;又因外部环境对电路的影响,设计产品会产生走时误差的现象。
国立大学毕业设计基于51单片机的电子钟的设计学生XX 沉默熊系(部)电气信息工程系专业应用电子技术指导老师马各2011年5月25日摘要近年来随着科技的飞速发展,单片机的应用正在不断地走向深入,同时带动传统控制检测日新月异更新。
在实时检测和自动控制的单片机应用系统中,单片机往往是作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构,以及针对具体应用对象特点的软件结合,加以完善。
电子时钟是现代社会中的主要计时工具之一,广泛应用于手机,电脑,汽车等社会生活需要的各个方面,及对时间有要求的场合。
本设计采用AT89C51单片机作为主要核心部件,附以上电复位电路,时钟电路及按键调时电路组成。
数字电子钟的设计方法有多种,例如,可用中小规模集成电路组成电子钟;也可以利用专用的电子钟芯片配以显示电路及其所需要的外围电路组成电子钟;还可以利用单片机来实现电子钟等等。
这些方法都各有特点,其中,利用单片机实现的电子钟具有编程灵活,便于电子钟功能的扩充,即可用该电子钟发出各种控制信号,精确度高等特点…………该系统实用性强、操作简单、扩展性强。
关键词:单片机电子钟LCDAbstractIn recent years, with the rapid development of science and technology, the application of Single Chip Machine is continuously to further, traditional control test rapidly updated. In real-time detection and automatic control of single-chip microputer application system, is often used as a core ponent, knowledge is not only the MCU, still should according to specific hardware structure, and the view of the specific application software, the object characteristics.Electronic clock of modern society is one of main timing tool, widely used in mobile phone, puter, automobile, etc all aspects of social life, and the need for time. This design USES AT89C51 as the main core ponents, attach more electricity reset circuit, clocking circuit and the button when the adjustable circuit.Digital electric clock design methods are various, for example, usable small scale integrated circuit ponent electric clock, Also can use special electric clock chips with display circuit and the need of peripheral circuit electric clock, Still can use to realize electric clock chip, etc. These methods have different features, among them, use the electric clock microcontroller programming, flexible easy electric clock function expansion, can use the electric clock out of control signal, the accuracy is higher characteristic......This system is practical, simple operation and extensible.Keywords:Single Chip Machineelectric clockLCD目录前言.........................................................................1绪论.........................................................................3 第一节单片机技术的发展....................................................3 第二节单片机概况..........................................................5 第一章数字钟的硬件设计....................................................6 第一节MSC-51系列芯片简介.................................................6 第二节AT89C51芯片特性简介................................................7 第三节显示器简介..........................................................8 第四节键盘接口技术.......................................................10一、键的识别...........................................................10二、键的消抖...........................................................11第五节看门狗电路设计.....................................................12一、软件看门狗..........................................................12二、硬件看门狗..........................................................12 第二章数字钟系统设计.....................................................14第一节设计方案...........................................................14 第二节系统的功能与要求...................................................14 第三节系统硬件的选用.....................................................15 第三章数字钟的软件设计...................................................16第一节延时的设定.........................................................16一、硬件延时...........................................................16二、软件延时...........................................................17第二节软件的调试与仿真.................... ... (18)第三节程序流程图.........................................................20 第四节系统内存分配和I/O接口使用..........................................23 第五节程序源代码.......... ......................... ... (23)第四章系统调试...................................................... (29)第一节软件,硬件调试......................................................29 第二节结论...............................................................30 毕业设计总结........................................ .... ...... .... ... (31)致谢.........................................................................32 参考文献.....................................................................33 附录1........................................................................34前言本文介绍一个采用8051单片机芯片制作的“数码显示电子钟”,该LCD数码管时钟电路采用24小时计时方式,时、分、秒、星期用5位数码管显示。
《单片机技术》课程设计说明书数字电子钟院、部:电气与信息工程学院学生姓名:******指导教师:王韧职称副教授专业:通信工程班级:***********完成时间:2013年12月20日湖南工学院课程设计任务书课程:单片机技术课程设计题目:数字电子钟数字频率计数字电压表交通灯抢答器密码锁波形发生器数字温度计计算器数字式秒表适用班级:电子1101~2、通信1102~3通信1101~电子1103 时间: 2013~2014学年第一学期指导教师:王韧《单片机技术》课程设计任务书一、设计题目:数字电子钟、数字频率计、数字电压表、交通灯、抢答器、密码锁、波形发生器、数字温度计、计算器、数字式秒表。
二、适用班级:电子1101~2、通信1102~3、通信1101~电子1103三、指导教师:王韧四、设计目的与任务:学生通过理论设计和实物制作解决相应的实际问题,巩固和运用在《单片机技术》中所学的理论知识和实验技能,掌握单片机应用系统的一般设计方法,提高设计能力和实践动手能力,为以后从事电子电路设计、研发电子产品打下良好的基础。
五、设计内容与要求设计内容1、数字电子钟设计一个具有特定功能的电子钟。
该电子钟上电或按键复位后能自动显示系统提示符“P.”,进入时钟准备状态;第一次按电子钟启动/调整键,电子钟从0时0分0秒开始运行,进入时钟运行状态;再次按电子钟启动/调整键,则电子钟进入时钟调整状态,此时可利用各调整键调整时间,调整结束后可按启动/调整键再次进入时钟运行状态。
2、数字频率计设计一个能够测量周期性矩形波信号的频率、周期、脉宽、占空比的频率计。
该频率计上电或按键复位后能自动显示系统提示符“P.”,进入测量准备状态。
按频率测量键则测量频率;按周期测量键则测量周期;按脉宽测量键则测量脉宽;按占空比测量键则测量占空比。
3、数字电压表设计一个能够测量直流电压的数字电压表。
测量电压范围0~5V,测量精度小数点后两位。
该电压表上电或按键复位后能自动显示系统提示符“P.”,进入测量准备状态,按测量开始键则开始测量,并将测量值显示在显示器上,按测量结束键则自动返回“P.”状态。
方案一独立键盘数字电子钟电科0902班组长:祁俐俐组员:吉才韩江蔡杨苏欣李程付磊 2012年7月12日独立键盘数字电子钟一、电子钟设计目的1、学习数字电子钟的原理和实现方法。
2、掌握键盘的控制原理和编程方法。
3、掌握51单片机定时器与中断的使用。
4、掌握LED数码管显示的原理及编程方法。
二电子钟设计要求设计一个数字电子钟,要求可进行时、分、秒显示,最大显示时间为23:59:59,,并且具有时间调整、闹铃、启动、暂停和清零(复位)等功能。
可以完成以下几点功能:1)六个LED上实现正常的时间显示,24小时制2)实现时间的正确调节3)闹钟的定时及到时间之后的音乐响铃4)独立键盘,设有暂停键,启动键,清零键,时调整键,分调整键,秒调整键,闹钟键。
三设计方案规划与选定根据要求采用AT89C51单片机进行设计,AT89C51 单片机是一款低功耗,高性能CMOS8位单片机,片内含4KB在线可编程(ISP)的可反复擦写1000次的Flash只读程序存储器,器件采用高密度、非易失性存储技术制造,兼容标准MCS- 51指令系统及80C51引脚结构。
这样,既能做到经济合理又能实现预期的功能。
在程序方面,采用分块设计的方法,这样既减小了编程难度、使程序易于理解,又能便于添加各项功能。
程序可分为闹钟的音乐程序、时间显示程序、闹钟显示程序、调时显示、定时程序,走时程序,复位的模块化的程序。
硬件接线图如图所示:原理分析如下:主程序:执行主程序,按照得到的的1到7键值转到相应的子程序去执行相应的功能。
模块一:时间显示模块:用51单片机的6个LED七段数码管,依次分别显示时,分,秒,中间用小数点分开。
正常走时时秒数满60进位,分钟加1,分钟满60小时加1,小时满24清0模块二:显示时间调整模块:当按下键值为1,2,3的开关后,进入时间调整程序,对六个数码管相应位的的控制按照我们生活中的正常逻辑进行控制。
进行调整时间模块三:闹钟音乐模块:当按下键值为6的开关后,进入闹钟时间设置状态,设定相应的时间,当到了设定的时间之后,进入产生中断,进入闹钟音乐程序模块四:键盘扫描得到按键值函数,根据键值转到相应的模块执行相应的功能。
各个模块程序设计好之后,要进行最后的整合,函数的调用参数设置要正确,使程序能够正常的运行,在keil上调试通过之后,检查proteus中硬件连接有没有错误,确定无误后,在proteus中进行模拟实验,最后可以到实验室进行真实元器件的连接。
四.硬件设计1.总体设计方案2.硬件电路(1)AT89C511、电源引脚Vcc电源端,GND接地端,工作电压为5V,2、外接晶体引脚晶振连接的内部、外部方式图XTAL1是片内振荡器的反相放大器输入端,XTAL2则是输出端,使用外部振荡器时,外部振荡信号应直接加到XTAL1,而XTAL2悬空。
内部方式时,时钟发生器对振荡脉冲二分频,如晶振为12MHz,时钟频率就为6MHz。
晶振的频率可以在1MHz-24MHz内选择。
电容取30PF左右。
系统的时钟电路设计是采用的内部方式,即利用芯片内部的振荡电路。
AT89单片机内部有一个用于构成振荡器的高增益反相放大器。
引脚XTAL1和XTAL2分别是此放大器的输入端和输出端。
这个放大器与作为反馈元件的片外晶体谐振器一起构成一个自激振荡器。
外接晶体谐振器以及电容C1和C2构成并联谐振电路,接在放大器的反馈回路中。
对外接电容的值虽然没有严格的要求,但电容的大小会影响震荡器频率的高低、震荡器的稳定性、起振的快速性和温度的稳定性。
因此,此系统电路的晶体振荡器的值为12MHz,电容应尽可能的选择陶瓷电容,电容值约为22μF。
在焊接刷电路板时,晶体振荡器和电容应尽可能安装得与单片机芯片靠近,以减少寄生电容,更好地保证震荡器稳定和可靠地工作。
3、复位RST在振荡器运行时,有两个机器周期(24个振荡周期)以上的高电平出现在此引腿时,将使单片机复位,只要这个脚保持高电平,51芯片便循环复位。
复位后P0-P3口均置1引脚表现为高电平,程序计数器和特殊功能寄存器SFR全部清零。
当复位脚由高电平变为低电平时,芯片为ROM的00H处开始运行程序。
复位是由外部的复位电路来实现的。
片内复位电路是复位引脚RST通过一个斯密特触发器与复位电路相连,斯密特触发器用来抑制噪声,它的输出在每个机器周期的S5P2,由复位电路采样一次。
复位电路通常采用上电自动复位和按钮复位两种方式,此电路系统采用的是按钮复位电路。
4、输入输出引脚(1) P0端口[P0.0-P0.7] P0是一个8位漏极开路型双向I/O端口,端口置1(对端口写1)时作高阻抗输入端。
作为输出口时能驱动8个TTL。
对内部Flash 程序存储器编程时,接收指令字节;校验程序时输出指令字节,要求外接上拉电阻。
在访问外部程序和外部数据存储器时,P0口是分时转换的地址(低8位)/数据总线,访问期间内部的上拉电阻起作用。
(2) P1端口[P1.0-P1.7] P1是一个带有内部上拉电阻的8位双向I/0端口。
输出时可驱动4个TTL。
端口置1时,内部上拉电阻将端口拉到高电平,作输入用。
(3) P2端口[P2.0-P2.7] P2是一个带有内部上拉电阻的8位双向I/0端口。
输出时可驱动4个TTL。
端口置1时,内部上拉电阻将端口拉到高电平,作输入用。
对内部Flash程序存储器编程时,接收高8位地址和控制信息。
(4) P3端口[P3.0-P3.7] P2是一个带有内部上拉电阻的8位双向I/0端口。
输出时可驱动4个TTL。
端口置1时,内部上拉电阻将端口拉到高电平,作输入用。
(2)键盘电路设计该设计只用了一个键盘,但实现的功能却是比较完善,减少了硬件资源的损耗,该键盘可以实现小时和分钟的调节以及控制是否进入省电模式。
当按键按下又松开,可以实现屏蔽数码管显示的功能,达到省电的目的;直接按下不松开,则可以通过按键实现分钟的累加,每按一次分钟加一;而连续两次按下按键不放松,则可实现小时的调节,同样每按一次小时加一。
达到时间调节的目的。
选择的多功能按键如图所示。
(3)数码管:LED 数码管实际上是由七个发光管组成8字形构成的,加上小数点就是8个。
如图3-10。
这些段分别由字母a,b,c,d,e,f,g,dp 来表示。
当数码管特定的段加上电压后,这些特定的段就会发亮,以形成我们眼睛看到的字样了。
如:显示一个“2”字,那么应当是a 亮b 亮g 亮e 亮d 亮f 不亮c 不亮dp 不亮。
LED 数码管有一般亮和超亮等不同之分,也有0.5寸、1寸等不同的尺寸。
小尺寸数码管的显示笔画常用一个发光二极管组成,而大尺寸的数码管由二个或多个发光二极管组成,一般情况下,单个发光二极管的管压降为1.8V 左右,电流不超过30mA 。
发光二极管的阳极连接到一起连接到电源正极的称为共阳数码管,发光二极管的阴极连接到一起连接到电源负极的称为共阴数码管。
常用LED 数码管显示的数字和字符是0、1、2、3、4、5、6、7、8、9。
(4)74LS3731D~8D 为8个输入端 1Q~8Q 为8个输出端LE 是数据锁存控制端;当LE=1时,锁存器输出端同输入端;当LE 由“1”变为“0”数码管字样时,数据输入锁存器中。
OE为输出允许端;当OE=“0”时,三态门打开;当OE=“1”时,三态门关闭,输出呈高阻状态。
在MCS-51单片机系统中,常采用74LS373作为地址锁存器使用,其连接方法如电路硬件图所示。
其中输入端1D~8D接至单片机的P0口,输出端提供的是低8位地址,LE端接至单片机的地址锁存允许信号ALE。
输出允许端OE接地,表示输出三态门一直打开。
五.软件设计主程序以及各子程序的流程图如下:主程序流程图定时器中断子程序软件设计思路如下:1.主程序设计:主程序中完成对定时器设置的初始化,然后进入无限循环的查询模块,动态扫描LED显示模块,使显示走时正常。
同时在循环中完成对键盘的状态(是否有键按下,如有是哪一个)进行监控,如果有键按下根据其键值跳转到相应的子程序中进行执行,完成相应的功能后会自动跳转回来。
这样整个程序就实现了连续有效的运行。
2.按键扫描子程序:首先根据端口状态判断是否有键按下,如果没有就跳过读键值这个阶段。
如果有键按下就通过扫描判断出所按下键的位置,并相应的形成键值,保存在一个全局变量中等待被查询。
然后跳出子程序。
3.显示子程序:该子程序在LED扫描中被调用。
首先根据参数判别是显示时间还是显示闹钟,然后针对六个位形成相应的段码值。
通过参数值在相应位输出显示。
4.时间及闹钟设定子程序:本程序完成时间的修改及闹钟的设置,对时间和闹钟的设置是通过修改时间值的全局变量或闹钟值的全局变量来完成的。
在修改过程中正在修改位用时间调整键来显示,当长按时间调整键时,显示闹钟调整页面,当六位全部修改完毕,或者按下确定/退出键后自动跳出子程序。
5.响铃子程序:当设定的闹钟时间到时,转入本程序执行。
本程序通过读取频率表来设定T1定时中断的设定,以在响铃端口输出频率一定的脉冲波。
同时通过读取时间表控制每一频率所响的时间,这样就可以在扬声器输出音乐了。
同时在程序中添加了键盘扫描环节,一旦按下退出键,就关闭T1定时器,跳出程序,响铃就可以终止。
六.调试本次仿真实验,在调试时遇到了不少的困难,比如说按键一直闪烁,通过查资料,最后注释掉了按建时的延时即可。
闹钟键一直没有设计好,进入闹钟设置页面后,调整闹钟的时候时间也在变化,造成了盲调,是本实验的一大缺陷。
但是本次实验采用的是“模块化”,所以调试过程中可以清楚的知道是那部分出了问题,征对性的进行修改,避免了不必要的麻烦,也加快了实验进程。
独立按键数字电子钟,只是我们组为做矩阵键盘数字钟做的准备工作,通过简单的独立按键掌握数字电子钟的原理以及某些子程序的编程,从而为我们后面仿真矩阵键盘电子钟做了很好的铺垫。
七.心得体会通过这次课程设计,使我们更深刻地感受到课程设计的综合性之强大,完成对数字电子钟的设计与制作调试,使我们对单片机应用系统的设计过程进行了掌握。
当我们选择一个课程设计的时候,不是马上就动手做,而是先进行可行性论证。
首先提出几套方案,然后对各个方案进行对比,由易到难,先做出一个简单的仿真,然后根据要求一步步修改,直至达到最终要求。
从刚开始对软件的不熟悉,对编程的不熟悉,通过查找资料,请教同学老师,不断克服困哪。
这次的课程设计,我作为我们小组的组长,我主要是负责画仿真图,调试,以及其中一部分程序的编写,最终还要把几部分程序都结合在一起,任务艰巨,但是也具有挑战性,让我学会了很多东西,最终我们团结一致,成功调制除了电子钟。
调试成功的那一刻,大家都很兴奋,几天的辛苦终于得到了很大的收获。
源程序如下:#include<reg51.h>#include<absacc.h>#define uchar unsigned char#define uint unsigned int/*七段共阴管显示定义*/uchar code dispcode[ ]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F, }; //显示的0-9以及小数点的段码/*定义并初始化变量*/uchar second=11;uchar minute=11;uchar hour=11;uchar mstcnt=0;uchar m=800;uchar shi=8; //闹铃功能uchar fen=8;uchar miao=8;uchar bjcs; //报警次数uchar j;uchar i;sbit P1_0=P1^0; // second 调整定义用符号P1_0来表示P1.0引脚sbit P1_1=P1^1; //minite调整定义sbit P1_2=P1^2; //hour调整定义sbit P1_3=P1^3; //复位清零sbit P1_4=P1^4; //暂停sbit P1_5=P1^5; // 闹钟sbit P2_7=P2^7; //蜂鸣器sbit P1_6=P1^6; //启动/*函数声明*/void delay(uchar k ); //延时子程序void time_pro( ); //时间处理子程序void display( ); //显示子程序void keyscan( ); //键盘扫描子程序void dingshi( ); //定时void baojingsheng(); //闹钟/*****************************//*按键去抖//****************************/void delay20ms(void){for(i=0;i<100;i++)for(j=0;j<60;j++);}/*****************************//*延时子程序*//****************************/void delay (uchar k){uchar j;while((k--)!=0){for(j=0;j<125;j++){;}}}/**************************//*时间处理子程序*//**************************/void time_pro( void){if(second==60) //秒钟设为60进制{ second=0;minute++;if( minute==60) //分钟设为60进制{ minute=0;hour++;if(hour==24) //时钟设为24进制{hour=0; }}}}/*****************************//* 显示子程序*//*****************************/void display(void){P2=0xfe;P0=dispcode[hour/10]; //显示小时的十位delay(4);P2=0xfd;P0=(dispcode[(hour%10)])|0X80;delay(4);P2=0xfb;P0=dispcode[minute/10]; //显示分的十位delay(4);P2=0xf7;P0=(dispcode[minute%10])|0X80; //显示分的个位delay(4);P2=0xef;P0=dispcode[second/10]; //显示秒的十位delay(4);P2=0xdf;P0=dispcode[second%10]; //显示秒的个位delay(4);}/*******************************//*键盘扫描子程序*//*******************************/void keyscan (void){if(P1_0==0) //按键1 秒的调整{display();if(P1_0==0){second++;while(!P1_0)display();if(second==60){ second=0;minute++;}}}if(P1_1==0) //按键2 分的调整{display();if(P1_1==0){minute++;while(!P1_1)display();if(minute==60){ minute=0;hour+=1;}}}if(P1_2==0) //按键3 小时的调整{display( );if(P1_2==0){hour++;while(!P1_2)display();if(hour==24){hour=0; }}}if(P1_3==0) //复位清零{display( );if(P1_3==0){hour=0;minute=0;second=0 ;}}if(P1_4==0) //暂停{ delay (100);if(P1_4==0){ while(P1_4==0)TR0=0;//定时器0关闭}}if(P1_6==0) //启动{ delay (100);if(P1_6==0){ while(P1_6==0)TR0=1;//定时器0启动}}if(P1_5==0)//按住P1_5不松,显示闹铃设置界面,分别按P1_1、P1_2、P1_3设置闹铃时间。