基于单片机设计的电子万年历8973952.docx
- 文档编号:6364117
- 上传时间:2023-01-05
- 格式:DOCX
- 页数:28
- 大小:540.26KB
基于单片机设计的电子万年历8973952.docx
《基于单片机设计的电子万年历8973952.docx》由会员分享,可在线阅读,更多相关《基于单片机设计的电子万年历8973952.docx(28页珍藏版)》请在冰豆网上搜索。
基于单片机设计的电子万年历8973952
青岛农业大学海都学院
本科生毕业论文(设计)
题目:
基于单片机设计的电子万年历
基于单片机设计的电子万年历
摘要
电子万年历是一种非常广泛日常计时工具,在现代社会越来越流行。
它可以对年、月、日、周日、时、分、秒进行计时,还具有闰年补偿等多种功能,而且DS1302的使用寿命长,误差小。
对于数字电子万年历采用直观的数字显示,可以同时显示年、月、日、周、时、分、秒和温度等信息,还具有时间校准等功能。
但由于这种万年历是挂在墙上的,使用手动按键很不方便,特别是按键的那一边放在了临近墙角的位置,对按键的调整带来了很大的困难。
针对电子万年历的这些缺点,我设计了一套电子万年历,来改善这些缺点。
通过利用红外调节的办法使电子万年历达到操作简单,方便轻松地目的。
关键字:
单片机、DS1302、DS18B20、步进电机、数码管、红外调控
Single-chipdesign-basedelectroniccalendar
Abstract
Theelectroniccalendarisaverywiderangeofdailytimingtool,moreandmorepopularinmodernsociety.Itcanbeon-year,month,day,Sunday,hours,minutes,secondsfortiming,butalsoaleapyearcompensationfunctions,andtheDS1302longlife,smallerror.Digitalelectroniccalendarusingintuitivedigitaldisplay,candisplayyear,month,day,weeks,hours,minutes,seconds,andtemperature,etc.,butalsohasthefunctionofthetimecalibration.
Thiscalendarishangingonthewall,usingthemanualbuttoninconvenient,especiallybuttonswhileonthenearcornerofthelocationbuttonadjustmenthasbroughtgreatdifficulties.Inresponsetotheseshortcomingsoftheelectroniccalendar,Idesignedanelectroniccalendar,toimprovetheseshortcomings.Electroniccalendar,byusinginfraredadjustmentapproachtoachievesimpleoperation,convenientandeasytopurpose.
Keyword:
SCM,DS1302,DS18B20,stepmotor,digitaltube,infraredregulation
第一章设计要求与方案论证
1.1设计要求
(1)基本要求
①具有年、月、日、星期、时、分、秒等功能;
②万年历具有闰年识别显示功能;
3具有测量室内温度功能。
(2)创新要求
①具有红外遥控调节电子钟的功能;
2可以调整画轴的正反转,还把画轴的转动与声音的播放分离开来。
1.2系统基本方案选择和论证
1.2.1单片机芯片的选择方案和论证
方案一:
采用89C51来作为控制芯片,4K字节可编程闪烁存储器寿命,1000写/擦循环,128*8位内部RAM,32个可编程I/O线,两个16位定时器/计数器,5个中断源,可编程通信,低功耗的闲置和掉电模式,片内振荡器和时钟电路。
方案二:
采用89C52来作为控制芯片,89C52是INTEL公司MCS-51系列单片机中基本的产品,它采用ATMEL公司可靠的CMOS工艺技术制造的高性能8位单片机,属于标准的MCS-51的HCMOS产品。
它结合了CMOS的高速和高密度技术及CMOS的低功耗特征,它基于标准的MCS-51单片机体系结构和指令系统,属于89C51增强型单片机版本,集成了时钟输出和向上或向下计数器等更多的功能,适合于类似马达控制等应用场合。
89C52内置8位中央处理单元、256字节内部数据存储器RAM、8k片内程序存储器(ROM)32个双向输入/输出(I/O)口、3个16位定时/计数器和5个两级中断结构,一个全双工串行通信口,片内时钟振荡电路。
此外,89C52还可工作于低功耗模式,可通过两种软件选择空闲和掉电模式。
在空闲模式下冻结CPU而RAM定时器、串行口和中断系统维持其功能。
掉电模式下,保存RAM数据,时钟振荡停止,同时停止芯片内其它功能。
所以选择89C52作为主控制系统。
1.2.2显示模块的选择方案和论证
方案一:
采用1602LED液晶显示屏,,工业字符型液晶,能够同时显示16x02即32个字符。
(16列2行)是一种专门用来显示字母、数字、符号等的点阵型液晶模块它有若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符。
每位之间有一个点距的间隔每行之间也有也有间隔起到了字符间距和行间距的作用,但是价格昂贵,需要的接口线多,还有其使用的温度范围很窄,通用型液晶正常工作温度范围为0℃~+55℃,存储温度范围为-20℃~+60℃,所以在此设计中不采用LED液晶显示屏。
方案二:
采用8段数码管,数码管能在低电压、小电流条件下驱动发光,能与CMOS、TTL电路兼容;发光时间极短,高频特性好,单色性好,亮度高;体积小、重量轻,抗冲击性能好;寿命长,使用寿命在十万小时以上,甚至可达一百万小时,成本低;且采用动态扫描法与单片机连接时,占用的单片机口线少。
所以采用了LED数码管显示。
1.2.3时钟芯片的选择方案和论证
方案一:
直接采用单片机定时计数器提供秒信号,使用程序实现年、月、日、星期、时、分、秒计数。
采用此种方案虽然减少芯片的使用,节约成本,但是,实现的时间误差较大;且使用单片机计时,一方面需要采用计数器,占用硬件资源,另一方面需要设置中断、查询等,同样耗费单片机的资源,所以不采用此方案。
方案二:
采用ds1302时钟芯片实现时钟的计时,具有涓细电流充电能力的高性能、低功耗、带RAM的实时实时时钟电路,可以对年、月、日、周、日、时、分、秒进行计时,且具有闰年补偿等多种功能,工作电压为2.5V~5.5V。
采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。
DS1302内部有一个31×8的用于临时性存放数据的RAM寄存器。
所以选用DS1302作为时钟计时工具。
1.2.4电机的选择方案和论证
方案一:
使用直流电机来调节,直流电机是使机械能与电能相互转换的机械,直流电机把直流电能变为机械能。
直流电机调速范围广,且易于平滑调节,过载、起动、制动转矩大;易于控制,可靠性高;调速时的能量损耗较小。
缺点是制造比较贵,有碳刷,且碳刷和整流子存在磨损,因此有个寿命限制,并且噪音也较大。
方案二:
使用步进电机来调节,步进电机是将电脉冲信号转变为角位移或线位移的开环控制元件,它具有快速启、停的能力,在电机的负荷不超过它能提供的动态转矩时,可以通过控制脉冲来控制它在一瞬间的起动或停止。
在非超载情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,也不受环境温度、气压、振动、电网电压的波动的影响,即给电机加一个脉冲信号,电机则转过一个步进角。
这一线性关系的存在,加上步进电机只有周期性的误差而无累积误差等特点,使得步进电机在速度、位移等控制领域的控制操作非常简单。
所以选择步进电机作为调节画轴的工具。
1.2.5温度测试的选择方案和论证
方案一:
使用热敏电阻,热敏电阻是由于温度的变化,其阻值发生变化。
分NTC和PTC分别表示负温度系数和正温度系数,但是热敏电阻阻值随温度变化的曲线呈非线性,而且每个相同型号的线性度也不一样,并且测温范围比较小。
方案二:
使用温度传感器DS18B20,DS18B20数字温度传感器接线方便,封装成后可应用于多种场合,如管道式,螺纹式,磁铁吸附式,不锈钢封装式,型号多种多样,有LTM8877,LTM8874等等。
主要根据应用场合的不同而改变其外观。
封装后的DS18B20可用于电缆沟测温,高炉水循环测温,锅炉测温,机房测温,农业大棚测温,洁净室测温,弹药库测温等各种非极限温度场合。
耐磨耐碰,体积小,使用方便,封装形式多样,适用于各种狭小空间设备数字测温和控制领域。
测温范围-55℃~+125℃,采用12位存贮温度值,最高位为符号位。
其为单总线技术,这种技术具有线路简单,硬件开销少,成本低廉,便于总线扩展和维护等优点。
所以选择温度传感器DS18B20作为温度测量工具。
第二章系统的硬件设计与实现
2.1电路设计框图
硬件设计电路框图
2.2系统硬件概述
本电路采用STC89C52作为主控制芯片,以DS1302作为时钟计数芯片,来实现时间的运行,用DS18B20作为温度传感器测量外界环境温度,通过ULN2803达林顿管驱动步进电机实现画轴的转动,并通过红外接收头接收来自遥控器的红外信号来实现电子万年历的方便调节,最后在通过74HC573来驱动数码管来显示。
2.3主要单元电路的设计
2.3.1电源模块的设计
电子万年历是通过220V的市电来供电,但单片机的工作电压是5V,所以需要把220V的市电转换为5V的直流电来给单片机供电。
要实现这个转换需要通过四个环节,即:
1电源变压器——将交流市电电压220V变换为整流需要的数值;
2整流电路——将交流电压变换为单向脉动直流电压,整流是利用二极管的单向导电性来实现的;
3滤波电路——将脉动直流电压中交流分量滤除,形成平滑的直流电压;
4稳压电路——其作用是当交流电网电压波动或负载变化时,保证输出直流电压稳定。
1电源变压器采用220V到9V的电压转换变压器,以方便实现电压到5V的转换。
2整流电路的功能是利用二极管的单向导电性将正弦交流电压转换成单向脉动电压,整流电路有电路有单向整流和三相整流,有半波整流、全波整流、桥式整流等。
我这里利用的单向桥式整流。
利用桥式整流电路实现了将9V的交流电压转化成了9V的单向脉动电压。
下图是桥式连接
桥式整流电路
3滤波电路的作用是滤除整流电压中的纹波。
常用的滤波电路有电容滤波、电感滤波、复试滤波及有源滤波等。
这里使用的是电容滤波。
电容滤波是最简单的滤波器,他是在整流电路的负载上并联一个电容C,电容为带有正负极性的大容量电容器,如电解电容。
经过滤波电路后,既可保留直流分量、又可滤掉一部分交流分量,改变了交直流成分的比例,减小了电路的脉动系数,改善了直流电压的质量。
下图是电源滤波电路
电容滤波电路
4稳压电路采用集成稳压模块的7805芯片,7805输出的是正电压。
其正常工作时,输入、输出电压差为2~3V。
C2为输入稳定电容,其作用是减小纹波、消振、抑制高频和脉冲干扰,它一般为0.1~1uF。
C3为输出稳定电容,其作用是改善负载的瞬态响应,它一般为1uF。
使用三端稳压器时要注根据输出电流的大小选择加散热器,否则会由于过热而无法工作到额定电流。
但设计时最好都加上散热器,本电路的设计要加上散热器。
下图是稳压电路的连接
稳压电路
2.3.2单片机主控制模块的设计
单片机主控制芯片采用的是STC89C52单片机,它是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。
STC89C52单片机为40引脚双列直插芯片,有四个I/O口P0,P1,P2,P3,MCS-51单片机共有4个8位的I/O口(P0、P1、P2、P3),每一条I/O线都能独立地作输出或输入。
但P0口内部没有上拉电阻,为高阻状态,所以不能正常地的输出高/低电平,因此该组I/O口在使用时务必要接上拉电阻,一般我们选择接入10KΩ的上拉电阻,在电路中我使用的是104的排阻。
单片机的最小系统如下图所示,18引脚和19引脚接时钟电路,XTAL1接外部晶振和微调电容的一端,在片内它是振荡器倒相放大器的输入,XTAL2接外部晶振和微调电容的另一端,在片内它是振荡器倒相放大器的输出.第9引脚为复位输入端,接上电容,电阻及开关后够上电复位电路,20引脚为接地端,40引脚为电源端。
31引脚接高电平时,单片机读取内部程序存储器。
当扩展有外部ROM时,读取完内部ROM后自动读取外部ROM,当接低电平时,单片机直接读取外部ROM,在此设计中此引脚始终接高电平。
下图是单片机最小系统
单片机最小系统
本设计中加入了程序下载模块,方便了程序的调试运行,如果真正作为产品的话,此模块可以省略不要。
单片机是一种数字集成芯片,数字电路中只有两种电平:
高电平和低电平。
单片机输出与输入为TTL电平,即正逻辑电平。
但计算机的串口为RS232C电平,RS232C电平为负逻辑电平,因此当计算机与单片机之间要通信时,需要加电平转换芯片,我们这里使用的电平转换芯片是MAX232。
MAX232芯片是MAXIM公司生产的、包含两路接收器和驱动器的IC芯片,它的内部有一个电源电压变换器,可以把输入的+5V电源电压变换成为RS-232输出电平所需的+10V电压。
所以此芯片接口的串口通信系统只需要单一的+5V电源就可以了。
对于没有+12V电源的场合,其适应性更强,加之其价格适中,硬件接口简单,所以被广泛采用。
MAX232芯片引脚结构图
外围电路连接图
上半部电容C1,C2,C3,C4及V+,V-是电源变换电路部分。
在实际应用中,器件对电源噪声很敏感,因此Vcc必须要对地加去耦电容C5,其值为0.1uF。
电容C1,C2,C3,C4应取1.0uF/16V的电解电容,在具体设计电路时,这四个电容要尽量靠近MAX232芯片,以提高抗干扰能力。
下半部分为发送接收部分,实际应用中,T1IN,T2IN可直接连接TTL/CMOS电平的51单片机串行发送端TXD;R1OUT,R2OUT可直接连接TTL/CMOS电平的51单片机的串行接收端RXD;T1OUT,T2OUT可直接连接PC机的RS-232串口的接收端RXD;R1IN,R2IN可直接连接PC机的RS-232串口的发送端TXD。
现从MAX232芯片中两路发送、接收中任选一路作为接口。
要注意其发送接收的引脚要对应。
如使T1IN连接单片机的发送端TXD,则PC机的RS-232接收端RXD一定要对应接T1OUT引脚。
同时R1OUT连接单片机的RXD引脚,PC机的RS-232发送端TXD对应接R1IN引脚。
下图是MAX232和单片机IO口的连接图
MAX232的连接图
2.3.3时钟电路模块的设计
图示出DS1302的引脚排列,其中Vcc1为后备电源,VCC2为主电源。
在主电源关闭的情况下,也能保持时钟的连续运行。
DS1302由Vcc1或Vcc2两者中的较大者供电。
当Vcc2大于Vcc1+0.2V时,Vcc2给DS1302供电。
当Vcc2小于Vcc1时,DS1302由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引脚图
DS1302的控制字如图所示。
控制字节的最高有效位(位7)必须是逻辑1,如果它为0,则不能把数据写入DS1302中,位6如果为0,则表示存取日历时钟数据,为1表示存取RAM数据;位5至位1指示操作单元的地址;最低有效位(位0)如为0表示要进行写操作,为1表示进行读操作,控制字节总是从最低位开始输出。
DS1302的控制字节
在控制指令字输入后的下一个SCLK时钟的上升沿时,数据被写入DS1302,数据输入从低位即位0开始。
同样,在紧跟8位的控制指令字后的下一个SCLK脉冲的下降沿读出DS1302的数据,读出数据时从低位0位到高位7。
DS1302有12个寄存器,其中有7个寄存器与日历、时钟相关,存放的数据位为BCD码形式,其日历、时间寄存器及其控制字见表。
DS1302有关日历、时间的寄存器
下图是DS1302与单片机的连接图
DS1302连接图
2.3.4温度测量模块的设计
下图是DS18B20器件图,1脚是地,2脚是数据输入/输出,3脚是电源端,一般接到+5V的电源上。
DS18B20采用单总线技术,这条信号线既可以传输时钟,又可以传输数据,而且数据传输是双向的。
单总线通常要求外接一个约为5KΩ的上拉电阻。
DS18B20器件图
DS18B20的存储器包括高速暂存器RAM和可电擦除RAM,可电擦除RAM又包括温度触发器TH和TL,以及一个配置寄存器。
存储器能完整的确定一线端口的通讯,数字开始用写寄存器的命令写进寄存器,接着也可以用读寄存器的命令来确认这些数字。
当确认以后就可以用复制寄存器的命令来将这些数字转移到可电擦除RAM中。
当修改过寄存器中的数时,这个过程能确保数字的完整性。
光刻ROM中的64位序列号是出厂前被光刻好的,它可以看作是该DS18B20的地址序列码。
64位光刻ROM的排列是:
开始8位(28H)是产品类型标号,接着的48位是该DS18B20自身的序列号,最后8位是前面56位的循环冗余校验码(CRC=X8+X5+X4+1)。
光刻ROM的作用是使每一个DS18B20都各不相同,这样就可以实现一根总线上挂接多个DS18B20的目的。
64-位的光刻ROM又包括5个ROM的功能命令:
读ROM,匹配ROM,跳跃ROM,查找ROM和报警查找。
下图是ROM指令表和RAM指令表
ROM指令表
RAM指令表
高速暂存器RAM是由8个字节的存储器组成;第一和第二个字节是温度的显示位。
第三和第四个字节是复制TH和TL,同时第三和第四个字节的数字可以更新;第五个字节是复制配置寄存器,同时第五个字节的数字可以更新;六、七、八三个字节是计算机自身使用。
用读寄存器的命令能读出第九个字节,这个字节是对前面的八个字节进行校验。
下表列出了温度数据在高速暂存器RAM的第0和第1个字节中的存储格式
温度数据存储格式
DS18B20在出厂时默认配置为12位,其中最高位为符号位,即温度值共11位,单片机在读取数据时,一次会读2字节共16位,读完后将低11位的二进制数转化为十进制后再乘以0.0625便为所测的实际温度值。
另外,还需要判断温度的正负。
前5个数字为符号位,这5位同时变化,我们只需要判断11位就可以啦,前5位为1时,读取的温度为负值,且测到的数值需要取反加1再乘以0.0625才可以得到实际温度值。
前5位为0时,读取的温度为正值,且温度为正值时,只要将测得的数值乘以0.0625即可得到实际温度值。
下图是DS18B20与单片机的连接图
DS18B20连接图
2.3.5画轴旋转模块的设计
利用ULN2803达林顿管驱动步进电机,ULN2803是八路的NPN达林顿连接晶体管阵系列,特别适用于低逻辑电平数字电路(诸如TTL,CMOS或PMOS/NMOS)和较高的电流/电压要求之间的接口,广泛应用于计算机,工业用和消费类产品中的灯、继电器、打印锤或其它类似负载中。
下图是ULN2803的引脚图
1至8脚为8路输入,18到11脚为8路输出。
驱动能力500mA/50V。
应用时9脚接地,要是驱动感性负载,10脚接负载电源V+。
输入的电平信号为0,或5V。
输入0时,输出达林顿管截止。
输入为5V电平时,输出达林顿饱和。
输出负载加在电源V+和输出口上,当输入为高电平时,输出负载工作。
步进电机作为执行元件,是机电一体化的关键产品之一,广泛应用在各种自动化设备中。
步进电机和普通电动机不同之处在于它是一种将电脉冲信号转化为角位移的执行机构,它同时完成两个工作:
一是传递转矩,二是控制转角位置或速度。
这个设计使用的是二相步进电机,它有四条励磁信号引线A,A\,B,B\,通过控制这四条引线上励磁脉冲产生的时刻,即可控制步进电机的转动。
每出现一个脉冲信号,步进电机只走一步。
因此,只要依序不断送出脉冲信号,步进电机就能实现连续转动。
步进电机的励磁方式分为全步励磁和半步励磁两种。
其中全步励磁又有一相励磁和二相励磁之分;半步励磁又称一二相励磁。
假设每转一圈需要200个脉冲信号来励磁,可以计算出每个励磁信号能是步进电机前进1.8°,简要介绍如下。
1)一相励磁——在每一瞬间,步进电机只有一个线圈导通。
每送一个励磁信号,步进电机旋转1.8°,这是三相励磁方式中最简单的一种。
其特点是:
精确度好、消耗电力少,但输出转矩最小,振动较大。
如果以该方式控制步进电机正转,对应的励磁顺序如下表所示,若励磁信号反向传送,则步进电机反转。
表中的1和0表示送给电机的高电平和低电平。
STEP
A
B
A\
B\
1
1
0
0
0
2
0
1
0
0
3
0
0
1
0
4
0
0
0
1
一相励磁顺序表
励磁顺序说明:
1→2→3→4→1如此循环
2)二相励磁——在每一瞬间,步进电机有两个线圈同时导通。
没送一个励磁信号,步进电机旋转1.8°。
其特点是:
输出转矩大,振动小,因而成为目前使用最多的励磁方式。
如果以该方式控制步进电机正转,对应的励磁顺序见下表。
若励磁信号反向传送,则步进电机反转。
STEP
A
B
A\
B\
1
1
1
0
0
2
0
1
1
0
3
0
0
1
1
4
1
0
0
1
二相励磁顺序表
励磁顺序说明:
1→2→3→4→1如此循环
3)一二相励磁——为一相励磁与二相励磁交替导通的方式。
没送一个励磁信号,步进电机旋转0.9°。
其特点是:
分辨率高,运转平滑,故应用也很广泛。
如果以该方式控制步进电机正转,对应的励磁顺序见下表。
若励磁信号反向传送,则步进电机反转。
STEP
A
B
A\
B\
1
1
0
0
0
2
1
1
0
0
3
0
1
0
0
4
0
1
1
0
5
0
0
1
0
6
0
0
1
1
7
0
0
0
1
8
1
0
0
1
一二相励磁顺序表
励磁顺序说明:
1→2→3→4→5→6→7→8→1如此循环
本设计采用的一相励磁,即四条信号线每次
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 设计 电子 万年历 8973952