基于-单片机的电子时钟设计报告(LCD显示)

合集下载

基于单片机的电子时钟课程设计报告

基于单片机的电子时钟课程设计报告

目录一、引言········二、设计课题·········三、系统总体方案·········四、系统硬件设计······1.硬件电路原理图2.元件清单五、系统软件设计·········1.软件流程图2.程序清单六、系统实物图········七、课程设计体会········八、参考文献及网站·········九、附录·········一.引言单片机因将其主要组成部分集成在一个芯片上而得名,就是把中央处理器、随机存储器、只读存储器、中断系统、定时器/计数器以及I/O接口电路等部件集成在一个芯片上。

基于单片机设计的数字钟精确度较高,因为在程序的执行过程中,任何指令都不影响定时器的正常计数,即便程序很长也不会影响中断的时间。

数字钟是采用数字电路实现对日期、时、分、秒,数字显示的计时装置,由于数字集成电路的发展和石英晶体振荡器的广泛应用,使得数字钟的精度,远远超过老式钟表,钟表的数字化给人们生产生活带来了极大的方便,而且大大地扩展了钟表的报时功能。

数字钟已成为人们日常生活中的必需品,广泛应用于家庭、车站、码头、剧院、办公室等场所,给人们的生活、学习、工作带来极大的方便。

基于单片机的LCD电子时钟的设计

基于单片机的LCD电子时钟的设计

基于单片机的LCD电子时钟的设计作者:朱飒飒来源:《电子世界》2013年第09期【摘要】本设计采用AT89S52单片机为核心,构成单片机控制电路,阐述了系统工作原理,给出了软件流程。

AT89S52是一种8位Flash单片机。

该器件采用ATMEL非易失存储器制造技术制造,与工业标准的80C51和80C52指令集和输出管脚相兼容。

结合DS1302时钟芯片和Flash存储器,完成时间的自动调整和掉电保护。

年、月、日以及星期、时、分、秒全部信息用液晶显示。

通过按键的组合可以实现时间日期的调整以及时间温度的语音播报。

【关键词】AT89S52;LCD;电子时钟;DS1302时钟芯片;语音1.引言时钟是在人们日常生活中用以掌握一天时间的一种器具,关乎人们一天生产劳动的作息调整。

每家每户、每所学校、每个公司等等都能找到时钟的踪迹,时钟无处不在,人们无时无刻不在了解时间。

在这快速发展的年代,时间对人们来说是越来越宝贵,在快节奏的生活中,人们往往忘记了时间,一旦遇到重要的事情而忘记了时间,这将会带来很大的损失。

因此时钟是人们必不可少的。

传统的时钟绝大多数都是发条驱动式、电机传动式或电钟式等机械时钟,部分电子器械中也有使用时间继电器的。

相对于传统的时钟,电子时钟的体积小、重量轻、造价低、精度高、寿命长、而且安全可靠、调整方便、适于频繁使用。

所以电子时钟的发展必定大有前途。

同时随着现代电子技术的发展,电子时钟也在不断的进步,朝着更多用途、更高精度、更小体积发展着。

本设计实现一款可正常显示时钟、带有定时闹铃的多功能电子时钟。

本课题通过AT89S52单片机来设计电子时钟,采用C语言进行编程,可以实现以下一些功能:小时,分,秒和年,月,日的显示、定时报警功能。

本次设计的电子时钟系统由时钟电路,LCD显示电路,定时报警电路,按键调整电路四部分组成。

单片机通过软件编程,在LCD12864液晶屏上实现小时,分,秒和年,月,日的显示;利用时钟芯片DS1302来实现计时,定时功能;通过三个按键联合工作实现时间和闹钟的设置工作;到达设置的闹钟时间时,由蜂鸣器发声,起报警作用。

单片机电子时钟课程设计实验报告(1)

单片机电子时钟课程设计实验报告(1)

单片机电子时钟课程设计实验报告(1)单片机电子时钟课程设计实验报告一、实验内容本次实验的主要内容是使用单片机设计一个电子时钟,通过编程控制单片机,实现时钟的显示、报时、闹钟等功能。

二、实验步骤1.硬件设计根据实验要求,搭建电子时钟的硬件电路,包括单片机、时钟模块、显示模块、按键模块等。

2.软件设计通过C语言编写单片机程序,用于实现时钟功能。

3.程序实现(1)时钟显示功能通过读取时钟模块的时间信息,在显示模块上显示当前时间。

(2)报时功能设置定时器,在每个整点时,通过发出对应的蜂鸣声,提示时间到达整点。

(3)闹钟功能设置闹钟时间和闹铃时间,在闹钟时间到达时,发出提示蜂鸣,并在屏幕上显示“闹钟时间到了”。

(4)时间设置功能通过按键模块实现时间的设置,包括设置小时数、分钟数、秒数等。

(5)年月日设置功能通过按键模块实现年月日的设置,包括设置年份、月份、日期等。

三、实验结果经过调试,电子时钟的各项功能都能够正常实现。

在运行过程中,时钟能够准确、稳定地显示当前时间,并在整点时提示时间到达整点。

在设定的闹铃时间到达时,能够发出提示蜂鸣,并在屏幕上显示“闹钟时间到了”。

同时,在需要设置时间和年月日信息时,也能够通过按键进行相应的设置操作。

四、实验感悟通过本次实验,我深刻体会到了单片机在电子设备中的广泛应用以及C 语言在程序设计中的重要性。

通过实验,我不仅掌握了单片机的硬件设计与编程技术,还学会了在设计电子设备时,应重视系统的稳定性与可靠性,并善于寻找调试过程中的问题并解决。

在今后的学习和工作中,我将继续加强对单片机及其应用的学习与掌握,努力提升自己的实践能力,为未来的科研与工作做好充分准备。

基于单片机的lcd1602电子时钟设计

基于单片机的lcd1602电子时钟设计

基于单片机的LCD1602电子时钟设计一、设计任务和目的1.1、设计任务(1):用单片机设计基于LCD1602的电子时钟,显示时间和日期;(2):误差精度控制在1s/天;(3):具有时间和日期的校准功能;(4):能区分某年是闰年或平年,并对应显示2月份的天数;(5):根据月份的不同显示不同的最大日数;(6):搭建仿真电路图,模拟单片机要实现的功能;(7):焊接单片机开发板;(8):编写程序,下载并调试,实现要求的功能。

1.2、设计目的(1):熟练掌握KEIL软件的使用方法;(2):熟练掌握PROTEUS软件的使用方法;(3):掌握单片机I/O接口的工作原理;(4):掌握LCD显示器的工作原理及编程方法;(5):掌握独立式键盘的工作原理及编程使用方法;(6):掌握单片机的下载使用方法。

二、设计思路和方案论证2.1、设计思路电路总体上分为控制和显示部分。

以单片机最小系统作为核心控制电路,控制LCD显示,具体显示内容及方式由软件来完成;由于有时钟和日期的调节功能需要校准电路和基本的复位电路,复位电路采用按键复位,调节键、加1键、减1键三个按键完成,共需四个按键;计时功能由固定频率的晶振完成(采用11.0592MHz);显示部分主要采用LCD1602作为显示。

2.2、方案论证(1):时钟芯片的选择和论证方案一:采用DS1302时钟芯片实现时钟,DS1302芯片是一种高性能的时钟芯片,可自动对秒、分、时、日、月、年以及闰年补偿的年进行计数,精度也较高,工作电压2.5V~5.5V范围内,功耗也较低,但价格比较贵。

方案二:直接采用单片机定时计数器提供秒信号,使用程序实现秒、分、时、日、月、年计数。

采用此方案实现虽然有一定的时间误差,但可减少芯片的使用,节约成本,易于实现,符合现实选用,所以采用此种作为时钟信号发生器。

(2):显示模块选择方案和论证:方案一:采用点阵式图形LCD12864液晶显示屏,液晶显示屏的显示功能强大,可显示文字,图形,显示多样,清晰可见,但是价格昂贵,需要的接口线多,所以在此设计中不采用点阵式图形LCD12864液晶显示屏。

单片机电子时钟课程设计报告

单片机电子时钟课程设计报告

单片机电子时钟课程设计报告一、设计目的。

本课程设计旨在通过单片机技术的应用,设计并制作一个简单的电子时钟。

通过这一设计,学生将能够掌握单片机的基本原理和应用,培养学生的动手能力和创新意识,提高学生的实际操作能力。

二、设计原理。

本电子时钟采用单片机作为控制核心,通过晶振产生的时钟信号来实现时间的计时和显示。

利用数码管来显示小时和分钟,通过按键来调整时间。

同时,通过蜂鸣器发出报时信号,实现基本的闹钟功能。

三、设计方案。

1. 硬件设计。

(1)单片机选择,本设计选用常见的51单片机作为控制核心,具有成本低、易于编程的特点。

(2)时钟电路,采用晶振作为时钟信号源,通过单片机的定时器来实现时间的计时。

(3)显示模块,采用数码管来显示小时和分钟,通过数码管的扫描显示来实现时间的动态显示。

(4)按键输入,设计按键来调整时间,包括调整小时和分钟。

(5)报时功能,通过蜂鸣器来实现基本的报时功能,可以设置闹钟时间。

2. 软件设计。

(1)时钟控制,通过单片机的定时器来实现时间的计时和更新。

(2)显示控制,设计数码管的扫描显示程序,实现时间的动态显示。

(3)按键处理,设计按键扫描程序,实现对时间的调整。

(4)报时功能,设计蜂鸣器的报时程序,实现基本的闹钟功能。

四、设计实现。

1. 硬件实现。

根据上述设计方案,完成了电子时钟的硬件连接和布线,保证各个模块之间的正常通讯和工作。

2. 软件实现。

编写了单片机的程序,实现了时钟的计时、显示和控制功能,保证了电子时钟的正常运行。

五、实验结果。

经过调试,电子时钟能够准确显示当前的时间,并能够通过按键调整时间和设置闹钟功能,报时功能也能够正常工作。

六、总结与展望。

通过本课程设计,学生掌握了单片机的基本原理和应用,培养了动手能力和创新意识。

在今后的学习和工作中,学生将能够更好地应用单片机技术,设计和制作更加复杂的电子产品。

同时,也为学生今后的科研和创新工作奠定了良好的基础。

(完整)基于51单片机电子时钟设计

(完整)基于51单片机电子时钟设计

(完整)基于51单片机电子时钟设计编辑整理:尊敬的读者朋友们:这里是精品文档编辑中心,本文档内容是由我和我的同事精心编辑整理后发布的,发布之前我们对文中内容进行仔细校对,但是难免会有疏漏的地方,但是任然希望((完整)基于51单片机电子时钟设计)的内容能够给您的工作和学习带来便利。

同时也真诚的希望收到您的建议和反馈,这将是我们进步的源泉,前进的动力。

本文可编辑可修改,如果觉得对您有帮助请收藏以便随时查阅,最后祝您生活愉快业绩进步,以下为(完整)基于51单片机电子时钟设计的全部内容。

基于51单片机的电子时钟设计摘要本电子时钟以STC89C52单片机作为主控芯片,采用DS12C887时钟芯片,使用1602液晶作为显示输出.该时钟走时精确,具有闹钟设置,以及可同时显示时间、日期等多种功能。

本文将详细介绍该电子时钟涉及到的一些基本原理,从硬件和软件两方面进行分析.【关键词】STC89C52单片机 DS12C887时钟芯片 1602液晶蜂鸣器目录一、绪论 (4)1.1 电子时钟功能 (4)1.2设计方案 (4)二、硬件设计 (4)2。

151单片机部分设计 (4)2.2 USB供电电路设计 (5)2.3 串行通信电路设计 (6)2.4 DS12C887时钟芯片电路的设计 (6)2。

5 1602LCD液晶屏显示电路设计 (7)2。

6蜂鸣器电路设计 (8)2。

7按键调整电路设计 (8)三、软件设计 (9)3.1系统程序流程图设计 (9)3。

2程序设计 (11)四、心得体会 (22)参考文献 (23)一、绪论1。

1电子时钟功能(1)在1602液晶上显示年、月、日、星期、时、分、秒,并且按秒实时更新显示。

(2)具有闹铃设定即到时报警功能,报警响起时按任意键可取消报警。

(3)能够使用实验板上的按键随时调节各个参数,四个有效键分别为功能选择键、数值增大键、数值减小键和闹钟查看键。

(4)每次有键按下时,蜂鸣器都以短“滴”声报警.(5)利用DS12C887自身掉电可继续走时的特性,该时钟可实现断电时间不停、再次上电时时间仍准确显示在液晶上的功能。

电子时钟实验报告

电子时钟实验报告

电子时钟实验报告电子时钟实验报告_电子时钟电子时钟实验报告一、实验目的学习8051定时器时间计时处理、按键扫描及LED数码管显示的设计方法。

二、设计任务及要求利用实验平台上4个LED数码管,设计带有闹铃功能的数字时钟,要求:1.在4位数码管上显示当前时间,显示格式为“时时分分”;2.由LED闪动做秒显示;3.利用按键可对时间及闹玲进行设置,并可显示闹玲时间。

当闹玲时间到蜂鸣器发出音乐,按停止键使可使闹玲声停止。

三、工作原理及设计思路利用单片机定时器完成计时功能,定时器0计时中断程序每隔5ms中断一次并当作一个计数,每中断一次计数加1,当计数200次时,则表示1s到了,秒变量加1,同理再判断是否1min钟到了,再判断是否1h到了。

为了将时间在LED数码管上显示,可采用静态显示法和动态显示法,由于静态显示法需要数据锁存器等较多硬件,可采用动态显示法实现LED显示。

闹铃声由交流蜂鸣器产生,电路如右图,当P1.7输出不同频率的方波,蜂鸣器便会发出不同的声音。

四、电路设计及描述(1) 硬件连接部分:在ZKS-03单片机综合实验仪上有四位共阳LED数码管,其标号分别为LED1~LED4。

为了节省MCU的I/O口,采用串行接口方式,它仅占用系统2个I/O口,即P1.0口和P1.1口,一个用作数据线SDA,另一个用作时钟信号线CLK,它们都通过跳线选择器JP1相连。

由于采用共阳LED数码管,它的阴极分别通过限流电阻R20~R27连接到控制KD_0~KD_Q7。

这样控制8个发光二极管,就需要8个I/O口。

但由于单片机的I/O口资源是有限的,因此常采用实验电路所示的串并转换电路来扩充系统资源。

串并转换电路其实质是一个串入并处的移位寄存器,串行数据再同步移位脉冲CLK的作用下经串行数据线SDA把数据移位到KD_0~KD_Q7端,这样仅需2根线就可以分别控制8个发光二极管的亮灭。

而P0口只能作地址/数据总线,P2口只能作地址总线高8位,P3.0、P3.1作为串行输入、输出接口,实验仪上单片机可用作I/O的口仅有:P1.0--P1.7 ,8位;P3.2、P3.3、P3.4、P3.5 ,4位。

51单片机电子时钟设计报告

51单片机电子时钟设计报告

51单片机电子时钟设计报告一、引言电子时钟是一种常见的电子产品,它通过控制数字显示器的数字显示,来实现时间的显示功能。

本报告将介绍一种基于51单片机的电子时钟设计方案。

二、系统架构本电子时钟系统采用分级结构,分为实时时钟电路、中央处理器、显示器等核心模块。

实时时钟电路模块负责提供系统的时钟信号,中央处理器负责对时间进行处理和控制,显示器用于显示时间。

三、硬件设计1.实时时钟电路实时时钟电路采用DS1302芯片,该芯片集成了时钟实时计数器,能够提供精确的时钟信号。

同时,芯片还内置了电池供电电路,当外部电源中断时,电子时钟可以通过电池继续工作。

2.中央处理器中央处理器使用51单片机,它具有较强的计算和控制能力,可以方便地对时间进行处理和控制。

通过与实时时钟电路的通信,中央处理器可以获取当前时间,并进行各种计算操作。

3.显示器显示器采用数码管,可以直观地显示时间。

通过中央处理器控制,可以实现小时、分钟、秒钟的显示,并且可以进行亮度的调节。

四、软件设计1.时钟管理中央处理器的软件主要负责对时间的管理。

它可以从实时时钟电路中获取当前时间,并根据需要进行时间的累加和更新。

同时,中央处理器还可以通过按键实现时间的手动调节。

2.显示控制中央处理器通过对数码管的控制,实现时间的显示功能。

它可以根据当前时间的变化,动态地更新数码管的显示内容。

同时,还可以通过按键控制,对数码管的亮度进行调节。

五、系统特点1.精确性高:采用DS1302芯片实时时钟电路,能够提供精确的时钟信号,确保时间的准确性。

2.易于操作:中央处理器软件通过按键实现时间的调节,操作简单方便。

3.显示效果好:采用数码管进行显示,显示效果清晰,易于观察时间。

六、应用领域本电子时钟设计适用于各种需要显示时间的场景,如家庭、办公室、学校等。

七、总结本报告介绍了一种基于51单片机的电子时钟设计方案。

通过实时时钟电路提供精确的时钟信号,中央处理器进行时间管理和控制,显示器进行时间的显示。

单片机课程设计实验报告(时钟、日历)..

单片机课程设计实验报告(时钟、日历)..

基于单片机的电子钟设计目录第一章电子时钟设计--—--—----————-—-—-—----—-—-——-——21.1 设计原理简介--————-—----—---——---———-----——-—-—-—21.2 设计功能-——--—-—————-———-—----————---——--——-——---—3第二章主要电路元器件介绍-—-———-———-—------———---32。

1 STC89C52 单片机简介—--—--—-—-—-—-—-—---—-——-———32。

1.1 单片机简介--——--——--——---—-—--————----—————--——-—-32。

1.2 主要特性---——-------—---—-—---————-—--—--———-—-—-—32.1.3 管脚功能说明—---———-———-———-——---—-————-—-—-—-————42.1。

4 LCD1602-—------——---—--—-——--———--——------——-—-—5第三章单元电路的硬件设计—-----————————————————--63.1 硬件原理框图—-———--—--——---—--—-—---------—--———-—-63。

2 单片机 STC89C52 系统的设计-—-—-—-—-————-—————-—----63。

3 时钟电路—————-----———-—---—-——---—--—-—-—-—--————--73.4 复位电路-----——-——--———-————-———-—----———---—--—-—-------—-—--—-——---—-—————-—---——--73。

5 键盘接口电路--—---—-———--—--——--——--——----———---——-83.6 LCD1602显示——---——————--—-—-——--——----—----———-————8第四章设计总原理图—-—-—---——-----—-———-9 第五章心得体会---—-------—————--——-—-——9第六章源程序---—-—-——-—-------———---—-——————-——----10前言:摘要数字钟已成为人们日常生活中必不可少的必需品,广泛用于个人家庭以及办公室等公共场所,给人们的生活、学习、工作、娱乐带来极大的方便.由于数字集成电路技术的发展和采用了先进的石英技术,使数字钟具有走时准确、性能稳定、携带方便等优点,它还用于计时、自动报时及自动控制等各个领域。

基于单片机的LCD电子时钟的设计

基于单片机的LCD电子时钟的设计
月、 日以及 星期、时、分 、秒全部信患用液 晶显示。通过按键 的组合可 以实现 时间 日期的调整 以及 时间温度 的语音播报 。 【 关键词 】A T 8 9 8 5 2 ;L C D;电子 时钟 ;D S 1 3 0 2 时钟芯 片;语 音
月 , 日的显示 ;利用 时钟芯片D S 1 3 0 2 来实 现 时钟 是 在人 们 日常 生活 中用 以掌 握一 计时 ,定时功 能;通过三 个按键联 合工作 实 天 时 间 的一 种器 具 , 关乎 人 们 一天 生 产劳 现时 间和 闹钟 的设置工作 ;到达设 置 的闹钟 动 的作 息调 整 。每 家每 户 、每所 学 校 、每 时 间时, 由蜂 鸣器 发声 ,起报警作 用 。系 统
了时 间 ,这将 会 带 来很 大 的 损失 。因 此时 钟是人 们必 不可少 的 。
传 统 的 时 钟 绝 大 多 数 都 是 发 条 驱 动
2 . 设计 原理分析 2 . 1控 制 电路选 择
度 数据 通 过数 码 管 进行 实 时 显示 ,但 数 码 管 的显 示 功 能具 有 局 限性 , 不能 达 到预 期
传 统 的方 案 常 采 用数 字控 制 电路 , 电 效 果 ,此 外 ,数 码 管驱 动 电路繁 琐 ,不 易 式 、 电机 传动 式 或 电钟 式 等机 械 时 钟 ,部 路较 简 单 ,成 本 较低 ,可 实现 电子 时钟 的 控制 。 分 电子 器械 中也 有 使用 时 间 继 电器 的 。相 基本 功 能 ,但 不 能在 原有 基础 上 再 加个 温 而 作 为 一种 输 出方 式 , 液 晶显示 最 大 对 于传 统 的 时钟 ,电子 时 钟 的体 积 小 、重 度 显示 电路 ,而 且会 造 成 电路 的不 稳 定 , 的特 点就 是 能够 实 现友 好 的 人机 界 面 ,它

基于单片机控制LCD显示电子时钟设计

基于单片机控制LCD显示电子时钟设计

基于单片机控制LCD显示电子时钟设计电子时钟可以说是现代社会不可或缺的电子产品之一,准确显示时间,为人们提供时间信息,是人们日常生活的重要组成部分。

本文将介绍一种基于单片机控制LCD显示电子时钟设计的方法。

该电子时钟设计基于单片机芯片,并通过LCD显示屏来实现时间的显示。

其主要原理是通过单片机芯片内部的定时器,不断进行时间的计时,然后将计时结果通过串行通信协议发送给LCD显示屏,LCD显示屏将计时结果显示出来。

具体设计步骤如下:1.硬件设计:a.选择适合的单片机芯片:根据设计要求选择适合的单片机芯片,一般选择具有定时器功能的芯片,如51系列单片机。

b.连接LCD显示屏:将单片机与LCD显示屏连接,一般是通过串行通信协议,如I2C或SPI协议来进行数据传输。

c.添加电源模块:为单片机和LCD显示屏提供合适的电源,一般是通过稳压电源芯片来提供稳定可靠的电源。

d.添加按键模块:添加按键模块可以实现对时间的设置和调整功能,一般通过矩阵按键的方式来实现。

2.软件设计:a.初始化单片机芯片:在程序开始时,进行单片机的初始化,初始化定时器、串行通信模块等相关硬件。

b.设置时间计时器:通过定时器模块来进行时间的计时,可以选择合适的时钟频率和计时周期,从而实现精确计时。

d.实现按键功能:通过检测按键状态来进行按键功能的触发,如修改时间、调整亮度等功能。

以上就是基于单片机控制LCD显示电子时钟的设计方法。

通过单片机芯片的计时功能和串行通信协议实现时间的显示,通过按键模块实现对时间的设置和调整功能。

设计好电路和编写好相应的程序后,就能够实现一个简单而准确的电子时钟。

制作一个采用LCD1602显示的电子钟

制作一个采用LCD1602显示的电子钟

计算机科学与工程系实验报告实验题目:制作一个采用LCD1602显示的电子钟班级:姓名:学号:日期:一、实验目的掌握单片机使用定时器/计数器控制字符型液晶显示器LCD1602的设计与软件编程二、实验要求在LCD上显示当前的时间。

显示格式为“时时:分分:秒秒”。

设有4个功能键k1~k4,功能如下:(1)k1——进入时间修改。

(2)k2——修改小时,按一下k2,当前小时增1。

(3)k3——修改分钟,按一下k3,当前分钟增1。

(4)k4——确认修改完成,电子钟按修改后的时间运行显示。

三、实验要求提交的实验报告中应包括:电路原理图、实验设计思路、C51源程序(含注释语句)、运行效果(含运行截图与说明)、实验小结三、硬件电路原理图的设计四、编程思路及C51源程序编程思路:1、实现当按下K1之后,使中断T0停止计数2、实现当按下K2之后,使小时加一3、实现当按下K3之后,使分钟加一4、实现当按下K4之后,使中断T0恢复计数源程序:#include<reg51.h>#ifndef LCD_CHAR_1602_2005_4_9#define LCD_CHAR_1602_2005_4_9#define uchar unsigned char#define uint unsigned intsbit lcdrs = P2^0;sbit lcdrw = P2^1;sbit lcden = P2^2;void delay(uint z)//延时函数,此处使用晶振为11.0592MHz {uint x,y;for(x=z;x>0;x--){for(y=110;y>0;y--){;}}}void write_com(uchar com) //写入指令数据到lcd{lcdrw=0;lcdrs=0;P3=com;delay(5);lcden=1;delay(5);lcden=0;}void write_data(uchar date) //写入字符显示数据到lcd{lcdrw=0;lcdrs=1;P3=date;delay(5);lcden=1;delay(5);lcden=0;}void init1602()//1602液晶初始化设定{lcdrw=0;lcden=0;write_com(0x3C);write_com(0x0c);write_com(0x06);write_com(0x01);write_com(0x80);}/*void write_string(uchar *pp,uint n)//采用指针的方法输入字符,n为字符数目{int i;for(i=0;i<n;i++)write_data(pp[i]);}*/void write_sfm(uchar add,uchar date)//向指定地址写入数据{uchar shi,ge;shi=date/10;ge=date%10;write_com(0x80+add);write_data(0x30+shi);write_data(0x30+ge);}#endif#define uchar unsigned char#define uint unsigned intsbit Key1 = P1^0;sbit Key2 = P1^1;sbit Key3 = P1^2;sbit Key4 = P1^3;uchar int_time;//定义中断次数计数变量uchar second;//秒计数变量uchar minute;//分钟计数变量uchar hour;//小时计数变量uchar code date[]=" H.I.T. CHINA ";//LCD第1行显示的内容uchar code time[]=" TIME 23:59:55 ";//LCD第2行显示的内容uchar second=55,minute=59,hour=23;void clock_init(){uchar i,j;for(i=0;i<16;i++){write_data(date[i]);}write_com(0x80+0x40);for(j=0;j<16;j++){write_data(time[j]);}}void clock_write( uint s, uint m, uint h){write_sfm(0x47,h);write_sfm(0x4a,m);write_sfm(0x4d,s);}void Keyscan1(){if(Key1==0) {delay(10);if(Key1==0) while(!Key1); TR0=0;}if(Key4==0) {delay(10);if(Key4==0) while(!Key4); TR0=1;}if(Key3==0){delay(10);if(Key3==0)while(!Key3);minute++;if(minute==60)minute=0;} if(Key2==0){delay(10);if(Key2==0)while(!Key2);hour++;if(hour==24)hour=0;}}void main(){init1602();//LCD初始化clock_init();//时钟初始化TMOD=0x01;//设置定时器T0为方式1定时EA=1; // 总中断开ET0=1; // 允许T0中断TH0=(65536-46483)/256;//给T0装初值TL0=(65536-46483)%256;TR0=1;int_time=0;//中断次数、秒、分、时单元清0second=55;minute=59;hour=23;while(1){clock_write(second ,minute, hour);Keyscan1();}}void T0_interserve(void) interrupt 1 using 1 //T0中断服务子程序{int_time++;//中断次数加1if(int_time==20) //若中断次数计满20次{int_time=0; //中断次数变量清0second++;//秒计数变量加1}if(second==60)//若计满60s{second=0; //秒计数变量清0minute ++;//分计数变量加1}if(minute==60)//若计满60分{minute=0;//分计数变量清0hour ++;//小时计数变量加1}if(hour==24){hour=0;//小时计数计满24,将小时计数变量清0 }TH0=(65536-46083)/256;//定时器T0重新赋值TL0=(65536-46083)%256;}五、仿真运行效果展示仿真初始状态按下k1键,进入修改模式六、实验小结通过本次实验,我掌握了LCD1602编程的方法,将所学知识运用到实践中,这是一件慢慢的过程,首先要把理论知识理解透彻,然后就是例题看懂,弄懂举一反三。

基于单片机的简易电子时钟设计

基于单片机的简易电子时钟设计

基于单片机的简易电子时钟设计引言:电子时钟是人们日常生活中广泛应用的一种设备,基于单片机的电子时钟可以实现精确的时间显示、闹钟设置、定时功能等。

本设计将使用单片机控制电子时钟的各种功能,通过一个LCD显示屏来显示时间和其他信息。

一、设计目标:1.实现准确显示时间功能;2.设计带有闹钟设置的功能;3.实现定时功能。

二、设计原理:该电子时钟工作原理主要是通过单片机将外部的时钟信号进行调整和处理,然后控制液晶显示屏显示时间。

电子时钟的核心是单片机,通过单片机的计时功能实现时钟的准确显示,并通过输入设备设置闹钟功能和定时功能。

三、设计流程:1.系统初始化:首先,将单片机初始化,设置时钟和计时器的相关参数,开启显示屏的显示功能。

2.时间显示功能:通过计时器中断,定时更新时间,并将时间值传递给液晶显示屏显示出来。

3.闹钟设置功能:通过按键输入设置闹钟时间,将设置好的闹钟时间存储到单片机中。

4.定时功能:通过按键输入设置定时时间,将设置好的定时时间存储到单片机中,当定时时间到达时,触发相应的动作,如报警等。

四、硬件设计:1.单片机选择:选用一款适合的单片机,如51系列单片机。

2.时钟电路:通过外部晶振或者RTC芯片来提供准确的时钟信号。

3.输入设备:使用按键作为输入设备,用于设置闹钟和定时功能;4.显示屏:选用合适的液晶显示屏,用于显示时间。

五、软件设计:1.系统初始化:设置时钟和计时器的相关参数,开启显示屏的显示功能。

2.时间显示功能:通过计时器中断,定时更新时间,并将时间值传递给液晶显示屏显示出来。

3.闹钟设置功能:通过按键输入设置闹钟时间,将设置好的闹钟时间存储到单片机中。

4.定时功能:通过按键输入设置定时时间,将设置好的定时时间存储到单片机中,当定时时间到达时,触发相应的动作,如报警等。

六、实验结果:本设计可以准确显示时间,并可以设置闹钟和定时功能。

当闹钟和定时时间到达时,会触发相应的动作,实现了基本要求。

基于单片机的LCD1602电子时钟设计

基于单片机的LCD1602电子时钟设计

基于单片机的LCD1602电子时钟设计近年来,随着物联网和智能设备的快速发展,电子时钟作为一种常见的智能设备,广泛应用于家庭、办公室等各种场合。

本文将基于单片机设计一款LCD1602电子时钟,实现时间显示、闹钟设置等功能。

一、硬件设计1.单片机选择在本设计中,选择常用的51系列单片机AT89C51,具有丰富的外设资源和强大的处理能力。

该单片机具有8位数据总线、16位地址总线,并且集成了定时/计数器、中断控制器和串行通信接口等外设。

2.显示模块选择3.时钟模块选择通过接入DS1302时钟模块,可以实现实时时钟的功能。

DS1302模块具有时钟计数器、电压检测电路、串行通信接口等,并且具有低功耗特点。

4.控制板设计根据LCD1602的引脚连接方式,设计一个控制板,用于将单片机、显示模块和时钟模块等连接在一起。

同时,需注意设计供电电路、外设输入输出电平等电路。

二、软件设计1.初始化设置通过单片机的GPIO口配置,将LCD1602和DS1302对应的引脚设置为输出模式,同时初始化LCD显示屏并进行清屏操作。

此外,需设置DS1302时钟模块的时钟、日期、闹钟等参数。

2.时间显示通过读取DS1302时钟模块的计数器,获得当前的小时、分钟和秒数,然后将其格式化为HH:MM:SS的形式,并通过LCD显示出来。

3.时间设置通过单片机的外部中断,当用户按下设置按钮后,进入时间设置模式。

在时间设置模式下,用户可以通过按下不同的按键来调整小时、分钟和秒数。

调整完成后,再次按下设置按钮即可保存设置。

4.闹钟设置通过单片机的定时器中断,设定一个闹钟定时器。

当闹钟定时器触发时,触发相应的中断,然后通过LCD显示闹钟提示。

此外,用户也可以通过按下按钮来设置闹钟时间,并通过单片机的外部中断进行处理。

5.闹钟响铃当闹钟时间到达时,触发相应的中断,通过LCD显示闹钟提示,并通过蜂鸣器发出响铃声。

总结通过本设计,可以实现一款功能齐全的LCD1602电子时钟。

基于单片机的多功能LCD时钟

基于单片机的多功能LCD时钟

基于单片机的多功能LCD时钟
该时钟的设计思路是通过单片机控制液晶显示器,实时更新时间、日期、温度等信息;同时,结合外部输入信号,实现闹钟功能。

首先,该时钟通过单片机内部定时器实现时间的计时。

通过精确定时器,可以实现秒、分、时的显示和更新。

单片机内部具有RTC(Real-
Time Clock)模块,可实现对日期和时间的实时监控。

其次,该时钟通过温度传感器获取环境温度,并通过单片机控制液晶
屏实时显示。

温度传感器可以是热敏电阻、热敏电容等。

另外,该时钟具有闹钟功能,用户可以设置闹钟时间。

当时间到达设
定的闹钟时间时,时钟会发出报警声音,提醒用户。

此外,该时钟还可以显示日历。

通过单片机计算当前日期,并显示在
液晶屏上。

时钟基于单片机的控制,具有灵活性高、功能强大、可靠性较好等优点。

其通过外设接口与用户进行交互,使得用户操作简单、方便。

整个时钟的设计和制作过程分为硬件设计和软件设计两个部分。

其中,硬件设计包括电路原理图设计、PCB布局设计、外设选型等;软件设计则
包括单片机程序设计、液晶显示程序设计、闹钟功能实现等。

总结起来,基于单片机的多功能LCD时钟是一种功能强大的电子时钟,通过单片机控制液晶显示器实现时间、日期和温度的显示和更新,同时结
合闹钟功能,提供给用户全方位的时间与日期信息。

51时钟设计实训报告

51时钟设计实训报告

51时钟设计实训报告一、项目背景随着社会的发展与科技的进步,电子产品在我们日常生活中扮演着越来越重要的角色。

而钟表作为一种时间显示工具,也不断得到升级与创新。

本项目旨在设计一种基于51单片机的数字时钟,通过数字显示屏实时显示时间,并具备设置闹钟功能,以方便人们更好地了解和掌握时间。

二、项目原理本项目采用基于51单片机的设计方案,并通过数字显示屏显示时间。

其工作原理如下:1. 单片机工作频率设置为12MHz;2. 通过外部晶振将时钟信号输入到单片机的时钟引脚;3. 使用数码管显示时钟的小时、分钟和秒数;4. 通过按键实现时间的设置和闹钟的设置功能;5. 利用定时器中断实现时间的自动更新,保证时钟的准确性;6. 在需要闹钟响铃时,通过蜂鸣器发出声音提醒用户。

三、硬件设计1. 硬件元件清单- 51单片机- 12MHz晶振- 数码管- 按键- 电阻- 蜂鸣器- 杜邦线- 面包板2. 电路连接示意图![电路连接示意图](circuit.png)3. 数码管显示原理数码管将十进制数字通过多段共阴/共阳的LED管显示出来。

由于本项目中使用的是共阳数码管,因此需要在控制单元中采用共阴极接法。

通过依次给不同的数码管段加电,即可显示相应的数字。

四、软件设计1. 软件流程图软件的设计使用C语言进行编程,主要包括以下步骤:1. 初始化:设置单片机工作频率、端口输入输出状态,打开定时器中断;2. 显示时间:获取当前的小时、分钟和秒数,将其转换为相应的数码管段码,通过IO口输出到数码管上进行显示;3. 设置时间:通过按键输入,修改单片机内部存储的时间;4. 闹钟设置:通过按键输入,设置闹钟的小时和分钟;5. 定时器中断:在定时器中断函数中进行时间的更新和闹钟的判断;6. 响铃:当闹钟时间与当前时间相同时,通过蜂鸣器发出声音提醒用户。

2. 核心代码以下是部分核心代码的示例:cinclude <reg52.h>定义数码管段码与显示端口的对应关系unsigned char segTable[12] = {0xC0, 0xF9, 0xA4, 0xB0, 0x99,0x92, 0x82, 0xF8, 0x80, 0x90, 0xBF, 0xFF};定义全局变量unsigned char hour, min, sec, setHour, setMin;unsigned char alarmHour, alarmMin;bit isAlarmOn;初始化函数void init() {设置单片机工作频率TMOD = 0x01;设置数字管段码端口为输出P2 = 0x00;P0 = 0x00;打开定时器中断ET0 = 1;EA = 1;初始化全局变量hour = 0;min = 0;sec = 0;setHour = 0;setMin = 0; alarmHour = 0; alarmMin = 0;isAlarmOn = 0;}主函数void main() {init();while (1) {showTime();setTime();setAlarm();}}定时器中断函数void timer0() interrupt 1 { TH0 = (65536 - 50000) / 256; TL0 = (65536 - 50000) % 256; sec++;if (sec == 60) {sec = 0;min++;if (min == 60) {min = 0;hour++;if (hour == 24) {hour = 0;}}}if (isAlarmOn && alarmHour == hour && alarmMin == min) { ring();}}数码管显示函数void showNumber(unsigned char num) {P0 = segTable[num];delay();P0 = 0xFF;}数码管显示时间函数void showTime() { unsigned char temp; temp = hour / 10; showNumber(temp); P2 = 0x10;delay();temp = hour % 10; showNumber(temp); P2 = 0x20;delay();temp = min / 10; showNumber(temp); P2 = 0x40;delay();temp = min % 10; showNumber(temp);P2 = 0x80;delay();P2 = 0x00;}五、实训心得通过本次实训,我深入了解和学习了51单片机的原理和使用方法,掌握了数字时钟的设计与实现。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

单片机原理及应用课程设计任务书题目:电子时钟(LCD显示)1、设计要求以AT89C51单片机为核心的时钟,在LCD显示器上显示当前的时间:使用字符型LCD显示器显示当前时间。

显示格式为“时时:分分:秒秒”。

用3个功能键操作来设置当前时间。

功能键K1~K4功能下。

K1—设置小时。

K2—设置分钟。

K3—设置秒。

程序执行后工作指示灯LED发光,表示程序开始执行,LCD显示“23:59:00”,然后开始计时。

2、工作原理本课题难点在于键盘的指令输入,由于每个按键都具有相应的一种功能,程序中有较多的循环结构用以判断按键是否按下,以及判断按键是否抬起,以及LCD显示器的初始化。

3、参考电路硬件设计电路图如下图所示:硬件电路原理图单片机原理及应用课程设计任务书题目:电子时钟(LCD显示)1、设计要求以AT89C51单片机为核心的时钟,在LCD显示器上显示当前的时间:使用字符型LCD显示器显示当前时间。

显示格式为“时时:分分:秒秒”。

用3个功能键操作来设置当前时间。

功能键K1~K4功能下。

K1—设置小时。

K2—设置分钟。

K3—设置秒。

程序执行后工作指示灯LED发光,表示程序开始执行,LCD显示“23:59:00”,然后开始计时。

2、工作原理本课题难点在于键盘的指令输入,由于每个按键都具有相应的一种功能,程序中有较多的循环结构用以判断按键是否按下,以及判断按键是否抬起,以及LCD显示器的初始化。

3、参考电路硬件设计电路图如下图所示:硬件电路原理图基于AT89C51单片机的电子时钟设计报告一、设计要求与目的1)设计要求以AT89C51单片机为核心的时钟,在LCD显示器上显示当前的时间。

2)、使用字符型LCD显示器显示当前时间。

显示格式为“时时:分分:秒秒”。

3)、用3个功能键操作来设置当前时间。

4)、熟悉掌握proteus编成软件以及keil软件的使用二、本设计原理本设计以AT89C51单片机为核心,通过时钟程序的编写,并在LCD显示器上显示出来。

该编程的核心在于定时器中断及循环往复判断是否有按键操作,并对每个按键的操作在LCD显示器上作出相应的反应。

由于LCD显示器每八位对应一个字符,故把秒、分、时的个位和十位分开表示。

该课题中有三个控制开关KM1、KM2、KM3分别控制时、分、秒的调整,时间按递增的方式调整,每点一次按钮则相应的时间个位加以,且时间调整不干扰其他为调整时间的显示。

三、硬件设计原理(电路)硬件电路原理图四、软件设计(流程图)五、仿真结果与结论5 .仿真结果与结论初始运行显示效果如下:用按键调节时分秒从而设置时间:结论:采用12MHZ晶振采用方式1定时,选取50ms采用20次中断达到一秒,采用查表方式控制LCD显示。

根据仿真结果可知该编程及硬件电路符合要求。

附录程序设计如下:KM1 BIT P1.0KM2 BIT P1.1KM3 BIT P1.2RS EQU P2.0RW EQU P2.1E EQU P2.2IN_0 EQU P0SECL EQU 40H ;秒低位SECH EQU 41H ;秒高位MH1 EQU 42H ;冒号MINL EQU 43H ;分低位MINH EQU 44H ;分高位MH2 EQU 45H ;冒号HOURL EQU 46H ;时低位HOURH EQU 47H ;时高位ORG 0000HAJMP MAINORG 000BHAJMP INTT_0MAIN: MOV R2,#20ACALL INIT_LCD ;初始化液晶MOV R5,#00HMOV IN_0,#84H ;写入显示起始地址(第一行第五个位置) ACALL ENABLEMOV TH0,#3CH ;50MSMOV TL0,#0B0HMOV TMOD,#01HACALL SJCZSETB EASETB ET0SETB TR0LCALL A1START1: LCALL WDATA1LCALL WDATA2AJMP START1;*******控制键*******A1: LCALL WDATA2 LCALL WDATA1JNB KM1,S1JNB KM2,S2JNB KM3,S3AJMP A1;*****调整小时*****S1: LCALL DELAYLJB KM1,A1MOV A,HOURHCJNE A,#02H,ST1MOV A,HOURLCJNE A,#03H,ST2MOV HOURH,#00HMOV HOURL,#00HAJMP J1ST1: MOV A,HOURLCJNE A,#09H,ST2INC HOURHMOV HOURL,#00HAJMP J1ST2: INC HOURLAJMP J1J1: JB KM1,S1LCALL WDATA1AJMP J1;*****调整分钟*****S2: LCALL DELAYLJB KM2,A1MOV A,MINHCJNE A,#05H,ST3MOV A,MINLCJNE A,#09H,ST4MOV MINH,#00HMOV MINL,#00HAJMP J2ST3: MOV A,MINLCJNE A,#09H,ST4INC MINHMOV MINL,#00HAJMP J2ST4: INC MINLAJMP J2J2: JB KM2,S2LCALL WDATA1AJMP J2;*****调整秒*****S3: LCALL DELAYLJB KM3,A1MOV A,SECHCJNE A,#05H,ST5MOV A,SECLCJNE A,#09H,ST6MOV SECH,#00HMOV SECL,#00HAJMP J3ST5: MOV A,SECLCJNE A,#09H,ST6INC SECHMOV SECL,#00HAJMP J3ST6: INC SECLAJMP J3J3: JB KM3,S3LCALL WDATA1AJMP J3;****设定显示初值***SJCZ: MOV 40H,#0 ;显示初值是 23:59:00 MOV 41H,#0MOV 42H,#10MOV 43H,#9MOV 44H,#5MOV 45H,#10MOV 46H,#3MOV 47H,#2RETINTT_0: PUSH PSWPUSH ACC ;T0定时器中断MOV TL0,#0B0H ;送定时初值MOV TH0,#3CHDJNZ R2,TTMOV R2,#20INC SECL ;秒记数,到60S就清0 MOV A,SECLCJNE A,#0AH,TTINC SECHMOV SECL,#00HMOV A,SECHCJNE A,#06H,TTMOV SECH,#00HINC MINL ;分记数,到60分请0MOV A,MINLCJNE A,#0AH,TTMOV MINL,#00HINC MINHMOV A,MINHCJNE A,#06H,TTMOV MINH,#00HINC HOURL ;时记数,到24时清0MOV A,HOURLCJNE A,#04H,TT2MOV A,HOURHCJNE A,#02H,TT1MOV HOURL,#00HMOV HOURH,#00HAJMP TTTT2: CJNE A,#0AH,TTMOV HOURL ,#00HINC HOURHAJMP TTTT1: CJNE A,#02H,TTMOV HOURL,#00HMOV HOURH,#00HAJMP TTTT: POP ACCPOP PSWRETI;****液晶初始化****INIT_LCD:ACALL DELAYL ;延时,等待LCD完成电源的启动MOV IN_0,#01H ;清屏并光标复位ACALL ENABLEMOV IN_0,#38H ;设置显示模式:8位2行5x7点阵ACALL ENABLEMOV IN_0,#0CH ;显示器开、光标关、光标不闪烁ACALL ENABLEMOV IN_0,#06H ;文字不动,光标自动右移ACALL ENABLEMOV IN_0,#0C0H ;写入显示起始地址(第二行第一个位置) ACALL ENABLERET;****写数据程序****WDATA1: MOV IN_0,#84H ;写入显示起始地址(第一行第五个位置)ACALL ENABLEMOV R1,#08HMOV R0,#47HWDATA_1: MOV A,R0MOV DPTR,#TABLEMOVC A,A+DPTRMOV IN_0,A ;写入数据SETB RSCLR RWCLR EACALL CHECKBUSYSETB E ; 忙检测DEC R0DJNZ R1,WDATA_1MOV R1,#08HRETWDATA2: MOV IN_0,#0C0H ;写入显示起始地址(第二行第一个位置) ACALL ENABLEMOV R1,#10HMOV R0,#00HMOV DPTR,#TABWDATA_2: MOV A,R0MOV DPTR,#TABMOVC A,A+DPTRMOV IN_0,A ;写入数据SETB RSCLR RWCLR EACALL CHECKBUSYSETB E ;忙检测INC R0DJNZ R1,WDATA_2MOV R1,#08HRET;****显示符号表****TABLE: DB 30H,31H,32H,33H,34H,35H ;0 1 2 3 4 5DB 36H,37H,38H,39H,3AH,80H,2EH ;6 7 8 9 : 空格 .TAB: DB " MADE IN CHINA";******写指令****ENABLE: CLR RS ;写入控制命令的子程序CLR RWCLR EACALL CHECKBUSYSETB ERETCHECKBUSY:MOV IN_0,#0FFH ;判断液晶显示器是否忙的子程序CLR RSSETB RWCLR ENOPSETB EJB P0.7,CHECKBUSY ;如果P0.7为高电平表示忙就循环等待 RETDELAYL: MOV R7,#100 ;延时程序D1: MOV R6,#200DJNZ R6,$DJNZ R7,D1RETEND。

相关文档
最新文档