电子万年历的设计Word版.docx

上传人:b****7 文档编号:16562204 上传时间:2023-07-14 格式:DOCX 页数:61 大小:504.93KB
下载 相关 举报
电子万年历的设计Word版.docx_第1页
第1页 / 共61页
电子万年历的设计Word版.docx_第2页
第2页 / 共61页
电子万年历的设计Word版.docx_第3页
第3页 / 共61页
电子万年历的设计Word版.docx_第4页
第4页 / 共61页
电子万年历的设计Word版.docx_第5页
第5页 / 共61页
电子万年历的设计Word版.docx_第6页
第6页 / 共61页
电子万年历的设计Word版.docx_第7页
第7页 / 共61页
电子万年历的设计Word版.docx_第8页
第8页 / 共61页
电子万年历的设计Word版.docx_第9页
第9页 / 共61页
电子万年历的设计Word版.docx_第10页
第10页 / 共61页
电子万年历的设计Word版.docx_第11页
第11页 / 共61页
电子万年历的设计Word版.docx_第12页
第12页 / 共61页
电子万年历的设计Word版.docx_第13页
第13页 / 共61页
电子万年历的设计Word版.docx_第14页
第14页 / 共61页
电子万年历的设计Word版.docx_第15页
第15页 / 共61页
电子万年历的设计Word版.docx_第16页
第16页 / 共61页
电子万年历的设计Word版.docx_第17页
第17页 / 共61页
电子万年历的设计Word版.docx_第18页
第18页 / 共61页
电子万年历的设计Word版.docx_第19页
第19页 / 共61页
电子万年历的设计Word版.docx_第20页
第20页 / 共61页
亲,该文档总共61页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

电子万年历的设计Word版.docx

《电子万年历的设计Word版.docx》由会员分享,可在线阅读,更多相关《电子万年历的设计Word版.docx(61页珍藏版)》请在冰点文库上搜索。

电子万年历的设计Word版.docx

电子万年历的设计Word版

学号201225110207

中州大学

毕业设计(论文)

 

题目电子万年历的设计

学院工程技术学院

专业应用电子技术年级12班级2

学生姓名xxx

指导教师孙建延职称副教授

时间2014年12月4日

 

电子万年历的设计

[摘要]:

随着电子技术的迅速发展,特别是随着大规模集成电路的出现,给人类生活带来根本性的改变。

尤其是单片机技术的应用产品已走进千家万户。

电子万年历的出现给人们的生活带来了诸多方便。

电子万年历是一种非常广泛的日常计时工具,在现代社会越来越流行。

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

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

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

在设计的同时对单片机的理论基础和外围扩展知识进行了比较全面准备。

在硬件与软件设计时,没有良好的基础知识和实践经验会受到很大限制,每项功能实现时需要那种硬件,程序该如何编写,算法如何实现等,没有一定的基础就不可能很好的实现。

在编写程序过程中发现以现有的相关知识要独自完成编写任务困难重重,在老师和同学的帮助下才完成了程序部分的编写。

本万年历的设计采用C语言,根据功能需求进行程序的编写与调试,保证软硬件正常工作,具有结构简单,成本低廉,显示清晰,稳定可靠等优点。

并且可进行扩充,加入闹钟的功能,更加方便于你使用。

[关键词]:

单片机DS18B20DS13021602液晶PCB

 

TheDesignOfElectronicCalendar

Abstract:

Withtherapiddevelopmentofelectronictechnology,especiallyalongwithlargescaleintegratedcircuit,theappearanceofhumanlifetobringfundamentalchange.Especiallytheapplicationofsinglechipmicrocomputerproductshavealreadywalkedintothecountry.Theemergenceofelectroniccalendartothelifeofpeoplebroughtmanyconvenient.Electroniccalendarisaverywiderangeofdailytimingtool,inmodernsocietyismoreandmorepopular.Itcanbetoyear,month,day,Sunday,whentheclock,minutesandseconds,alsohasaleapyearcompensation,etcDuoZhongfunction,andtheDS1302longservicelifeandsmallerror.Forelectroniccalendarbyusingobject1602LCDdisplay,canalsoshowsthatyear,month,day,Sunday,when,minutesandsecondsandtemperature,information,butalsohastimecalibrationetc.Function.ThiscircuitAT89S52SCMasthecore,lowconsumption,in3Voflow-pressurework,voltagecanchoose3~5Vvoltagepowersupply.InthedesignatthesametimetheSCMtheoreticalbasisandperipheralexpansionknowledgeiscomparedtooverall.Inthehardwareandsoftwaredesign,nogoodbasicknowledgeandpracticalexperienceisverylimited,everyfunctiontoaneedthatkindofhardware,andtheprogramthishowtowrite,howtorealizethealgorithm,notafoundationwillnotbeverygoodimplementation.Intheprocessofprogramfoundthatbytheexistingknowledgetofinishwritingtaskalonedifficulties,theteachersandstudentsofhelptofinishtheprogram,andthewritingofthepart.

ThedesignofthiscalendarusingClanguage,accordingtothefunctionrequirementsoftheprocedurestowriteanddebugging,ensuresoftwareandhardwarenormalwork,thestructureissimple,thecostislowandtheshowclear,stableandreliable.Andcanbeextended,jointhealarmclockfunction,itismoreconvenienttouseyou.

Keywords:

DS18B20DS13021602LCDPCBSCM

 

第一章绪论

1.1本课题的研究的背景以及现实意义

时钟在现实生活中占有非常重要作用,目前时钟的使用已经从原来单一的机械式计时工具发展为同时具有计时、时间调节、温度显示以及相关附加功能。

针对这样的发展实际情况,在完成学院的毕业设计工作中,我决定采用所学习的单片机知识以及相关的电路知识来进行电子万年历的设计。

目前市场上电子万年历的发展,其功能也逐渐从单一的计时发展到事迹、日期、温度显示,甚至有的还具有闹钟、问候语显示等功能,让人能清楚地知道当前的日期、时间、温度等物理量。

所以本课题的研究具有一定的现实应用意义。

1.2本课题对于专业知识的综合应用情况

因为学习的知识深度的限制以及实际情况的考虑,我设计的电子万年历的功能确定为能够正确显示日期、时间、温度。

显示的方式采用ATMEL公司AT89S51单片机为驱动1602LCD显示器进行显示。

采用TB上购买的mini80E单片机开发电路板作为电路实现的主要功能载体。

在学院三年的单片机学习过程中,我们学习单片机都是采用TB上买的单片机开发板以及C语言进行学习,TB的51单片机开发板在单片机最小系统的基础上配置了数码管显示、LCD显示区、LCD显示区、独立键盘输入区以及模拟量输入、A/D转换等资源,满足了单片机实际开发的绝大部分要求。

同时开发板上的电路结构也能够较好地锻炼自己电路方面的知识。

采用C语言进行编程能够综合锻炼自己的实际程序编写的能力以及程序的调试功能。

本课题的选题难度适中,能够对应用电子技术专业学习的专业课程有较为全面的应用与掌握,同时也与自己的专业能力符合。

 

1.3课题论述总体结构安排

第一章叙述了电子万年历研究的背景以及现实意义

第二章则主要介绍设计工作总体概述以及产品工作的原理,按照功能电路的分别进行详细的分析讨论,最终分析电路的总体工作原理。

第三章主要讨论应用Protel软件来实现电路原理图的绘制以及印制板设计

第四章是电子万年历的软件实现部分,主要是利用C语言进行程序的编写,完成电路的测量功能。

第五章为总结和展望,总结本课题设计的总体思路,产品的功能以及对于产品功能升级等进行情景展望。

第二章电子万年历的工作概述以及原理分析

2.1电子万年历的工作概述

电子万年历是由数据采集,MCU,输入输出,数据存储四个功能部分构成。

其中数据的采集是由DS1302和DS18B20来完成的,DS1302芯片是一种高性能的时钟芯片,可自动对秒、分、时、日、周、月、年以及闰年补偿的年进行计数,而且精度高。

数字式温度传感器DS18B20,仅需要一条数据线进行数据传输,易于与单片机连接,可以去除A/D模块,降低硬件成本,简化系统电路。

当数据送入AT89S51单片机后,单片机将对INT1脚的信号进行计数,当计数的脉冲达到1KM的时候,INT1申请中断,对外输出信号,输出的信号由显示部分送LCD进行显示,显示当前日期、时间、温度。

其中键盘是人机交互的接口,系统设计使得键盘能够实现调节日期、时间的功能。

2.2确保电子万年历的工作性能稳定的相关措施

电子万年历能实时地将所测的温度和当前时间显示出来,主要是DS1302通过串行口与单片机进行通讯,实时时钟/日历电路提供秒、分、时、日、星期、月、年的信息。

每个月的天数和闰年的天数可与自动调整,时钟操作可以通过AM/PM标志位决定采用24或12小时时间格式。

DS1302与单片机之间能采用简单的同步串行进行通信仅需三根I/O线。

DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯。

其测温范围-55℃~+125℃,固有测温分辨率0.5℃。

设计应综合考虑测温精度和系统反应时间。

本设计采用9位的分辨率,因而具有较高的快的计算速度。

在计算环境温度的时候省去了末尾几位。

为了保证系统的实时性,系统的速度转换模块和显示数据转BCD码模块都采用快速算法。

另外,还应尽量保证其他子模块在编程时的通用性和高效性。

本设计的里程值采用两位显示。

2.3系统硬件电路总体结构框图

 

图2-1电子万年历总体结构框图

2.4电子万年历总体电路原理图

电子万年历总体电路原理图由DS1302和DS18B20电路以及单片机开发板电路三部分组成。

图2-2为电路总原理图之一,单片机开发板电路的电路原理图。

图2-2电子万年历电

2.5各部分单元电路介绍

2.5.1DS18B20温度传感器电路介绍

DS18B20是在一根I/O线上读写数据,因此,对读写的数据位有着严格的时序要求。

DS18B20有严格的通信协议来保证各位数据传输的正确性和完整性。

该协议定义了几种信号的时序:

初始化时序、读时序、写时序。

所有时序都是将主机作为主设备,单总线器件作为从设备。

而每一次命令和数据的传输都是从主机主动启动写时序开始,如果要求单总线器件回送数据,在进行写命令后,主机需启动读时序完成数据接收。

数据和命令的传输都是低位在先。

DS18B20温度传感器电路图如图2-4所示

图2-4基于运放的有源滤波器电路图

2.5.2DS1302电路

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

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

DS1302是DS1202的升级产品,与DS1202兼容,但增加了主电源/后备电源双电源引脚,同时提供了对后备电源进行涓细电流充电的能力。

DS1302电路原理图如图2-5所示

图2-5基于运放的信号放大电路

2.5.3单片机最小系统电路

单片机最小系统电路由单片机、单片机复位电路、晶体振荡回路组成,能够完成单片机工作的最基本需要,单片机最小系统电路如图2-6所示

图2-6单片机最小系统电路

2.5.41602液晶显示电路

单片机将计算处理的结果采用1602液晶进行显示,显示电路的电路原理图如图2-7所示

图2-71602液晶显示电路

第三章应用Protel实现电路原理图的绘制及PCB设计

3.1Protel简介

使用电脑设计电路原理图和电路板图是把电子技术从理论运用到实际的第一步。

只有会设计电路原理图和电路板图才能进行电子产品的研发与开发。

本软件就是从理论走向实际,掌握电子产品开发的基本技术。

Protel99SE是澳大利亚ProtelTechnology公司推出的一个全32位的电路板设计软件。

该软件功能强大,人机界面友好,易学易用,使用该软件设计者可以容易设计电路原理图、画元件图、设计电路板图、画元件封装图和电路仿真,是夜内人士首选的电路板设计工具。

3.2绘制电路原理图的主要步骤

1、进入Protel99SE环境

2、使用菜单File/New建立新设计数据库文件

3、使用菜单File/New在打开窗口选择SchematicDocument图标,建立新原理图文件

4、将原理图打开

5、设置画图环境

6、添加元件库

7、将所需元件从元件库中取出来,放置在图纸上,并且调整好位置

8、使用连线工具将元件连起来,设置元件属性,对元件进行编号

9、进行电气规格检查(ERC)

10、建立网络表,为制作电路板图做准备

 

3.3PCB人工布局、人工布线设计

人工布局就是将所有的元件一个一个放置到PCB上各个位置。

操作较为繁琐,但是能够结合工艺的要求以及设计中实际要求进行,人工布局的效果一般来说效果要比自动布局好很多。

在设计中,工程师基本都是采用自动布局的方案进行。

这也要求作为电路板设计人员要具有丰富的经验以及长时间坚持的毅力。

元件的布局与走线对产品的寿命、稳定性、电磁兼容都有很大的影响,是应该特别注意的地方。

一般来说应该有以下一些原则:

在放置顺序上应该先放置与结构有关的固定位置的元器件,如电源插座、指示灯、开关、连接件之类,这些器件放置好后用软件的LOCK功能将其锁定,使之以后不会被误移动。

再放置线路上的特殊元件和大的元器件,如发热元件、变压器、IC等。

最后放置小器件。

元件布局还要特别注意散热问题。

对于大功率电路,应该将那些发热元件如功率管、变压器等尽量靠边分散布局放置,便于热量散发,不要集中在一个地方,也不要高电容太近以免使电解液过早老化。

布线原则,每人都会有自己的体会,但还是有些通行的原则的。

高频数字电路走线细一些、短一些好,大电流信号、高电压信号与小信号之间应该注意隔离(隔离距离与要承受的耐压有关,通常情况下在2kv时板上要距离2mm,在此之上以比例算还要加大,例如若要承受3KV的耐压测试,则高低压线路之间的距离应在3.5mm以上,许多情况下为避免爬电,还在印制线路板上的高低压之间开槽。

),两面板布线时,两面的导线宜相互垂直、斜交、或弯曲走线,避免相互平行,以减小寄生耦合;作为电路的输人及输出用的印制导线应尽量避兔相邻平行,以免发生回授,在这些导线之间最好加接地线。

走线拐角尽可能大于90度,杜绝90度以下的拐角,也尽量少用90度拐角同是地址线或者数据线,走线长度差异不要太大,否则短线部分要人为走弯线作补偿。

走线尽量走在焊接面,特别是通孔工艺的PCB,尽量少用过孔、跳线,单面板焊盘必须要大,焊盘相连的线一定要粗,能放泪滴就放泪滴,一般的单面板厂家质量不会很好,否则对焊接和RE-WORK都会有问题,大面积敷铜要用网格状的,以防止波焊时板子产生气泡和因为热应力作用而弯曲,但在特殊场合下要考虑GND的流向,大小,不能简单的用铜箔填充了事,而是需要去走线,元器件和走线不能太靠边放,一般的单面板多为纸质板,受力后容易断裂,如果在边缘连线或放元器件就会受到影响;必须考虑生产、调试、维修的方便性;模拟电路来说处理地的问题是很重要的,地上产生的噪声往往不便预料,可是一旦产生将会带来极大的麻烦,应该未雨绸缎。

对于功放电路,极微小的地噪声都会因为后级的放大对音质产生明显的影响;在高精度A/D转换电路中,如果地线上有高频分量存在将会产生一定的温漂,影响放大器的工作。

这时可以在板子的4角加退藕电容,一脚和板子上的地连,一脚连到安装孔上去(通过螺钉和机壳连),这样可将此分量虑去,放大器及AD也就稳定了。

另外,电磁兼容问题在目前人们对环保产品倍加关注的情况下显得更加重要了。

一般来说电磁信号的来源有3个:

信号源,辐射,传输线。

晶振是常见的一种高频信号源,在功率谱上晶振的各次谐波能量值会明显高出平均值。

可行的做法是控制信号的幅度,晶振外壳接地,对干扰信号进行屏蔽,采用特殊的滤波电路及器件等。

第四章电子万年历C程序的编写与实现

4.1程序流程框图

 

图-A主程序流程图

图-B计算阳历程序流程图

图-C时间调整程序流程图

图-D阴历程序流程图

4.2电子万年历C语言程序

4.2.1键盘扫描部分程序

if(key1==0)//---------------key1为功能键(设置键)--------------------

{

delay(9);//延时,用于消抖动

if(key1==0)//延时后再次确认按键按下

{

buzzer=0;//蜂鸣器短响一次

delay(20);

buzzer=1;

while(!

key1);

key1n++;

if(key1n==9)

key1n=1;//设置按键共有秒、分、时、星期、日、月、年、返回,8个功能循环

switch(key1n)

{

case1:

TR0=0;//关闭定时器

//TR1=0;

write_1602com(er+0x09);//设置按键按动一次,秒位置显示光标

write_1602com(0x0f);//设置光标为闪烁

temp=(miao)/10*16+(miao)%10;//秒数据写入DS1302

write_1302(0x8e,0x00);

write_1302(0x80,0x80|temp);//miao

write_1302(0x8e,0x80);

break;

case2:

write_1602com(er+6);//按2次fen位置显示光标

//write_1602com(0x0f);

break;

case3:

write_1602com(er+3);//按动3次,shi

//write_1602com(0x0f);

break;

case4:

write_1602com(yh+0x0e);//按动4次,week

//write_1602com(0x0f);

break;

case5:

write_1602com(yh+0x0a);//按动5次,ri

//write_1602com(0x0f);

break;

case6:

write_1602com(yh+0x07);//按动6次,yue

//write_1602com(0x0f);

break;

case7:

write_1602com(yh+0x04);//按动7次,nian

//write_1602com(0x0f);

break;

case8:

write_1602com(0x0c);//按动到第8次,设置光标不闪烁

TR0=1;//打开定时器

temp=(miao)/10*16+(miao)%10;

write_1302(0x8e,0x00);

write_1302(0x80,0x00|temp);//miao数据写入DS1302

write_1302(0x8e,0x80);

break;

}

}

}

//------------------------------加键key2----------------------------

if(key1n!

=0)//当key1按下以下。

再按以下键才有效(按键次数不等于零)

{

if(key2==0)//上调键

{

delay(10);

if(key2==0)

{

buzzer=0;//蜂鸣器短响一次

delay(20);

buzzer=1;

while(!

key2);

switch(key1n)

{

case1:

miao++;//设置键按动1次,调秒

if(miao==60)

miao=0;//秒超过59,再加1,就归零

write_sfm(0x08,miao);//令LCD在正确位置显示"加"设定好的秒数

temp=(miao)/10*16+(miao)%10;//十进制转换成DS1302要求的DCB码

write_1302(0x8e,0x00);//允许写,禁止写保护

write_1302(0x80,temp);//向DS1302内写秒寄存器80H写入调整后的秒数据BCD码

write_1302(0x8e,0x80);//打开写保护

write_1602com(er+0x09);//因为设置液晶的模式是写入数据后,光标自动右移,所以要指定返回

//write_1602com(0x0b);

break;

case2:

fen++;

if(fen==60)

fen=0;

write_sfm(0x05,fen);//令LCD在正确位置显示"加"设定好的分数据

temp=(fen)/10*16+(fen)%10;//十进制转换成DS1302要求的DCB码

write_1302(0x8e,0x00);//允许写,禁止写保护

write_1302(0x82,temp);//向DS1302内写分寄存器82H写入调整后的分数据BCD码

write_1302(0x8e,0x80);//打开写保护

write_1602com(er+6);//因为设置液晶的模式是写入数据后,指针自动加一,在这里是写回原来的位置

break;

case3:

shi++;

if(shi==24)

shi=0;

write_sfm(2,shi);//令LCD在正确的位置显示"加"设定好的小时数据

temp=(shi)/10*16+(shi)%10;//十进制转换成DS1302要求的DCB码

write_1302(0x8e,0x00);//允许写,禁止写保护

write_1302(0x84,temp);//向DS1302内写小时寄存器84H写入调整后的小时数据BCD码

write_1302(0x8e,0x80);//打开写保护

write_1602com(er+3);//因为设置液晶的模式是写入数据后,指针自动加一,所以需要光标回位

break;

case4:

week++;

if(week==8)

week=1;

write_1602com(yh+0x0C);//指定'加'后的周数据显示位置

write

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

当前位置:首页 > 经管营销

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2