收藏 分享(赏)

基于STC89C52单片机的电子时钟设计.doc

上传人:精品资料 文档编号:10310699 上传时间:2019-10-29 格式:DOC 页数:44 大小:826KB
下载 相关 举报
基于STC89C52单片机的电子时钟设计.doc_第1页
第1页 / 共44页
基于STC89C52单片机的电子时钟设计.doc_第2页
第2页 / 共44页
基于STC89C52单片机的电子时钟设计.doc_第3页
第3页 / 共44页
基于STC89C52单片机的电子时钟设计.doc_第4页
第4页 / 共44页
基于STC89C52单片机的电子时钟设计.doc_第5页
第5页 / 共44页
点击查看更多>>
资源描述

1、阳泉职业技术学院毕 业 设 计 论 文基于 51 单片机的电子时钟设计系 部: 信息系 专 业: 电气自动化班 级: 09 级一班学生姓名: 张瑞勇 学 号: 090723012 指导教师: 耿素军 2012 年 5 月 6 日河南机电高等专科学校摘要随着单片机技术的飞速发展,在其推动下,现代的电子产品几乎渗透到了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高。时间就是金钱、时间就是生命、时间就是胜利,准确的掌握时间和分配时间对人们来说至关重要,时钟是我们生活中必不可少的工具。电子钟的设计方法有很多种,但是基于单片机并通过 LCD 显示的

2、电子时钟具有编程灵活、精确度高、便于携带、显示直观等特点。利用 STC89C52 单片机对 DS1302 时钟芯片进行读写操作并通过 1602 字符液晶显示实时时钟信息,这样便构成了一个单片机电子时钟。关键词:单片机,电子时钟,STC89C52 阳泉职业技术学院毕业论文ABSTRACTWith the rapid development of microcomputer technology in its promotion, modern electronics into almost all areas of society, a strong impetus to the develop

3、ment of social productive forces and social improvement in the level of information, but also to further improve the performance of modern electronic products.Time is a money, time is life, time is victory Accurate grasp of time and allocation of time is crucial to people, The clock is necessary in

4、our life tools . Clock Design There are many ways, however, produced by single chip electronic clock is more flexible programming, and easy expansion of electronic capabilities, high accuracy, easy to carry, display visual and so on. In this paper, through the use of STC89C52 microcontroller by DS13

5、02 clock chips for reading and writing operation and through 1602 character liquid crystal display real-time clock information so that forming a single chip electronic clock. Key Words: Microcontroller,STC89C52 ,Electronic clock,阳泉职业技术学院毕业论文目录绪论 .1概述 1研究目的 1第 1 章 设计要求与方案论证 .21.1 设计要求 .21.2 系统基本方案选择和

6、论证 .21.2.1 单片机芯片的选择方案和论证 .21.2.2 显示模块选择方案和论证 21.2.3 时钟芯片的选择方案和论证 31.3 电路设计最终方案决定 3第 2 章 主要元件介绍 .42.1 STC89C52 介绍 42.1.1 STC89C52 主要功能及 PDIP 封装 42.1.2 STC89C52 引脚介绍 42.1.3 STC89C52 最小系统 52.2 DS1302 时钟芯片介绍 .62.2.1 DS1302 概述 .62.2.2 DS1302 引脚介绍 .72.2.3 DS1302 使用方法 72. 3 1602 字符液晶介绍 .92.3.1 1602 液晶概述 .9

7、2.3.2 1602 引脚介绍 .102.3.3 1602 字符液晶使用方法 .10第 3 章 系统硬件设计 .133.1 电路设计框图 .133.2 系统硬件概述 .13第 4 章 系统的软件设计 .144.1 程序概述 144.2 延时函数 154.3 对 DS1302 读写操作函数 154.3.1 向 DS1302 写数据 .15阳泉职业技术学院毕业论文4.3.2 从 DS1302 读数据 .164.4 显示函数 .174.4.1 向 1602 液晶中写一个指令 .174.4.2 向液晶写数据 174.4.3 初使化 1602 液晶 .174.4.4 如何在液晶上显示时间、日期及周 18

8、4.5 按键函数 194.5.1 12/24 小时显示模式切换键 214.5.2 功能键函数 .234.5.3 调整键函数 .254.5.4 确定键 314.6 主函数 .32总结 .34致谢 .35参考文献 .36阳泉职业技术学院专科学校- 1 -绪论概述时间,对人们来说是非常宝贵的,准确的掌握时间和分配时间对人们来说至关重要。因此自从时钟发明的那刻起,就成为人类的好朋友。随着时间的流逝,科学技术的不断发展和提高,人们对时间计量的精度要求越来越高,应用越来越广。怎样让时钟更好、更方便、更精确的显示时间,这就要求人们不断设计研发出新型的时钟。高精度的计时工具大多数都使用了石英晶体振荡器,由于电

9、子钟,石英表,石英钟都采用了石英技术,因此走时精度高,稳定性好,使用方便,不需要经常调校。数字式电子钟用集成电路计时时,译码代替机械式传动,用 LCD 显示器代替指针进而显示时间,减小了计时误差,这种表具有时,分,秒显示时间的功能,还可以进行时和分的校对,片选的灵活性好。时钟电路在计算机系统中起着非常重要的作用,是保证系统正常工作的基础。在单片机的应用系统中,时钟有两个方面的含义:一是指为保障系统正常工作的基准振荡定时信号,主要由晶振和外围电路组成,晶振频率的大小决定了单片机系统工作的快慢;二是指系统的标准定时时钟,即定时时间,它通常有两种实现方法:一是用软件实现,即用单片机内部的可编程定时器

10、/计数器来实现;二是用专门的时钟芯片实现。研究目的通过利用 STC89C52 单片机和 DS1302 芯片以及外围的按键和 LCD 显示器等部件,设计一个基于单片机的电子时钟。设计的电子时钟通过液晶显示器显示,并能通过按键对时间进行设置。阳泉职业技术学院毕业论文- 2 -第 1 章 设计要求与方案论证1.1 设计要求 具有年、月、日、星期、时、分、秒显示功能 具备年、月、日、星期、时、分、秒校准功能 具有 12/24 小时切换显示功能 1.2 系统基本方案选择和论证 1.2.1 单片机芯片的选择方案和论证方案一: 采用 STC89C52 芯片作为硬件核心。STC89C52 内部具有 8KB R

11、OM 存储空间,512 字节数据存储空间,带有 2K 字节的 EEPROM 存储空间,与 MCS-51 系列单片机完全兼容,STC89C52 可以通过串口下载。方案二:采用 AT89S52。AT89S52 片内具有 8K 字节程序存储空间, 256 字节的数据存储空间没有 EEPROM 存储空间,也与 MCS-51 系列单片机完全兼容,具有在线编程可擦除技术。两种单片机都完全能够满足设计需要,STC89C52 相对 ATS89C52 价格便宜,且抗干扰能力强。考虑到成本因素,因此选用 STC89C52。1.2.2 显示模块选择方案和论证方案一:采用点阵式数码管显示。点阵式数码管是由八行八列的发

12、光二极管组成,可用来显示数。但体积较大,且价格也相对较高,从便携实用的角度出发,不采用此种方案。方案二:采用 LED 数码管动态扫描。LED 数码管价格便宜 ,对于显示数字最合适,但功耗较大,且显示容量不够,所以也不用此种方案。方案三:采用 LCD 液晶显示屏。液晶显示屏的显示功能强大,可显示大量文字,显示多样,清晰可见,且价格适中,所以采用了 LCD 数码管作为显示。阳泉职业技术学院毕业论文- 3 -1.2.3 时钟芯片的选择方案和论证方案一:直接采用单片机定时计数器提供秒信号,使用程序实现年、月、日、星期、时、分、秒计数。采用此种方案虽然减少芯片的使用,节约成本,但是,实现的时间误差较大。

13、所以不采用此方案。方案二:采用 DS1302 时钟芯片实现时钟,DS1302 芯片是一种高性能的时钟芯片,可自动对秒、分、时、日、周、月、年以及闰年补偿的年进行计数,而且精度高,工作电压 2.5V5.5V 范围内,2.5V 时耗电小于 300nA.1.3 电路设计最终方案决定综上各方案所述,对此次作品的方案选定: 采用 STC89C52 单片机作为主控制系统; 采用 DS1302 作为时钟芯片 ;采用 1602 LCD 液晶作为显示器件。阳泉职业技术学院毕业论文- 4 -第 2 章 主要元件介绍2.1 STC89C52 介绍2.1.1 STC89C52 主要功能及 PDIP 封装STC89C5

14、2 是由深圳宏晶科技公司生产的与工业标准 MCS-51 指令集和输出管脚相兼容的单片机。STC89C52 主要功能如表 2.1 所示,其 PDIP 封装如图 2.1所示主要功能特性兼容 MCS51 指令系统 8K 可反复擦写 Flash ROM32 个双向 I/O 口 256x8bit 内部 RAM3 个 16 位可编程定时 /计数器中断 时钟频率 0-24MHz2 个串行中断 可编程 UART 串行通道2 个外部中断源 共 6 个中断源2 个读写中断口线 3 级加密位低功耗空闲和掉电模式 软件设置睡眠和唤醒功能表 2.1 STC89C52 主要功能2.1.2 STC89C52 引脚介绍 主电

15、源引脚(2 根)VCC(Pin40):电源输入,接5V 电源GND(Pin20):接地线外接晶振引脚(2 根)XTAL1(Pin19):片内振荡电路的输入端XTAL2(Pin20):片内振荡电路的输出端控制引脚(4 根)RST/VPP(Pin9):复位引脚,引脚上出现 2 个机器周期的高电平将使单片机复位。ALE/PROG(Pin30):地址锁存允许信号PSEN(Pin29):外部存储器读选通信号EA/VPP(Pin31):程序存储器的内外部选通,接低电平从外部程序存储器读指令,如果接高电平则从内部程序存储器读指令。可编程输入/输出引脚(32 根)STC89C52 单片机有 4 组 8 位的可

16、编程 I/O 口,分别位 P0、P1 、P2、P3 口,每阳泉职业技术学院毕业论文- 5 -个口有 8 位(8 根引脚),共 32 根。P0 口(Pin39Pin32):8 位双向 I/O 口线,名称为 P0.0P0.7P1 口(Pin1Pin8):8 位准双向 I/O 口线,名称为 P1.0P1.7 P2 口(Pin21Pin28):8 位准双向 I/O 口线,名称为 P2.0P2.7 P3 口(Pin10Pin17):8 位准双向 I/O 口线,名称为 P3.0P3.7S T C8 9 C 5 24 03 93 83 43 53 63 72 72 82 93 03 13 23 32 32

17、42 52 62 22 1P 1 . 0 1232 01 91 81 71 61 51 41 31 21 11 0987654T 0 / P 3 . 4I N T O / P 3 . 2R X D / P 3 . 0R S TV c cS C K / P 1 . 7M I S O / P 1 . 6M O S I / P 1 . 5P 1 . 4P 1 . 3P 1 . 2P 1 . 1T X D / P 3 . 1I N T I / P 3 . 3T 1 / P 3 . 5W R / P 3 . 6R D / P 3 . 7X T A L 2X T A L 1G N DP 0 . 0 ( A

18、 D 0 )P S E NA L E / P R O GE A / V p pP 0 . 1 ( A D 1 )P 0 . 7 ( A D 7 )P 0 . 6 ( A D 6 )P 0 . 5 ( A D 5 )P 0 . 4 ( A D 4 )P 0 . 3 ( A D 3 )P 0 . 2 ( A D 2 )P 2 . 7 ( A D 1 5 )P 2 . 6 ( A D 1 4 )P 2 . 1 ( A D 9 )P 2 . 2 ( A D 1 0 )P 2 . 3 ( A D 1 1 )P 2 . 4 ( A D 1 2 )P 2 . 5 ( A D 1 3 )P 2 . 0 ( A

19、 D 8 )图 2.1 STC89C52 PDIP 封装图2.1.3 STC89C52 最小系统 最小系统是指能进行正常工作的最简单电路。STC89C52 最小应用系统电路如图 2.2 所示。它包含五个电路部分:电源电路、时钟电路、复位电路、片内外程序存储器选择电路、输入/输出接口电路。其中电源电路、时钟电路、复位电路是 保证单片机系统能够正常工作的最基本的三部分电路,缺一不可。电源电路 芯片引脚 VCC 一般接上直流稳压电源+5V,引脚 GND 接电源+5V 的负极,电源电压范围在 45.5 之间,可保证单片机系统能正常工作。为提高电路的抗干扰性能,通常在引角 Vcc 与 GND 之间接上一

20、个 10uF 的电解电容和一个 0.1uF 陶片电容,这样可抑制杂波串扰,从而有效确保电路稳定性。时钟电路 单片机引脚 18 和引脚 19 外接晶振及电容, STC89C52 芯片的工作频率可在 233MHz 范围之间选,单片机工作频率取决于晶振 XT 的频率,通阳泉职业技术学院毕业论文- 6 -常选用 11.0592MHz 晶振。两个小电容通常取值 3pF,以保证振荡器电路的稳定性及快速性。复位电路 一般若在引脚 RST 上保持 24 个工作主频周期的高电平,单片机就可以完成复位,但为了保证系统可靠地复位,复位电路应使引脚 RST 保持10ms 以上的高电平。如图复位电路带有上电自动复位功能

21、,当电路上电时,由于C1 电容两端电压值不能突变,电源+5V 会通过电容向 RST 提供充电电流,因此在 RST 引脚上产生一高电平,使单片机进入复位状态。随着电容 C1 充电,它两端电压上升使得 RST 电位下降,最终使单片机退出复位状态。正常运行时,可按复位按钮对单片机复位EA/VP 31X119 X218RESET9RD17 WR16INT012 INT113T014 T115P10/T1 P11/T2P123 P134P145 P156P167 P178TXD11P00 39RXD10P01 38P02 37P03 36Vcc 40P04 35ALE/P 30P05 34PSEN 29

22、P06 33P27 28P07 32P26 27P20 21P25 26P21 22P24 25P22 23P2324GND208052R1200 R210K位位位位C110uFC230uFC330uFC410uFC50.1uFXTGNDGNDVCC+5VVCC+5VGND图 2.2 STC89C52 最小系统2.2 DS1302 时钟芯片介绍2.2.1 DS1302 概述DS1302 是美国 DALLAS 公司推出的一种高性能、低功耗、带 RAM 的实时时钟芯片,它可以对年、月、日、周日、时、分、秒进行计时,具有闰年补偿功能,工作电压为 2.5V5.5V。采用双电源供电(主电源和备用电源),

23、同时提供了对后背电源进行涓细电流充电的能力。采用三线接口与 CPU 进行同步通信阳泉职业技术学院毕业论文- 7 -DS1302V c c 1S C L KV c c 2X 1X 2G N D C EI / O12765438图 2.3 DS1302 封装图2.2.2 DS1302 引脚介绍各引脚功能为:Vcc: 主电源;Vcc2: 备用电源。当 Vcc2Vcc1+0.2V 时,由 Vcc2 向DS1302 供电;当 Vcc2 N n 阳泉职业技术学院毕业论文- 13 -XXXX1111 / ? O - o 表 2.6 1602 字符液晶字库表第 3 章 系统硬件设计3.1 电路设计框图S T

24、C8 9 C 5 2键盘模块L C D 显示模块D S 1 3 0 2 时钟模块图 3.1 硬件框图3.2 系统硬件概述本电路以 STC89C52 单片机为控制核心,以 STC89C52 最小系统为基础。时钟电路由高精度低功耗的 DS1302 提供,采用三线接口与 CPU 进行同步通信,输入部分采用四个独立式按键 S1、S2 、S3、S4。1602 液晶显示部分,D0D7 口与单片机 P0 口相连。具体线路连接,详见附录 1阳泉职业技术学院毕业论文- 14 -第 4 章 系统的软件设计4.1 程序概述DS1302 时钟芯片具有通电自动计时的功能。向 DS1302 中写入一个初值,如写入 201

25、10501 00:00:00 星期日,在通电时,时间就会自动走:过60 秒分加 1;过 60 分时加 1;过 24 小时天加 1,星期日变成星期一;一周有 7天,芯片内的周信息每 7 天一循环;芯片能够自动判断每月有多少天,5 月有 31天,31 天后,月加 1。采用 DS1302 时钟芯片的单片机时钟,其实质就是读取时钟芯片内的时钟信息并把它显示出来。只要时间初值正确,时钟就能一直精准的走下去。调整时间日期,实质就是向 DS1302 时钟芯片重新写入初值。电子时钟的主程序框图如图 10 所示阳泉职业技术学院毕业论文- 15 -开始初始化 L C D 及 D S 1 3 0 2判断设置键是否按

26、下读取 D S 1 3 0 2 中时间 、 日期显示时间 、 日期进入调节模式将时间 、 日期写入 D S 1 3 0 2Y调时 完成N图 4.1 主程序框图4.2 延时函数void delay(uint z) uint x,y;for(x=z;x0;x-)for(y=110;y0;y-); 由 for 循环构成的延时函数,z 的取值为这个函数的延时 ms 数,如 delay(200);大约延时 200ms. delay(500);大约延时 500ms。因下文多次用到,固在此先作说明。阳泉职业技术学院毕业论文- 16 -4.3 对 DS1302 读写操作函数在对 DS1302 时钟芯片操作前,

27、应对其操作时序有所了解,参看前文 DS1302介绍。DS1302 采用串行方式与单片机进行通信,一个机器周期只能读写一个字节的一位,因此,在单片机与 DS1302 芯片间传输一字节(8 位)数据,要分 8次进行,且先从低位开始传输。4.3.1 向 DS1302 写数据/*写数据字节子函数 */void write_1302_byte(uchar temp)/用来发送 8 位数据信息uchar i;for(i=0;i=1;/右移一位sck=1;/在 SCK 上升沿的时候字节写入 DS1302/*1302 写数据子函数*/void write_1302(uchar addd,uchar dat)r

28、st=0;_nop_();sck=0;_nop_();rst=1;_nop_();write_1302_byte(addd);/发送地址write_1302_byte(dat);/发送数据rst=0;阳泉职业技术学院毕业论文- 17 -4.3.2 从 DS1302 读数据/*读 DS1302 数据函数*/uchar read_1302(uchar add)/输入地址 add,返回读取的数据uchar i,temp=0x00;rst=0;sck=0;rst=1;write_1302_byte(add);for(i=0;i=1;/右移一位sck=1; /sck 被置高,在其下一次变为 0 时,数据

29、被写入rst=0;/以下为 DS1302 复位的稳定时间sck=0;sck=1;sda=0;sda=1;return(temp);/将 temp 值返回4.4 显示函数对 1602 进行操作前要对其进行初使化,初使化完成后它才能正常显示。如果想在 1602 液晶的某一个位置显示一个内容,要先对其写入一个指令:在什么地方显示。然后再对其写入一个数据:要显示什么内容。对 1602 的液晶初使化,需要用写入指令的方式完成。阳泉职业技术学院毕业论文- 18 -4.4.1 向 1602 液晶中写一个指令void write_com(uchar com)lcdwr=0; /lcdwr 为读写控制端,lcd

30、wr=0, 这里可不写lcdrs=0; /液晶 rs 接口为 0 时,写指令,rs 为 1 时写数据P0=com; /将要写的指令赋给 P0 口,delay(5); /由 1602 读写操作时序图,先将指令赋给 P0 口,延时后将使能lcden=1; 端 lcden 置高,再延时一段时间,然后将 lcden 置低,这样指令delay(5); 就写入到 LCD 了lcden=0;4.4.2 向液晶写数据void write_data(uchar date),与写指令类似,这里 lcdrs 设为 1lcdrs=1;P0=date;delay(5);lcden=1;delay(5);lcden=0;

31、4.4.3 初使化 1602 液晶此函数首先对液晶进行初使化,使其处于待命状态,然后将时钟框架显示出来:年月日之间的“” ,时分秒之间的“:” ,还有世纪年的高两位。void init_1602()uchar num;lcdwr=0;lcden=0;write_com(0x38);/设置 LCD 为 16*2 显示、5*7 点阵、8 位数据接口模式阳泉职业技术学院毕业论文- 19 -write_com(0x0c);/开显示、不显示光标write_com(0x06);/写一个字符后,地址指针加 1write_com(0x01);/显示清 0write_com(0x80);/将指针指向初始位置fo

32、r(num=0;num=1hour=hour+0x80;hour=hour+0x20;if(shi=2if(shi=2if(shi=2if(shi=2write_1302(0x8e,0x00);write_1302(0x84,hour);write_1302(0x8e,0x80);if(s2num=2)/12 小时切换成 24 小时int ap1,ap2;hour=read_1302(0x85);ap1=hour/ ap1=0 时 AM ,ap1!=0 时 PM阳泉职业技术学院毕业论文- 24 -ap2=hourif(ap1=0if(ap1=0if(ap1!=0if(ap1!=0if(ap1!

33、=0hour=hour+0x12;if(ap1!=0write_1302(0x8e,0x00);/把转化成 24 小进模式后的时写入 DS1302write_1302(0x84,hour);write_1302(0x8e,0x80);flag1=0;s2num=0;/按键次数清 04.5.2 功能键函数if(s1=0阳泉职业技术学院毕业论文- 25 -if(s1=0)/以上用于键盘消抖,差小误差flag=1;/时钟暂停标志位,flag=1 时液晶时钟计时暂停s1num+;/s1num 表示按键被按下的次数,按下次数加 1while(!s1);/松手后,继续执行后面指令if(s1num=1)/如

34、果 S1 按下一次,秒的个位位置闪烁光标write_com(0x80+0x40+11);write_com(0x0f);if(s1num=2)/如果 S1 按下两次,先将设置后的秒写到 DS1302,再在分的个位位置闪烁光标 write_1302(0x8e,0x00);/禁止写保护write_1302(0x80,miao);/写入秒信息write_1302(0x8e,0x80);/开写保护write_com(0x80+0x40+8);/指针指到分钟显示的位置write_com(0x0f);/闪烁光标if(s1num=3)/以下同上面类似write_1302(0x8e,0x00);write_1302(0x82,fen);write_1302(0x8e,0x80);write_com(0x80+0x40+5);write_com(0x0f);if(s1num=4)write_1302(0x8e,0x00);write_1302(0x84,hour);write_1302(0x8e,0x80);write_com(0x80+4);write_com(0x0f);

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报