单片机课程设计电子万钟

上传人:桔**** 文档编号:553378927 上传时间:2023-02-18 格式:DOC 页数:12 大小:122.50KB
返回 下载 相关 举报
单片机课程设计电子万钟_第1页
第1页 / 共12页
单片机课程设计电子万钟_第2页
第2页 / 共12页
单片机课程设计电子万钟_第3页
第3页 / 共12页
单片机课程设计电子万钟_第4页
第4页 / 共12页
单片机课程设计电子万钟_第5页
第5页 / 共12页
点击查看更多>>
资源描述

《单片机课程设计电子万钟》由会员分享,可在线阅读,更多相关《单片机课程设计电子万钟(12页珍藏版)》请在金锄头文库上搜索。

1、东北大学秦皇岛分校单片机结课论文电子万年历1、 功能要求设计一台电子万年历,主控芯片采用8051单片机,日历时钟芯片采用DALLAS公司推出的高性能、低功耗、带RAM的实时时钟DS1302,显示器采用点阵字符型液晶显示模块,分2行显示,第一行显示日、月、年,第2行显示时、分、秒。2、硬件电路设计 下图a所示为电子万年历的硬件电路图,主要包括8051单片机、日历时钟芯片DS1302、点阵字符型液晶显示模块等。日历时钟芯片Ds302 是一种串行接口的实时时钟,芯片内部具有可编程日历时钟和31个字节的静态RAM,日历时钟可自动进行闰年补偿,计时准确,接口简单,使用方便,工作电压范围宽(2.55.5V

2、),功耗低,芯片自身还具有对备份电池进行涓流充电功能,可有效延长备份电池的使用寿命。图a 电子万年历的硬件电路图 DS1302采用8脚封装,其引脚排列如图所示,各引脚功能如下。l Vcc1,Vcc:电源输入l GND:地l X1,X2:外接32.768KHz石英晶振输入l RST:复位通信允许l I/O:数据输入/输出端l SCLK:串行时钟输入、图b DS1302的引脚排列8051单片机与DS1302之间采用3线串行通信方式。复位/通信允许信号RST接到单片机的P1.5引脚,RST=1允许通信,RST=0禁止通信;串行时钟信号SCLK接到单片机的P1.6引脚;数据输入/输出信号I/O接到单片

3、机的P1.7引脚。8051作为主机通过控制RST、SCLK和I/O信号实现两芯片之间的数据传送。 DS1302芯片的X1和X2端外接32.768KHz的石英晶振Vcc1和Vcc2是电源引脚,单电源供电时接Vcc1脚,双电源供电时主电源接Vcc2,备份电池接Vcc1,如果采用可充电镉镍电池,可启用内部涓流充电器在主电压正常时向电池充电,以延长电池使用时间。备份电池也可用1UF以上的超容量电容代替,需要注意备份电池电压应略低于主电源工作电压。数据传送是以8051单片机为主控芯片进行的,每次传送时由8051向DS1302写入一个命令字节开始的,命令字节的格式入下:D7D6D5D4D3D2D1D01R

4、AM/CKA4A3A2A1A0RD/W命令字节的最高位必须为1,RAM/CK位为DS1302片内RAM/时钟选择位,RAM/CK=1选择RAM操作,RAM/CK=0选择时钟操作。RD/W为读写控制位,RD/W=1为读操作,表示DS1302接受完命令字节后,按指定的选择对象及寄存器地址,读取数据并通过I/O线传送给单片机8051. RD/W=0为写操作,表示DS1302接受完命令字节后,紧跟着在接收来自于单片机8051的数据字节,并写入到DS1302相应的寄存器后RAM单元中。A4A0为片内日历时钟寄存器后RAM的地址选择位。DS1302与8051之间通过I/O线进行同步串行数据传送,SCLK为

5、串行通信时的位同步时钟,一个SCLK脉冲传送一位数据,每次数据传送时都以字节为单位,低位在前,高位在后,传送一个字节需要8个SCLK脉冲。数据传送可以单字节方式或多字节突发方式进行。单字节方式传送一次数据需要16个SCLK脉冲,多字节方式传送一次数据在对日历进行读写时需要72个sclk脉冲。单字节操作方式可保证数据传送时的安全性和可靠性,多字节操作方式则可提高数据传送速度,两种方式可视需要灵活选用。另外,DS1302的外接晶振推荐采用32.768khz,电容推荐值为6pf,由于晶振频率较低,也可以不接电容,对计时精度影响不大。DS1302共有12个寄存器,其中7个寄存器与日历时钟有关,存放的数

6、据为BCD码格式,日历、时钟寄存器地址及其内容如表1所示。秒寄存器的第7位为时钟暂停控制位,该位位1时暂停时钟振荡器,DS1302进入低功耗状态,该位为0时启动时钟。时寄存器的第7位为12或24小时方式选择,该位为1时选择12小时方式,该位为0时选择24小时方式。在12小时方式下,时寄存器的第5位为AM/PM选择,该位为1时选择PM,该位为0时选择。在24小时方式下,时寄存器的第5位为第2个小时位(20-23).表1 DS1302内部寄存器地址与内容寄存器命令字节取值范围寄存器内容写读76543210秒寄存器80H81H00-59CH10sSEC分寄存器82H83H00-59010minMIN

7、时寄存器84H85H00-2或01-1212/24010A/pHRHR日寄存器86H87H01-28,29,30,310010DATADATE月寄存器88H89H01-1200010MMONTH周寄存器8AH8BH01-0700000DAY年寄存器8CH8DH00-9910YEARYEAR电子万年历的显示部分采用点阵字符型液晶显示模块,以直接方式与8051单片机进行接口。将单片机的P2.7通过适当逻辑门电路组合接到液晶显示模块的E端,P0口通过外部锁存器得到的最低2位地址线A0和A1分别接到液晶显示模块的RW和RS端,从而可得到接口有电路的命令写入地址为7FF0H,命令读取地址为7FF1H,数

8、据操作地址为7FF2H,分别对这3个地址进行操作即可将DS1302中的日历时钟信息显示在LCD屏幕上。3、软件程序设计 在8051单片机片内R中开辟30H36H作为万年历的秒、分、时、日、月、周和年计时单元,并将初始时间设为23:59:55,初始日期设为07年12月31日第一周。采用8051单片机内定时器T0来定时刷新LCD显示内容,T0定时初始值设为50ms,以查询方式检查T0溢出标志,每当溢出次数达到20时,读取一次DS1302的日历时钟数据,同时对LCD显示信息进行更新。电子万年历的软件程序:;*/T_RST Bit P1.5 ;实时时钟复位线引脚T_CLK Bit P1.6 ;实时时钟

9、时钟线引脚T_IO Bit P1.7 ;实时时钟数据线引脚SECOND EQU 30HMINUTE EQU 31HHOUR EQU 32HDAY EQU 33HMONTH EQU 34HWEEK EQU 35HYEARL EQU 36H;*/ ORG 0000HSTART: LJMP MAIN ORG 0060HMAIN: MOV SP,#60H ;修改堆栈;* MOV SECOND,#55H ;初始时间设为23:59:55 MOV MINUTE,#59H MOV HOUR,#23H MOV DAY,#31H ;初始日期设为09年12月31日第一周 MOV MONTH,#12H MOV WEE

10、K,#01H MOV YEARL,#09H LCALL SETDS1302LCALL LCD_INIT ;调用液晶模块初始化子程序 MOV R3,#20 MOV TMOD,#01H MOV TH0,#3CH ;置定时器初值(定时50ms) MOV TL0,#0B0H SETB TR0 ;启动定时器0LP1: JBC TF0,LP2 ;查询计数溢出 SJMP LP1 ;未到50 ms继续计数LP2: MOV TH0,#3CH ;重新置定时器初值 MOV TL0,#0B0HMOV R2,#81H ;从第1行第2位开始,设置DDRAM地址LCALL WRTC MOV DPTR,#ZIFU1 ;指向显

11、示字符代码首地址MOV R4,#06HLCALL WP1 ;第1行字符代码写入DDRAM LCALL DISPYMD ;显示年月日MOV R2,#0C1H ;设置第2行DDRAM地址LCALL WRTCMOV DPTR,#ZIFU2 ;指向显示字符代码首地址MOV R4,#06HLCALL WP1 ;第1行字符代码写入DDRAM LCALL DISPHMS ;显示时分秒 DJNZ R3,LP1 ;未到1s继续循环 LCALL GET1302 ;每到1s从DS1302读取一次时间 mov r3,#20 SJMP lp1ZIFU1: DB Date: ZIFU2: DB Time: ;*DISPH

12、MS:MOV A,HOUR ;时分秒显示子程序 SWAP A ANL A,#03HADD A,#30HMOV R2,ALCALL WRTD MOV A,HOUR ANL A,#0FHADD A,#30HMOVR2,ALCALL WRTDMOV R2,#2DHLCALL WRTD MOV A,MINUTE ;显示分 SWAP A ANL A,#07HADD A,#30HMOV R2,ALCALL WRTD MOV A,MINUTE ANL A,#0FHADD A,#30HMOV R2,ALCALL WRTDMOV R2,#2DHLCALL WRTD MOV A,SECOND ;显示秒 SWAP A ANL A,#07HADD A,#30HMOV R2,A

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 工作计划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号