单片机实习报告电子万年历doc张.docx
《单片机实习报告电子万年历doc张.docx》由会员分享,可在线阅读,更多相关《单片机实习报告电子万年历doc张.docx(49页珍藏版)》请在冰豆网上搜索。
单片机实习报告电子万年历doc张
电子设计总结报告
----电子万年历
班级:
100404
姓名:
张淇瑞
学号:
20101407
摘要
在当代繁忙的工作与生活中,时间与我们每一个人都有非常亲密的关系,每个人都收到时间的影响,为了更好的利用我们自己的时间,我们必须对时间有一个度量,因此产生了钟表。
随着社会、科技的发展,人类得知时间,从观太阳、摆钟到现在电子钟,不断研究、创新。
为了在观测时间的同时能够了解其他与人类密切相关的信息,比如温度、星期、日期等,电子万年历诞生了,它集时间、日期、星期和于一身,具有读取方便、显示直观、功能多样、电路简洁等诸多优点,符合电子仪器仪表的发展趋势,具有广阔的市场前景。
随着人们生活水平的提高和生活节奏的加快,对时间的要求越来越高,精准数字计时的消费需求也是越来越多。
该电子万年历主要采用AT89S52单片机作为主控核心,由DS1302时钟芯片提供时钟、LCD动态扫描显示屏显示,AT89S52单片机具有功耗小,片内ROM全都采用FlashROM:
能以3V的超低电压工作,同时也与MCS-51系列单片机完全兼容,该芯片内部存储器为8KBROM存储空间,同时具有89C51的功能,且具有在线编程可擦除技术,当在对电路进行调试时,由于程序的错误修改或程序的新增功能需要烧入程序时,不需要对芯片进行多次插拔,所以不会对芯片造成损坏。
DS1302时钟芯片是美国DALLAS公司推出的具有涓流电流充电功能的低功耗实时时钟芯片,它可以对年、月、日等进行计时,还有闰年补偿等功能,而且使用寿命长,误差小,数字显示是采用的LCD液晶显示,可以同时显示各种需要的信息。
此外,该电子万年历还具有时间校准等功能。
1绪论
1.1选题背景
在社会迅速发展的今天,单片机的的运用已经渗透到我们生活的每个角落,也似乎很难找到哪个领域没有单片机的足迹。
智能仪表、医疗器械,导弹的导航装置,智能监控、通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC卡,汽车的安全保障系统,动控制领域的机器人,数码像机、电视机、全自动洗衣机的控制,电话机以及程控玩具、电子宠物等等,这些都离不开单片机。
图1-1万年历图1-2智能手机图1-3数码相机
所以,单片机的学习、开发与应用将对于现代社会的发展,经济的繁荣,和提高满足人类日益增长的物质文化需求有着至关重要的作用。
也成就了一批又一智能化控制的工程师和科学家。
科技越发达,智能化的东西就越多。
学习单片机是社会发展的必然需求,也是我们现代高级技工所必须要掌握的技能。
1.2选题目的
随着人们生活水平的提高和生活节奏的加快,对时间的要求越来越高,精准数字计时的消费需求也是越来越多。
二十一世纪的今天,最具代表性的计时产品就是电子万年历,它是近代世界钟表界的第三次革命。
第一次是摆和摆轮游丝的发明,相对稳定的机械振荡频率使钟表的走时差从分级缩小到秒级,代表性的产品就是带有摆和摆轮游丝的机械表或钟。
第二次革命是石英晶体振荡器的应用,发明了走时精度更高的石英电子钟表,使钟表的走时月差从分级缩小到了秒级。
第三次革命就是单片机数码计时技术的应用(电子万年历),使计时产品的走时日差从分级缩小到了百万分之一秒,从原有传统指针计时的方式发展为人们日常更为熟悉的夜光数字显示式,直观明了,并增加了全自动日期、星期、温度以及其他日常附属信息的显示功能,他更符合消费者的生活需求,因此,电子万年历的出现带来了钟表计时业跨越性的进步。
1.3设计意义
(1)在学习了《模拟数字技术和数字电子技术》和《单片机原理》课程后,为了加深对理论知识的理解,学习理论知识在实际中的运用,培养动手能力和解决实际问题的经验并接触专用时钟芯片DS1302,并会用DS1302芯片开发时钟模块,应用到其他系统中去。
熟悉protues和kiel软件调试程序和仿真。
(2)通过实验提高对单片机的认识。
(3)通过实验提高焊接、布局、电路检查能力。
(4)通过实验提高软件调试能力。
(5)进一步熟悉和掌握单片机的结构及工作原理。
(6)通过课程设计,掌握以单片机核心的电路设计的基本方法和技术,了解表关电路参数的计算方法。
(7)通过实际程序设计和调试,逐步掌握模块化程序设计方法和调试技术。
(8)通过完成一个包括电路设计和程序开发的完整过程,使学生了解开发一单片机应用系统的全过程,为今后从事相应的工作打下坚实的基础。
2设计要求与方案论证
2.1设计要求
(1)具有年、月、日、星期、时、分、秒等功能。
(2)时间与阴、阳历能够自动关联。
(3)具有温度显示功能和温度报警功能。
(4)具备年、月、日、星期、时、分、秒校准功能。
2.2系统基本方案选择和论证
2.2.1单片机芯片的选择和方案论证
方案一:
采用89C51芯片作为硬件核心,内部具有4KBROM存储空间,能于3V的超低电压工作,而且与MCS-51系列单片机完全兼容,但是运用于电路设计中时由于不具备ISP在线编程技术,当在对电路进行调试时,由于程序的错误修改或对程序的新增功能需要烧入程序时,对芯片的多次查吧会对芯片造成一定的损坏。
方案二:
采用AT89C52片内ROM全都采用FlashROM:
能以3V的超低电压工作,同时也与MCS-51系列单片机完全兼容,该芯片内部存储器为8KBROM存储空间,同时具有89C51的功能,且具有在线编程可擦除技术,当在对电路进行调试时,由于程序的错误修改或程序的新增功能需要烧入程序时,不需要对芯片进行多次插拔,所以不会对芯片造成损坏。
综上所述,所以采用AT89C52作为主控系统。
2.2.2显示模块选择方案和论证
方案一:
采用LED数码管动态扫描,LED数码管价格适中,对于显示数字最合适,而且采用动态扫描法与单片机相连接时,占用的单片机口线少,但所需要的数码管数量太多,焊接困难极易出错,所以不采用LED数码管作为显示。
方案二:
采用点阵式数码管显示,点阵式数码管是由八行八列的发光二极管组成,对于显示文字比较合适,如果用在显示数字显得太浪费,且价格也相对较高,所以也不用此种作为显示。
方案三:
采用LCD液晶显示屏,液晶显示屏的显示功能强大,可显示大量文字,图形,显示多样,清晰可见。
综上所述,我们应该选取LCD液晶显示屏。
2.2.3时钟芯片的选择方案和论证
方案一:
直接采用单片机定时计数器提供秒信号,使用程序实现年、月、日、星期、时、分、秒技术,采用此种方案虽然减小芯片的使用,节约成本,但是,实现的时间误差较大,所以不采用此方案。
方案二:
采用DS1302时钟芯片实现时钟,DS1302芯片是一种高性能的时钟芯片,可自动对秒、分、时、日、周、月、年以及闰年补偿的年进行计数,而且精度高,位的RAM作为数据暂存区,工作电压2.5V-5.5V范围内,2.5V时耗电小于300Ma。
综上所述,我们采用DS1302时钟芯片实现时钟。
2.2.4温度传感器的选择方案与论证
方案一:
使用热敏电阻作为传感器,用热敏电阻与一个相应阻值电阻相串联分压,利用热敏电阻阻值随温度变化而变化的特性,采集这两个电阻变化的分压值,并进行A/D转换。
。
此设计方案需用A/D转换电路,增加硬件成本而且热敏电阻的感温特性曲线并不是严格线性的,会产生较大的测量误差。
方案二:
采用数字式温度传感器DS18B20,此类传感器为数字式传感器而且仅需要一条数据线进行数据传输,易于与单片机连接,可以去除A/D模块,降低硬件成本,简化系统电路。
另外,数字式温度传感器还具有测量精度高、测量范围广等优点。
综上所述,我们采用数字式温度传感器DS18B20。
2.3最终方案确定
核心控制体:
AT89C52单片机
实时时钟芯片:
DS1302
数字式温度传感器:
DS18B20
LCD液晶显示屏
总共设有四个按键,为节约资源考虑,每个按键都有多种功能。
每个按键分别标号为A,B,C,D.第一次按下B,C,D都没有反应,首先按下A键可选择指针位置,B,C键为加减键,D键为闹钟设置键。
B同时又是闹钟报警消除键。
操作简单,按键灵活。
3系统的硬件设计与实现
3.1系统硬件概述
本电路是由AT89S52单片机作为控制核心,具有在线编程功能,低功耗,能在3V超低压工作;时钟电路由DS1302提供,它是一种高性能、低功耗、带RAM的实时时钟电路,它可以对年、月、日、时、分、秒等进行计时,具有闰年补偿功能,工作电压为2.5V-5.5V。
采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。
DS1302内部有一个用于临时存放数据的RAM寄存器。
可产生年、月、日、时、分、秒等,具有使用寿命长,精度高和低功耗等特点,同时具有掉电自动保存功能;温度的采集由DS18B20构成,显示部分为LCD液晶显示屏,能够实现字符与数字同时显示的功能。
3.1.1系统设计框图
图2系统组成框图图
3.1.2系统硬件需求介绍
AT89C52单片机一片,DS1302实时时钟芯片一个,DS18B20数字式温度传感器一个,+5V无源蜂鸣器二个,12MHZ晶振一个,多个按键和开关,常用电容电阻,连接线,三极管,二极管若干,滑动变阻器一个,USB母口一个。
3.2系统硬件各模块作用
3.2.1控制系统的设计
图3主控制系统
图3为单片机最小电路,其中晶振频率可以根据自己需要进行选择,范围在0-24MHZ,常用12MHZ。
复位电路得电容一般用10UF,但并不唯一,只要RC所得时间大于两个机器周期即可。
还有其P0内部无上拉电阻,所以在执行输出功能时,外部必须接上拉电阻(一般10K即可)。
P0口有两个作用,一个接上DS1302的AD0-AD7(双向地址/数据复用总线),控制着DS1302的8位并行数据的地址和数据的传输,另接上液晶的DB0-DB7(数据总线)控制着向液晶发送8位并行数据。
P1.7接上DS1302的单数据线,发送并接受数据,地址的操作。
P3.0到P3.3作为独立按键口。
P2.4口为液晶的数据/命令选择端,1为数据,二为命令,P2.5口控制液晶读/写选择端,1为读命令,0为写操作,P2.6口控制液晶使能信号。
对DS1302:
P2.0口控制DS1302的片选信号的输入(CS),P2.1口控制地址选通输入(AS),P2.2口为读写输入(R/W),P2.3控制着数据选通或读输入(DS)。
P3.2(外部中断0)接reset管脚,当闹钟时间到时便由此触发外部中断0,进入到外部中断0程序中。
P1.0和P1.1口分别控制着蜂鸣器的报警,当温度、时间到达限定值时会发出高低电平脉冲,以至发出报警声音。
3.2.2时钟电路模块的设计
图4示出DS1302的引脚排列,其中VCC1为后备电源,VCC2为主电源,在主电源关闭的情况下,也能保持时钟的连续运行,DS1302由VCC1或VCC2两者中的较大者供电,当VCC2大于VCC1+0.2V时,VCC2给DS1302供电,当VCC2小于VCC1时候VCC1供电。
X1和X2是振荡源,外接32.768KHz晶振,RST是复位片选线,通过把RST输入驱动置高电平来启动所有的数据传送。
RST输入有两种功能:
首先,RST接通控制逻辑,允许地址/命令序列送入移位寄存器;其次,RST提供终止单字节或多字节数据的传送手段,当RST为高电平时,所有的数据传送被初始化,允许对DS1302进行操作,如果在传送过程中RST置为低电平,则会终止此次数据传送,I/O引脚变为高阻态,上电运行时,在VCC大于等于2.5V之前,RST必须保持低电平,中有在SCLK为低电平时,才能将RST置为高电平,I/O为串行数据输入端,SCLK始终是输入端。
时钟电路芯片DS1302引脚图如图4所示:
图4DS1302的引脚图
工作原理如下:
(1)时钟芯片DS1302的工作原理:
DS1302在每次进行读、写程序前都必须初始化,先把SCLK端置“0”,接着把RST端置“1”,最后才给予SCLK脉冲;读/写时序如下图4所示。
图5为DS1302的控制字,此控制字的位7必须置1,若为0则不能把对DS1302进行读写数据。
对于位6,若对程序进行读/写时RAM=1,对时间进行读/写时,CK=0。
位1至位5指操作单元的地址。
位0是读/写操作位,进行读操作时,该位为1;该位为0则表示进行的是写操作。
控制字节总是从最低位开始输入/输出的。
表6为DS1302的日历、时间寄存器内容:
“CH”是时钟暂停标志位,当该位为1时,时钟振荡器停止,DS1302处于低功耗状态;当该位为0时,时钟开始运行。
“WP”
是写保护位,在任何的对时钟和RAM的写操作之前,WP必须为0。
当“WP”为1时,写保护位防止对任一寄存器的写操作。
(2)DS1302的控制字节
DS1302的控制字如表1所示。
控制字节的高有效位(位7)必须是逻辑1,如果它为0,则不能把数据写入DS1302中,位6如果0,则表示存取日历时钟数据,为1表示存取RAM数据;位5至位1指示操作单元的地址;最低有效位(位0)如为0表示要进行写操作,为1表示进行读操作,控制字节总是从最低位开始输出
表1DS1302的控制字格式
RAMRD
1A4A3A2A1A0
/CK/WR
(3)数据输入输出(I/O)
在控制指令字输入后的下一个SCLK时钟的上升沿时,数据被写入DS1302,数据输入从低位即位0开始。
同样,在紧跟8位的控制指令字后的下一个SCLK脉冲的下降沿读出DS1302的数据,读出数据时从低位0位到高位7。
如图5所示:
图5DS1302读/写时序图
(4)DS1302的寄存器
DS1302有12个寄存器,其中有7个寄存器与日历、时钟相关,存放的数据位为BCD码形式,其日历、时间寄存器及其控制字见表2。
表2DS1302的日历、时间寄存器
此外,DS1302还有年份寄存器、控制寄存器、充电寄存器、时钟突发寄存器及与RAM相关的寄存器等。
时钟突发寄存器可一次性顺序读写除充电寄存器外的所有寄存器内容。
DS1302与RAM相关的寄存器分为两类:
一类是单个RAM单元,共31个,每个单元组态为一个8位的字节,其命令控制字为C0H~FDH,其中奇数为读操作,偶数为写操作;另一类为突发方式下的RAM寄存器,此方式下可一次性读写所有的RAM的31个字节,命令控制字为FEH(写)、FFH(读)。
3.2.3温度采集模块设计
如图6所示。
采用数字式温度传感器DS18B20,它是数字式温度传感器,具有测量精度高,电路连接简单特点,此类传感器仅需要一条数据线进行数据传输,使用P0.7与DS18B20的I/O口连接加一个上拉电阻,Vcc接电源,Vss接地。
当系统在正常显示状态下需要进行调整时,按一下切换键进入按键处理中断程序,并且此时默认的是调整年,在液晶显示器上显示N,此时按加或减按钮可以进行加减调整,若再按一下切换键,则跳到月上显示Y,同样可以调整加减,同样的道理,进入日(R)、时(S)、分(F)、秒(M)的调整,最后再按一下切换键时退出中断程序,星期系统自动的调整过来。
图6温度传感器部分
3.2.4闹钟(蜂鸣器电路模块)
闹钟模块的接线如图7所示,蜂鸣器用CS9013三极管驱动,蜂鸣器用5V的无源蜂鸣器,并接一个发光二极管作为指示灯,同时在发光二极管前串接个限流电阻,数据端口分别接P1.0,P1.1(由单片机的P1.0,P1.1直接输出驱动)。
图7蜂鸣器部分
3.2.5按键部分
按键部分如图8所示,本设计总的用了四个按扭开关作为键盘,其中一个是复位键,另三个中的其中两个是调整时间增加、减少的键,第三个是切换年、月、日及时、分、秒的显示状态并在所切换的显示状态下配合加减两个键调整时间。
图8按键部分
3.2.6液晶显示模块概述
液晶显示模块如图9所示,字符型液晶显示模块是一种专门用于显示字母、数字、符号等点阵式LCD,本设计采用16列*2行的字符型LCD1602带背光的液晶显示屏。
图9液晶显示部分
3.2.7USB和外部电源供电电路
USB和外部电源供电电路部分如图10所示。
图10USB和外部电源供电电路部分
这种设计使得万年历可以接插USB口,从而获取电源,也可外部供给+5V电源。
此电路图最大优点就是可以连接多个VCC和GND,方便电路连接。
有发光二极管做电源指示灯,方便操作。
4系统的软件实现
4.1程序流程框图
图11主程序流程图
图12计算阳历程序流程图
图13阴历程序流程图
图14时间调整程序流程图
5设计总结与心得体会
本系统以AT89C51为核心部件,使用串行时钟芯片DS1302,实现时间和闹钟的功能设置。
通过键盘和液晶显示屏可方便地校对时钟和设置闹钟时间,本系统基本完成了实用电子钟的功能,尽量做到了硬件电路简单稳定,减少电磁干扰和其他环境干扰。
在该系统设计,调试完成之后,对最后的成功进行分析,同时结合在调试过程中出现的错误进行综合分析,总结在实际系统设计和调试过程中的宝贵经验。
在系统硬件设计之前,要结合当前系统的发展趋势和现状对系统功能进行定位,使系统在实际应用中具有竞争力。
该系统最大的特点就是界面友好,走时准确,和现在使用LED显示数据的万年历相比,体积更小,可以作为轿车车载显示装置,系统采用液晶显示器,可以使系统应用到更加现代化的地方系统具有温度检测功能,可以作为工业温度检测装置,同时可提供温度报警,系统的按键输入功能,可以读取决策,我们可以通过按键发送指令,控制工业现场机器的动作,实现远程控制。
可见,该系统本身不仅具有很大的灵活性,友好的界面,方便的可扩展性,同时,在其基础上的系统市场需求也很客观,工业控制的很多场合对时间要求比较严格,在实际系统中,系统各装置按照预定的时间动作,本系统可以很好的满足这些系统的要求。
通过本次课程设计让我很好的理解了电子万年历的组成部分和工作原理,也更加的激发了我学习单片机的兴趣,使我明白了只有自己亲自动手才能真正地深刻理解并掌握课本上的理论知识,把理论付诸于实践才能牢牢的把课本上的知识变成自己的。
本次课程设计也使我认识到了认真、仔细的态度在现在的学习和以后的工作中是多么的重要,“细节决定成败”,因此,从现在开始就要逐步培养自己的认真负责的心态,并养成注重细节的良好习惯。
6参考文献
1刘勇《数字电路》电子工业出版社2004
2陈正振《电子电路设计与制作》广西交通职业技术学院信息工程系2007
3杨子文《单片机原理及应用》西安电子科技大学出版社2006
4王法能《单片机原理及应用》科学出版社2004
5李全利《单片机原理及接口技术》高等教育出版社2009
6王为青邱文勋《51单片机应用开发案例精选》人民邮电出版社2007
7张鹏王雪梅《单片机原理与应用实例教程》海洋出版社2008
7致谢词
感谢学院给我们提供了一个展现自己的舞台,给我们一次难得煅炼的机会,使得我们的动手能力和专业技能都有了很大的提高。
很多课本上的知识了解了不一定能够理解,所以只有在实践中去亲自动手操作的才能够真正的掌握,在本次课程设计确实面临了很多的困难与挫折,但是只要我们能够静下心来慢慢分析、慢慢学习,通过向老师的请教和与同学的探讨,终究能够解决困难。
在做作品的日子里得到了杨老师的悉心指导,在此向我们的指导教师致以诚挚的谢意。
感谢提供相关技术帮助的老师和同学,是你们给了我很多无私的支持和帮助,正是由于你们的支持和鼓励才能让我对这次的作品完成有了信心和动力,我在此深表谢意。
8附录
附录一:
电路图
附录二:
参考程序
(1)DS18B20温度子程序
CONFIG12EQU7FH
TEMPHEQU21H
TEMPLEQU20H
REG2EQU22H
REG3EQU23H
REG4EQU24H
DATEQUP0.7
TOUTOU:
LCALLCHUSHI
LCALLRDTEMP
MOVA,TEMPL
ANLA,#11110000B
MOVTEMPL,A
MOVA,TEMPH
ANLA,#00000111B
ORLA,TEMPL
SWAPA
MOV25H,A
MOVA,25H
MOVB,#64H
DIVAB
MOVA,B
MOVB,#0AH
DIVAB
SWAPA
ORLA,B
MOV10H,A
RET
CHUSHI:
LCALLRESET
MOVA,#0CCH
LCALLWRITE111
MOVA,#4EH
LCALLWRITE111
MOVA,#CONFIG12
LCALLWRITE111
RET
RDTEMP:
LCALLRESET
MOVA,#0CCH
LCALLWRITE111
MOVA,#44H
LCALLWRITE111
LCALLDL1MS
LCALLRESET
MOVA,#0CCH
LCALLWRITE111
MOVA,#0BEH
LCALLWRITE111
LCALLERAD111
MOVTEMPL,A
LCALLERAD111
MOVTEMPH,A
RET
RESET:
LA:
SETBDAT
MOV52H,#200
LB:
CLRDAT
DJNZ52H,LB
SETBDAT
MOV52H,#30
LC:
DJNZ52H,LC
CLRC
ORLC,DAT
JCLB
MOV58H,#80
LD:
ORLC,DAT
JCLP
DJNZ58H,LD
SJMPLA
LP:
MOV52H,#250
LF:
DJNZ52H,LF
RET
WRITE111:
MOV53H,#8
W51HA:
SETBDAT
MOV54H,#8
RRCA
CLRDAT
W52HA:
DJNZ54H,W52HA
MOVDAT,C
MOV54H,#30
W53HA:
DJNZ54H,W53HA
DJNZ53H,W51HA
SETBDAT
RET
ERAD111:
CLREA
MOV58H,#8
RD1A:
CLRDAT
MOV54H,#6
NOP
SETBDAT
RD2A:
DJNZ54H,RD2A
MOVC,DAT
RRCA
MOV55H,#30
RD3A:
DJNZ55H,RD3A
DJNZ58H,RD1A
SETBDAT
RET
(2)读、写DS1302子程序
;写1302程序WRITE:
CLRSCLK
NOP
SETBRST
NOP
MOVA,32H
MOVR4,#8
WRITE1:
RRCA;送地址给1302
NOP
NOP
CLRSCLK
NOP
NOP
NOP
MOVIO,C
NOP
NOP
NOP
SETBSCLK
NOP
NOP
DJNZR4,WRITE1
CLRSCLK