当前位置:文档之家› 基于LCD1602液晶显示屏的电子万年历设计【两个C程序】

基于LCD1602液晶显示屏的电子万年历设计【两个C程序】

基于LCD1602液晶显示屏的电子万年历设计【两个C程序】
基于LCD1602液晶显示屏的电子万年历设计【两个C程序】

基于LCD1602液晶显示屏的电子万年历设计

基于LCD1602液晶显示屏的电子万年历设计

摘要

现在是一个知识爆炸的新时代,新产品、新技术层出不穷,电子技术的发展更是日新月异。可以毫不夸张的说,电子技术的应用无处不在,电子技术正在不断地改变我们的生活,改变着我们的世界。在这快速发展的年代,时间对人们来说是越来越宝贵,在快节奏的生活时,人们往往忘记了时间,一旦遇到重要的事情而忘记了时间,这将会带来很大的损失。因此我们需要一个定时系统来提醒这些忙碌的人,而数字化的钟表给人们带来了极大的方便。由于单片机具有灵活性强、成本低、功耗低、保密性好等特点,所以电子日历时钟一般都以单片机为核心,外加一些外围设备来实现。

本设计是一种基于液晶显示屏的电子万年历,该系统结合了LCD显示技术,断电时间保护技术和语音录放技术,系统用点阵式液晶显示时间和日期,具有人性化和美观的页面效果,除具备传统的万年历所具有的时间显示和调整功能之外,该系统还兼有语音报时,闰年补偿等功能;以单片机的C51语言进行软件设计,增加了程序的可读性和可移植性,为了便于扩展和更改,软件的设计采用模块化结构,使程序设计的逻辑关系更加简洁明了。实际使用中该设计能准确地显示时间和日期,能准确清晰地完成语音报时功能。

关键词: 单片机,LCD,语音报时,万年历

引言

万年历是采用数字电路实现对.时,分,秒.数字显示的计时装置,广泛用于个人家庭,车站, 码头办公室等公共场所,成为人们日常生活中不可少的必需品,由于数字集成电路的发展和石英晶体振荡器的广泛应用,使得数字钟的精度,远远超过老式钟表, 钟表的数字化给人们生产生活带来了极大的方便,而且大大地扩展了钟表原先的报时功能。诸如定时自动报警、按时自动打铃、时间程序自动控制、定时广播、自动起闭路灯、定时开关烘箱、通断动力设备、甚至各种定时电气的自动启用等,但是所有这些,都是以钟表数字化为基础的。因此,研究万年历及扩大其应用,有着非常现实的意义。

市场上有许多电子钟的专用芯片如:LM8363、LM8365等,但它们功能单一,电路连接复杂,不便于调试制作!但是考虑到用单片机配合时钟芯片,可制成功能任意的电子钟,而且可以做到硬件简单、成本低廉。所以本系统采用了以广泛使用的单片机AT89C51技术为核心,配合时钟芯片DS1302。软硬件结合,使硬件部分大为简化,提高了系统稳定性,并采用LED

显示电路、键盘电路,使人机交互简便易行,此外结合音乐闹铃电路、看门狗和供电电路。本方案设计出的数字钟可以显示时间、设置闹铃功能之外。

本设计中我重点研究实现了单片机+时钟芯片这种模式的万年历,从原理上对单片机和时钟芯片有了深一步的认识,这些基本功能完成后,在软件基础上实现世界时,农历功能。

本设计在很多场合都能用到,可以把此万年历装在镜框中或其它工艺品中,以便更加实用。

第一章概论系统总体框图

本设计的核心部分为单片机控制器,系统的各项功能由其它各部分单元电路来完成,单元电路主要包括:时钟电路部分、显示部分、语音部分、人机交互控制接口部分等,单片机通过程序来控制其它各部分统一协调地来完成系统的各项功能,本设计硬件电路较简单,但软件部分较复杂,所有功能都要通过软件来实现,系统总体设计如图1-1所示。

SHAPE \* MERGEFORMA

T

图1-1 系统总体设计框图

主控制器单片机的选择

采用比较流行的AT89S52作为电路的控制核心,AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。使用Atmel 公司高密度非易失性存储器技术制造,与工业80C51 产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程(具有ISP功能),亦适于常规编程器。在单芯上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。

采用AT89C55,它是美国ATMEL公司生产的低电压,高性能CMOS8位单片机,片内含20kby tes 的可反复擦写的Flash只读程序存储器(ROM)和256*8bytes的随机存取数据存储器(R AM),器件采用ATMEL公司的高密度、非易失性存储技术生产,与标准MCS-51指令系统及8052产品引脚兼容,片内置通用8 位中央处理器(CPU)和Flash存储单元,功能强大AT8 9C55单片机适合于许多较为复杂控制应用场合。

虽然AT89S52的ISP下载功能非常优秀,但它只有8KROM,由于本设计的程序代码比较多,所以选用AT89C55(具有20KROM)。

时钟电路的选择

采用时钟芯片DS1302,DS1302是DALLAS公司推出的涓流充电时钟芯片,内含有一个实时时钟/日历和31字节静态RAM,通过简单的串行接口与单片机进行通信。实时时钟/日历电路

提供秒、分、时、日、日期、月、年的信息,每月的天数和闰年的天数可自动调整,时钟操作可通过AM/PM指示决定采用24或12小时格式。DS1302与单片机之间能简单地采用同步串行的方式进行通信,仅需用到三根口线:⑴RES(复位),⑵I/O(数据线),⑶SCLK(串行时钟)。时钟/RAM的读/写数据以一个字节或多达31个字节的字符组方式通信。DS1302工作时功耗很低,保持数据和时钟信息时功率小于1mW[1]。

DS1302是由DS1202改进而来的,增加了以下的特性:双电源管脚用于主电源和备份电源供应,Vcc1为可编程涓流充电电源,附加七个字节存储器。它广泛应用于电话、传真、便携式仪器以及电池供电的仪器仪表等产品领域。

●实时时钟具有能计算2100年之前的秒、分、时、日、日期、星期、月、年的能力,还有闰年自动调整和补偿的能力;

●31×8位RAM;

●串行I/O口方式使得管脚数量最少;

●宽范围工作电压:-;

●工作电流:时,小于300nA;

●读/写时钟或RAM数据时,有两种传送方式:单字节传送和多字节传送(字符组方式);

●8脚DIP 封装或可选8脚SOIC;

●简单3 线接口;

●与TTL 兼容(Vcc=5V);

●可选工业级温度范围:-40℃-+85℃;

●与DS1202 兼容。

语音报音电路的选择

直接使用语音芯片,语音芯片具有使用方便,外围元件少,只需少量元件就可以组成一个功能齐全的固体录放机,重放时音质好,没有常见的背景噪音,提供零功率信息存储,无需备用电源,掉电后录音内容可永久保留等优点。

ISD1420P语音芯片采用 CMOS 技术,单片录放时间20秒,音质好,内含震荡器、话筒前置放大、自动增益控制、防混淆滤波器、平滑滤波器、扬声器驱动及 EEPROM 阵列。最小的录放系统仅需麦克风、喇叭、两个按钮、电源及少数电阻电容。在录放操作结束后,芯片自动进入低功耗节电模式、功耗仅,芯片采用多电平直接模拟量存储专利技术,每个采样直接存储在片内单个 EEPROM 单元中,因此能够非常真实、自然地再现语音、音乐、音调等各种效果,避免了一般固体录音因电路量化和压缩造成的量化噪声和“金属声”。采样频率从,到,对音质仅有轻微影响。片内信息可保存 100 年(无需电源),EEPROM 单片可反复录音十万次,能直接驱动16Ω以上的喇叭[2]。

显示电路和键盘的选择

显示采用1602液晶屏,它能显示2行,每行显示16个数字或字母(5*7字型),也可显示一行,每行16个字(5*10字型),可显示的内容比较多(包括数字,字母和很多符号),采用并行数据传送,这样1602LCD共占用单片机11个口线,相对于数码管,占用口线少,

电路简单,无需外围驱动电路,占用PCB面积也较少;但对于编程来说,液晶显示的编程比较复杂,而且亮度也比较差,只能在近距离看到时间和日期,能见度不如数码管好。

键盘部分比较简单,只用到4个按键,采用独立式非编码键盘。

第二章系统硬件电路设计系统整体硬件电路设计

本设计采用时钟芯片作为时钟的基准,并且该芯片具有断电保护时间功能(断电后采用电子供电),显示部分采用LCD显示,可以显示年月日时分秒星期等等,该万年历具有随时可调整时分秒年月日的功能,最明显的功能是具有语音报时的功能,比已有的单调的闹钟声音更具有亲和力,具体的调整,录音和功能设置采用4个按键和LCD显示屏共同来实现。总体硬件设计框图如图2-1所示:

SHAPE \* MERGEFORMA

T

图2-1 语音万年历系统原理框图

硬件单元电路设计

单元电路主要由单片机最小系统、时钟芯片电路、LCD显示电路、功能键电路、语音电路等组成。

单片机最小系统设计

AT89C55单片机有40脚PDIP、42脚PDIP等,本系统采用40脚PDIP的封装,其引脚如图2-2所示,AT89C55是AT89C5×系列单片机中性能居中、很有代表性的产品,其主要特性如下:(1)兼容MCS–51产品;(2)20K字节可擦写1000次以上Flash ROM;(3)工作电压为+4V~+;(4)有256*8字节RAM;(5)32个可编程I/O口;(6)3个16位定时/计数器;(7)8个中断源;(8)一个全双工UART串行通信口;(9)静态工作频率在0~33 Mhz;(10)休眠和节电保持两种省电模式;(11)中断唤醒省电模式功能;(12)看门狗定时器;(13)双数据指针(DPTR);(14)电源关闭标志。它相对AT89C51、89C52增加了ROM空间,内部看门狗定时器、双数据指针,全新的加密算法等功能,但价格基本不变,甚至更低。

对51系列单片机来说,最小系统一般应该包括:单片机、晶振电路、复位电路。电路如图2-3所示。

图2-2 AT89C55单片机引脚图图2-3 AT 89C55单片机最小系统图

时钟电路设计

一、 DS1302 的管脚排列及描述

管脚描述:(管脚排列如图2-4所示)

图2-4 DS1302管脚配置图

Vcc1:主电源;

Vcc2:备份电源。当Vcc2>Vcc1+时,由Vcc2向DS1302供电,当Vcc2< Vcc1时,由Vcc1向DS1302供电;

SCLK:串行时钟输入;

I/O:双向数据线;

RST:复位信号,在读、写数据期间,必须为高;

X1,X2:晶振输入端

二、DS1302 的内部原理图

DS1302 的内部原理图如图2-5所示,主要由电源控制、晶体振荡、输入移位寄存器、通讯与控制逻辑和RAM组成,晶体振荡负责产生最小时钟单位,输入移位寄存器负责数据的输入与输出,RAM用来存储数据。

SHAPE \* MERGEFORMA

T

图2-5 DS1302 的内部原理图

语音电路设计

一、ISD1420P 的内部结构及管脚排列

ISD1420P内部结构图如图2-7所示,主要由时钟发生器(Internal Clock)、定时器(Timi ng)、取样信号发生器(Sarnpling Clock)、话筒前置放大、自动增益控制(AGC)、防混淆滤波器、平滑滤波器、电源调节器(Power Conbltlonlng)、地址缓冲器(Address Buff ers)、扬声器驱动(Amp)及EEPROM 阵列几部分组成.

图2-7 ISD1420P 内部结框图

管脚排列如图2-8所示;

A0~A7:地址输入端;

VCCA,VSSA:分别为模拟电路正,负电源端;

VCCD,VSSD:分别为数字电路正,负电源端;

SP+,SP-:分别为喇叭正,负端,能驱动 16Ω以上的喇叭;

XCLK:外部时钟;

ANA IN,ANA OUT:分别为模拟输入,模拟输出;

MIC:驻极体话筒输入;

MIC REF:驻极体话筒参考输入;

AGC:自动增益控制;

/REC:录音触发(低电平有效);

/PLAYE:边沿触发放音,此端出现下降沿时,芯片开始放

音;

图2-8 ISD1420P 引脚图[11]

/PLAYL:电平触发放音,此端出现下降沿时,芯片开始放音;

/RECLED:录音指示,处于录音状态时,此端为低,可驱动 LED [4]。

图2-8 ISD1420P 引脚图

二,ISD1420P与单片机的连接

ISD1420P的电路图如图 2-9所示,图中LED用做录音和放音的指示灯;R8、R10和C6起到上拉的作用;通过R14和C11的时间常数来决定自动增益控制的释放时间,470KΩ和的标称值在绝对大多数场合下可获得满意的效果;C7为电源和地之间的去耦电容;C9和C10为话筒的耦合电容.

图2-9 ISD1420P电路图

显示电路设计

一、LCD1602 内部结构及管脚排列

LCD1602 内部结构如图2-10所示

图2-10 LCD1602 内部结构

●忙碌标志:本标志(BF)用以表示当时LCD的状态,若BF=1,则表示处于忙碌状态,无法接受外部指令或数据;若BF=0,则可接受外部指令或数据。

●显示数据存储器:本存储器(DDRAM)存储所要显示的数据。实际上本存储器里存放的是要显示数据的ASCII码,再以ASCII码为地址,到CGRAM里找到该字型的显示编码。此外还包括字型产生器,光标闪烁控制电路,偏压电路,时序电路等等[6]。LCD1602管脚排列及功能说明如表 2-1所示。

表 2-1 LCD1602管脚排列及功能说明

二、LCD1602电路图

LCD1602电路图如图2-11所示,其中J2为8*10k欧姆的排阻作为P0口的上拉电阻,J14为1602液晶显示器件,左边的SIP16封装接口与液晶对应,电位器R7是用来调节液晶背光的对比度的,液晶的4、5、6脚与单片机相连作为控制信号,7-14脚与单片机P0口相连作为数据信号传送。

图2-11 LCD1602电路图

第三章系统软件设计软件整体设计

系统软件主要包括以下几个模块:LCD显示模块,DS1302时钟芯片模块,ISD1420P语音芯片模块,按键处理模块等,通过这几个模块的有机结合和互相调用来完系统任务,软件总体框架结构如图 3-1所示,主程序流程图如图 3-2所示。

SHAPE \* MERGEFORMA

T

图3-1软件总体框架结构图

图3-2 主程序流程图及中断服务程序流程

软件子模块设计时钟芯片DS1302软件设计

一、DS1302编程原理

1.DS1302内部寄存器组织

DS1302有关日历、时间的寄存器共有12个,其中有7个寄存器(读时81h~8Dh,写时80h~8Ch),存放的数据格式为BCD码形式,如表3-1所示。表 3-1 DS1302有关日历、时间的寄存器。

小时寄存器(85h、84h)的位7用于定义DS1302是运行于12小时模式还是24小时模式。当为高时,选择12小时模式。在12小时模式时,位5是,当为1时,表示PM。在24小时模式时,位5是第二个10小时位。

秒寄存器(81h、80h)的位7定义为时钟暂停标志(CH)。当该位置为1时,时钟振荡器停止,DS1302处于低功耗状态;当该位置为0时,时钟开始运行。

控制寄存器(8Fh、8Eh)的位7是写保护位(WP),其它7位均置为0。在任何的对时钟和RAM的写操作之前,WP位必须为0。当WP位为1时,写保护位防止对任一寄存器的写操作。 DS1302中附加31字节静态RAM的地址如表4-2所示。

表3-2 DS1302数据RAM地址

DS1302的工作模式寄存器

所谓突发模式是指一次传送多个字节的时钟信号和RAM数据。突发模式寄存器如表3-3所示。表3-3 突发模式寄存器

此外,DS1302还有充电寄存器等。

2.读写时序说明

DS1302是SPI总线驱动方式。它不仅要向寄存器写入控制字,还需要读取相应寄存器的数据。

要想与DS1302通信,首先要了解DS1302的控制字。DS1302的控制字如图 3-3所示。

图 3-3 控制字(即地址及命令字节)

控制字的最高有效位(位7)必须是逻辑1,如果它为0,则不能把数据写入到DS1302中;位6:如果为0,则表示存取日历时钟数据,为1表示存取RAM数据;

位5至位1(A4~A0):指示操作单元的地址;

位0(最低有效位):如为0,表示要进行写操作,为1表示进行读操作。

控制字总是从最低位开始输出。在控制字指令输入后的下一个SCLK时钟的上升沿时,数据被写入DS1302,数据输入从最低位(0位)开始。同样,在紧跟8位的控制字指令后的下一个SCLK脉冲的下降沿,读出DS1302的数据,读出的数据也是从最低位到最高位。数据读写时序如图 3-4所示,数据可分为单字节传送和多字节传送。

图 3-4 数据读写时序

二、DS1302软件设计模块图

DS1302软件设计模块图如图3-5所示,具体可以包括三个模块:写入数据模块、读出数据模块、初始化时间模块,每个模块又可以包含几个子函数.

SHAPE \* MERGEFORMA

T

图 3-5 DS1302程序流程图

LCD1602显示软件设计及显示说明

LCD1602液晶显示屏是以若干个5* 8或5* 11点阵块组成的显示字符群。每个点阵块为一个字符位,字符间距和行距都为一个点的宽度,主控制驱动电路为HD44780 (HITACHI ),具有字符发生器ROM可显示192种字符160个5 *7点阵字符和32个5* 10点阵字符,具有64个字节的自定义字符RAM,可自定义8个5* 8点阵字符或4个5* 11点阵字符,具有80个字节的RAM,标准的接口特性适配M6800系列MPU的操作时序,低功耗长寿命高可靠性。

一、LCD1602编程原理

1.控制器接口信号说明

控制器接口信号说明如表3-4所示

2.LCD指令说明

LCD指令说明如表3-5所示。

指令指令码

功能RS R/W D7 D6 D5 D4 D3 D2 D1 D0

清除显示0 0 0 0 0 0 0 0 0 1

将DDRAM填满"20H",并且设定DDRA

M的地址计数器(AC)到"00H"

地址归位0 0 0 0 0 0 0 0 1 X

设定DDRAM的地址计数器(AC)到"0

0H",并且将游标移到开头原点位

置;这个指令不改变DDRAM 的内容

显示状态开/关0 0 0 0 0 0 1 D C B

D=1: 整体显示 ON,C=1: 游标O

N , B=1:游标位置反白允许

进入点设定0 0 0 0 0 0 0 1 I/D S

指定在数据的读取与写入时,设定

游标的移动方向及指定显示的移位

游标或

显示移位控制0 0 0 0 0 1 S/C R/L X X

设定游标的移动与显示的移位控制

位;这个指令不改变DDRAM 的内容

功能

, 设定0 0 0 0 1 DL X RE X X

,

DL=0/1:4/8位数据

RE=1: 扩充指令操作,

RE=0: 基本指令操作

, ;设

定CGRAM

地址

0 0 0 1 AC5 AC4 AC3 AC2 AC1 AC0 设定CGRAM 地址设定D

DRAM 地址0 0 1 0 AC5 AC4 AC3 AC2 AC1 AC0

设定DDRAM 地址(显示位址)

第一行:80H-87H第二行:90H-9

7H

读取忙

标志和地址0 1 BF AC6 AC5 AC4 AC3 AC2 AC1 AC0

读取忙标志(BF)可以确认内部动作

是否完成,同时可以读出地址计数

器(AC)的值

写数据到RAM 1 0 数据将数据D7—D0写入到内部的RAM(D

DRAM/CGRAM/IRAM/GRAM)

读出RAM 的值1 1 数据从内部RAM读取数据D7—D0

(DDRAM/CGRAM/IRAM/GRAM)

3.LCD字型编码表

LCD字型编码表如图 3-8所示。

图 3-8 LCD字型编码表

二、LCD1602显示软件设计流程图

LCD1602显示程序流程图如图 3-9所示,除了该流程图还有显示一个字符到指定位置函数,显示字符串到指定位置函数,写指令函数,写数据函数,判忙函数(内部等待函数),初试化函数等等。

图 3-9 LCD1602显示程序流

三 LCD1602显示说明

根据功能的不同,显示界面也不同,主要有以下几种显示界面:开机欢迎界面,正常显示和调整设置界面,闹钟设置界面,分段录音界面。

1.开机欢迎界面

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

A W E L C O M E

B W E L

C O M E

图 3-10 开机欢迎界面

该界面是起了美化效果,使显示更具有亲和力,更具有人性化的设计。

2.正常显示和调整设置界面

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

A T i m e : 0 0 : 0 0 : 0 0 w ?

B D a t e : 0 0 - 0 0 - 0 0 T T

图 3-11 正常显示和调整设置

界面显示说明:

⑴A6,A7显示小时,A9,A10显示分钟,A12,A13显示秒;

⑵A15的W是week的首字母表示星期的意思,A16的?是显示当天的星期,如该天为星期一则显示为1,以此类推;

⑶B6,B7显示小时,B9,B10显示分钟,B12,B13显示秒;

⑷B15为T(TRUE)则代表闹钟报音开,为F(false)则为关,

B16为T(TRUE)则代表整点报音开,为F(false)则为关;

⑸在该界面中以上提到的几位都可以通过按键来调整和设置。

3.闹钟设置界面

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

A S E T C L O C K

B T i m e : 0 0 : 0 0 : 0 0 O

图 3-12 闹钟设置界面

界面显示说明:

⑴B6,B7为闹钟小时设置位,B9,B10为闹钟分钟设置位,B12,B13为闹钟秒设置位;

⑵B15为周期性闹钟设置位,为O(once)则为临时性闹种,为R(repeat)则为周期性闹钟;

⑶在该界面中以上提到的几位都可以通过按键来调整和设置。

4.分段录音界面

分段录音界面如图 3-13、图 3-14、图 3-15所示。图 3-13为进入录音功能界面,图 3-1

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

A W E L C O M E

B R E

C O R

D

E R

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

A R e c o r d i n g : 1 1 S

B

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

A R e c o r d i n g : 1 1 S

B O V E R

图 3-15 录音结束界面

录音界面显示说明:

⑴正在录音时显示A行,其中A11显示为录音的字段序号,A15为该段的录音时间长度,录音时不能超过该时间长度,超过部分录音无效;

⑵一个字段录音完成时显示图 3-15界面。

结论

本论文主要研究了液晶显示屏的电子万年历的设计,本系统采用了以广泛使用的单片机AT8 9C51技术为核心,配合时钟芯片DS1302。以LCD1602为核心的液晶显示电路可以直接的显示结果。本设计的主要优点有分辨率高、设计简单,精度高,成本低等。

本次的设计使我从中学到了一些很重要的东西,那就是如何从理论到实践的转化,怎样将我所学到的知识运用到我以后的工作中去。在大学的课堂的学习只是在给我们灌输专业知识,而我们应把所学的用到我们现实的生活中去,此次的电子时钟设计给我奠定了一个实践基础,我会在以后的学习、生活中磨练自己,使自己适应于以后的竞争。当然由于时间和条件的关系,不可避免的,本系统还存在一些不足之处也有缺点,系统的软件部分还需要进行相应的调整,使整个系统可靠性更高,使用更方便,更趋于完美。

谢辞

在本论文的写作过程中,我非常感谢我的指导老师左现刚老师,无论是在课题分析、材料学习阶段还是在论文设计各个方面,左老师给予的指导和帮助。对论文的顺利完成其了很大的作用。每次的专业讲解使我钦佩,严谨认真精神更使我感动,从他那里我学习到的不仅有专业知识,还有踏实勤恳、认真求实的优良品质和工作作风。在此论文完成之际,首先向左老师表示衷心的感谢和深深的敬意。

此外,对所有在这四年里的学习和生活中,曾经教导过我帮助过我以及默默的地给予我无数的关心和帮助的老师以及和我一起生活一起学习一起走过四年人生路的同学们,在此向大家表示最诚挚的谢意和最美好的祝福。

参考源程序<一>

#include<>

#define uchar unsigned char

sbit rs=P1^2;

sbit rw=P1^1;

sbit en=P1^0;

uchar code table[]=" 2012-03-15 blue";

uchar code table1[]=" 10:34:56 sky";

uchar code table2[]={31,28,31,30,31,30,31,30,30,31,30,31}; //平年

uchar code table3[]={31,29,31,30,31,30,31,30,30,31,30,31}; //闰年uchar count=0;

uchar hour=10;

uchar min=34;

uchar sec=56;

uchar t;

uchar year1=20;

uchar year2=12;

uchar month=03;

uchar day=15;

void delay(uchar m) //延时子程序

{

uchar i,j;

for(i=m;i>0;i--)

for(j=5;j>0;j--)

;

}

void wr_com(uchar com) //写命令子程序

{

rs=0;

rw=0;

en=0;

P2=com;

delay(1);

en=1;

delay(5);

en=0;

}

void wr_dat(uchar dat)//写数据子程序

{

rs=1;

rw=0;

en=0;

P2=dat;

delay(1);

en=1;

delay(5);

en=0;

}

void init()

{

en=0;

wr_com(0x38); //设置16*2显示,5*7点阵,8位数据接口

wr_com(0x0c); //开显示,显示光标,光标闪烁

wr_com(0x06); //当读或写一个字符后地址指针自动加1,整屏不移动

//数据指针清零,所有显示清零

wr_com(0x80+0x00); //设置数据指针地址

for(t=0;t<16;t++) //写入第一行数据

{

wr_dat(table[t]);

delay(1);

}

wr_com(0x80+0x40);

for(t=0;t<15;t++) //写入第二行数据

{

wr_dat(table1[t]);

delay(1);

}

}

void timer_init() //开定时器0

{

TMOD=0X01;

TH0=(65535-10000)/256;

TL0=(65535-10000)%256;

EA=1;

ET0=1;

TR0=1;

}

void hour_sfm(uchar add,uchar da) //刷新时间函数

{

uchar shi,ge;

shi=da/10;

ge=da%10;

wr_com(0x80+0x40+add);

wr_dat(0x30+shi);

wr_dat(0x30+ge);

}

void month_sfm(uchar add,uchar da) //刷新时间函数

{

uchar shi,ge;

shi=da/10;

ge=da%10;

wr_com(0x80+add);

wr_dat(0x30+shi);

单片机万年历C语言程序完整

#include #include //#include "LCD1602.h" //#include "DS1302.h" #define uint unsigned int #define uchar unsigned char sbit DS1302_CLK = P1^7; //实时时钟时钟线引脚 sbit DS1302_IO = P1^6; //实时时钟数据线引脚 sbit DS1302_RST = P1^5; //实时时钟复位线引脚 sbit ACC0 = ACC^0; sbit ACC7 = ACC^7; char hide_sec,hide_min,hide_hour,hide_day,hide_week,hide_month,hide_year; //秒,分,时到日,月,年位闪的计数 sbit Set = P2^0; //模式切换键 sbit Up = P2^1; //加法按钮 sbit Down = P2^2; //减法按钮 sbit out = P2^3; //立刻跳出调整模式按钮 sbit DQ = P3^0; char done,count,temp,flag,up_flag,down_flag,t_value; uchar TempBuffer[5],week_value[2]; void show_time(); //液晶显示程序 /***********1602液晶显示部分子程序****************/ //Port Definitions********************************************************** sbit LcdRs = P2^5; sbit LcdRw = P2^6; sbit LcdEn = P2^7; sfr DBPort = 0x80; //P0=0x80,P1=0x90,P2=0xA0,P3=0xB0.数据端口 //内部等待函数************************************************************** unsigned char LCD_Wait(void) { LcdRs=0; LcdRw=1; _nop_(); LcdEn=1; _nop_(); LcdEn=0; return DBPort; } //向LCD写入命令或数据************************************** #define LCD_COMMAND 0 // Command

数字万年历的制作

数字万年历的制作 数字显示万年历,它采用一枚专用软封装的时钟芯片,驱动15只红色共阳极数码管,可同时显示公历年、月、日、时、分、星期,以及农历月、日,还有秒点显示和整点报时、定时闹钟功能,使用220V市电供电,预留有备用电池座,外形尺寸为长21cm×宽14.5cm×厚3cm,最厚处6cm,适合放置在办公桌面上使用,具有很好的实用性。成品外观如图1所示。 图1 图2 原理简介 电路原理图如图2所示,为了读图方便,连线稍作了简化。从图中可以看出,IC1是一枚专用时钟芯片,Y1是32768Hz的晶振,为芯片提供时基频率信号,经过芯片内部处理后,输出各显示位的驱动信号,经过PNP(8550)型三极管做功率放大后驱动各数码管显示。芯片采用了动态扫描的输出

方式,由于人眼存在视觉暂留现象,且扫描速度比较快,因此看上去所有数码管都是在显示的。这种方式可以有效减少芯片的输出引脚数量,简化了线路,降低了功耗。 在电源部分中,整流二极管VD1~VD4组成了桥式整流电路,将变压器输出的交流电转换为直流电,经C6滤波后,送至三端稳压块7805,输出5V直流稳压电源,为电路供电。VD3和VD8组成互相隔离的供电电路,目的是在市电停电时,后备纽扣电池通过VD3,自动为芯片IC1提供后备电源,保证芯片计时数据不中断。同时由于VD8、VD9的存在,后备电池将不再向数码管供电,以节约后备电池的耗电量。由于芯片自身耗电较低,因此靠纽扣电池也可以维持芯片在很长时间里,内部计时不中断。当市电恢复后,7805输出经过VD8、VD9分别向芯片和数码管供电,由于DV3的存在,且纽扣电池电压为3V,低于7805输出的5V,因此纽扣电池将自动停止供电,7805输出也不会对纽扣电池充电。 VT9是唯一一只NPN(8050)型三极管,用于驱动喇叭,做为整点报时和定闹发声。LED10、LED14是用于秒点显示的发光二极管,LED11和LED12分别是整点报时显示和定闹显示的发光二极管,均为红色。 图3是万年历的全套散件的照片。表1是元器件清单。 图3 表1 元器件清单 序号元件名称参数元件数量序号元件名称参数元件数量 1 电阻10Ω 1 21 三极管8050 1 2 电阻33Ω8 22 三端稳压块7805 1 3 电阻47Ω 3 23 晶振32768Hz 1 4 电阻75Ω7 24 IC1软封装芯片 1 5 电阻100Ω 1 25 0.5’数码管红11 6 电阻150Ω8 26 0.8’数码管红 4

数字电子课设:万年历的设计

编号 北京工商大学 数字电子技术基础 《万年历的设计》 姓名 学院 班级 学号 设计时间

一、设计目的 1、熟悉集成电路的引脚安排 2、掌握芯片的逻辑功能及使用方法 3、了解数字电子钟及万年历的组成及工作原理 4、熟悉数字电子钟及万年历的设计与制作 5、熟悉multisim电子电路设计及仿真软件的应用 二、设计思路 1、设计60进制秒计数器芯片 2、设计24进制时计数器芯片 3、设计31进制天计数器芯片 4、设计12机制月计数器芯片 5、设计7进制周计数器芯片 6、设计闰年平年不同月份不同进制逻辑 三、设计过程 1、Tr_min and s 60进制计数器芯片: “秒”、“分”电路都六十进制,它由一级十进制计数器和一级六进制计数器组成,六十进制计数器的设计图如下,采用四个片74ls161N串联而成,低位芯片的抚慰信号作为下级输入信号,串接起来构成“秒”、“分”计数器芯片。

2、Tr_hour24进制计数器芯片: 24进制计数器芯片的设计图如下,时计数电路由两片74ls161串联组成。当时个位计数为4,十位计数为2时,两片74ls160N复零,从而构成24进制计数。 3、Tr_day天计数器芯片: 采用两片74ls160N和一片74ls151N串联而成,天计数器的进制受到月计数器反馈M、N影响和年计数器反馈R4的影响,在M、N不收到反馈信息的时候,天计数器为28进制,电路设计图如下:

4、Tr_week周计数器芯片: 周计数器由一块74ls161N构成一个七进制计数器,原理与秒、分、时计数器相似,电路设计图如下 5、Tr_month月计数器芯片: 采用两片74160N和两片74HC151D_2V串联而成,月计数器的反馈信息M、N影响

电子时钟万年历设计

计算机科学与技术学院硬件课程设计报告

在日常生活中,手表,闹钟是不可或缺的。在实际生活生产活动中,也要考虑时间的因素,如工时的计算,霓虹灯的亮灭。 因为集成电路制造技术的不断提高,出现了高性能、高可靠的集成芯片。电子时钟在工业领域,日常生活中得到了广泛的应用。电子时钟在性能方面具有精度高,实时性好,易于调整等优点。这些使得温度控制系统的研究和开发得到的各方面的广泛关注和支持。 本次课程设计,我利用8254计数芯片,8255芯片,4*4小键盘,12864LCD 液晶显示器,蜂鸣器制作了一个带有闹钟功能的电子时钟万年历。它可以实现由4*4小键盘输入初始时间(包括年月日时分秒星期),利用8254计数,通过程序处理进位,判断闰年,在液晶显示屏上实时显示时间。还可以由小键盘选择不同的闹钟模式,设定闹钟时间。 关键词: 电子时钟; 8255A芯片; 8254芯片; 12864LCD液晶显示器;键盘输入;蜂鸣器;闹钟功能;万年历

1.设计任务与要求...........................................................................6- 1.1实验目的 (6) 1.2具体要求 (6) 2.总体方案与说明...........................................................................6- 2.1使用硬件 (6) 2.1流程设计 (6) 2.1.1系统程序模块 (6) 2.1.1系统流程图 (7) 3.硬件方案 (7) 3.1硬件说明 (7) 3.1.1计数芯片8254 (7) 3.1.2可编程外围接口芯片8255A (8) 3.1.2 128×64字符液晶显示器 (11) 3.2电路原理图与说明 (12) 3.2.1键盘电路 (13) 3.2.2 8254计数电路 (13) 3.2.3 液晶显示电路 (14) 3.3电路连接图 (14) 3.3.1 8254计数芯片 (14) 3.3.2 整体电路 (15) 4.软件方案 (15) 4.1软件主要模块流程图 (15) 4.1.1输入子程序模块流程图 (16) 4.1.2显示子程序模块流程图 (18) 4.1.2闰年子程序模块流程图 (18) 4.1.2蜂鸣器子程序模块流程图 (18) 4.1.2时间进位程序模块流程图 (19) 4.1.2主程序模块流程图 (20) 4.2源程序清单与注释 (21) 5.分析与测试 (38) 6.运行结果 (38) 6.1试验线路图 (39) 6.2实验结果 (39) 6.2.1欢迎界面 (39)

电子万年历设计

课程论文论文题目基于单片机的电子万年历设计 课程名称单片机原理及接口技术 专业年级 2014级自动化3班 学生姓名孙宏远贾腾飞 学号 2016年12 月3 日

摘要: 本文介绍了基于AT89C51单片机的多功能电子万年历的硬件结构和软硬件设计方法。系统以AT89C51单片机为控制器,以串行时钟日历芯片DS1302记录日历和时间,它可以对年、月、日、时、分、秒进行计时,还具有闰年补偿等多种功能。万年历采用直观的数字显示,可以在LED上同时显示年、月、日、周日、时、分、秒,还具有时间校准等功能。此万年历具有读取方便、显示直观、功能多样、电路简洁、成本低廉等诸多优点,具有广阔的市场前景。。 关键词:AT89C51单片机,DS1602时钟芯片,LCD1602显示屏。串口通信。 一:引言 本设计的基于单片机控制的电子万年历,具有年、月、日、星期、时、分、秒的显示等功能,实现过程就是由主控制发送信息给DS1302时钟芯片再由时钟芯片反馈给单片机,再由主控制器传送给LCD1602显示屏显示信息。并且可以在键盘设置模块输入修改时间,当键盘设置时间、日期时,单片机主控制根据输入信息,通过串口通信传送给DS1302时钟芯片,DS1302芯片读取当前新信息产生反馈传送给单片机,然后单片机根据控制最后输送显示信息到LCD1602液晶显示屏模块上显示。 二:硬件设计: 2.0.硬件的设计总框图 2.1 DS1032时钟电路 DS1302的引脚排列,其中Vcc1为后备电源,VCC2为主电源。在主电源关闭的情况下,也能保持时钟的连续运行。DS1302由Vcc1或Vcc2两者中的较大者供电。当Vcc2大于Vcc1+0.2V时,Vcc2给DS1302供电。当Vcc2小于Vcc1时,DS1302由Vcc1供电。X1和X2是振荡源,外接32.768kHz晶振。芯片如图。 DS1302的内部主要由移位寄存器、指令和控制逻辑、振荡分频电路、实时时钟以及RAM组成。每次操作时,必须首先把CE置为高电平。再把提供地址和命令信息的8位装入移位寄存器。数据在SCLK的上升沿串行输入。无论是读周期还是写周期发生,也无论传送方式是单字节还是多字节,开始8位将指定内部何处被进行访问。在开始 8个时钟周期把含有地址信息的命令字装入移位寄存器之后。紧随其后的时钟在读操作时输出数据。 2.2 LCD1602与AT89C52的引脚接线 LCD1602采用总线式与单片机相连,AT89c52的P1口直接与液晶模块的数据总线D0~D7相连;P2 口的0,1,2脚分别与液晶模块的RS、RW、E脚相连。滑动变阻器用于调整液晶显示的亮度。电路如图

基于51单片机的万年历的设计

单片机课程实训SCM PRACTICAL TRAINING

目录 第一部分课程设计任务书 (1) 一、课程设计题目 (1) 二、课程设计时间 (1) 三、实训提交方式 (1) 四、设计要求 (1) 第二部分课程设计报告 (2) 一、单片机发展概况 (2) 二、MCS-51单片机系统简介 (2) 三、设计思想 (3) 四、硬件电路设计 (3) 1. 总体设计 (3) 2. 晶振电路 (4) 3. 复位电路 (4) 4. DS1302时钟电路 (5) 5. 温度采集系统电路 (5) 6. 按键调整电路 (6) 7. 闹钟提示电路 (6) 五、软件设计框图 (7) 六、程序源代码 (8) 1. 主程序 (8) 2. 温度控制程序 (11) 3. 日历设置程序 (13) 4. 时钟控制程序 (18) 5. 显示设置程序 (20) 七、结束语 (23) 八、课程设计小组分工 (23) 九、参考文献 (23)

第一部分课程设计任务书 一、课程设计题目 用中小规模集成芯片设计制作万年历。 二、课程设计时间 五天 三、实训提交方式 提交实训设计报告电子版与纸质版 四、设计要求 (1)显示年、月、日、时、分、秒和星期,并有相应的农历显示。(2)可通过键盘自动调整时间。 (3)具有闹钟功能。 (4)能够显示环境温度,误差小于±1℃ (5)计时精度:月误差小于20秒。

第二部分课程设计报告 一、单片机发展概况 单片机诞生于20世纪70年代末,它的发展史大致可分为三个阶段: 第一阶段(1976-1978):初级单片机微处理阶段。该时期的单片机具有 8 位CPU,并行 I/O 端口、8 位时序同步计数器,寻址范围 4KB,但是没有串行口。 第二阶段(1978-1982):高性能单片机微机处理阶段,该时期的单片机具有I/O 串行端口,有多级中断处理系统,15 位时序同步技术器,RAM、ROM 容量加大,寻址范围可达 64KB。 第三阶段(1982-至今)位单片机微处理改良型及 16 位单片机微处理阶段民用电子产品、计算机系统中的部件控制器、智能仪器仪表、工业测控、网络与通信的职能接口、军工领域、办公自动化、集散控制系统、并行多机处理系统和局域网络系统。 二、MCS-51单片机系统简介 MCS-51系列单片机产品都是以Intel公司最早的典型产品8051为核心构成的。MCS-51单片机由CPU 、RAM 、ROM 、I/O接口、定时器/计数器、中断系统、内部总线等部件组成。8051单片机的基本性能有: ◆8位CPU; ◆布尔代数处理器,具有位寻址能力; ◆128B内部RAM,21个专用寄存器; ◆4KB内部掩膜ROM; ◆2个16位可编程二进制加1定时器/计数器; ◆32个(4×8位)双向可独立寻址的I/O口; ◆1个全双工UART(异步串行通信口); ◆5个中断源,两级中断结构; ◆片内振荡器及时钟电路,晶振频率为1.2MHz~12MHz; ◆外部程序/数据存储器寻址空间均为64KB; ◆111条指令,大部分为单字节指令; ◆单一+5V电源供电,双列直插40引脚DIP封装。

电子万年历

河北科技师范学院课程设计说明书 题目: 学院(系): 年级专业: 学号: 学生姓名: 指导教师:

摘要 本设计是电子万年历。具备三个功能:能显示:年、月、日、时、分、秒及星期信息,并具有可调整日期和时间功能。 我选用的是单片机8052来实现电子万年历的功能。该电子万年历能够成功实现时钟运行,调整,显示年月日时分秒及星期,温度等信息。 该电子万年历使用12MHZ晶振与单片机8052相连接,通过软件编程的方法实现了以24小时为一个周期,同时显示小时、分钟和秒的要求。利用单片机定时器及计数器产生定时效果通过编程形成数字钟效果,再利用数码管动态扫描显示单片机内部处理的数据。同时通过端口读入当前外部控制状态来改变程序的不同状态,实现不同功能。 电子万年历设计与制作可采用数字电路实现,也可以采用单片机来完成。若用数字电路完成,所设计的电路相当复杂,大概需要十几片数字集成块,其功能也主要依赖于数字电路的各功能模块的组合来实现,焊接的过程比较复杂,成本也非常高。若用单片机来设计制作完成,由于其功能的实现主要通过软件编程来完成,这样一来就降低了硬件电路的复杂性,从而使得其成本降低,更适合我们大学生自主研发。所以在该设计与制作中我选用了单片机8052,它是低功耗、高性能的CMOS型8位单片机。片内带有4KB的Flash存储器,且允许在系统内改写或用编程器编程。另外, 单片机8052的指令系统和引脚与8051完全兼容,片内有128B 的RAM、32条I/O口线、2个16位定时计数器、5个中断源、一个全双工串行口等。 因此,采用单片机8052原理制作的电子万年历,不仅仅在原理上能够成功实现计时等功能,也更经济,更适用,更符合我们实际生活的需要,对我们大学生来说也更加有用。

单片机AT89c52电子万年历设计(带程序)

目录 一、摘要 (2) 二、设计 (3) 三、设计任务. (2) 四、设计要求 (3) 五、系统方案设计 (3) 1、系统 (3) 1)原理构成框图 (3) 2)设计思路 (4) 2、主程序设计 (4) 3、中断程序设计 (5) 5、时间调整电路的设计 (7) 六、系统评价 (7) 七、c语言程序注释及说明 (8)

一、摘要 单片机就是微控制器,是面向应用对象设计、突出控制功能的芯片。单片机接上晶振、复位电路和相应的接口电路,装载软件后就可以构成单片机应用系统。将它嵌入到形形色色的应用系统中,就构成了众多产品、设备的智能化核心。本设计是基于AVR单片机强大的控制功能制作而成的电子万年历,该电子万年历包括四大功能:实时显示年、月、日、时、分、秒、星期;人为的校正年、月、日、时、分、星期;第一次开机显示12-00-30。 二、设计目的 1、掌握C52程序用于实践并实现相应的功能; 2、掌握时钟程序的使用方法; 3、掌握时间函数的使用方法; 4、掌握键盘的程序使用方法; 三、设计任务 通过与单片机连接数码管动态显示年、月、日、时、分、秒、星期等功能,并能准确计算闰年闰月的显示,

七个按钮连接P0口可以精确调整每一个时间数值,通过对所设计的万年历时钟电路进行实验测试,达到了动态显示时间,随时调整时间等技术指标。 四、设计要求 (1)能够准确的计时,时间可在数码管上显示出来,默认显示为时、分、秒,每隔一分钟自动显示年、月、日及星期,也可通过按键控制显示,并可通过按键调节时间。 (2)第一次开机显示12-30-30。 (3)每半秒led彩灯闪烁一次 五、系统方案设计: 1、系统总体设计: 1) 原理构成框图 本设计用AT89C52作为核心控制部分,外接晶振电路与复位电路,以两个四位数码管作为显示部分,开关控制显示时间与日期,具体框图如图1所示,数码管框图如图2所示:

基于单片机的电子时钟万年历设计

一、项目介绍与设计目的 基于单片机的电子时钟万年历为实现电子万年历的功能,采用单片机STC89C51,辅助以必要的外围电路,用C语言编写程序,并进行模块化设计而成的电子万年历系统.它通过LCD能正确显示年、月、日、周日、时、分、秒等,具有功能稳定,精确度高和可调的特点。 二、设计方案 1.项目环境要求 1.1时钟芯片选择 方案一:不使用芯片,采用单片机的定时计数器 这种方法原理是利用单片机芯片的定时器来产生固定的时间,模拟时钟的时, 分,秒。如:利用AT80C52芯片,定时器用工作方式1,每50ms产生一个中断,循环20次,即1s周期。每一个周期加1,那么1min为60个周期,1h就是60*60=3600个周期,一天就是3600*24=86400个周期。 此方法优点是可以省去一些外围的芯片,但这种方法只能适用于一些要求不是十分精确,不做长期保留的场合。 方案二:并行接口时钟芯片 DS12887 特点:采用单片机应用系统并行总线(三总线)扩展的接口电路,采用这种接口电路具有操作速度快,编程方便的优点。 但是对于80C52单片机来说,低位地址线要通过锁存器输出,还要地址译码器,而且并行口芯片的体积相对较大。 方案三:串行接口时钟芯片DS1302 芯片主特性: (1)实时时钟具有能计算2100 年之前的秒分时日日期星期月年的能力,还有闰年调整的能力

(2)31 8 位暂存数据存储RAM (3)串行 I/O 口方式使得管脚数量最少 (4)宽范围工作电压2.0 5.5V (5)工作电流 2.0V 时,小于300nA (6)读/写时钟或RAM 数据时有两种传送方式单字节传送和多字节传送字符组方式 (7)8 脚DIP 封装或可选的8 脚SOIC 封装根据表面装配 (8)简单 3 线接口 (9)与 TTL 兼容Vcc=5V (10)可选工业级温度范围-40~+85 优点:串行接口的日历时钟芯片,使用简单,接口容易,与微型计算机连线较少等特点,在单片机系统尤其是手持式信息设备中己得到了广泛的应用。 所以,最终选择串行时钟芯片DS1302,DS1302的管脚图如图2所示。 图2 DS1302管脚图 1.2显示模块选择 方案一:LED数码管显示 数码管显示比较常用的是采用CD4511和74LS138实现数码转换,数码显示分动态显示和静态显示,静态显示具有锁存功能,可以使数据显示得很清楚,但浪费了一些资源。目前单片机数码管普通采用动态显示。编程简单,但只能显示

单片机万年历程序..

单片机万年历程序 #include //调用单片机头文件 #define uchar unsigned char //无符号字符型宏定义变量范围0~255 #define uint unsigned int //无符号整型宏定义变量范围0~65535 #include "eeprom52.h" #include "nongli.h" bit flag_200ms ; bit flag_100ms ; sbit beep = P3^7; //蜂鸣器定义 bit flag_beep_en; uint clock_value; //用作闹钟用的 sbit dq = P3^1; //18b20 IO口的定义 uint temperature ; //温度变量 uchar flag_nl; //农历阳历显示标志位 uchar menu_1,menu_2; uchar key_time,flag_value; //用做连加的中间变量 bit key_500ms ; uchar n_nian,n_yue,n_ri; //农历显示的函数

#include "ds1302.h" #include "lcd1602.h" /******************把数据保存到单片机内部eeprom中******************/ void write_eeprom() { SectorErase(0x2000); byte_write(0x2000, fen1); byte_write(0x2001, shi1); byte_write(0x2002, open1); byte_write(0x2058, a_a); } /******************把数据从单片机内部eeprom中读出来*****************/ void read_eeprom() { fen1 = byte_read(0x2000); shi1 = byte_read(0x2001); open1 = byte_read(0x2002); a_a = byte_read(0x2058); } /**************开机自检eeprom初始化*****************/ void init_eeprom() { read_eeprom(); //先读 if(a_a != 1) //新的单片机初始单片机内问eeprom { fen1 = 3;

单片机电子万年历含程序

CHANGZHOU INSTITUTE OF TECHNOLOGY 科研实践 项目名称:电子万年历设计 二级学院:电子信息与电气工程学院 专业:电气工程及其自动化班级: 10 电二 学生姓名:祝学东学号: 指导教师:庄志红职称:副教授 起止时间: 2013年12月9日—2013年12月20日 摘要 本设计是电子万年历。具备三个功能:能显示:年、月、日、时、分、秒、星期,并具有可调整日期和时间功能。 该电子万年历使用12MHZ晶振与单片机AT89C52相连接,通过软件编程的方法实现了以24小时为一个周期,同时显示小时、分钟和秒的要求。利用单片机定时器及计数器产生定时效果通过编程形成数字钟效果,再利用数码管动态扫描显示单片机内部处理的数据。同时通过端口读入当前外部控制状态来改变程序的不同状态,实现不同功能。 电子万年历设计与制作可采用数字电路实现,也可以采用单片机来完成。若用数字电路完成,所设计的电路相当复杂,大概需要十几片数字集成块,其功能也主要依赖于数字电路的各功能模块的组合来实现,焊接的过程比较复杂,成本也非常高。若用单片机来设计制作完成,由于其功能的实现主要通过软件编程来完成,这样一来就降低了硬件电路的复杂性,从而使得其成本降低,更适合我们大学生自主研发。 AT89C52是一个低电压,高性能CMOS 8位单片机,片内含8k bytes的可反复擦写的Flash只读程序存储器和256 bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,AT89C52单片机在电子行业中有着广泛的应用。

51单片机实现万年历程序文件

51单片机实现万年历 利用AT89S52单片机的P0口来和另外几个口来控制1602液晶的显示和P1口还有其它口来控制ds12887时钟芯片。设置四个按键,1个定义为时间设置功能键,一个定义为闹钟设置功能键,另外两个用来调节时间的增减。 原理图: pcb图:

源程序: #include #define uint unsigned int #define uchar unsigned char sbit beep=P2^0;//蜂鸣器控制口 sbit timeadd=P2^1;//调节时间加 sbit timesub=P2^2;//调节时间减 sbit timeclk=P2^3;//闹钟设定键 sbit timefun=P2^4;//时间设定键 sbit lcdrs=P2^5;//液晶的命令和数据控制口 sbit ledrw=P2^6;//液晶的写数据口 sbit lcden=P2^7;//液晶显示模块的使能端 sbit timeds=P3^3;//时钟芯片地址闸 sbit timerw=P3^4;//时钟芯片读写 sbit timeas=P3^5;//时钟芯片地址闸 sbit timeen=P3^6;//时钟芯片片选 uchar code table[]="20 - - week "; uchar code table1[]=" : : ";//要显示的字符串 char num,shi,fen,miao,nian=2000,yue,ri,week,numfun,anumfun,flag,flag1; uchar leap;

void delay(uint x){ uchar i,j; for(i=x;i>0;i--) for(j=110;j>0;j--); } void didi() { beep=0; delay(1000); beep=1; delay(1000); } void write_(uchar ){ lcdrs=0; P0=; delay(5); lcden=1; delay(20); lcden=0; } void write_date(uchar date){ lcdrs=1; P0=date; delay(5); lcden=1; delay(20); lcden=0; } void write_sfm(uchar add,uchar date){ uchar shi,ge; shi=date/10; ge=date%10; write_(0x80+0x40+add); write_date(0x30+shi); write_date(0x30+ge); } void write_nyr(uchar add,uchar date){ uchar shi,ge; shi=date/10; ge=date%10;

电子万年历设计(基于AT89C51单片机和DS1302时钟芯片)1

随着人们生活水平的提高和生活节奏的加快,对时间的要求越来越高,精准数字计时的消费需求也是越来越多。 二十一世纪的今天,最具代表性的计时产品就是电子万年历,它是近代世界钟表业界的第三次革命。第一次是摆和摆轮游丝的发明,相对稳定的机械振荡频率源使钟表的走时差从分级缩小到秒级,代表性的产品就是带有摆或摆轮游丝的机械钟或表。第二次革命是石英晶体振荡器的应用,发明了走时精度更高的石英电子钟表,使钟表的走时月差从分级缩小到秒级。第三次革命就是单片机数码计时技术的应用(电子万年历),使计时产品的走时日差从分级缩小到1/600万秒,从原有传统指针计时的方式发展为人们日常更为熟悉的夜光数字显示方式,直观明了,并增加了全自动日期、星期、温度以及其他日常附属信息的显示功能,它更符合消费者的生活需求!因此,电子万年历的出现带来了钟表计时业界跨跃性的进步…… 我国生产的电子万年历有很多种,总体上来说以研究多功能电子万年历为主,使万年历除了原有的显示时间,日期等基本功能外,还具有闹铃,报警等功能。商家生产的电子万年历更从质量,价格,实用上考虑,不断的改进电子万年历的设计,使其更加的具有市场。 本设计为软件,硬件相结合的一组设计。在软件设计过程中,应对硬件部分有相关了解,这样有助于对设计题目的更深了解,有助于软件设计。基本的要了解一些主要器件的基本功能和作用。 除了采用集成化的时钟芯片外,还有采用MCU的方案,利用AT89系列单片微机制成万年历电路,采用软件和硬件结合的方法,控制LED数码管输出,分别用来显示年、月、日、时、分、秒,其最大特点是:硬件电路简单,安装方便易于实现,软件设计独特,可靠。AT89C51是由ATMEL 公司推出的一种小型单片机。95年出现在中国市场。其主要特点为采用Flash存贮器技术,降低了制造成本,其软件、硬件与MCS-51完全兼容,可以很快被中国广大用户接受。 本文介绍了基于AT89C51单片机设计的电子万年历。 首先我们在绪论中简单介绍了单片机的发展与其在中低端领域中的优

电子万年历

第一章绪论 1.1设计背景 从改革开放开始,电子工业已成为科技创新的重要领域,我国的电子产业也在新世纪开始高速发展,无论是产业结构,产业规模和技术水平都有了十分明显的进步和提升,而且电子产品在各个领域都有开创性的发展,使我们的生活变得更加智能化,为我国经济的发展做出了杰出的贡献。其中,单片机的大规模使用为我们的生活创造了极大的便利,可以说无时无刻不在影响着我们的生活。何为单片机,单片机全名为单片微控制器,它的结构组成就是将微型计算机的基本功能部件全都集成在一个半导体芯片上。尽管仅仅是一个芯片,但从单片机的构成和功能的角度来看充分具备一个计算机系统的中央处理功能。最重要的优点是,单片机体积小巧,可以任意嵌入到任何符合条件的应用系统中作为中央处理器进行指挥决策,是系统实现完全的智能化。当今世界,单片机已经无时无刻不在我们生活的周边存在,各类电子产品几乎都以单片机作为主控核心,通过单片机的控制使之更加智能快速,使我们的生活更加舒畅和方便。正是随着日常周边科学技术的进步,人们对待生活用品的要求也在逐步提高,时钟亦是如此,从古至今,人们对时间的概念就非常重视,从日晷到摆钟,经历了百年的发展,如今,人们对时钟的要求不仅仅是能够知道时间,还需要能够知道日期,星期,节气,天气情况等等,以便于满足人们对生活的各种需要,由此电子万年历就诞生了,正是因为电子万年历功能的多样性,使它在应用在各种场合,人们对它的需求量也就却来越大,电子万年历的发展空间也越来越广阔,成为了一项重要的产业。 1.2设计的目的及意义 中国从古至今就有重视时间的好传统,农民通过日照和鸡叫开始一天的劳作,商人通过古老的计时工具来确认是否应该开门迎客,学士知道时间后则开始一天的读书学习,这种传统一直绵延至今。当今社会,人们的生活节奏飞快,在工作中讲究快速和效率,需要在最短的时间内完成最合理的工作要求,所以人们通常需要在最短的时间内了解到最丰富的信息,人们不满足于只能看到此时此刻的时间信息,还需要了解过去和未来几天内的时间情况,包括农历,天

数字万年历设计

江西理工大学应用科学学院 微机控制系统课程设计报告 题目:数字万年历设计 姓名:曹振林 学号:08060111328 专业班级:电气113班 指导教师: 完成时间:2014年06月27日 设计报告综合测试平时总评 格式(10分) 内容 (10分) 图表 (5分) 功能测试 (35分) 答辩 (20分) 考勤 (20分)指导教师签名:

摘要 在电子技术迅速发展的今天,尤其是随大规模集成电路出现,给人类生活带来了根本性的改变。特别是单片机领域中的应用产品已经走进了大部分人的家庭。电子万年历的出现给人们的生活带来的诸多方便。本设计首先描述系统总体模块工作原理,并附以系统结构框图加以说明,着重介绍了本系统所应用的各硬件接口技术和各个接口模块的功能及工作过程,其次,详细阐述了程序的各个模块和实现过程。本设计以数字集成电路技术为基础,单片机技术为核心。本系统以单片机的进行软件设计,增加了程序的可读性和可移植性,为了便于扩展和更改,软件的设计采用模块化结构,使程序设计的逻辑关系更加简洁明了。 单片机具有体积小,成本低,抗干扰能力强,面向控制,可以实现分机各分布式控制等优点。本文研究的万年历系统就是利用单片机上述的优点,采用目前市场性价比比较高的STC89C52单片机控制、以DS1302时钟芯片计时、以LCD1602液晶屏显示,系统主要有单片机控制电路,时钟电路,显示电路及校正电路四个模块组成。本文阐述了系统的硬件工作原理,所应用的各个接口模块的功能以及工作过程。系统程序采用C语言编写,用protel 2000画出电路图,经keil软件进行调试后在仿真软件中进行仿真测试,可以显示年、月、日、星期、时、分、秒,并具有校准功能和与即时时间同步的功能。 此万年历具有读取方便、显示直观、功能多样、电路设计新颖、功能强大、结构简单等优点,符合电子仪器仪表的发展趋势,具有广阔的市场应用前景。 关键词:电子万年历 51系列单片机时钟芯片FLASH存储器液晶显示

单片机电子万年历时钟单片机课设

前言 单片机隶属微型计算机。目前单片机在工程与生活中有着广泛应用[1]。伴随着人们对时间的意识更为强烈,其计时设备也从目测太阳、日晷、摆钟直至现如今更为智能的电子钟。目前所处的时代信息化且更为智能化。与此同时,时间规划了生活与生产。在各行业,时间尤为重要,因为每个过程都必须严格遵循所设的时间限制。不论是生产还是科研,时间都是不可或缺的定量参数而且其尤为重要。保障时间精确性的技术在目前来说是值得研究与设计的。时间概念无处不在,而且在工程与实验科研中作为一种参数,其要求更是严苛。目前机械表作为一款普遍产品被广泛应用在生活中,而且其也具备日历功能。然而,因机械表本身机械结构的不稳定性及不精准性,再加上其受功率和体积限制,在生活设备与工程设施应用方面且远不如电子钟。因此本文将对电子时钟做进一步设计。 正文 电子钟可通过电子电路与程序软件实现时刻的显示与精确计时。该装置可广泛应用于日常生活与实验工程,并且是不可或缺的器件。通过集成逻辑电路与石英晶体谐振器的设计研发,可使得数字钟性能远优于传统时钟。研发生产比以往更加精确的数字时钟,将为在工程与生活中的用户带有良好的体验。与此同时,时钟不单单只具备原始的计时功能,其可附加其他优化功能。列如:定点自动报警,按时播报,自动启动/停止指示灯,定时开/关机及更多智能化定时管理设备。因此,研究设计更为先进的多功能的电子钟是尤为必要的。 设计电子万年历主要目的在于精准的显示时间与此同时可提供温度参数、星期、日期、响铃等其他优化功能。与此同时电子万年历顺应时代的发展,且被各领域所急需应用。并随着仪器仪表等学科技术的发展,及软件编程算法的优化改进,在生活及生产中电子时钟的设计随之受到影响及改变。目前单片机相关产品普及,电子万年历也得益于此,可以相结合做进一步优化改进。电子万年历目前不仅仅是提供计时功能,更多的可为用户带来不同场景工况时所具备的相应优化功能。将微控制器与时钟相结合,其设计便于开发者对功能进一步改进研发,对于用户可以直观的对电子万年历进行操作。本次在电子万年历的七个不同单位时间显示的基础上,再对定时闹钟、响铃、温度、节气显示优化功能做进一步的设计。其设计本身具有新颖性和实用性。具有多功能优化的电子万年历可将其应用在各电器中,如热水器的温度调节显示模块、空调定时温度模块等等。优化后的电子万年历与实际生活生产相结合,使原有的电器设备更为完善,使用更为便利。

单片机万年历电子钟设计报告含电路图和源程序

电子时钟万年历设计报告 学院:武夷学院 班级:09电信1班 组员:林巧文

一、设计要求与方案论证 (3) 1.1设计要求 (3) 1.1.1基本要求 (3) 1.1.2拓展部分 (3) 1.2 系统基本方案选择和论证 (3) 1.2.1单片机芯片的选择方案和论证: (3) 1.2.2 显示模块选择方案和论证: (4) 1.2.3时钟芯片的选择方案和论证: (4) 1.3 电路设计最终方案 (4) 二、理论分析与计算 (4) 2.1,秒数的产生由定时器T0产生: (4) 2.2. 总天数的算法 (5) 三.系统的硬件设计与实现 (5) 3.1 电路设计框图: (5) 3.2 系统硬件概述: (6) 3.3 主要单元电路的设计 (6) 3.3.1单片机主控制模块的设计 (6) 3.3.2显示模块的设计 (7) 3.3.3闹钟模块的设计 (9) 3.3.4电源稳压模块 (10) 四、系统的软件设计 (11) 4.1程序流程框图 (11) 4.2闹钟模块流程图: (11) 4.3按键调整模块流程图: (12) 五、测试方案与测试结果分析 (14) 5.1 测试仪器 (14) 5.2软件测试平台Keil C51 (14) 5.3 模块测试 (14) 5.3.1显示模块测试 (14) 5.4测试结果分析与结论 (15) 5.4.1测试结果分析 (15) 5.4.2 测试结论 (15) 六、作品总结 (15) 参考文献 (15) 附录一:系统电路图 (16) 附录三:系统C程序 (17)

一、设计要求与方案论证 1.1设计要求 1.1.1基本要求 (1)准确显示:时、分、秒(24小时制) (2)显示星期 (3)显示公历年月日 (4)时间、日期、星期可调节 (5)断电记忆功能 1.1.2拓展部分 (1)闹钟功能 (2)显示阴历 (3)显示24节气 (4)其他 1.2 系统基本方案选择和论证 1.2.1单片机芯片的选择方案和论证 方案一: 采用89C51芯片作为硬件核心,采用Flash ROM,内部具有4KB ROM 存储空间,能于3V 的超低压工作,而且与MCS-51系列单片机完全兼容,但是运用于电路设计中时由于不具备ISP 在线编程技术, 当在对电路进行调试时,由于程序的错误修改或对程序的新增功能需要烧入程序时,对芯片的多次拔插会对芯片造成一定的损坏。 方案二: 采用AT89S52,片内ROM全都采用Flash ROM;能以3V的超底压工作;同时也与MCS-51系列单片机完全兼容,该芯片内部存储器为8KB ROM 存储空间,同样具有89C51的功能,且具有在线编程可擦除技术,当在对电路进行调试时,由于程序的错误修改或对程序的新增功能需要烧入程序时,不需要对芯片多次拔插,所以不会对芯片造成损坏。 所以选择采用AT89S52作为主控制系统。

基于STM的万年历设计

基于S T M32的万年历设计 班级: 姓名: 学号: 成绩:

题目:基于STM32的万年历设计 前言: 随着科技的快速发展,时间的流逝,至从观太阳、摆钟到现在电子钟,人类不断研究,不断创新纪录。美国DALLAS公司推出的具有涓细电流充电能的低功耗实时时钟电路DS12C887。它可以对年、月、日、周日、时、分、秒进行计时,还具有闰年补偿等多种功能,而且DS12C887的使用寿命长,误差小。对于数字电子万年历采用直观的数字显示,可 功耗小, 在液晶 . )生产 薄 线、LCD 电子仪器仪表的发展趋势,具有广阔的市场前景。本课题利用 STM32 的 RTC 实现一个简易的电子时钟,在液晶显示屏中显示时间值。 显示时间格式为XX:XX:XX(时:分:秒),当时间计数为: 23: 59: 59 时将刷新为:00: 00: 00。 1.功能描述 1.1设计要求

1.具有数字时钟功能。 2.具有简单日历功能。 3.具有手动校准时间功能。 4.具有闰年识别功能。 1.2 RTC(实时时钟)简介 实时时钟是一个独立的定时器。 RTC 模块拥有一组连续计数的计数器,在相应软件配置下,可提供时钟日历的功能。修改计数器的值可以重新设置系统当前的时间和日期。 RTC 的锂 1.3.1可选择的芯片方案 整个系统用STM32F103VE单片机作为中央控制器,由单片机执行采集内部RTC值,时钟信号通过单片机I/O口传给LCD12864,单片机模块控制驱动模块驱动显示模块,通过显示模块来实现信号的输出、LCD12864的显示及相关的控制功能。系统设有按键模块用于对时间进行调整及扩展多个小键盘。 方案一:采用89C51芯片 采用89C51芯片作为硬件核心,采用Flash ROM,内部具有4KB ROM 存储空间,能于3V的超低压工作,而且与MCS-51系列单片机完全兼容,但是运用于电路设计中时由于不具

电子万年历设计

课程论文 论文题目基于单片机的电子万年历设计 课程名称单片机原理及接口技术 专业年级2014级自动化3班 学生姓名孙宏远贾腾飞 学号 2014485420144848 2016年12 月3 日

摘要: 本文介绍了基于AT89C51单片机的多功能电子万年历的硬件结构和软硬件设计方法。系统以AT89C51单片机为控制器,以串行时钟日历芯片DS1302记录日历和时间,它可以对年、月、日、时、分、秒进行计时,还具有闰年补偿等多种功能。万年历采用直观的数字显示,可以在LED上同时显示年、月、日、周日、时、分、秒,还具有时间校准等功能。此万年历具有读取方便、显示直观、功能多样、电路简洁、成本低廉等诸多优点,具有广阔的市场前景。。 关键词:AT89C51单片机,DS1602时钟芯片,LCD1602显示屏。串口通信。一:引言 本设计的基于单片机控制的电子万年历,具有年、月、日、星期、时、分、秒的显示等功能,实现过程就是由主控制发送信息给DS1302时钟芯片再由时钟芯片反馈给单片机,再由主控制器传送给LCD1602显示屏显示信息。并且可以在键盘设置模块输入修改时间,当键盘设置时间、日期时,单片机主控制根据输入信息,通过串口通信传送给DS1302时钟芯片,DS1302芯片读取当前新信息产生反馈传送给单片机,然后单片机根据控制最后输送显示信息到LCD1602液晶显示屏模块上显示。 二:硬件设计: 2.0.硬件的设计总框图 2.1 DS1032时钟电路 DS1302的引脚排列,其中Vcc1为后备电源,VCC2为主电源。在主电源关闭的情况下,也能保持时钟的连续运行。DS1302由Vcc1或Vcc2两者中的较大者供电。当Vcc2大于Vcc1+0.2V时,Vcc2给DS1302供电。当Vcc2小于Vcc1时,DS1302由Vcc1供电。X1和X2是振荡源,外接32.768kHz晶振。芯片如图。 DS1302的内部主要由移位寄存器、指令和控制逻辑、振荡分频电路、实时时钟以及RAM组成。每次操作时,必须首先把CE置为高电平。再把提供地址和命令信息的8位装入移位寄存器。数据在SCLK的上升沿串行输入。无论是读周期还是写周期发生,也无论传送方式是单字节还是多字节,开始8位将指定内部何处被进行访问。在开始 8个时钟周期把含有地址信息的命令字装入移位寄存

相关主题
文本预览
相关文档 最新文档