电子时钟论文_第1页
电子时钟论文_第2页
电子时钟论文_第3页
电子时钟论文_第4页
电子时钟论文_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、“创意电子”设计大赛设 计 报 告题 目: 电子时钟 参 赛 者: 李燕燕、张晓丽、刘刚 指导教师: 李晓红 设计时间: 2016年4月3日 计算机信息工程学院3摘 要本文介绍了基于STC89C52单片机的多功能电子时钟笔筒的硬件结构和软硬件设计方法。本设计由数据显示模块、温度采集模块、时间处理模块和调整设置模块四个模块组成。系统以STC89C52单片机为控制器,以串行时钟日历芯片DS1302记录日历和时间,它可以对年、月、日、时、分、秒进行计时,还具有闰年补偿等多种功能。温度采集选用DS18B20芯片,采用直观的数字显示,数据显示采用1602液晶显示模块,可以在LCD上同时显示年、月、日、周

2、日、时、分、秒,还具有时间校准等功能。此电子时钟具有读取方便、显示直观、功能多样、电路简洁、成本低廉等诸多优点,具有广阔的市场前景。关键字: 52单片机、液晶显示、电子时钟I3目 录摘 要I一、绪论11.课题研究的背景1二、 系统的方案设计与论证11.单片机芯片设计与论证12.时钟模块设计与论证23.温度采集模块设计与论证24.显示模块模块设计与论证3三、系统硬件的设计31.STC89C52单片机32.时钟芯片DS1302接口设计与性能分析43.温度芯片DS18B20接口设计与性能分析54.LCD显示模块65.按键模块设计76.复位电路的设计8四系统的软件设计91.程序设计流程图9五 系统测试

3、与分析9六结论11参考文献12附录13一、绪论1.课题研究的背景随着科技的快速发展,时间的流逝,从观太阳、摆钟到现在电子钟,人类不断研究,不断创新纪录。它可以对年、月、日、时、分、秒进行计时,还具有闰年补偿等多种功能,而且DS1302的使用寿命长,误差小。采用直观的数字显示,可以同时显示年、月、日、时、分、秒和温度等信息,还具有时间校准等功能。该电路采用STC89C52单片机作为核心,功耗小,能在3V的低压工作,电压可选用35V电压供电。此电子时钟具有读取方便、显示直观、功能多样、电路简洁、成本低廉等诸多优点,符合电子仪器仪表的发展趋势,具有广阔的市场前景。二、 系统的方案设计与论证单片机电子

4、时钟的制作有多种方法,经过成本,性能,功耗等多方面的考虑决定用三个8位74LS164串行接口外接LED显示器,RESPACK-8对单片机STC89C52进行供电,时间芯片DS1302连接单片机STC89C52。按照系统设计的要求,初步确定电路系统构成框图如图1所示。 图1 硬件电路框图1.单片机芯片设计与论证方案一: 采用AT89C51芯片作为硬件核心,采用Flash ROM,内部具有4KB ROM 存储空间,能用于3V的超低电压工作,而且与MCS-51系列单片机完全兼容,但是运用于电路设计中时由于不具备ISP在线编程技术, 当在对电路进行调试时,由于程序的错误修改或对程序的新增功能需要烧入程

5、序时,对芯片的多次拔插会对芯片造成一定的损坏。方案二:采用STC89C52芯片作为硬件核心,采用Flash ROM,能以3V的超低电压工作,而且与MCS-51系列单片机完全兼容,该芯片内部存储器为8KB ROM 存储空间。同样具有STC89C52的功能,且具有在线编程可擦除技术,当在对电路进行调试时,由于程序的错误修改或对程序的新增功能需要烧入程序时,不需要对芯片多次拔插,所以不会对芯片造成损坏。由于STC89C52内部具有8KBROM存储芯片并且支持ISP在线编程,因此采用STC89C52作为主控芯片。2.时钟模块设计与论证方案一:直接采用单片机定时计数器提供秒信号,使用程序实现年、月、日、

6、星期、时、分、秒计数。采用此种方案虽然减少芯片的使用,节约成本,但是,实现的时间误差较大。方案二:采用DS1302时钟芯片实现时钟,DS1302芯片是一种高性能的时钟芯片,可自动对秒、分、时、日、周、月、年以及闰年补偿的年进行计数,而且精度高,位的RAM作为数据暂存区,工作电压2.5V5.5V范围内。由于DS1302时钟芯片计数时间精度高,而且具有闰年补偿功能等优点,故采用方案二。3.温度采集模块设计与论证方案一:采用温度传感器(如热敏电阻或AD590),再经AD转换得到数字信号,精度较准,但价格昂贵,电路较复杂。方案二:采用数字式温度传感器DS18B20,它能直接读出被测温度,并且可根据实际

7、要求通过简单的编程实现9-12位的数字值读数方式,但准确度不高,误差最大达2度。因为用DS18B20温度芯片,采用单总线访问,降低成本、降低制作难度且可节省单片机资源,故采用方案二。4.显示模块模块设计与论证方案一:采用静态显示方法,静态显示模块的硬件制作较复杂及功耗大,要用到多个移位寄存器,但不占用端口,只需两根串口线输出。方案二:采用动态显示方法,动态显示模块的硬件制作简单,段扫描和位扫描各占用一个端口,总需占用单片机14个端口,采用间断扫描法功耗小、硬件成本低及整个硬件系统体积相对减小。方案三:采用LCD的方法,具有硬件制作简单可直接与单片机接口,显示内容多,功耗小,成本低等优点,LCD

8、1602可显示32个字符,采用LCD的缺点是亮度不够。比较以上三种方案:方案一硬件复杂体积大、功耗大;方案二硬件简单、功耗小;方案三硬件简单,显示内容多,功耗小,成本低等。本系统设计要求达到功耗小、体积小、成本低,显示信息多等要求,权衡三种方案,选择方案三。三、系统硬件的设计1.STC89C52单片机本系统采用的是美国ATMEL公司生产的STC89C52单片机如图2。1.STC89C52单片机有40个引脚。2.STC89C52单片机与MCS-51完全兼容。图2 STC89C52单片机2.时钟芯片DS1302接口设计与性能分析2.1DS1302性能简介DS1302是Dallas公司生产的一种实时

9、时钟芯片。DS1302时钟芯片内主要包括移位寄存器、控制逻辑电路、振荡器。DS1302与单片机系统的数据传送依靠RST,I/O,SCLK三根端线即可完成。DS1302引脚说明: X1,X2 32.768kHz晶振引脚GND 地线RST 复位端I/O 数据输入/输出端口SCLK 串行时钟端口 图3 DS1302的引脚VCC1 慢速充电引脚VCC2 电源引脚 2.2DS1302接口电路设计1时钟芯片DS1302的接口电路及工作原理: 图4 DS1302与MCU接口电路图4为DS1302的接口电路,其中Vcc1为后备电源,Vcc2为主电源。DS1302在每次进行读、写程序前都必须初始化,先把SCLK

10、端置 “0”,接着把RST端置“1”,最后才给予SCLK脉冲。控制字节总是从最低位开始输入/输出的。3.温度芯片DS18B20接口设计与性能分析3.1DS18B20简介1.DS18B20工作原理    DS18B20的读写时序和测温原理与DS1820相同,只是得到的温度值的位数因分辨率不同而不同,且温度转换时的延时时间由2s减为750ms。 DS18B20测温原理如图5所示。图中低温度系数晶振的振荡频率受温度影响很小,用于产生固定频率的脉冲信号送给计数器1。高温度系数晶振随温度变化其振荡率明显改变,所产生的信号作为计数器2的脉冲输入。计数器1和温度寄存器被预置在5

11、5所对应的一个基数值。计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当计数器1的预置值减到0时,温度寄存器的值将加1,计数器1的预置将重新被装入,计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。LSB位置/清除增加计数器1斜率累加器计数比较器温度寄存器减到0预置计数器2减到0停止预置低温度系数晶振高温度系数晶振图5 DS18B20测温原理3.2 DS18B20接口电路设计如图6所示,该系统中采用数字式温度传感器DS18B20,具有测量精度高,电路连接简单特点,此类传感器仅需要一条数据线进行

12、数据传输,用P3.7与DS18B20的DQ口连接,Vcc接电源,GND接地。 图6温度传感器DS18B20接口电路4.LCD显示模块4.1LCD1602的特性及使用说明1.LCD1602的接口信号说明如表1:表1 LCD1602的接口信号编号引脚符号功能说明编号引脚符号功能说明1VSS电源地9D2DATA I/O2VDD电源正极10D3DATA I/O3VL液晶显示偏压信号11D4DATA I/O4RS数据/命令选择端(H/L)12D5DATA I/O5R/W读/写选择端(H/L)13D6DATA I/O6E使能信号14D7DATA I/O7D0DATA I/O15BLA背光正极8D1DATA

13、 I/O16BLK背光负极2、基本操作时序如下:1)读状态:RS=L,RW=H,E=H2)写指令:RS=L,RW=L,D0D7=指令码,E=高脉冲3)读数据:RS=H,RW=H,E=H4)写数据:RS=H,RW=L,D0D7=数据,E=高脉冲5.按键模块设计本系统用到了5个按键,其中一个用作系统手动复位,另外4个采用独立按键(如图7),该种接法查询简单,程序处理简单,可节省CPU资源,按键电路如图15所示,4个独立按键分别与STC89C52的P3.4、P3.5、P3.6、P3.7接口相连。对以下4个按键作简要说明:S4SET 键,S3UP键,S2DOWN键,S5OUT/STOP键。图7 按键电

14、路6.复位电路的设计当STC89C52单片机的复位引脚RST(全称RESET)出现2个机器周期以上的高电平时,单片机就完成了复位操作。根据应用的要求,复位操作通常有两种基本形式:上电复位、手动复位。上电复位要求接通电源后,自动实现复位操作。STC89C52单片机的上电复位POR(Power On Reset)实质上就是上电延时复位,也就是在上电延时期间把单片机锁定在复位状态上。本设计采用上电且开关复位电路,如图8所示上电后,由于电容充电,使RST持续一段高电平时间。当单片机已在运行之中时,按下复位键也能使RST持续一段时间的高电平,从而实现上电且开关复位的操作。图8 复位电路四系统的软件设计1

15、.程序设计流程图 图9 程序设计流程图 5 系统测试与分析整个系统设计完成后,要进行运行调试,排除软件和硬件的故障,同时验证系统的可靠性及稳定性,使系统符合设计要求。在对系统进行实际调试时,首先应对硬件进行静态调试,同时对系统软件进行初步调试,此后再对软件和硬件进行动态调试,最后才能使系统进入正常工作。(1)静态调试:静态调试主要是排除明显的硬件故障。在电路搭建好后,对其进行仔细检查。查看端口是否正确连接,连接是否可靠。同时还应当用万用表检查电路,看应当开路的地方是否开路,有无虚焊或短路等等。(2)软件调试:系统软件程序在编制好以后,可通过软件对源程序进行编程,变成可执行的目标代码,在编程过程

16、中出现错误,要及时纠正。(3)动态调试:控制系统的软件和硬件是密切相关的,软件调试不能对硬件部分进行诊断,也不能在线仿真,所以用户程序还需跟硬件连接起来进行联调,调试对软件和硬件进行检查和诊断,整个单片机系统进行在线调试时,需借助仿真开发工具来对用户软件及硬件电路进行诊断、调试。 程序调试完成后,将程序下载到单片机里,使整个系统运行起来。图10 时钟笔筒实物图图11 仿真图六结论在整个设计过程中学到了许多没学到的知识,在电路焊接时虽然没什么大问题,但从中也知道了焊接在整个作品中的重要性,电路工程量大,不能心急,一个个慢慢来不能急于求成。反而达到事半功倍的效果。对电路的设计、布局要先有一个好的构

17、思,才显得电路板美观、大方。程序编写中,由于思路不清晰,开始时遇到了很多的问题,经过静下心来思考,理清了思路,反而得心应手。在此次设计中,知道了做事要有一颗平常的心,不要想着走捷径,一步一个脚印。也练就了我的耐心,做什么事都要有耐心。在本次设计中学到了很多很多东西,这是最重要的。总之,此次毕业设计使我的能力得到了全方位的提高,设计的电子时钟笔筒也存在着不足,有待于以后的改进。参考文献1苏平.单片机的原理与接口技术M.北京:电子工业出版社。2王忠民.微型计算机原理M.西安:西安科技大学出版社。3周雪.模拟电子技术M西安: 西安电子科技大学出版社。4左金生.电子与模拟电子技术M.北京:电子工业出版

18、社。5马忠梅,籍顺心等单片机的C语言应用程序设计M北京航空航天大学出版社。6张萌.单片机应用系统开发综合实例M. 北京:清华大学出版社。7李广弟. 单片机原理及应用M 北京航空航天大学出版社。18附录附录1核心程序:(1)读取写程序设计如下:sbit clk = P13; /ds1302时钟线定义sbit io = P14; /数据线sbit rst = P15; /复位线/秒 分 时 日 月 年 星期 uchar code write_add=0x80,0x82,0x84,0x86,0x88,0x8c,0x8a; /写地址uchar code read_add =0x81,0x83,0x85

19、,0x87,0x89,0x8d,0x8b; /读地址uchar code init_ds =0x58,0x00,0x00,0x01,0x01,0x13,0x1; uchar miao,fen,shi,ri,yue,week,nian;uchar i;uchar fen1=0x11,shi1=0; /两个闹钟变量的定义bit open1;/*写一个数据到对应的地址里*/void write_ds1302(uchar add,uchar dat)rst = 1; /把复位线拿高for(i=0;i<8;i+) /低位在前clk = 0; /时钟线拿低开始写数据io = add & 0x

20、01; add >>= 1; /把地址右移一位clk = 1; /时钟线拿高for(i=0;i<8;i+)clk = 0; /时钟线拿低开始写数据io = dat & 0x01;dat >>= 1; /把数据右移一位clk = 1; /时钟线拿高rst = 0; /复位线合低clk = 0;io = 0;/*从对应的地址读一个数据出来*/uchar read_ds1302(uchar add)uchar value,i;rst = 1; /把复位线拿高for(i=0;i<8;i+) /低位在前clk = 0; /时钟线拿低开始写数据io = add

21、& 0x01; add >>= 1; /把地址右移一位clk = 1; /时钟线拿高for(i=0;i<8;i+)clk = 0; /时钟线拿低开始读数据value >>= 1;if(io = 1)value |= 0x80;clk = 1; /时钟线拿高rst = 0; /复位线合低clk = 0;io = 0;return value; /返回读出来的数据/*把要的时间 年月日 都读出来*/void read_time()miao = read_ds1302(read_add0);/读秒fen = read_ds1302(read_add1);/读分s

22、hi = read_ds1302(read_add2);/读时ri = read_ds1302(read_add3);/读日yue = read_ds1302(read_add4);/读月nian = read_ds1302(read_add5);/读年week = read_ds1302(read_add6);/读星期Conversion(0,nian,yue,ri);/农历转换 n_nian = year_moon ;n_yue = month_moon ;n_ri = day_moon ;/*把要写的时间 年月日 都写入ds1302里*/void write_time()write_ds

23、1302(0x8e,0x00);/打开写保护write_ds1302(write_add0,miao);/写秒write_ds1302(write_add1,fen);/写分write_ds1302(write_add2,shi);/写时write_ds1302(write_add3,ri);/写日write_ds1302(write_add4,yue);/写月write_ds1302(write_add5,nian);/写星期write_ds1302(write_add6,week);/写年write_ds1302(0x8e,0x80);/关闭写保护/*把数据保存到ds1302 RAM中*0

24、-31*/void write_ds1302ram(uchar add,uchar dat)add <<= 1; /地址是从第二位开始的add &= 0xfe; /把最低位清零 是写的命令add |= 0xc0; /地址最高两位为 1 write_ds1302(0x8e,0x00);write_ds1302(add,dat);write_ds1302(0x8e,0x80);/*把数据从ds1302 RAM读出来*0-31*/uchar read_ds1302ram(uchar add)add <<= 1; /地址是从第二位开始的add |= 0x01; /把最高位置1 是读命令add |= 0xc0; /地址最高两位为 1 return(read_ds1302(add);/*初始化ds1302时间*/void init_ds1302()uchar i;rst = 0;/第一次读写数据时要把IO品拿低clk = 0;io = 0;i = read_ds1302ram(30); if(i != 3)i = 3;write_ds1302ram(30,i); /4050 4100 3080write

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论