多功能时钟流程图
基于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单片机的工作原理基于冯诺伊曼体系结构,即程序指令和数据存储在同一块存储器中,通过总线系统进行传输。
多功能数字钟——校时闹钟之欧阳家百创编

电子电路综合实验报告欧阳家百(2021.03.07)——多功能数字钟设计目录设计理念2设计要求3设计目的3设计要求4总体设计概要4振荡器电路4输出波形仿真图如图所示5分频器电路5时间计时单元的设计5译码与显示电路的设计6校时电路的设计6方案一:7方案二:8定时控制电路的设计8·电子系统中常见实际问题的分析9面包板和芯片的测试9时间计数电路的连接与测试9校正电路9主要芯片介绍10主体电路的装调10时钟结果仿真12面包板的使用及注意事项12实验用到的器件13设计理念20世纪末,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。
数字钟已成为人们日常生活中:必不可少的必需品,广泛用于个人家庭以及车站、码头、剧场、办公室等公共场所,给人们的生活、学习、工作、娱乐带来极大的方便。
由于数字集成电路技术的发展和采用了先进的石英技术,使数字钟具有走时准确、性能稳定、集成电路有体积小、功耗小、功能多、携带方便等优点,,因此在许多电子设备中被广泛使用。
电子钟是人们日常生活中常用的计时工具,而数字式电子钟又有其体积小、重量轻、走时准确、结构简单、耗电量少等优点而在生活中被广泛应用,因此本次设计就用数字集成电路和一些简单的逻辑门电路来设计一个数字式电子钟,使其完成时间及星期的显示功能。
本次设计以数字电子为主,分别对1S时钟信号源、秒计时显示、分计时显示、小时计时显示、整点报时及校时电路进行设计,然后将它们组合,来完成时、分、秒的显示并且有整点报时和走时校准的功能。
并通过本次设计加深对数字电子技术的理解以及更熟练使用计数器、触发器和各种逻辑门电路的能力。
电路主要使用集成计数器、译码集成电路、LED数码管及各种门电路和基本的触发器等,电路使用5号电池共电,很适合在日常生活中使用。
(完整word版)基于51单片机多功能电子时钟报告

单片机课程设计报告多功能电子数字钟姓名:学号:班级:指导教师:目录一课程设计题目—-—-———--—--—-—--------—-——---—- 3二电路设计--------——-——---—--——---——--————-——--—- 4三程序总体设计思路概述——-------———-——--——5四各模块程序设计及流程图——--—---------——6五程序及程序说明见附录-—-——————-—-—---—-- **六课程设计心得及体会-----————-————--——--—- 11七参考资料—-—-—---—--———-———--————-—-----—----—-—12一题目及要求本次单片机课程设计在Proteus软件仿真平台下实现,完成电路设计连接,编程、调试,仿真出实验结果。
具体要如下:用8051单片机设计扩展6位数码管的静态或动态显示电路,再连接几个按键和一个蜂鸣器报警电路,设计出一个多功能电子钟,实现以下功能: (1)走时(能实现时分秒,年月日的计时)(2)显示(分屏切换显示时分秒和年月日,修改时能定位闪烁显示)(3)校时(能用按键修改和校准时钟)(4)定时报警(能定点报时)本次课程设计要求每个学生使用Proteus仿真软件独立设计制作出电路图、完成程序设计和系统仿真调试,验收时能操作演示.最后验收检查结果,评定成绩分为:(1)完成“走时+显示+秒闪”功能—-——及格(2)完成“校时修改”功能---—中等(3)完成“校时修改位闪"---—良好(4)完成“定点报警”功能,且使用资源少----优秀二电路设计(电路设计图见附件电路图)(1)采用89C51型号单片机(2)采用8位共阴数码管(3)因为单片机输出高电平时输出的电流不足以驱动数码管,所以在P0口与8位数码管之间加74LS373来驱动数码管(4)P2口与数码管选择位直接加74LS138译码器(5)蜂鸣器接P3。
7口。
多功能数字钟设计报告+程序+原理图

实验设计报告项目名称:多功能数字钟电路设计作者姓名:指导教师:年级专业:所在学院:提交日期摘要20世纪末,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。
现代生活的人们越来越重视起了时间观念,可以说是时间和金钱划上了等号。
对于那些对时间把握非常严格和准确的人或事来说,时间的不准确会带来非常大的麻烦,所以以数码管为显示器的时钟比指针式的时钟表现出了很大的优势。
数码管显示的时间简单明了而且读数快、时间准确显示到秒。
而机械式的依赖于机械震荡器,可能会导致误差。
数字钟是采用数字电路实现对“时”、“分”、“秒”数字显示的计时装置。
数字钟的精度、稳定度远远超过老式机械钟。
在这次设计中,我们采用LED数码管显示时、分、秒,以24小时计时方式,根据数码管动态显示原理来进行显示,用12MHz的晶振产生振荡脉冲,定时器计数。
在此次设计中,电路具有显示时间的其本功能,还可以实现对时间的调整。
数字钟以其小巧,价格低廉,走时精度高,使用方便,功能多,便于集成化而受广大消费的喜爱,因此得到了广泛的使用。
数字钟从原理上讲是一种典型的数字电路,其中包括了组合逻辑电路和时序电路。
因此,我们此次设计与制做数字钟就是为了了解数字钟的原理,从而学会制作数字钟.而且通过数字钟的制作进一步的了解各种在制作中用到的中小规模集成电路的作用及实用方法。
且由于数字钟包括组合逻辑电路和时叙电路。
通过它可以进一步学习与掌握各种组合逻辑电路与时序电路的原理与使用方法。
目录第一章:设计要求 (1)第二章:方案论证 (2)第三章:单元电路设计与计算 (13)第四章:软件设计 (20)第五章:系统测试 (36)第六章:结论 (38)参考文献 (39)附录 (40)第一章:设计要求1.1 基本要求1.1.1 时钟功能设计一个具有时、分、秒计时的数字钟电路,计时采用24小时制。
多功能数字电子钟_VHDL

《VHDL课程设计》实验报告多功能数字电子钟姓名:班级:学号:指导老师:成绩:完成时间:2008年1月4日星期五完成地点:502机房一、实验目的1.学习数字系统设计的自顶向下设计法及控制器的设计。
2.加深利用EDA技术实现数字系统的体会。
二、实验仪器及器件1.EDA 开发软件(1套)2.微机(1台)3.实验开发系统(1台)4.其他器件与材料(若干)三、实验要求及设计方案1.设计一个具有24进制计时、显示、整点报时、时间设置和闹钟功能的数字钟,要求时钟的最小分辨率时间为1s。
2.数字钟的设计方案如下:系统输入:mode为计时显示和闹钟定时显示转换输入;set为校时和定时设置的时、分、秒转换输入;k为校时和定时设置的时、分、秒手动加1输入;clk为时钟信号;reset为系统复位信号。
输入信号均由按键产生。
系统输出:LED显示输出;蜂鸣器(bell)声音信号输出。
3.多功能数字钟系统功能的具体描述如下:计时:正常工作状态下,每日按24小时计时制计时并显示,蜂鸣器逢整点报时。
校时:在计时显示状态下,按下“set键”,进入“小时”校时状态,再次按下“set键”,进入“分”校时状态,继续按下“set键”,进入“秒”校时状态,第四次按下“set键”又回复到正常计时显示状态。
1)“小时”校时状态:进入“小时”校时状态后,显示“小时”的数码管闪烁,每按动“k”键一次,“小时”+1,若不按动“k”键则小时数不变,一直按下“k”键则小时数一4Hz的频率递增计数。
2)“分”校时状态:进入“分”校时状态后,显示“分”的数码管闪烁,每按动“k”键一次,“分”+1,若不按动“k”键则分数不变,一直按下“k”键则分数一4Hz的频率递增计数。
3)“秒”校时状态:进入“秒”校时状态后,显示“秒”的数码管闪烁,每按动“k”键一次,“秒”+1,若不按动“k”键则秒数不变,一直按下“k”键则秒数一4Hz的频率递增计数。
整点报时:蜂鸣器在“59”分钟的第51、53、55、57秒发出频率为512Hz的低音,在“59”秒发出频率为1024Hz的高音,结束时为整点。
多功能时钟流程图

多功能时钟流程图一. 功能确认● 时钟功能:1. 时钟显示小时和分钟2. 用户可以通过按键调整时钟的时间3. 无论当前时钟是否在前台显示,时钟始终是运行的。
● 定时闹铃功能:1. 用户可以通过按键设置闹铃时间(小时和分钟),设置完成后可以按确定键退出设置。
2. 当系统时钟的时间等于预设的闹铃时间时,系统蜂鸣器响5秒钟。
3. 用户可以设置两个闹铃。
● 秒表功能:1. 用户可以通过按键进入秒表功能,也可以退出秒表状态。
2. 秒表高2位显示秒,低2位显示百分之一秒。
3. 可以通过按键暂停、(继续)运行秒表,可以通过按键对秒表清零。
二. 状态分析及模块分割根据以上的分析,系统共有三个大的功能:时钟、设置定时、秒表,各个功能之间可以通过按键来切换,且各个功能内部仍需要使用按键来处理,故可以考虑将系统定义为三个状态(statu s ):时钟状态、设置定时状态、秒表状态。
显然,同一个按键在不同状态下的功能是不一样的。
这样,在某种状态下,按下某个按键,代表唯一确定的含义。
这种处理方法可以称为“状态—按键”法。
这样我们可以把程序对应地分成以下三个任务模块。
这个流程就可以作为主流程(main ()函数),当然,A 、B 、C 三框内部的流程仍(处理时钟状态下的所有事务)(处理设置闹铃状态下的所有事务)(处理秒表状态下的所有事务)有待于细化。
三.详细设计A框内部要处理的事务见第一部分:功能确认。
在此,为了完成时钟调整功能,我们可以定义K ey_2为小时调整键,Key_3为分钟调整键,每次按下键,小时数或分钟数加1。
当然,当用户没有按键的时候,我们还得经常保持显示屏上的时间刷新。
A框:时钟状态下的处理流程:B框要处理的功能是设置定时闹铃的事务,这里需要预设闹铃时间,同样可以定义Key_2为小时预设键,Key_3为分钟预设键,而Key_1则负责状态切换,当我们预设好时间之后,按下Key_1,就算完成了闹铃预设,让系统离开当前状态,转到秒表状态上去。
基于AT89C52的多功能LCD时钟(含流程图)

基于AT89C52的多功能LCD时钟项目设计报告设计者:计算机0931_袁扬设计时间:2011年3月21号基于AT89C52的多功能LCD时钟基于AT89C52的多功能LCD时钟[项目概述]随着人们生活水平的不断提高,单片机控制无疑是人们追求的目标之一,它所给人带来的方便也是不可否定的,要为现代人工作、科研、生活、提供更好的更方便的设施就需要从数单片机技术入手,一切向着数字化控制,智能化控制方向发展。
本设计是数据采集及处理,键盘控制,显示系统及报警系统与单片机有效结合,本设计是通过在“单片机原理及应用”课堂上学习的知识的综合应用,以及查阅资料,培养一种自学的能力。
并且引导一种创新的思维,把学到的知识应用到日常生活当中。
在设计的过程中,不断的学习,思考和同学间的相互讨论,运用科学的分析问题的方法解决遇到的困难,掌握单片机系统一般的开发流程,学会对常见问题的处理方法,积累设计系统的经验,充分发挥教学与实践的结合。
全能提高个人系统开发的综合能力,开拓了思维,为今后能在相应工作岗位上的工作打下了坚实的基础。
[项目要求]我设计的LCD时钟系统是由中央控制器、时钟系统、报警系统,显示器及键盘部分组成。
控制器采用单片机AT89S52,时钟系统用时钟芯片DS1302,用LCD 液晶12864F作为显示器,用蜂鸣器及发光二极管构成声光报警器。
单片机通过时钟芯片DS1302获取时间数据,对数据处理后显示时间;单片机再把时间数据送液晶显示器12864F显示,12864F还可以显示汉字;键盘是用来调时的。
[关键字]:单片机LCD液晶DS1302 12864一系统设计1.时钟温度系统总体设计初步确定设计系统由单片机主控模块、时钟模块、功能面板模块、报警模块、显示模块、键盘接口模块共6个模块组成,电路系统框图如图(1)所示。
二.硬件设计部分1、电路原理图LCD 液晶时钟设计原理电路图2、元件清单主 控器 件AT89S52功能面板 系统DS1320 时间采集系统12864 显示系统蜂鸣器LED 报警系统键盘 控制系统LCD液晶时钟设计元件清单名称型号数量单片机AT89S51 1液晶显示器JHD12864F 1电阻10k(1/4w) 5电阻1k 5电阻200欧姆 5电阻 4.7k 5电阻 4.7k 5电位器10k 1电容10u/16V 1电容30p 4三极管9013 1轻触按键小(尺寸6×6mm×5.5) 4蜂鸣器 5 V 1晶振12M(小体积) 1底座8脚 1底座40脚 1发光二极管红 1发光二极管绿 1时钟芯片DS1302 1纽扣电池及底座3V(大) 1液晶插槽20孔 1单排针3排120杜邦线及杜邦头1股40电路板AOA5 1 三.软件设计部分本系统的软件系统主要分为主程序、液晶程序、时钟程序、键盘控制程序、液晶显示程序。
数字钟流程图(汇编语言)

Mov hour,#0
Mov min,#0
Mov sec,#0
Mov xsstate,#0
Clr addflag
Clr decflag
Mov seccs,#0
Mov tmod,#01h
Mov th0,#03ch
Mov tl0,#0b0h
Setb tr0
Clr sectime
秒表流程图及相应的程序
(汇编语言版)
定义(资源分配):
显示的数据:
秒的高位、秒的低位、毫秒的高位、毫秒的低位。秒数据、毫秒数据定义。
数码管的段输入、位控制定义。
按键的定义、显示状态定义。
时间状态定义:
hour_h data 30h
hour_l data 31h
min_h data 32h
min_l data 33h
key1bit p3.2
key2 bit p3.3
key3 bit p3.4
addflag bit 20h
decfalg bit 21h
xsstate data 39h
secflagdata 3ah;定义50ms的次数
sectime bit 22h;定义1s到
主程
Org 0000h
Ajmp main
Cjnz a,60,shujuchuliend
Mov sec,#0
Inc min
Jnb decflag,anjianchuliend
Dec min
Clr decflag
Mov a,min
Cjnz a,255,anjianchuliend
Mov min,#59
Acall anjianchuliend
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
多功能时钟流程图
一. 功能确认
● 时钟功能:
1. 时钟显示小时和分钟
2. 用户可以通过按键调整时钟的时间
3. 无论当前时钟是否在前台显示,时钟始终是运行的。
● 定时闹铃功能:
1. 用户可以通过按键设置闹铃时间(小时和分钟),设置完成后可以按确定键退出设
置。
2. 当系统时钟的时间等于预设的闹铃时间时,系统蜂鸣器响5秒钟。
3. 用户可以设置两个闹铃。
● 秒表功能:
1. 用户可以通过按键进入秒表功能,也可以退出秒表状态。
2. 秒表高2位显示秒,低2位显示百分之一秒。
3. 可以通过按键暂停、(继续)运行秒表,可以通过按键对秒表清零。
二. 状态分析及模块分割
根据以上的分析,系统共有三个大的功能:时钟、设置定时、秒表,各个功能之间可以通过按键来切换,且各个功能部仍需要使用按键来处理,故可以考虑将系统定义为三个状态(status ):时钟状态、设置定时状态、秒表状态。
显然,同一个按键在不同状态下的功能是不一样的。
这样,在某种状态下,按下某个按键,代表唯一确定的含义。
这种处理方法可以称为“状态—按键”法。
这样我们可以把程序对应地分成以下三个任务模块。
这个流程就可以作为主流程(main ()函数),当然,A 、B 、C 三框部的流程仍有
(处理时钟状态下的所有事务) (处理设置闹铃状态下的所有事务) (处理秒表状态下的所有事务)
待于细化。
三.详细设计
A框部要处理的事务见第一部分:功能确认。
在此,为了完成时钟调整功能,我们可以定义Key_2为小时调整键,Key_3为分钟调整键,每次按下键,小时数或分钟数加1。
当然,当用户没有按键的时候,我们还得经常保持显示屏上的时间刷新。
A框:时钟状态下的处理流程:
B框要处理的功能是设置定时闹铃的事务,这里需要预设闹铃时间,同样可以定义Key_2为小时预设键,Key_3为分钟预设键,而Key_1则负责状态切换,当我们预设好时间之后,按下Key_1,就算完成了闹铃预设,让系统离开当前状态,转到秒表状态上去。
B框:设置闹铃状态下的处理流程:
C框要处理的是秒表的功能,这里可以定义Key_2为启动/暂停键,Key_3为复位清零键,而Key_1依然负责状态切换,用户如果按下Key_1,就让系统离开秒表状态,转
到时钟状态上去。
C框:设置秒表状态下的处理流程:
四.代码框架
全局定义:
uchar code zixing[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; uchar code ziwei[]={0x10,0x20,0x40,0x80};
uchar *h,*m;
uchar hour=12,min=0,sec=0,h_ding,m_ding,count=0,ms_50,ms_10,miaobiao_sec; sbit dp=P0^7;
sbit k1=P3^2; //3个按键定义
sbit k2=P3^3;
sbit k3=P3^4;
sbit sound=P2^3; //蜂鸣器定义
sfr ZIXING=0x80; //p0口输出字形
sfr ZIWEI=0xa0; //P2口输出字位
typedef enum //枚举类型:3种状态//
{
CLOCK,
SET_RING1,
MIAOBIAO_RUN,
}STATE;
STATE status;
typedef struct //定时时间的数据结构//
{
uchar hour;
uchar min;
}DINGSHI_TIME; //C语言中的结构体知识
DINGSHI_TIME dingshi_time;
#define NO_KEY -1 //定义一下方便使用
#define KEY_1 1
#define KEY_2 2
#define KEY_3 3
主程序:
Main()
{
//一些初始化的工作,如状态赋初值,寄存器设置等
while(1) //程序循环
{
switch(status)
{
case CLOCK:
key_process_clock(); // 处理时钟状态下的按键和显示//
break;
case SET_RING1:
key_process_set_dingshi(); //处理设置定时状态下的按键和显示// break;
case MIAOBIAO_RUN:
key_process_miaobiao_run(); //处理秒表状态下的按键和显示// break;
}
if(
(hour==dingshi_time.hour) //定时响铃//
&&(min==dingshi_time.min)
&&(sec<5))
)
sound=0;
else sound=1;
}
}
秒表状态处理函数样例:
/********秒表运行状态按键处理及显示*********/
void key_process_miaobiao_run()
{
switch(get_key())
{
case KEY_1:
TR1=0;
status=CLOCK; //回到时钟显示状态
break;
case KEY_2:
TR1=!TR1; //定时器1暂停、继续
break;
case KEY_3:
TR1=0; //秒表复位
miaobiao_sec=0;
ms_10=0;
break;
case NO_KEY: //无按键操作//
show_miaobiao();
break;
}
}
其他函数说明:
/*********** 检测按键动作函数 *************/
int get_key()
{
uchar d;
if(!k1)
{
for(d=0;d<50;d++);
if(!k1)
{
while(!k1);
return(KEY_1);
}
}
if(!k2)
{
for(d=0;d<50;d++);
if(!k2)
{
while(!k2);
return(KEY_2);
}
}
if(!k3)
{
for(d=0;d<50;d++);
if(!k3)
{
while(!k3);
return(KEY_3);
}
}
else return NO_KEY;
}
2012年1月4日。