ds1032学习Word下载.docx
《ds1032学习Word下载.docx》由会员分享,可在线阅读,更多相关《ds1032学习Word下载.docx(18页珍藏版)》请在冰豆网上搜索。
日高位
MOL_BITEQU22H;
月低位
MOH_BITEQU23H;
月高位
YL_BITEQU24H;
年低位
YH_BITEQU25H;
年高位
SL_BITEQU26H;
秒低位
SH_BITEQU27H;
秒高位
ML_BITEQU28H;
分低位
MH_BITEQU29H;
分高位
HL_BITEQU2AH;
时低位
HH_BITEQU2BH;
时高位
SECEQU30H
MINEQU31H
HOUREQU32H
DAYEQU33H
MONTHEQU34H
WEEKEQU35H
YEAREQU36H
DS1302_ADDREQU5EH
DS1302_DATAEQU5FH
ORG00H
LJMPMAIN
ORG0BH
AJMPT0INT
ORG30H
MAIN:
MOVSP,#60H
MOVTMOD,#01H
MOVTH0,#3CH
MOVTL0,#0B0H
MOVR0,#10
SETBEA
SETBET0
SETBTR0
MOVR1,37H
MOVYEAR,#11H;
上电预置日期、时间
MOVWEEK,#00H;
周1MON
MOVMONTH,#04H;
2011042512:
00:
00
MOVDAY,#25H
MOVHOUR,#12H
MOVMIN,#00H
MOVSEC,#00H
MAIN1:
LCALLKEY
JBF0,MAIN10;
F0=1,开始走时。
走时前写,不读。
走时后读,不写。
LCALLWR1302
AJMPMAIN2
MAIN10:
LCALLRD1302
MAIN2:
MOVA,YEAR
MOVB,#10H
DIVAB
MOVYL_BIT,B
MOVYH_BIT,A
MOVA,MONTH
MOVMOL_BIT,B
MOVMOH_BIT,A
MOVA,DAY
MOVDL_BIT,B
MOVDH_BIT,A
MOVA,HOUR
MOVHL_BIT,B
MOVHH_BIT,A
MOVA,MIN
MOVML_BIT,B
MOVMH_BIT,A
MOVA,SEC
MOVSL_BIT,B
MOVSH_BIT,A
JNB7CH,MAIN1;
0.5S标志
CLR7CH
LCALLWEEKCOV;
星期数字转换成英语缩写3字母
LCALLDISP
AJMPMAIN1
KEY:
;
按键子程序
KEY_SET:
JBDT_SET,KEY_H
ACALLD10MS
JNBDT_SET,$-2
CPL7FH
JBF0,RT
CPLP2.7;
点亮日期设定
AJMPRT
KEY_H:
JBH_ADJ,KEY_M
JNBH_ADJ,$-2
AJMPH_ADD
KEY_M:
JBM_ADJ,KEY_S
JNBM_ADJ,$-2
AJMPM_ADD
KEY_S:
JBS_ADJ,KEY_W
JNBS_ADJ,$-2
AJMPS_ADD
KEY_W:
JBW_ADJ,KEY_ST
JNBW_ADJ,$-2
AJMPW_ADD
KEY_ST:
JBSTR,RT
JNBSTR,$-2
AJMPK_STR
RT:
RET
H_ADD:
JB7FH,Y_ADD;
7FH为日期/时间切换键标志。
1为年月日。
MOVA,HOUR
ADDA,#01H
DAA
CJNEA,#24H,H_ADD1
MOVA,#0
H_ADD1:
MOVHOUR,A
Y_ADD:
MOVA,YEAR
CJNEA,#20H,Y_ADD1
Y_ADD1:
MOVYEAR,A
M_ADD:
JB7FH,MO_ADD
CJNEA,#60H,M_ADD1
MOVA,#00H
M_ADD1:
MOVMIN,A
MO_ADD:
CJNEA,#13H,MO_ADD1
MOVA,#1
MO_ADD1:
MOVMONTH,A
S_ADD:
JB7FH,D_ADD
CJNEA,#60H,S_ADD1
S_ADD1:
MOVSEC,A
D_ADD:
CJNEA,#32H,D_ADD1
MOVA,#01H
D_ADD1:
MOVDAY,A
W_ADD:
MOVA,WEEK
CJNEA,#7H,W_ADD1
W_ADD1:
MOVWEEK,A
K_STR:
MOVDS1302_ADDR,#80H;
开始振荡
MOVDS1302_DATA,SEC
LCALLWRITE
MOVDS1302_ADDR,#8EH;
禁止写入1302
MOVDS1302_DATA,#80H
SETBF0
CLRP2.7
WR1302:
MOVDS1302_ADDR,#8EH
MOVDS1302_DATA,#00H;
允许写1302
MOVDS1302_ADDR,#80H
MOVDS1302_DATA,#80H;
1302停止振荡
MOVDS1302_ADDR,#8CH;
年写入1302
MOVDS1302_DATA,YEAR
MOVDS1302_ADDR,#8AH;
周写入1302
MOVDS1302_DATA,WEEK
MOVDS1302_ADDR,#88H;
月写入1302
MOVDS1302_DATA,MONTH
MOVDS1302_ADDR,#86H;
日写入1302
MOVDS1302_DATA,DAY
MOVDS1302_ADDR,#84H;
时写入1302
MOVDS1302_DATA,HOUR
MOVDS1302_ADDR,#82H;
分写入1302
MOVDS1302_DATA,MIN
秒写入1302
WRITE:
CLRT_CLK
NOP
SETBT_RST
MOVA,DS1302_ADDR
MOVR4,#8
WRITE1:
RRCA
MOVT_IO,C
SETBT_CLK
DJNZR4,WRITE1
MOVA,DS1302_DATA
WRITE2:
RRCA
NOP
DJNZR4,WRITE2
CLRT_RST
RD1302:
MOVDS1302_ADDR,#8DH;
年读出
LCALLREAD
MOVYEAR,DS1302_DATA
MOVDS1302_ADDR,#8BH;
周读出
MOVWEEK,DS1302_DATA
MOVDS1302_ADDR,#89H;
月读出
MOVMONTH,DS1302_DATA
MOVDS1302_ADDR,#87H;
日读出
MOVDAY,DS1302_DATA
MOVDS1302_ADDR,#85H;
时读出
MOVHOUR,DS1302_DATA
MOVDS1302_ADDR,#83H;
分读出
MOVMIN,DS1302_DATA
MOVDS1302_ADDR,#81H;
秒读出
MOVSEC,DS1302_DATA
RET
READ:
READ1:
DJNZR4,READ1
READ2:
MOVC,T_IO
DJNZR4,READ2
MOVDS1302_DATA,A
DISP:
MOVA,#30H;
16进制转ASCII
ORLYH_BIT,A
ORLYL_BIT,A
ORLMOH_BIT,A
ORLMOL_BIT,A
ORLDH_BIT,A
ORLDL_BIT,A
LCALLWEEKCOV
ORLHH_BIT,A
ORLHL_BIT,A
ORLMH_BIT,A
ORLML_BIT,A
ORLSH_BIT,A
ORLSL_BIT,A
LCALLINIT_