📄 ds1302.src
字号:
; .\ds1302.SRC generated from: ds1302.c
; COMPILER INVOKED BY:
; E:\Proteus_keil\Keil\C51\BIN\C51.EXE ds1302.c BROWSE DEBUG OBJECTEXTEND SRC(.\ds1302.SRC)
$NOMOD51
NAME DS1302
P0 DATA 080H
P1 DATA 090H
P2 DATA 0A0H
P3 DATA 0B0H
T0 BIT 0B0H.4
AC BIT 0D0H.6
T1 BIT 0B0H.5
EA BIT 0A8H.7
IE DATA 0A8H
a0 BIT 0E0H.0
a1 BIT 0E0H.1
a2 BIT 0E0H.2
a3 BIT 0E0H.3
a4 BIT 0E0H.4
a5 BIT 0E0H.5
RD BIT 0B0H.7
a6 BIT 0E0H.6
a7 BIT 0E0H.7
ES BIT 0A8H.4
IP DATA 0B8H
RI BIT 098H.0
INT0 BIT 0B0H.2
CY BIT 0D0H.7
TI BIT 098H.1
INT1 BIT 0B0H.3
PS BIT 0B8H.4
SP DATA 081H
OV BIT 0D0H.2
WR BIT 0B0H.6
SBUF DATA 099H
PCON DATA 087H
SCON DATA 098H
TMOD DATA 089H
TCON DATA 088H
dat BIT 0A0H.2
clk BIT 0A0H.1
IE0 BIT 088H.1
IE1 BIT 088H.3
B DATA 0F0H
ACC DATA 0E0H
ET0 BIT 0A8H.1
ET1 BIT 0A8H.3
TF0 BIT 088H.5
TF1 BIT 088H.7
RB8 BIT 098H.2
TH0 DATA 08CH
EX0 BIT 0A8H.0
IT0 BIT 088H.0
TH1 DATA 08DH
TB8 BIT 098H.3
EX1 BIT 0A8H.2
IT1 BIT 088H.2
P BIT 0D0H.0
SM0 BIT 098H.7
TL0 DATA 08AH
SM1 BIT 098H.6
TL1 DATA 08BH
SM2 BIT 098H.5
PT0 BIT 0B8H.1
PT1 BIT 0B8H.3
RS0 BIT 0D0H.3
TR0 BIT 088H.4
RS1 BIT 0D0H.4
TR1 BIT 088H.6
PX0 BIT 0B8H.0
PX1 BIT 0B8H.2
DPH DATA 083H
DPL DATA 082H
rs BIT 0A0H.0
REN BIT 098H.4
RXD BIT 0B0H.0
TXD BIT 0B0H.1
F0 BIT 0D0H.5
PSW DATA 0D0H
?PR?_delay?DS1302 SEGMENT CODE
?PR?_write_dat?DS1302 SEGMENT CODE
?PR?read_dat?DS1302 SEGMENT CODE
?PR?_read?DS1302 SEGMENT CODE
?PR?_write?DS1302 SEGMENT CODE
?PR?main?DS1302 SEGMENT CODE
EXTRN CODE (?C_STARTUP)
PUBLIC main
PUBLIC _write
PUBLIC _read
PUBLIC read_dat
PUBLIC _write_dat
PUBLIC _delay
; #include<reg51.h>
; #include<stdio.h>
; #include<absacc.h>
; #define uchar unsigned char
; sbit rs=P2^0;
; sbit clk=P2^1;
; sbit dat=P2^2;
; sbit a0=ACC^0;
; sbit a1=ACC^1;
; sbit a2=ACC^2;
; sbit a3=ACC^3;
; sbit a4=ACC^4;
; sbit a5=ACC^5;
; sbit a6=ACC^6;
; sbit a7=ACC^7;
; void delay(uchar count)
RSEG ?PR?_delay?DS1302
_delay:
USING 0
; SOURCE LINE # 16
;---- Variable 'count?040' assigned to Register 'R7' ----
; {
; SOURCE LINE # 17
; uchar i,j;
; for(i=0;i<count;i++)
; SOURCE LINE # 19
;---- Variable 'i?041' assigned to Register 'R6' ----
CLR A
MOV R6,A
?C0001:
MOV A,R6
CLR C
SUBB A,R7
JNC ?C0007
; for(j=0;j<20;j++);
; SOURCE LINE # 20
;---- Variable 'j?042' assigned to Register 'R5' ----
CLR A
MOV R5,A
?C0004:
INC R5
CJNE R5,#014H,?C0004
?C0003:
INC R6
SJMP ?C0001
; }
; SOURCE LINE # 21
?C0007:
RET
; END OF _delay
;
; void write_dat(uchar cmd) //写时钟一个字节
RSEG ?PR?_write_dat?DS1302
L?0020:
USING 0
CLR rs
CLR clk
SETB rs
_write_dat:
; SOURCE LINE # 23
;---- Variable 'cmd?143' assigned to Register 'R7' ----
; {
; SOURCE LINE # 24
;
; ACC=cmd;
; SOURCE LINE # 26
MOV A,R7
; P1=0xaa;
; SOURCE LINE # 27
MOV P1,#0AAH
?C0008:
; while(1);
; SOURCE LINE # 28
SJMP ?C0008
; END OF _write_dat
; dat=a0;clk=1;clk=0;
; dat=a1;clk=1;clk=0;
; dat=a2;clk=1;clk=0;
; dat=a3;clk=1;clk=0;
; dat=a4;clk=1;clk=0;
; dat=a5;clk=1;clk=0;
; dat=a6;clk=1;clk=0;
; dat=a7;clk=1;clk=0;
; }
;
; uchar read_dat(void) //读时钟一个字节
RSEG ?PR?read_dat?DS1302
read_dat:
USING 0
; SOURCE LINE # 39
; {
; SOURCE LINE # 40
;
; ACC=0;
; SOURCE LINE # 42
CLR A
; a0=dat;clk=1;clk=0;
; SOURCE LINE # 43
MOV C,dat
MOV a0,C
SETB clk
CLR clk
; a1=dat;clk=1;clk=0;
; SOURCE LINE # 44
MOV C,dat
MOV a1,C
SETB clk
CLR clk
; a2=dat;clk=1;clk=0;
; SOURCE LINE # 45
MOV C,dat
MOV a2,C
SETB clk
CLR clk
; a3=dat;clk=1;clk=0;
; SOURCE LINE # 46
MOV C,dat
MOV a3,C
SETB clk
CLR clk
; a4=dat;clk=1;clk=0;
; SOURCE LINE # 47
MOV C,dat
MOV a4,C
SETB clk
CLR clk
; a5=dat;clk=1;clk=0;
; SOURCE LINE # 48
MOV C,dat
MOV a5,C
SETB clk
CLR clk
; a6=dat;clk=1;clk=0;
; SOURCE LINE # 49
MOV C,dat
MOV a6,C
SETB clk
CLR clk
; a7=dat;clk=1;clk=0;
; SOURCE LINE # 50
MOV C,dat
MOV a7,C
SETB clk
CLR clk
; return(ACC);
; SOURCE LINE # 51
MOV R7,A
; }
; SOURCE LINE # 52
?C0011:
RET
; END OF read_dat
;
; uchar read(uchar ord1) //读时钟
RSEG ?PR?_read?DS1302
_read:
USING 0
; SOURCE LINE # 54
;---- Variable 'ord1?344' assigned to Register 'R7' ----
; {
; SOURCE LINE # 55
; uchar dd=0;
; SOURCE LINE # 56
;---- Variable 'dd?345' assigned to Register 'R6' ----
CLR A
MOV R6,A
; rs=0;
; SOURCE LINE # 57
; clk=0;
; SOURCE LINE # 58
; rs=1;
; SOURCE LINE # 59
; write_dat(ord1);
; SOURCE LINE # 60
LCALL L?0020
; delay(1);
; SOURCE LINE # 61
MOV R7,#01H
LCALL _delay
; dd=read_dat();
; SOURCE LINE # 62
LCALL read_dat
; rs=0;
; SOURCE LINE # 63
CLR rs
; return(dd);
; SOURCE LINE # 64
; }
; SOURCE LINE # 65
?C0012:
RET
; END OF _read
;
; void write(uchar ord2,uchar dd) //写时钟
RSEG ?PR?_write?DS1302
_write:
USING 0
; SOURCE LINE # 67
;---- Variable 'dd?447' assigned to Register 'R6' ----
MOV R6,AR5
;---- Variable 'ord2?446' assigned to Register 'R7' ----
; {
; SOURCE LINE # 68
; rs=0;
; SOURCE LINE # 69
; clk=0;
; SOURCE LINE # 70
; rs=1;
; SOURCE LINE # 71
; write_dat(ord2);
; SOURCE LINE # 72
LCALL L?0020
; write_dat(dd);
; SOURCE LINE # 73
MOV R7,AR6
LCALL _write_dat
; rs=0;
; SOURCE LINE # 74
CLR rs
; }
; SOURCE LINE # 75
RET
; END OF _write
;
; void main()
RSEG ?PR?main?DS1302
main:
USING 0
; SOURCE LINE # 77
; {
; SOURCE LINE # 78
;
; uchar i=0,s=0;
; SOURCE LINE # 80
;---- Variable 'i?548' assigned to Register 'R7' ----
CLR A
MOV R7,A
;---- Variable 's?549' assigned to Register 'R6' ----
MOV R6,A
; P1=0x00;
; SOURCE LINE # 81
MOV P1,A
; for(i=0;i<10;i++);
; SOURCE LINE # 82
?C0014:
INC R7
CJNE R7,#0AH,?C0014
?C0015:
;
; rs=0;
; SOURCE LINE # 84
CLR rs
; clk=0;
; SOURCE LINE # 85
CLR clk
; dat=0;
; SOURCE LINE # 86
CLR dat
;
; write(0x8e,0x00);
; SOURCE LINE # 88
CLR A
MOV R5,A
MOV R7,#08EH
LCALL _write
; write(0x80,0x58);
; SOURCE LINE # 89
MOV R5,#058H
MOV R7,#080H
LCALL _write
; write(0x82,0x59);
; SOURCE LINE # 90
INC R5
MOV R7,#082H
LCALL _write
; write(0x84,0x23);
; SOURCE LINE # 91
MOV R5,#023H
MOV R7,#084H
LCALL _write
; write(0x86,0x31);
; SOURCE LINE # 92
MOV R5,#031H
MOV R7,#086H
LCALL _write
; write(0x88,0x12);
; SOURCE LINE # 93
MOV R5,#012H
MOV R7,#088H
LCALL _write
; write(0x8a,0x04);
; SOURCE LINE # 94
MOV R5,#04H
MOV R7,#08AH
LCALL _write
; write(0x8c,0x09);
; SOURCE LINE # 95
MOV R5,#09H
MOV R7,#08CH
LCALL _write
; write(0x90,0xa5);
; SOURCE LINE # 96
MOV R5,#0A5H
MOV R7,#090H
LCALL _write
; write(0x8e,0x80);
; SOURCE LINE # 97
MOV R5,#080H
MOV R7,#08EH
LCALL _write
;
;
;
; s=read(0x81);
; SOURCE LINE # 101
MOV R7,#081H
LCALL _read
; P1=s;
; SOURCE LINE # 102
MOV P1,R7
?C0017:
; while(1)
; SOURCE LINE # 103
; { ;}
; SOURCE LINE # 104
SJMP ?C0017
; END OF main
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -