单片机原理课程设计基于at89c52的电子时钟设计

合集下载

基于51系列AT89C52单片机课程设计-电子时钟

基于51系列AT89C52单片机课程设计-电子时钟

目录第一章﹑设计背景 (2)第二章﹑设计方案 (4)2.1. 设计内容 (4)第三章﹑电子时钟 (5)3.1.电子时钟简介 (5)3.2.电子时钟的基本特点 (5)3.3.电子时钟的原理 (5)第四章﹑AT89C52简介 (6)第五章﹑系统软件程序设计 (10)5.1.主程序 (10)5.2.数码管显示模块 (10)5.3.定时器/计数器T0中断服务程序 (10)5. 4.按键处理模块 (11)5.5.汇编语言程序 (13)第六章﹑系统硬件电路的设计 (18)第七章﹑课程设计总结 (21)参考文献 (22)附录 (23)摘要设计背景:1957年,Ventura发明了世界上第一个电子表,从而奠定了电子时钟的基础,电子时钟开始迅速发展起来。

数字电子钟一般由秒信号发生器、“时、分、秒”计数器、译码器及显示器、校时电路等组成。

秒信号是整个系统的时基信号,它直接决定计时系统的精度,一般用石英晶体振荡器加分频器来实现。

将秒信号送入秒计数器,它是六十进制计数器。

每累计六十秒发出一个“分脉冲”信号,这个信号作为“分计数器”的时钟脉冲。

“分计数器”也是六十进制计数器,它每累计六十分钟,发出一个“时脉冲”信号,此信号将被送到“时计数器”。

“时计数器”采用二十四进制计数器,可以实现一天二十四小时的累计。

译码显示电路将“时”、“分”、“秒”计数器的输出状态经七段显示译码器译码,通过六位LED显示器显示出来。

校时电路是用来对“时”、“分”、“秒”显示数字进行校对调整的。

在这里我们将已学过的比较零散的数字电路的知识有机的、系统的联系起来用于实际,来培养我们的综合分析和设计电路,写程序、调试电路的能力这里采用应用广泛的AT89C52作为时钟控制芯片,利用单片机内部的定时/计数器T0 实现软时钟的目的。

首先将T0设定工作于定时方式,对机器周期计数形成基准时间(50ms),然后用另一个定时/计数器T1对基准时间计数形成秒,妙计60次形成分,分计60形成小时,小时计到12。

1_7798690_课程设计:基于单片机AT89C52电子时钟课程设计说明书

1_7798690_课程设计:基于单片机AT89C52电子时钟课程设计说明书

单片机课程设计报告一、课程设计内容1)显示时间功能,能正确显示“时”、“分”。

2)显示日期功能,能显示“月”、“日”。

3)闹钟功能,可按设定的时间闹时。

4)具有校准月、日、时、分的功能。

二、元器件介绍本次课程设计我使用的单片机是至强51蓝精灵版,而实验中使用到的关键元器件主要有:STC85C52RC,4*4按键,蜂鸣器,数码管等。

下面是STC85C52RC的简单介绍:AT89C52是本设计最核心的部件,它是美国ATMEL公司生产的低电压,高性能CMOS 8位单片机,片内含8K bytes的可反复擦写的Flash只读程序存储器和256 bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,与标准MCS-51指令系统及8052产品引脚兼容,片内置通用8位中央处理器(CPU)和Flash存储单元,功能强大。

AT89C52单片机适用于许多较为复杂的控制应用场合。

下图是AT89C52最常见的一种封装。

如上图所示,AT89C52共有40个管脚,其各个功能如下:·VCC ——运行时加+5V·VSS ——接地·XTAL1 ——振荡器反相放大器及内部时钟发生器的输入端·XTAL2 ——振荡器反相放大器的输出端·RST ——复位输入,高电平有效,在晶振工作时,在RST引脚上作用2个机器周期以上的高电平,将使单片机复位。

·EA/VPP ——片外程序存储器访问允许信号。

欲使CPU仅访问外部程序存储器(地址为0000H-FFFFH),EA端必须保持低电平(接地),如果EA端为高电平(接Vcc端),CPU则执行内部程序中的指令。

·LAE/PROG——当访问外部程序存储器或数据存储器时,ALE(地址允许锁存)输出脉冲用于锁存地址的低8位位数字节。

一般情况下,ALE仍以时钟振荡频率的1/6输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。

基于AT89C52单片机的数字钟设计方案

基于AT89C52单片机的数字钟设计方案
有的单片机针对某一个应用领域, 集成了相关的控制设备, 以减少应用系统 的芯片数量。例如,有的芯片以51内核为核心,集成了USB控制器、SMARCARD
2
接口、MP3解码器、CAN或者I C总线控制器等,LED LCD或VFD显示驱动器也 开始集成在8位单片机中。
2、高效率和高性能
为了提高执行速度和执行效率,单片机开始使用RISC流水线和DSP的设 计技术,使单片机的性能有了明显的提高, 表现为:单片机的时钟频率得到提高; 同样频率的单片机运行效率也有了很大的提升; 由于集成度的提高, 单片机的寻 址能力、片内R0(FLASH和RAM勺容量都突破了以往的数量和限制。
(2)办公自动化领域
单片机作为嵌入式系统广泛应用于现代办公设备,如计算机的键盘、磁盘 驱动、打印机、复印机、电话机和传真机等。
(3)商业应用领域
商业应用系统部分与家用和办公应用系统相似, 但更加注重设备的稳定性、 可靠性和安全性。 商用系统中广泛使用的电子计量仪器、 收款机、条形码阅读器、 安全监测系统、 空气调节系统和冷冻保鲜系统等, 都采用了单片机构成的专用系 统。与通用计算机相比, 这些系统由于比较封闭, 可以更有效地防止病毒和电磁 干扰等,可靠性更高。
(4)工业自动化
在工业控制和机电一体化控制系统中,除了采用工控计算机外,很多都是 以单片机为核心的单片机和多机系统。
(5)智能仪表与集成智能传感器 目前在各种电气测量仪表中普遍采用了单片机应用系统来代替传统的测量 系统,使得测量系统具有存储、数据处理、查询及联网等智能功能。将单片机和 传感器相结合, 可以构成新一代的智能传感器。 它将传感器变换后的物理量作进 一步的变化和处理,使其成为数字信号,可以远距离传输并与计算机接口。
单片机模块中最常见的是数字钟,数字钟是一种用数字电路技术实现时、分、 秒计时的装置,与机械式时钟相比具有更高的准确性和直观性,且无机械装置, 具有更更长的使用寿命,因此得到了广泛的使用。

基于51系列AT89C52单片机课程设计-电子时钟

基于51系列AT89C52单片机课程设计-电子时钟

目录第一章﹑设计背景 (2)第二章﹑设计方案 (4)2.1. 设计内容 (4)第三章﹑电子时钟 (5)3.1.电子时钟简介 (5)3.2.电子时钟的基本特点 (5)3.3.电子时钟的原理 (5)第四章﹑AT89C52简介 (6)第五章﹑系统软件程序设计 (10)5.1.主程序 (10)5.2.数码管显示模块 (10)5.3.定时器/计数器T0中断服务程序 (10)5. 4.按键处理模块 (11)5.5.汇编语言程序 (13)第六章﹑系统硬件电路的设计 (18)第七章﹑课程设计总结 (21)参考文献 (22)附录 (23)摘要设计背景:1957年,Ventura发明了世界上第一个电子表,从而奠定了电子时钟的基础,电子时钟开始迅速发展起来。

数字电子钟一般由秒信号发生器、“时、分、秒”计数器、译码器及显示器、校时电路等组成。

秒信号是整个系统的时基信号,它直接决定计时系统的精度,一般用石英晶体振荡器加分频器来实现。

将秒信号送入秒计数器,它是六十进制计数器。

每累计六十秒发出一个“分脉冲”信号,这个信号作为“分计数器”的时钟脉冲。

“分计数器”也是六十进制计数器,它每累计六十分钟,发出一个“时脉冲”信号,此信号将被送到“时计数器”。

“时计数器”采用二十四进制计数器,可以实现一天二十四小时的累计。

译码显示电路将“时”、“分”、“秒”计数器的输出状态经七段显示译码器译码,通过六位LED显示器显示出来。

校时电路是用来对“时”、“分”、“秒”显示数字进行校对调整的。

在这里我们将已学过的比较零散的数字电路的知识有机的、系统的联系起来用于实际,来培养我们的综合分析和设计电路,写程序、调试电路的能力这里采用应用广泛的AT89C52作为时钟控制芯片,利用单片机内部的定时/计数器T0 实现软时钟的目的。

首先将T0设定工作于定时方式,对机器周期计数形成基准时间(50ms),然后用另一个定时/计数器T1对基准时间计数形成秒,妙计60次形成分,分计60形成小时,小时计到12。

基于AT89C52的电子时钟设计

基于AT89C52的电子时钟设计

华北水利水电学院课程设计报告课程名称: 基于AT89C52的电子时钟设计姓名: 李东利学号: 200814715班级: 电信2008147 专业: 电子信息工程日期: 二零一零年一月二十二日目录一、前言 (3)二、课程设计的目的和要求 (4)2.1课程设计的目的 (4)2.2课程设计的基本要求 (4)三、总体设计原理 (4)四、硬件设计 (5)4.1设计思路 (5)4.2硬件结构及原理电路 (5)4.3主要硬件原件说明 (6)4.4单元电路原理介绍 (6)五、软件设计 (10)5.1程序介绍 (10)5.2程序清单 (12)六、系统操作说明 (17)七、设计总结 (18)八、参考文献 (19)一前言20世纪70年代开始,半导体厂商把微型机最基本的部件制作在一个硅片内,于是就出现了以一个大规模集成电路为主组成的微型计算机---单片微型计算机(Single-chip microcomputer),简称单片机。

由于单片机面向控制性应用领域,装入到各种智能化产品之中,所以又称为嵌入式控制器(embedded microcontroller)单片机内部包含有计算机的基本功能部件:中央处理器(CPU)、存贮器(memory)、输入/输出(I/O)接口电路,给单片机加上适当的外围设备和软件,便构成一个单片机应用系统。

其应用如下:(1)单片机在智能仪表中的应用:单片机广泛地应用于实验室、交通运输工具、计量等各种仪器仪表之中,使仪器仪表智能化,提高它们的测量精度,加强其功能,简化仪器仪表的结构,便于使用、维护和改进。

(2)单片机在机电一体化中的应用:机电一体化是机械工业发展的方向。

机电一体化产品是指集机械技术、微电子技术、自动化技术和计算机技术于一体,具有智能化特征的机电产品。

(3)单片机在实时控制中的应用:单片机也广泛地用于各种实时控制系统中,如对工业上各种窑炉的温度、酸度、化学成分的测量和控制。

将测量技术、自动控制技术和单片机技术相结合,充分发挥数据处理和实时控制功能,使系统工作于最佳状态,提高系统的生产效率和产品的质量。

基于89C52单片机的电子时钟设计课程设计

基于89C52单片机的电子时钟设计课程设计

毕业设计题目基于89C52单片机的电子时钟设计英文题目 Electronic Clock Design Based on 89C52学生姓名陈志仁学号 09325202专业电子信息工程系别机械与电子工程系指导教师黄河职称讲师二零一三年六月摘要至今,微处理器的发展已有40多年的历史,起初由美国Intel公司首推的4为微处理器Intel4004,实现将单片处理器和运算器等元件集成在一片电路芯片上。

此后微处理器的迅猛发展,微处理器内集成的元件也越来越多,其中包括增加了存储器、I/O接口电路、定时/计数器、串行通信口、中断控制、系统总线以及系统时钟等,大大加强了微处理器的性能,并针对特定的领域制作出最大效率的微处理器。

不同功能的微处理器称为微控制器,也被我们简称为单片机。

本文主要介绍以单片机ST89C52和DS12C887时钟芯片为核心的电子时钟显示,LCD1602为液晶显示器件,此电子时钟显示具有年月日等基本时间显示,以及秒表计时处理、闹钟定时、蜂鸣、温度的设计。

单片机通过对时钟、温度等数据处理后传送至LCD显示输出,也可通过按键对时间进行调节。

通过单片机外围接口的扩展实现温度采集等功能。

关键词:电子时钟;AT89C52;计时;温度ABSTRACTThis project mainly introduces that the electronic clock which based on microcontroller ST89C52 display.LCD1602 Liquid crystal display devices's electronic clock display has the date and time display.Stopwatch timing processing, alarm clock timing and the design of buzzer, temperature.SCM through the clock, temperature and other data processing and transmits signals to the LCD display output, also by adjusting button for time.Through the expansion of single-chip peripheral interface to achieve temperature acquisition functions.Key words: electronic clock。

基于STC89C52单片机时钟的设计与实现

基于STC89C52单片机时钟的设计与实现

基于STC89C52单片机时钟的设计与实现1. 本文概述本文主要介绍了基于STC89C52单片机和DS1302时钟芯片的电子时钟设计与实现。

该电子时钟系统具有年月日等基本时间显示功能,并集成了秒表计时处理、闹钟定时、蜂鸣器和温度显示等附加功能。

系统采用LCD1602作为液晶显示器件,通过单片机对时钟和温度等数据进行处理后传输至LCD进行显示。

用户可以通过按键对时间进行调节,同时,单片机还通过扩展外围接口实现了温度采集等功能。

本文的目标是提供一个功能丰富、易于操作的电子时钟系统,为学习和应用单片机技术提供一个实用的案例。

2. 系统设计要求在设计基于STC89C52单片机的时钟系统时,我们需要考虑以下几个关键的设计要求:时钟系统必须具备基本的时间显示功能,能够以小时、分钟和秒为单位准确显示当前时间。

系统还应支持设置闹钟功能,允许用户设定特定的时间点进行提醒。

系统需要保证长时间稳定运行,具备良好的抗干扰能力,确保在各种环境下都能准确计时。

还应具备一定的容错能力,即使在操作失误或外部干扰的情况下,也能保证系统的正常运行。

用户界面应简洁直观,便于用户快速理解和操作。

时钟的显示部分应清晰可见,即使在光线较暗的环境下也能保持良好的可视性。

同时,设置和调整时间的操作应简单易懂,方便用户进行日常使用。

在设计时钟系统时,应考虑到未来可能的功能扩展,如温度显示、日期显示等。

系统的设计应具有一定的灵活性和扩展性,以便在未来可以轻松添加新的功能模块。

鉴于时钟系统可能需要长时间运行,能耗是一个重要的考虑因素。

设计时应选择低功耗的元件,并优化电源管理策略,以延长电池寿命或减少能源消耗。

在满足上述所有要求的同时,还需要控制成本,确保产品的市场竞争力。

这可能涉及到对单片机的编程优化、选择性价比高的外围元件等措施。

通过满足上述设计要求,我们可以确保开发出一个功能完善、稳定可靠、用户友好、易于扩展、节能环保且成本效益高的STC89C52单片机时钟系统。

基于STC89C52的电子时钟--课程设计报告

基于STC89C52的电子时钟--课程设计报告

中南大学《嵌入式微控制器应用系统综合设计》课程设计报告设计题目:基于STC89C52的电子时钟指导老师:设计者:专业班级:设计日期:2017.01.09摘要随着社会、科技的发展,人类得知时间,从观太阳、摆钟到现在电子钟,不断研究、创新。

为了在观测时间,能够了解与人类密切相关的信息,比如星期、日期等,电子时钟诞生了,它集时间、日期、星期等功能于一身,具有读取方便、显示直观、功能多样、电路简洁等诸多优点,符合电子仪器仪表的发展趋势,具有广阔的市场前景。

该电子时钟主要采用STC89C52RC单片机作为主控核心,由DS1302时钟芯片提供时钟、LCD1602显示屏显示。

STC89C52RC单片机是由ATMEL公司推出的,功耗小,电压可选用4~6V电压供电;DS1302时钟芯片是美国DALLAS公司推出的具有涓细电流充电功能的低功耗实时时钟芯片,它可以对年、月、日、星期、时、分、秒进行计时,还具有闰年补偿等多种功能,而且DS1302的使用寿命长,误差小;数字显示是采用的LCD1602显示屏来显示,可以同时显示年、月、日、星期、时、分、秒和温度等信息。

此外,该电子时钟还具有时间校准等功能。

关键词:时钟电路;时钟芯片DS1302;LCD1602显示屏;单片机STC89C52RC;目录绪论 (1)第1章设计要求与方案论证 (3)1.1 引言 (3)1.2功能要求 (3)1.3方案论证 (4)1.3.1 技术可行性 (4)1.3.2 单片机的选择 (4)1.3.3 显示模块的选择 (5)1.3.4 键盘模块的选择 (5)1.3.5 键盘扫描控制方式的选择 (6)1.3.6 时钟芯片的选择 (7)1.3.7 总体方案论证与选择 (7)第2章系统硬件电路设计 (9)2.1 系统硬件概述 (9)2.2 所用到芯片及其各自功能说明 (9)2.2.1 主控制器STC89C52RC (9)2.2.2 时钟芯片DS1302 (10)2.2.3 断电存储芯片AT24C02 (12)2.3硬件设计系统原理图及其说明 (13)2.3.1 主控制芯片STC89C52接口电路设计 (13)2.3.2 显示电路设计 (15)2.3.3 报警电路设计 (16)2.3.4 键盘接口电路设计 (17)2.3.5 AT24C02断电存储电路设计 (18)2.3.6 DS18B20电路设计 (18)2.3.7 DS1302时钟电路设计 (19)第3章系统的软件设计 (21)3.1 I/O口资源分配 (21)3.2 主模块软件设计 (21)3.3 功能模块子程序软件设计 (22)3.3.1 时间调整模块 (22)3.3.2 LCD1602显示程序模块 (24)3.3.3 DS1302时钟程序模块 (25)3.3.4 DS18B20温度采集程序模块 (26)第4章系统调试 (28)4.1 调试所遇到的问题 (28)4.2 问题分析和解决问题的方法 (28)4.3 软件系统使用操作说明 (31)第5章结束语 (33)参考文献 (34)绪论随着人们生活水平的提高和生活节奏的加快,对时间的要求越来越高,精准数字计时的消费需求也是越来越多。

基于STC89C52单片机的电子时钟研究

基于STC89C52单片机的电子时钟研究

基于STC89C52单片机的电子时钟研究一、本文概述本文旨在研究和探讨基于STC89C52单片机的电子时钟设计与实现。

STC89C52单片机作为一种高效、稳定的微控制器,在嵌入式系统设计中具有广泛的应用。

通过对其内部资源的合理配置与外部硬件电路的设计,我们可以构建出功能丰富、性能稳定的电子时钟系统。

本文将详细介绍电子时钟的硬件电路设计、软件编程、功能实现以及性能优化等方面的内容,旨在为相关领域的研究者和实践者提供有益的参考和借鉴。

在硬件电路设计方面,我们将围绕STC89C52单片机的核心功能,设计包括时钟显示、按键输入、时钟校准等功能的电路模块。

在软件编程方面,我们将采用C语言进行程序编写,实现时钟的计时、显示、控制等功能。

我们还将对电子时钟的功耗、稳定性、精度等性能进行优化和提升,以满足实际应用的需求。

通过本文的研究和探讨,我们期望能够为STC89C52单片机在电子时钟设计中的应用提供有益的思路和方法,同时也为推动嵌入式系统设计和技术发展做出一定的贡献。

二、STC89C52单片机在电子时钟设计中的应用优势STC89C52单片机在电子时钟设计中具有显著的应用优势,其独特的特性和功能使其成为电子时钟设计的理想选择。

STC89C52单片机具有较高的集成度和可靠性,能够在较小的空间内实现复杂的功能,并且具有良好的稳定性,保证了电子时钟的长期稳定运行。

STC89C52单片机具有丰富的I/O接口和扩展能力,方便与其他硬件模块进行连接和通信。

这使得电子时钟设计更加灵活,可以根据实际需求添加各种功能模块,如温度显示、日期提醒等,提高了电子时钟的实用性和便利性。

STC89C52单片机还具有低功耗的特点,能够在保证性能的同时降低能耗,延长电子时钟的使用寿命。

其编程简单易懂,便于开发人员快速上手,降低了开发成本和时间。

STC89C52单片机在电子时钟设计中具有集成度高、可靠性好、扩展能力强、低功耗和编程简单等优势,使得其在电子时钟领域得到了广泛应用。

基于单片机AT89C52的多功能电子钟设计

基于单片机AT89C52的多功能电子钟设计

第36卷第4期信息化研究Vol. 36 No. 42010年4月Informatization ResearchAp r. 2010基于单片机AT89C52的多功能电子钟设计刘昕,杨峰,谢晋(吉首大学物理科学与信息工程学院,湖南省吉首市416000)摘要:文中设计了一个显时、调时、定时以及具有整点报时功能的电子钟。

电子钟使用12MHZ晶振与AT89C52单片机相连接,通过软件编程的方法实现了以24小时为一个周期,同时显示小时、分钟和秒的要求,而且有三组定时计数功能。

在定时时间到时有蜂鸣报警。

该电子钟设有五个按键按钮S1 ,S2,S3, S4和S5键,使之具备了校时、定时和复位功能。

同时,电子钟还设计了掉电保护电路,当电源断电时能保存时钟当前定时设计的全部数据。

为了美化时钟界面关键词:电子钟; AT89C52;晶振;掉电保护电路;跑马电路中图分类号: TP311,在单片机外围设置了跑马电路。

通过AT89C52电子时钟的设计,对51单片机系列有了更加深刻的认识,对其各个引脚功能掌握的更为透彻。

也再次认识到单片机的应用具有使用范围广的特点,对各个行业的技术改造和产品智能化的更新换代起着重要的推动作用。

采用AT24C08串行数据存储器,可以存储多组定时数0 引言据,在掉电和重新启动后,仍然可以恢复到原来的定时数字电子钟设计与制作可采用数字电路实现,也时间,不需要重新定时。

采用RD、WR读写端实现数可以采用单片机来完成。

若用数字电路完成,所设计据写入和读出。

采用MAX232串行接口,利用RXD和的电路相当复杂,大约需要十几片数字集成块,其功能TXD串行收发端实行在线下载功能,省去了插拔单片也主要依赖于数字电路的各功能模块的组合来实现,机烧写程序的麻烦。

按键S1~S4为调时和定时功能,焊接的过程比较复杂,成本也非常高。

若用单片机来分别接P3. 2~P3. 5。

按一下S1进入调时状态,按第2完成,由于其功能的实现主要是通过软件编程来完成,次,进行定时设置。

点阵电子时钟设计_单片机课程设计论文

点阵电子时钟设计_单片机课程设计论文

课程设计题目名称点阵电子时钟设计课程名称单片机原理与接口技术系、专业电气工程系电气类2010年6月21 日摘要单片计算机即单片微型计算机。

由RAM ,ROM,CPU构成,定时,计数和多种接口于一体的微控制器。

它体积小,成本低,功能强,广泛应用于智能产业和工业自动化上。

而51系列单片机是各单片机中最为典型和最有代表性的一种。

这次课程设计通过对它的学习,应用,从而达到学习、设计、开发软、硬的能力。

本设计主要设计了一个基于AT89C52单片机的电子时钟。

并在点阵上显示相应的时间。

关键字:单片机;LED;点阵显示屏AbstracMonolithic single-chip micro-computer that computer. By the RAM, ROM, CPU structure, timing, counting and multiple interfaces in one microcontroller. Its small size, low cost, function, widely used in industry and industrial automation intelligence. The 51 series is the most typical microcomputer and the most representative one. The curriculum design through its study, application, and thus achieve the study, design, development software and hardware capabilities.The design mainly designed based on AT89C52 microcontroller electronic clock. Dot matrix display in the corresponding time.Keywords:SCM; LED; dot matrix display.目录摘要 (4)1 电子时钟 (6)1.1电子时钟简介 (6)1.3电子时钟的原理 (6)2 单片机识的相关知识 (6)2.1单片机简介 (6)2.2 89C52单片机介绍3 控制系统的硬件设计3.1 点阵显示工作原理4 控制系统的软件设计5 基本显示原理结束语 (19)附录 (20)参考文献 (28)1电子时钟1.1 电子时钟简介1957年,Ventura发明了世界上第一个电子表,从而奠定了电子时钟的基础,电子时钟开始迅速发展起来。

单片机原理课程设计基于AT89C52的电子时钟设计说明书

单片机原理课程设计基于AT89C52的电子时钟设计说明书

word格式文档单片机原理课程设计题目: 基于AT89C52的电子时钟设计姓名:学院:专业:班级:学号:指导教师:年月日南京农业大学教务处制aortiu目录摘要 (2)关键词 (2)引言 (2)1设计要求与方案论证 (2)1.1设计要求 (2)1.2系统方案选择方案和论证 (2)1.2.1单片机芯片的选择方案和论证 (2)1.2.2 显示模块选择方案和论证 (3)1.2.3 时钟芯片的选择方案和论证 (3)2.系统的硬件设计与实现 (3)2.1电路设计框图 (3)2.2系统硬件概述 (3)2.3主要单元电路的设计 (4)2.3.1 单片机主控制模块的设计 (4)2.3.2时钟电路模块的设计 (4)2.3.3 键盘模块设计 (5)2.3.4蜂鸣器模块的设计 (5)2.3.5显示模块的设计 (5)3.系统的软件设计 (6)3.1程序流程框图 (6)3.2程序的设计 (7)4.系统调试 (7)4.1软件调试 (7)4.2硬件调试 (8)4.3 实验箱调试结果 (8)5.总结心得体会 (9)附录一:系统程序 (9)基于AT89C52的电子时钟设计指导教师:吕成绪胡飞摘要:单片机在电子产品中的应用越来越广泛,特别是51系列的单片机,由于其使用方便、价格低廉等优势,在市场上占有很大的份额。

AT89C52就是51系列中的一个比较成熟的型号。

本设计是一个多功能的实时时钟,带秒表、整点报时、闹铃、调整时间等功能。

可按键直接设置闹铃时间。

由AT89C51单片机、DS1302、LCD1602等模块组成。

现代社会,时间就是金钱,时钟是每个人的必备品。

本设计实现了所需功能,给大家带来方便,整体性好、人性化强、可靠性高,实现了时钟的多功能应用。

关键词:电子时钟;DS1302;LCD1602;引言:随着科技的快速发展,时间的流逝,从观太阳、摆钟到现在电子钟,人类不断研究,不断创新纪录。

美国DALLAS公司推出的具有涓细电流充电能的低功耗实时时钟电路DS1302。

基于AT89C52单片机的数字电子钟

基于AT89C52单片机的数字电子钟

基于AT89C51单片机的数字电子钟摘要本设计是基于单片机的定时闹钟设计。

单片机是在一块半导体芯片上集成了CPU、存储器以及输入和输出接口电路的微型计算机;其集成度高、功能强、通用性好,特别是它具有体积小、重量轻、能耗低、价格便宜、抗扰、能力强和使用方便等特点。

它不仅仅是一项技术性上的突破,同时也是对能源方面的有效节约与有效利用,因此深受国家有关技术部门和能源部门的重视和支持。

其组合而成的配件产品在日常生活的使用过程中非常方便、简单且实用,深受着广大消费者的喜爱,从而使单片机技术在社会中得到了广泛的发展和应用。

目前,已成为测量控制应用系统中的优选机种和新电子产品的关键部件。

特别是20世纪70年代问世以来,以其极高的性能价格比,受到人们的重视和关注,应用很广、发展很快,推广率高,市场利润率高。

而51单片机是各单片机中最为典型和最有代表性的一种。

本次设计的定时闹钟在硬件方面就采用了AT89C52芯片,用6位LED数码管来进行显示。

LED用P0口进行驱动,采用的是动态扫描显示,能够比较准确显示时时.分分.秒秒。

通过P2.4功能按键可以实现对时钟和闹钟时间的修改和定时,P2.5功能按键实现闹钟的开关,定时时间到喇叭可以发出报警声并自动关闭。

在软件方面采用汇编语言编程。

整个定时闹钟系统能完成时间的显示,调时和定时闹钟、闹钟开关,复位等功能,并经过系统仿真后得到了正确的结果。

Key: XXXXX目录1 概述 (1)1.1设计意义 (1)1.2设计任务 (1)1.3设计系统的主要功能 (1)2 系统总体方案及硬件设计 (2)2.1系统总体方案 (2)2.2系统设计方框图 (2)2.3硬件设计 (2)2.3.1芯片:AT89C52 (2)2.3.2蜂鸣器:BUZZER (5)2.3.3时钟电路 (5)2.3.4显示器模块的设计 (6)3 软件设计 (9)3.1程序流程图 (9)3.2系统的软件构成及功能 (10)3.2.1显示时间,闹钟时间的设置程序 (10)3.2.2中断程序设计............................................................ 错误!未定义书签。

基于单片机的电子钟设计

基于单片机的电子钟设计

基于单片机的电子钟设计摘要:电子钟是一种普遍使用的时钟类型。

通过单片机,可以实现数字时钟的各种功能,例如:时间显示、闹钟功能、温度显示等。

本文介绍了基于单片机的电子钟设计方案,其中包括硬件系统的设计和程序代码的实现。

该电子钟的基本功能包括:时钟模式、闹钟模式、温度显示和日期显示。

设计方案使用的单片机是AT89C52,时钟模块为DS1302。

实验结果表明,该电子钟系统具有稳定性高、精度高、实用性强等特点。

关键词:单片机、电子钟、DS13021. 概述电子钟是目前流行的现代时钟类型之一。

通过单片机,可以实现数字时钟的各种功能,例如:时间显示、闹钟功能、温度显示等。

作为一种普遍应用于家庭以及公共场所的计时工具,电子钟能够提高人们的时效性、管理效率。

本文将介绍基于单片机的电子钟设计方案,其中包括硬件系统的设计和程序代码的实现。

该电子钟的基本功能包括:时钟模式、闹钟模式、温度显示和日期显示。

设计方案使用的单片机是AT89C52,时钟模块为DS1302。

实验结果表明,该电子钟系统具有稳定性高、精度高、实用性强等特点。

2. 硬件设计2.1 系统原理系统的核心是AT89C52单片机,其包括了8051架构下所有标准的特殊功能寄存器以及升级的功能模块。

DS1302是常用的实时时钟模块,它包含一个时钟/日历的B类时钟芯片、一个31个字节的静态RAM 以及一个摆振电路。

通过与AT89C52的串行通信接口,可以实现时钟芯片与单片机的通信。

2.2 电路设计电路设计包括AT89C52单片机、DS1302时钟芯片、4个7段数码管以及相关的外围元件。

其中,输入电源电压为5V直流电压,4个7段数码管均采用共阴极的连接方式。

2.3 电路说明(1) 时钟模块DS1302DS1302是一种时钟模块,其具有许多特性,例如:硬件控制时间的计数、在停电情况下,仍能保持时间记录、考虑到掉电情况、在无外部纪念日的情况下,为计时器提供64字节的RAM等特点。

基于STC89C52的电子时钟的设计(有闹钟调时间)

基于STC89C52的电子时钟的设计(有闹钟调时间)

单片机课程设计基于STC89C52的电子时钟的设计电路图程序:#include <reg52.h>sbit beep=P1^0; //蜂鸣器sbit l1=P1^1; //第一个红灯sbit l2=P1^2; //第一个绿灯sbit w4=P1^4; //第1位sbit w3=P1^5; //第2位sbit w2=P1^6; //第3位sbit w1=P1^7; //第4位sbit k1=P3^2; //按键1 +sbit k2=P3^3; //按键2 —sbit k3=P3^6; //按键3 时分调整sbit k4=P3^7; //按键4 功能选择秒表闹钟时间unsigned int a,b,c,d,e,f,num,num1,num2,num3,sum;unsigned char code table[]={0xc0 ,0xf9,0xa4,0xb0,0x99, //15-i0x92,0x82,0xf8,0x80,0x90}; //0011 1111 1100 0000 void keyscan();void sound();void time();void display(); // 时间显示void display2(); // 秒表显示void delay(unsigned int t){unsigned int i,j;for(i=t;i>0;i--)for(j=110;j>0;j--);}void init(){num=45;num2=59;num3=11;TMOD=0x11;TH1=(65536-45872)/256;TL1=(65536-45872)%256;EA=1;ET1=1;TR1=1;beep=0;delay(300);beep=1;delay(500);}void main(){init();while(1){keyscan();display();time();}}void sound(){beep=0;delay(100);beep=1;}void time(){if(num==59) //整点报时 2 miao {beep=0;}else if(num==0) //整点报时{beep=1;}}void keyscan() //按键检测{if(k3==0){TR1=0;sum++;delay(30);}switch(sum){case 1: if(k1==0){num2++;sound(); //蜂鸣叫while(!k1)if(num2==60){num2=0;}break;}if(k2==0){num2--;sound(); //蜂鸣叫while(!k2)if(num2==-1){num2=59;}break;}break;case 2: if(k1==0){num3++;sound(); //蜂鸣叫while(!k1)if(num3==24){num3=0;}break;}if(k2==0){num3--;sound(); //蜂鸣叫while(!k2)if(num3==-1){num3=23;}break;}break;case 3: sum=1;TR1=1;break;}if(k4==0){P0=table[0];w1=0;w2=0; //初始化w3=0;w4=0;while(1){display2();}}}void display(){a=num/10;b=num%10;c=num2/10; //时分秒的个位和十位d=num2%10;e=num3/10;f=num3%10;P0=table[e];w1=0; //第1位delay(2);w1=1;P0=table[f];w2=0; //第2位delay(2);w2=1;P0=table[c];w3=0; //第3位delay(2);w3=1;P0=table[d];w4=0; //第4位delay(2);w4=1;}void display2() {P0=table[e];w1=0; //第1位delay(2);w1=1;P0=table[f];w2=0; //第2位delay(2);w2=1;P0=table[c];w3=0; //第3位delay(2);w3=1;P0=table[d];w4=0; //第4位delay(2);w4=1;}void T1_time()interrupt 3{TH1=(65536-45872)/256;TL1=(65536-45872)%256;num1++;if(num1==20){l1=~l1;num1=0;num++;if(num==60){l2=~l2;num=0; //秒到60跳到0num2++;if(num2==60){num2=0; //分到60跳到0num3++;if(num3==13) //时位到13 跳到0{num3=1;}}} //num记秒num2计分num3计时}}。

毕业设计(论文)_基于at89c52单片机的多功能电子钟设计[管理资料]

毕业设计(论文)_基于at89c52单片机的多功能电子钟设计[管理资料]

多功能电子钟的设计摘要单片机自20世纪70年代问世以来,以其极高的性能价格比,受到人们的重视和关注,应用很广、发展很快。

而51单片机是各单片机中最为典型和最有代表性的一种。

本次设计以AT89C52芯片为核心,辅以必要的外围电路,设计了一个简易的电子时钟,它由220V交流电源供电。

在硬件方面,除了CPU外,使用6个七段LED数码管来进行显示,LED采用的是静态显示。

通过LED能够比较准确显示时、分、秒。

两个简单的按键实现对时间的调整。

软件方面采用汇编语言编程。

整个电子钟装置能完成时间的显示、调时、定时闹钟、秒表、复位等功能。

通过这次设计让我更深入了解单片机基本电路、如何控制和定时器和中断编程的基本方法,从而锻炼了我学习、设计和开发软、硬件的能力。

关键词:电子时钟、多功能、AT89C52、LED数码显示The Design with Investigation of the Multi-function Electron ClockAbstractBecause of its extremely high performance-price ratio, the single-chip computer (SCC) has been paid great attention to ever since it came out in 1970s of 20th Century, and has gained an extensive applicable field and fast development. Among all kinds of SCCs, 51 SCC is the most typical and representative one.This design, adopting AT89C52 chip as the core part with some necessary peripheral circuits, is a simple electronic clock which uses 220V AC as the power supply. In hardware aspect, besides the CPU, six seven-segment LED digi-tubes are used for display, which work in a statically display mode. The LEDs can accurately indicate hour and minute and two buttons can be used to adjust the time. While in the software aspect, the programming language is assembly language. The whole electronic clock system has functions of time display, adjustment, bell-setting , stopwatch and reset, etc.This design enables me to have greater insight into the basic circuit of SCC, and the basic methods of timer control and interruption programming, so that is a training of my ability of learning, designing and developing software and hardware.Key Words:Electronic clock、Multi-function、AT89C52、LED目录引言 ............................................................................................................................... - 1 -第1章绪论 ......................................................................................................................... - 2 -方案要求 ............................................................................................................................. - 2 -方案设计 ............................................................................................................................. - 2 -硬件框图 ............................................................................................................................. - 3 -第2章硬件设计 ................................................................................................................. - 4 -AT89C52的管脚说明....................................................................................................... - 4 -T0和T1的设置 ............................................................................................................... - 6 -T2的设置.......................................................................................................................... - 8 -模块设计 ........................................................................................................................... - 10 -电源部分 ..................................................................................................................... - 10 -复位部分 ..................................................................................................................... - 11 -振荡器部分 ................................................................................................................. - 11 -发声部分 ..................................................................................................................... - 11 -显示部分 ..................................................................................................................... - 12 -第3章软件设计 ............................................................................................................... - 16 -主程序流程图 ................................................................................................................... - 16 -中断程序流程图 ............................................................................................................... - 17 -源程序 ............................................................................................................................... - 20 -结论与展望 ......................................................................................................................... - 21 -参考文献 ............................................................................................................................. - 22 -致谢 ............................................................................................................................. - 22 -附录A 系统电路原理图 ................................................................................................... - 23 -附录B 引用的外文文献及其译文 ................................................................................... - 24 -附录C 主要参考文献的题录及摘要 ............................................................................... - 30 -附录D 电子时钟源程序 ................................................................................................... - 32 -插图清单图1- 1 多功能电子钟原理框图.................................................................................. - 3 -图2- 1 AT89C52芯片PDIP封装引脚图................................................................. - 5 - 图2- 2 电源电路........................................................................................................ - 10 -图2- 3 按键复位电路................................................................................................ - 11 -图2- 4 振荡器............................................................................................................ - 11 -图2- 5 发声电路........................................................................................................ - 12 -图2- 6 数码管显示电路............................................................................................ - 12 -图2- 7 DM7447AN引脚功能图............................................................................. - 14 -图2- 8 七段显示器对DM7447AN 之保护电路图................................................. - 16 -图3- 1 主程序流程图................................................................................................ - 17 - 图3- 2 T2中断流程图 ............................................................................................ - 18 -图3- 3 T1中断流程图 ............................................................................................ - 19 -图3- 4 T0中断流程图 ............................................................................................ - 20 -表格清单表2- 1 ........................................................................................................................ - 6 -表2- 2 P3口各位的第二功能................................................................................... - 6 -表2- 3 TMOD ............................................................................................................ - 7 -表2- 4 TCON ............................................................................................................. - 7 -表2- 5 计数器工作方式............................................................................................ - 7 -表2- 6 T2CON ........................................................................................................... - 8 -表2- 7 T2CON的各位功能...................................................................................... - 8 -表2- 8 T2MOD .......................................................................................................... - 9 -表2- 9 定时器2工作方式........................................................................................ - 9 -表2- 10 数码管数据和数码管每段的对应关系...................................................... - 13 -表2- 11 数码管断码和字型的对应关系(共阳极).............................................. - 13 -表2- 12 DM7447AN 真值表.................................................................................. - 15 -引言一寸光阴一寸金,寸金难买寸光阴。

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

单片机原理课程设计题目:基于AT89C52的电子时钟设计姓名:学院:专业:班级:学号:指导教师:年月日南京农业大学教务处制aortiu目录摘要 (2)关键词 (2)引言 (2)1设计要求与方案论证 (2)设计要求 (2)系统方案选择方案和论证 (2)1.2.1单片机芯片的选择方案和论证 (2)1.2.2 显示模块选择方案和论证 (3)1.2.3 时钟芯片的选择方案和论证 (3)2.系统的硬件设计与实现 (3)电路设计框图 (3)系统硬件概述 (3)主要单元电路的设计 (4)2.3.1 单片机主控制模块的设计 (4)2.3.2时钟电路模块的设计 (4)2.3.3 键盘模块设计 (5)2.3.4蜂鸣器模块的设计 (5)2.3.5显示模块的设计 (5)3.系统的软件设计 (6)程序流程框图 (6)程序的设计 (7)4.系统调试 (7)软件调试 (7)硬件调试 (8)实验箱调试结果 (8)5.总结心得体会 (9)附录一:系统程序 (9)基于AT89C52的电子时钟设计指导教师:吕成绪胡飞摘要:单片机在电子产品中的应用越来越广泛,特别是51系列的单片机,由于其使用方便、价格低廉等优势,在市场上占有很大的份额。

AT89C52就是51系列中的一个比较成熟的型号。

本设计是一个多功能的实时时钟,带秒表、整点报时、闹铃、调整时间等功能。

可按键直接设置闹铃时间。

由AT89C51单片机、DS1302、LCD1602等模块组成。

现代社会,时间就是金钱,时钟是每个人的必备品。

本设计实现了所需功能,给大家带来方便,整体性好、人性化强、可靠性高,实现了时钟的多功能应用。

关键词:电子时钟;DS1302;LCD1602;引言:随着科技的快速发展,时间的流逝,从观太阳、摆钟到现在电子钟,人类不断研究,不断创新纪录。

美国DALLAS公司推出的具有涓细电流充电能的低功耗实时时钟电路DS1302。

它可以对年、月、日、周、时、分、秒进行计时,还具有闰年补偿等多种功能,而且DS1302的使用寿命长,误差小。

对于数字电子时钟采用直观的数字显示,可以同时显示年、月、日、周日、时、分、秒和温度等信息,还具有时间校准等功能。

该设计以AT89C51单片机作为核心,功耗小,能在3V的低压工作,电压可选用3~5V电压供电。

综上所述,此电子时钟具有读取方便、显示直观、功能多样、电路简洁、成本低廉等诸多优点,符合电子仪器仪表的发展趋势,具有广阔的市场前景。

1.设计要求与方案设计要求:(1)启动时显示制作的年、月、日、制作者的学号等信息。

(2)24小时计时功能(精确到秒)(3)整点报时功能。

(4)秒表功能(5)省电功能模式(未设计)系统基本方案选择1.2.1单片机芯片的选择方案和论证方案一:采用89C51芯片作为硬件核心,采用Flash ROM,内部具有4KB ROM 存储空间,能于3V的超低压工作,而且与MCS-51系列单片机完全兼容,但是运用于电路设计中时由于不具备ISP在线编程技术, 当在对电路进行调试时,由于程序的错误修改或对程序的新增功能需要烧入程序时,对芯片的多次拔插会对芯片造成一定的损坏。

方案二:采用AT89S52,片内ROM全都采用Flash ROM;能以3V的超底压工作;同时也与MCS-51系列单片机完全该芯片内部存储器为8KB ROM 存储空间,同样具有89C51的功能,且具有在线编程可擦除技术,当在对电路进行调试时,由于程序的错误修改或对程序的新增功能需要烧入程序时,不需要对芯片多次拔插,所以不会对芯片造成损坏。

相比之下,我们在实验箱实际仿真时选择采用AT89S52作为主控制系统,由于proteus库中没有AT89S52,在原理图仿真时采用了AT89C51.1.2.2 显示模块选择方案和论证方案一:采用点阵式数码管显示,点阵式数码管是由八行八列的发光二极管组成,对于显示文字比较适合,如采用在显示数字显得太浪费,且价格也相对较高,所以也不用此种作为显示.方案二:采用LCD液晶显示屏,液晶显示屏的显示功能强大,显示多样,清晰可见.本设计采用LCD1602.1.2.3时钟芯片的选择方案和论证方案一:直接采用单片机定时计数器提供秒信号,使用程序实现年、月、日、时、分、秒计数。

采用此种方案虽然减少芯片的使用,节约成本,但是,实现的时间误差较大。

所以不采用此方案。

方案二:采用DS1302时钟芯片实现时钟,DS1302芯片是一种高性能的时钟芯片,可自动对秒、分、时、日、周、月、年以及闰年补偿的年进行计数,而且精度高,位的RAM做为数据暂存区,工作电压~范围内,时耗电小于300nA.综上各方案所述,对此次作品的方案选定: 采用AT89C52作为主控制系统, DS1302提供时钟计时,LCD1602屏幕显示.2.系统的硬件设计与实现电路设计框图本电路是由AT89C51单片机为控制核心,具有在线编程功能,低功耗,能在3V超低压工作;时钟电路由DS1302提供,它是一种高性能、低功耗、带RAM的实时时钟电路,它可以对年、月、日、时、分、秒进行计时,具有闰年补偿功能,工作电压为~。

采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。

DS1302内部有一个31*8的用于临时性存放数据的RAM寄存器。

可产生年、月、日、周日、时、分、秒,具有使用寿命长,精度高和低功耗等特点,同时具有掉电自动保存功能;显示部份由LCD1602构成.主要单元电路的设计2.3.1单片机主控制模块的设计图-1 主控制系统AT89C51单片机为40引脚双列直插芯片,有四个I/O口P0,P1,P2,P3。

单片机的最小系统如上图所示,18引脚和19引脚接时钟电路,XTAL1接外部晶振和微调电容的一端,在片内它是振荡器倒相放大器的输入,XTAL2接外部晶振和微调电容的另一端,在片内它是振荡器倒相放大器的输出.第9引脚为复位输入端,接上电容,电阻及开关后够上电复位电路.如图-1 所示.2.3.2时钟电路模块的设计图-2 DS1302的引脚图图-2示出DS1302的引脚排列,其中Vcc1为后备电源,Vcc2为主电源。

在主电源关闭的情况下,也能保持时钟的连续运行。

DS1302由Vcc1或Vcc2两者中的较大者供电。

当Vcc2大于Vcc1+时,Vcc2给DS1302供电。

当Vcc2小于Vcc1时,DS1302由Vcc1供电。

X1和X2是振荡源,外接晶振。

RST是复位/片选线,通过把RST输入驱动置高电平来启动所有的数据传送。

RST输入有两种功能:首先,RST接通控制逻辑,允许地址/命令序列送入移位寄存器;其次,RST提供终止单字节或多字节数据的传送手段。

当RST 为高电平时,所有的数据传送被初始化,允许对DS1302进行操作。

如果在传送过程中RSTS置为低电平,则会终止此次数据传送,I/O引脚变为高阻态。

上电动行时,在Vcc 大于等于之前,RST必须保持低电平。

中有在SCLK 为低电平时,才能将RST置为高电平,I/O为串行数据输入端(双向)。

SCLK始终是输入端。

2.3.3 键盘模块设计图-3 键盘模块如图-3,K1、K2、K3、K4均为多功能键。

K1为秒表设置键,按K4键时为时钟确定键;K2在K4按下时为时钟下调键,在K3按下时为闹钟确定键,在K1按下时为秒表开始键;K3为闹钟设置键,在K4按下时为时钟上调键,在K1按下时为秒表暂停键;K4为时钟设置键,在K3按下时为闹钟移位键,在K1按下时为秒表退出键。

2.3.4蜂鸣器模块的设计图-4 声音输出模块闹铃时间到和整点时,P3_7给低电平,蜂鸣器响。

2.3.5显示模块的设计图-5 LCD显示输出模块如图—5,1脚VSS和3脚VEE为电源接地,第2管脚VDD接电源,第4管脚RS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器;RW为读写信号线,高电平1时进行读操作,低电平0时进行写操作;E(或EN)端为使能(enable)端;第7~14脚D0~D7为8位双向数据端。

控制和数据端都接了上拉电阻用来驱动。

3.系统的软件设计程序流程框图图-A 主程序流程图图-B 时间调整程序流程图程序的设计见附录4.系统调试软件调试结果时钟主界面用户设置闹铃界面秒表界面时钟仿真图硬件调试结果起初蜂鸣器有点问题不响,后来发现是定义错端口引起的。

其他功能正常。

实验箱调试结果实现功能的具体方法:时钟主界面时按下K1键进入秒表功能,按K2秒表开始,再按K3秒表停,按键K4返回时间显示;按K4开始调试(移位“年→秒”),接着按K2、K3调节时间增减;按K2开启闹钟,K3调节时间,K4(移位“时分”);按“年→秒”的顺序移位,按键K2进行减运算,按键K3进行加运算,按键K1返回到主界面并显示设置值。

按下K3键,实现闹钟定时调整,按键K4进行“分-秒”移位,按键K3进行上调,按键K2返回到主界面。

主界面K2实现开启/关闭闹钟的功能。

按下K1键进入秒表,按键K2开始计时,K3暂停计时,K4返回到主界面。

5.总结心得体会:这次实习我们组选择的是电子时钟设计。

实习任务包括理论设计、调试与仿真、撰写设计报告等。

其中理论设计又包括选择总体方案,硬件系统设计、软件系统设计;硬件设计包括单元电路,选择元器件及计算参数等;软件设计包括模块化层次结构图,程序流程图。

程序设计是课程设计的关键环节,开始以为时钟会很简单,就算遇到问题应该也很好解决,但当自己真正去做的时候,发现了好多困难。

于是查资料,问同学。

经过和同学的探讨,通过调试进一步完善程序设计,最后虽然省电模式没实现但其他基本达到课题所要求的指标。

完成了实习任务。

这次实习我更加了解了单片机的应用,更加牢牢的掌握了书本知识与现实的结合,总之这是实习收获很大,以后还需多动手实践,多练习编程,才能熟练掌握单片机。

附录一:程序:#include<>#include<>#include<>#include<>#define uchar unsigned char#define uint unsigned int#define TIME (0X)#define FLAG 0xf4 ,key2num是key5的计数uchar code table[]=" GYY";uchar code table1[]=" GLQ";uchar code table4[]=" 00:00:00 MB ";void delay(uint z){ uint x,y;for(x=z;x>0;x--)for(y=110;y>0;y--);}delay1ms(uchar time) //延时1ms{ uchar i,j;for(i=0;i<time;i++){ for(j=0;j<250;j++);}}//LCD驱动部分enable(){ rs=0;rw=0;e=0;delay1ms(3);e=1;}write2(uchar i){ P0=i;rs=1;rw=0;e=0;delay1ms(2);e=1;}write1(uchar data *address,m){ uchar i,j;for(i=0;i<m;i++,address++){ j=*address;write2(j);}}//LCD显示lcdshow(){ P0=0XC; //显示器开、光标关enable();P0=0x80; //第一行0~15enable();write1(time1,16);P0=0xc1; //第二行1~14enable();write1(time2,15);}//DS1302读写子程序write(uchar address){ uchar i;clk=0;_nop_();rst=1;_nop_();for(i=0;i<8;i++){ dat=address&1;_nop_();clk=1;address>>=1;clk=0;}}uchar read(){ uchar i,j=0;for(i=0;i<8;i++){ j>>=1;_nop_();clk=0;_nop_();if(dat)j|=0x80;_nop_();clk=1;}return(j);}//部分显示数据初始化timestart(){time1[6]=time1[9]='-';time1[2]='2',time1[3]='0';time2[2]=time2[5]=':';write(0xc1);alarm[0]=read();rst=0;write(0xc3);alarm[1]=read();rst=0;write(0xc5);time1[0]=read();rst=0;}//读取时间readtime(){ uchar i,m,n;write(0x8d); //读取年份m=read();rst=0;time1[4]=m/16+0x30;time1[5]=m%16+0x30;time1[15]=m+0x30;for(i=7,n=0x89;i<11;i+=3,n-=2) //读取月份和日期{ write(n);m=read();rst=0;time1[i]=m/16+0x30;time1[i+1]=m%16+0x30;}for(m=0,i=0,n=0x85;i<7;i+=3,n-=2,m++) //读取时,分,秒{ write(n);time[m]=read(); //将实时的时分秒给time[] rst=0;time2[i]=time[m]/16+0x30;time2[i+1]=time[m]%16+0x30;}}baoshi() //整点报时{ beep=1;if(time[1]==0)if(time[2]==0){beep=0;delay(10);beep=1;}}//闹钟部分showalarm(){ uchar i;for(i=1;i<10;i++){beep=0;delay(1000);beep=1;}}//根据日期的变动自动调整星期//设置时间settime(){uchar i=0x85,year,month,day,n;time2[6]=time2[7]=0x30,time1[14]=time1[15]=0x20;lcdshow();while(1){P0=0x0e; //显示器开显示、开光标enable();P0=i; //定光标enable();P1=0xf0;if(P1!=0Xf0) //有按钮按下{delay1ms(100); //延时去抖动if(P1!=0Xf0){j=7;if(P1==0X70) //K1,设置时钟{i+=3;if(i==0x8e)i=0xc2;else if(i>0xc5)i=0x85;}else if(P1==0xb0) //K2,上调{year=(time1[4]&0xf)*10+(time1[5]&0xf);month=(time1[7]&0xf)*10+(time1[8]&0xf);day=(time1[10]&0xf)*10+(time1[11]&0xf);if(i==0x85){year++;if(year>99)year=0;if((year%4)!=0)if(month==2&&day==29)day=28;}else if(i==0x88){month++;if(month>12)month=1;if(day>Day[month-1]){day=Day[month-1];if(month==2&&(year%4)==0)day=29;}}else if(i==0x8b){day++;if(day>Day[month-1]){if(month==2&&(year%4)==0){if(day>29)day=1;}if(month!=2)day=1;}}else if(i==0xc2){n=(time2[0]&0xf)*10+(time2[1]&0xf);n++;if(n>23)n=0;time2[0]=n/10+0x30;time2[1]=n%10+0x30;}else{n=(time2[3]&0xf)*10+(time2[4]&0xf);n++;if(n>59)n=0;time2[3]=n/10+0x30;time2[4]=n%10+0x30;}time1[4]=year/10+0x30;time1[5]=year%10+0x30;time1[7]=month/10+0x30;time1[8]=month%10+0x30;time1[10]=day/10+0x30;time1[11]=day%10+0x30;lcdshow();}else if(P1==0xd0) //K3,下调{ year=(time1[4]&0xf)*10+(time1[5]&0xf);month=(time1[7]&0xf)*10+(time1[8]&0xf);day=(time1[10]&0xf)*10+(time1[11]&0xf);if(i==0x85){year--;if(year<1)year=99;if((year%4)!=0)if(month==2&&day==29)day=28;}else if(i==0x88){month--;if(month<1)month=12;if(day>Day[month-1]){day=Day[month-1];if(month==2&&(year%4)==0)day=29;}}else if(i==0x8b){day--;if(day<1){if(month==2&&(year%4)==0){day=29;}if(month!=2)day=Day[month-1];}}else if(i==0xc2){n=(time2[0]&0xf)*10+(time2[1]&0xf);n--;if(n<0)n=23;time2[0]=n/10+0x30;time2[1]=n%10+0x30;}else{n=(time2[3]&0xf)*10+(time2[4]&0xf);n--;if(n<0)n=59;time2[3]=n/10+0x30;time2[4]=n%10+0x30;}time1[4]=year/10+0x30;time1[5]=year%10+0x30;time1[7]=month/10+0x30;time1[8]=month%10+0x30;time1[10]=day/10+0x30;time1[11]=day%10+0x30;lcdshow();}else if(P1==0xe0) //K4,确定设置{ delay1ms(1000);write(0x8c);write((time1[4]&0xf)*16+(time1[5]&0xf));rst=0;write(0x8a);rst=0;for(i=7,n=0x88;i<11;i+=3,n-=2){write(n);write((time1[i]&0xf)*16+(time1[i+1]&0xf));rst=0;}for(i=0;i<7;i+=3,n-=2){write(n);write((time2[i]&0xf)*16+(time2[i+1]&0xf));rst=0;}TR0=0;return;}else{TR0=0;return;}}}if(j==0){TR0=0;return;}}}//设置闹钟setalarm(){uchar i,n;for(i=1;i<16;i++){time1[i]=0x20;}time2[0]=alarm[0]/16+0x30;time2[1]=(alarm[0]&0x0f)+0x30;time2[3]=alarm[1]/16+0x30;time2[4]=(alarm[1]&0x0f)+0x30;time2[6]=time2[7]=0x30;lcdshow();i=0xc2;while(1){P0=0xe; //显示器开、光标开enable();P0=i; //定光标enable();P1=0xf0;if(P1!=0Xf0) //有按钮按下{delay1ms(100); //延时去抖动if(P1!=0Xf0){j=7;if(P1==0X70){i+=3;if(i>0xc5)i=0xc2;}else if(P1==0xb0) //按K2,设闹钟{if(i==0xc2){n=(time2[0]&0xf)*10+(time2[1]&0xf);n++;if(n>23)n=0;time2[0]=n/10+0x30;time2[1]=n%10+0x30;}else{n=(time2[3]&0xf)*10+(time2[4]&0xf);n++;if(n>59)n=0;time2[3]=n/10+0x30;time2[4]=n%10+0x30;}lcdshow();}else if(P1==0xd0) //确定闹钟设置{write(0xc0);write((time2[0]&0x0f)*16+(time2[1]&0x0f));rst=0;write(0xc2);write((time2[3]&0xf)*16+(time2[4]&0xf));rst=0;time1[0]=FLAG;write(0xc4);write(time1[0]);rst=0;TR0=0;timestart();return;}else{TR0=0;timestart();return;}}}if(j==0){TR0=0;timestart();return;}}}//lcdwrite() LCD写指令void lcdwrite(uchar write){rs=0;P0=write;delay(1);e=1;delay(1);e=0;}//lcdshuju() LCD写数据void lcdshuju(uchar shuju){rs=1;P0=shuju;delay(1);e=1;delay(1);e=0;}//秒表部分void write_sfm(uchar add ,uchar date) //秒显示函数{ uchar shi,ge;shi=date/10;ge=date%10;lcdwrite(0x80+0x40+add);lcdshuju(0x30+shi);lcdshuju(0x30+ge);}void mbiao( ) //秒表函数{ lcdwrite(0x80+0x40);for(num=0;num<16;num++)lcdshuju(table4[num]);start:while(1){ if(P1!=0Xf0){ delay1ms(100); //延时去抖动 if(P1!=0Xf0)if(P1==0xd0) //秒表开始计数{TR1=1;ET1=1;}else if(P1==0xb0) //秒表暂停计数 { TR1=0;}else if(P1==0x70) //退出{return;}goto start;}}}void init(){ e=0;rw=0;lcdwrite(0x38);//显示模式lcdwrite(0x0c);//开显示,光标不闪烁lcdwrite(0x80);for(i=0;i<16;i++){lcdshuju(table[i]);delay(200);}lcdwrite(0x80+0x40);for(i=0;i<16;i++){lcdshuju(table1[i]);delay(200);}delay(500);lcdwrite(0x01);}main(){init();IE=0X82;TMOD=0x11;write(0x8E); //关闭写保护write(0);rst=0;P0=1; //清屏并光标复位enable();P0=0X38; //设置显示模式:8位2行5x7点阵enable();P0=6; //文字不动,光标自动右移enable();timestart();while(1){readtime(); //读取时间lcdshow(); //显示时间baoshi();if(time1[0]!=0x20){beep=1;if(time[0]==alarm[0])if(time[1]==alarm[1])if(time[2]==0)showalarm();}P1=0xf0;if((P1&0Xf0)!=0Xf0){delay1ms(100); //延时去抖动if((P1&0Xf0)!=0Xf0){j=7;TH0=TIME/256,TL0=TIME%256;TR0=1; //关闭时钟if(P1==0x70){settime();}else if(P1==0Xb0){setalarm();}else if(P1==0Xd0){TR0=0; //开启时钟if(time1[0]==FLAG)time1[0]=0x20;elsetime1[0]=FLAG;write(0xc4);write(time1[0]);rst=0;}else if(P1==0Xe0&&mbkey==0) //开启秒表{mbiao();}}}delay1ms(100);}}void time0() interrupt 1 using 1{i--;if(i==0){if(j!=0)j--;i=20;}TH0=TIME/256,TL0=TIME%256;}void timer1() interrupt 3 //秒表定时器{TH1=(65536-10000)/256;TL1=(65536-10000)%256;ms++;write_sfm(8,ms);if(ms==1*30){mbmiao++;write_sfm(5,mbmiao);ms=0;if(mbmiao==60){mbmiao=0;mbfen++;write_sfm(2,mbfen);}}}。

相关文档
最新文档