时钟电路DS1302实验

上传人:飞*** 文档编号:41808643 上传时间:2018-05-31 格式:DOC 页数:11 大小:691.50KB
返回 下载 相关 举报
时钟电路DS1302实验_第1页
第1页 / 共11页
时钟电路DS1302实验_第2页
第2页 / 共11页
时钟电路DS1302实验_第3页
第3页 / 共11页
时钟电路DS1302实验_第4页
第4页 / 共11页
时钟电路DS1302实验_第5页
第5页 / 共11页
点击查看更多>>
资源描述

《时钟电路DS1302实验》由会员分享,可在线阅读,更多相关《时钟电路DS1302实验(11页珍藏版)》请在金锄头文库上搜索。

1、时钟电路时钟电路 DS1302 实验实验目的:理解简化的 SPI 总线的通信协议,熟练掌握 SPI 总线的程序设计方法,熟练运用 SPI 总线接口器件。 内容:单片机和 SPI 总线存储器 DS1302 进行通信。单片机向存储器写入一串命令,然后, 单片机读出时间数据进行显示。显示格式为:时-分-秒 所需设备:51 单片机主控模块实验原理:X12 X23VCC21GND4RST5I/O6SCLK7VCC18U4DS1302GNDC8 22PF12Y232768KHzC9 22PFGND4.7KRd1 4.7KRd2 4.7KRd3VCCVCC1 2 3P2I/O SCLK RSTAT89S51

2、VccP1.7P1.6DS1302RSTSCLKLEDRXDTXDP1.5I/O实验步骤:单片机 P1.5、P1.6、P1.7 分别与 DS1302 的 RST、I/O、SCLK 相连,连接好数 码显示模块与单片机模块的 RXD、TXD。 实验结果:数码管初始显示:12-30-00,表示 12 点 30 分 0 秒。 程序代码:DS1302 时钟模块静态数码管数码管串行数据输入;显示方式串行 ;* STACK_POINT EQU 71H DY10MS_H EQU 14H DY10MS_L EQU 248 DS1302_SCL EQU P1.7 ; DS1302_SIO EQU P1.6 ; D

3、S1302_RST EQU P1.5 ; ;= ;PROGRAM START ORG 0000HAJMP MAINORG 0030H MAIN: MOV SP,#STACK_POINTCLR 50HCLR 51HMOV R0,#30HMOV R2,#40H TWIN: MOV R0,#00H ;CLEAR 30H-6FH UNITS INC R0DJNZ R2,TWIN LCALLS01991 MOV30H,#00H MOV31H,#30H MOV32H,#12H MOV33H,#02H MOV34H,#02H MOV35H,#10H MOV36H,#05H LCALLWRITTLCALL D

4、Y10MS LCALLS01991 LCALLS01991 LCALLS01991 START: LCALLREADDMOV A,60HANL A,#0FHMOV 30H,AMOV A,60HANL A,#0F0HSWAP AMOV 31H,A MOV 32H,#10MOV A,61HANL A,#0FHMOV 33H,AMOV A,61HANL A,#0F0HSWAPAMOV 34H,A MOV 35H,#10 WEEKY: MOV A,62HANL A,#0FHMOV 36H,AMOV A,62HANL A,#0F0HSWAP AMOV 37H,AMOV A,63HANL A,#0FHMO

5、V 38H,AMOV 39H,ALCALL BCDLCALL DISPLCALL S0199LCALL S0199 ACALL DELAY1LJMP START WRITT: CLR DS1302_SCLLCALL WRITE_EN ;SECOND MOV B,30H LCALL WRIT_SEC LCALL WRITE_DISLCALL WRITE_ENMOV B,31HLCALL WRIT_MIN ;MINUTELCALL WRITE_DIS LCALL WRITE_ENMOV B,32H LCALL WRIT_HOU ;HOUR LCALL WRITE_DISLCALL WRITE_EN

6、MOV B,33H ;WEEK LCALL WRIT_WEE LCALL WRITE_DIS LCALL WRITE_ENMOV B,34H LCALL WRIT_DAY ;DAY LCALL WRITE_DIS LCALL WRITE_ENMOV B,35H LCALL WRIT_MON ;MONTH LCALL WRITE_DISLCALL WRITE_ENMOV B,36H LCALL WRIT_YEA ;YEAR LOW 2BITS LCALL WRITE_DIS RET ; READD: MOV 67H,#20H ;YEAR HIGH 2 BITS LCALL READ_YEA ;Y

7、EAR LOW 2 BITSMOV 66H,A LCALL READ_MONMOV 65H,A LCALL READ_DAYMOV 64H,A LCALL READ_WEE MOV 63H,A LCALL READ_HOUMOV 62H,A LCALL READ_MINMOV 61H,ALCALL READ_SECMOV 60H,A RETREAD_SEC: MOV A,#10000001B LCALL DATA_READ RET READ_MIN: MOV A,#10000011B LCALL DATA_READ RET READ_HOU: MOV A,#10000101B LCALL DA

8、TA_READ RET READ_WEE: MOV A,#10001011B LCALL DATA_READ RET READ_DAY: MOV A,#10000111B LCALL DATA_READ RET READ_MON: MOV A,#10001001B LCALL DATA_READ RET READ_YEA: MOV A,#10001101B LCALL DATA_READRET WRITE_EN:MOV A,#10001110B MOV B,#00000000B LCALL DATA_WRITE RET WRITE_DIS:MOV A,#10001110B MOV B,#100

9、00000B LCALL DATA_WRITE RET WRIT_SEC:MOV A,#10000000B LCALL DATA_WRITE RET WRIT_MIN: MOV A,#10000010B LCALL DATA_WRITE RET WRIT_HOU: MOV A,#10000100B LCALL DATA_WRITE RET WRIT_WEE: MOV A,#10001010B LCALL DATA_WRITE RET WRIT_DAY: MOV A,#10000110B LCALL DATA_WRITE RET WRIT_MON: MOV A,#10001000B LCALL

10、DATA_WRITE RET WRIT_YEA: MOV A,#10001100BLCALL DATA_WRITERET DATA_READ:MOV B,R0MOV R0,#08HCLR DS1302_SCLCLR DS1302_RSTCLR DS1302_SIONOPNOPSETB DS1302_RST NOP NOP NOP NOP NOP NOP NOP NOP NOP DATAREAD0:CLR DS1302_SCL RRC A MOV DS1302_SIO,C NOP MOV DS1302_SIO,C NOP SETB DS1302_SCL NOP NOP DJNZ R0,DATAR

11、EAD0 MOV R0,#08H CLR A DATAREAD1:CLR DS1302_SCL NOP NOP NOP MOV C,DS1302_SIO RRC A SETB DS1302_SCL NOP NOP DJNZ R0,DATAREAD1 CLR DS1302_SCL CLR DS1302_RST NOP NOP MOV R0,B RET ;* ; GOSUB DATA_WRITE * ;* ;DS1302 DATA WRITING COMMAND ;THE OUTPUT DATA IS PLACED AT B,THE COMMAND DATA IS PUT AT ACC ;R0 A

12、ND B IS USED. DATA_WRITE:MOV R0,#08H ; CLR DS1302_RST NOP NOP ; SETB DS1302_RSTNOP NOP NOP NOP NOP NOP NOP NOP NOP ; DATAWR0:CLR DS1302_SCL RRC A MOV DS1302_SIO,C NOP MOV DS1302_SIO,C NOP NOP SETB DS1302_SCL NOP NOP DJNZ R0,DATAWR0 MOV R0,#08H MOV A,B DATAWR1:CLR DS1302_SCL RRC A MOV DS1302_SIO,C NO

13、P MOV DS1302_SIO,C NOP SETB DS1302_SCL NOP NOP DJNZ R0,DATAWR1 CLR DS1302_SCL CLR DS1302_RST NOP NOP RET ;* ; GOSUB DY10MS * ;* DY10MS: PUSH ACC MOV A,R0 PUSH ACC MOV A,R1 PUSH ACC ;= MOV R0,#DY10MS_H DY10MS0:MOV R1,#DY10MS_L DJNZ R1,$ DJNZ R0,DY10MS0 POP ACC MOV R1,A POP ACC MOV R0,A POP ACC RET ; DISP: MOV SCON,#00HMOV R0,#30H ;3BH MOV R2,#8 ;0DH

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

当前位置:首页 > 行业资料 > 其它行业文档

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