DS1302程序Word文档下载推荐.docx
- 文档编号:16825527
- 上传时间:2022-11-26
- 格式:DOCX
- 页数:13
- 大小:17.35KB
DS1302程序Word文档下载推荐.docx
《DS1302程序Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《DS1302程序Word文档下载推荐.docx(13页珍藏版)》请在冰豆网上搜索。
MOV
SP,#2AH
------------------------------------初始化1302-------------------------
SET1302:
LCALLWrite_Multiplebyte;
初始化1302,将我们要设定的数据写入
CG:
LCALLRead_Multiplebyte;
将我们设定的数据读出来
MOVP3,#10000000B
LCALLENABLE
MOVP3,#00011100B
MOVP3,#00110000B
MOVP3,#01100000B
MOVP3,#00000001B
LCALLSTLCD
JNBP2.4,SETB_TIME
LCALLYS
LJMPCG
SETB_TIME:
MOVP3,#11110000B;
显示器开、光标开、光标允许闪烁
LCALLENABLE;
调用写入命令子程序
MOVP3,#01110011B
LCALLENABLE;
JNBP2.4,SETB_TIME1
JBP2.5,LJMP_ADD
INC45H
LJMP_ADD:
JBP2.6,LJMP_SUBB
DEC45H
LJMP_SUBB:
MOVA,45H
MOVB,#16
DIVAB
MOVA,B
CJNEA,#10,CHULI
ADDA,#6
MOV45H,A
CHULI:
CJNEA,#15,ZAICHULI
SUBBA,#6
ZAICHULI:
JNBP2.7,OUTPUTTTT
LJMPSETB_TIME
OUTPUTTTT:
LJMPOUTPUT
SETB_TIME1:
MOVP3,#11010011B
JNBP2.4,SETB_TIME2
JBP2.5,LJMP_ADD1
INC43H
LJMP_ADD1:
JBP2.6,LJMP_SUBB1
DEC43H
LJMP_SUBB1:
MOVA,43H
CJNEA,#10,CHULI1
MOV43H,A
CHULI1:
CJNEA,#15,ZAICHULI1
ZAICHULI1:
JNBP2.7,OUTPUT
LJMPSETB_TIME1
SETB_TIME2:
MOVP3,#00010011B
JNBP2.4,SETB_TIME3
JBP2.5,LJMP_ADD2
INC44H
LJMP_ADD2:
JBP2.6,LJMP_SUBB2
DEC44H
LJMP_SUBB2:
MOVA,44H
CJNEA,#10,CHULI2
MOV44H,A
CHULI2:
CJNEA,#15,ZAICHULI2
ZAICHULI2:
LJMPSETB_TIME2
OUTPUT:
LCALLWrite_Enable;
写允许
MOVCommand,#0BEh;
命令字节为BEh
MOVByteCnt,#8;
多字节写入模式此模块为8个
MOVR0,#XmtDat;
数据地址覆给R0
MOVXmtDat,40H;
秒单元内容为59h
MOVXmtDat+1,41H;
分单元内容为59h
MOVXmtDat+2,42H;
时单元内容为13h
MOVXmtDat+3,43H;
日期单元内容为21h
MOVXmtDat+4,44H;
月单元内容为06h
MOVXmtDat+5,45H;
星期单元内容为03h
MOVXmtDat+6,46H;
年单元内容为00h
MOVXmtDat+7,#0;
写保护单元内容为00h
LCALLSend_Byte;
调用写入数据子程序
SETB_TIME3:
MOVP3,#10100011B
JNBP2.4,SETB_TIME4
JBP2.5,LJMP_ADD3
INC46H
LJMP_ADD3:
JBP2.6,LJMP_SUBB3
DEC46H
LJMP_SUBB3:
MOVA,46H
CJNEA,#10,CHULI3
MOV46H,A
CHULI3:
CJNEA,#15,ZAICHULI3
ZAICHULI3:
LJMPSETB_TIME3
SETB_TIME4:
MOVP3,#11010001B
JNBP2.4,SETB_TIME5
JBP2.5,LJMP_ADD4
INC40H
LJMP_ADD4:
JBP2.6,LJMP_SUBB4
DEC40H
LJMP_SUBB4:
MOVA,40H
CJNEA,#10,CHULI4
MOV40H,A
CHULI4:
CJNEA,#15,ZAICHULI4
ZAICHULI4:
JNBP2.7,OUTPUTT
LJMPSETB_TIME4
SETB_TIME5:
MOVP3,#00010001B
JNBP2.4,SETB_TIME6
JBP2.5,LJMP_ADD5
INC41H
LJMP_ADD5:
JBP2.6,LJMP_SUBB5
DEC41H
LJMP_SUBB5:
MOVA,41H
CJNEA,#10,CHULI5
MOV41H,A
CHULI5:
CJNEA,#15,ZAICHULI5
ZAICHULI5:
LJMPSETB_TIME5
OUTPUTT:
SETB_TIME6:
MOVP3,#10100001B
JNBP2.4,SETB_TIMEE
JBP2.5,LJMP_ADD6
INC42H
LJMP_ADD6:
JBP2.6,LJMP_SUBB6
DEC42H
LJMP_SUBB6:
MOVA,42H
CJNEA,#10,CHULI6
MOV42H,A
CHULI6:
CJNEA,#15,ZAICHULI6
ZAICHULI6:
LJMPSETB_TIME6
SETB_TIMEE:
Send_Byte:
CLRRST;
复位引脚为低电平所有数据传送终止
NOP
CLRSCLK;
清时钟总线
SETBRST;
复位引脚为高电平逻辑控制有效
MOVA,Command;
准备发送命令字节
MOVBitCnt,#08h
S_Byte0:
RRCA;
将最低位传送给进位位C
MOVIO_DATA,C;
位传送至数据总线
SETBSCLK;
时钟上升沿发送数据有效
CLRSCLK;
清时钟总线
DJNZBitCnt,S_Byte0;
位传送未完毕则继续
S_Byte1:
准备发送数据
MOVA,@R0;
传送数据过程与传送命令相同
MOVBitCnt,#08h
S_Byte2:
RRCA
MOVIO_DATA,C
SETBSCLK
CLRSCLK
DJNZBitCnt,S_Byte2
INCR0;
发送数据的内存地址加1
DJNZByteCnt,S_Byte1;
字节传送未完毕则继续
逻辑操作完毕清RST
RET
Receive_Byte:
MOVA,Command;
准备发送命令字节
MOVBitCnt,#08h;
传送位数为8
R_Byte0:
DJNZBitCnt,R_Byte0;
R_Byte1:
准备接收数据
CLRA;
清类加器
CLRC;
清进位位C
接收位数为8
R_Byte2:
MOVC,IO_DATA;
数据总线上的数据传送给C
从最低位接收数据
时钟总线置高
时钟下降沿接收数据有效
DJNZBitCnt,R_Byte2;
位接收未完毕则继续
MOV@R1,A;
接收到的完整数据字节放入接收内存缓冲区
INCR1;
接收数据的内存地址加1
DJNZByteCnt,R_Byte1;
字节接收未完毕则继续
--写保护寄存器操作------------------------------------------
Write_Enable:
MOVCommand,#8Eh;
命令字节为8E
MOVByteCnt,#1;
单字节传送模式
MOVR0,#XmtDat;
MOVXmtDat,#00h;
数据内容为0写入允许
ACALLSend_Byte;
当写保护寄存器的最高位为1时禁止数据写入寄存器---------------
Write_Disable:
MOVXmtDat,#80h;
数据内容为80h禁止写入
RET;
返回调用本子程序处
当把秒寄存器的第7位时钟停止位设置为0时起动时钟开始---------
Osc_Enable:
MOVCommand,#80h;
命令字节为80
单字节传送模式
数据内容为0振荡器工作允许
当把秒寄存器的第7位时钟停止位设置为1时时钟振荡器停止HT1380进入低功耗方式---------------
Osc_Disable:
命令字节为80
数据内容为80h振荡器停止
写入00年6月21日星期三13时59分59---------------------
Write_Multiplebyte:
MOVXmtDat,#48h;
MOVXmtDat+1,#14h;
MOVXmtDat+2,#09h;
MOVXmtDat+3,#16h;
MOVXmtDat+4,#15h;
MOVXmtDat+5,#05h;
MOVXmtDat+6,#07;
读出寄存器0-7的内容程序设置如下
Read_Multiplebyte:
MOVCommand,#0BFh;
命令字节为BFh
多字节读出模式此模块为8个
MOVR1,#RcvDat;
数据地址覆给R1
ACALLReceive_Byte;
调用读出数据子程序
RET;
返回调用本子程序处
SSH:
MOV61H,B
MOV62H,A
MOVR1,#62H
MOVA,@R1
MOVDPTR,#TAB
MOVCA,@A+DPTR
MOVP3,A
SETBRS
CLRRW
CLRE
LCALLDELAY
SETBE
DECR1
ENABLE:
CLRRS;
写入控制命令的子程序
CLRRW
CLRE
ACALLDELAY
SETBE
DELAY:
MOVP3,#0FFH;
判断液晶显示器是否忙的子程序
CLRRS
SETBRW
NOP
JBP3.0,DELAY;
如果P1.7为高电平表示忙就循环等待
写入8时12小时模式程序设置如下
Write_Singlebyte:
MOVCommand,#84h;
命令字节为84h
MOVXmtDat,#88h;
数据内容为88h
STLCD:
MOVP3,#00000001B;
MOVA,#0;
显示时间字符
MOVR7,#0
TIME:
MOVDPTR,#TAB2
LCALLCCFF1
INCR7
MOVA,R7
CJNEA,#5,TIME
LCALLSSH
MOVP3,#10110100B
MOVP3,#00000011B
显示日期字符
DATE:
MOVDPTR,#TAB1
CJNEA,#5,DATE
MOVP3,#00000100B
YS:
MOVR5,#60
D2:
MOVR6,#50
D1:
MOVR7,#66
DJNZR7,$
DJNZR6,D1
DJNZR5,D2
RET
CCFF1:
LCALLDELAY
TAB:
DB00001100B,10001100B,01001100B,11001100B,00101100B,10101100B,01101100B,11101100B,00011100B,10011100B,01110100B,10110100B
TAB2:
DB00101010b,10010110b,10110110b,10100110b,01011100b
TAB1:
DB00100010b,10000110b,00101110b,10100110b,01011100b
END
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- DS1302 程序