?? ds1302.src
字號:
; .\DS1302.SRC generated from: DS1302.c
; COMPILER INVOKED BY:
; D:\Program Files\Keil\C51\BIN\C51.EXE DS1302.c BROWSE DEBUG OBJECTEXTEND SRC(.\DS1302.SRC)
$NOMOD51
NAME DS1302
ACC7 BIT 0E0H.7
P0 DATA 080H
P1 DATA 090H
P2 DATA 0A0H
P3 DATA 0B0H
AC BIT 0D0H.6
T0 BIT 0B0H.4
T1 BIT 0B0H.5
EA BIT 0A8H.7
IE DATA 0A8H
P0_0 BIT 080H.0
P1_0 BIT 090H.0
P0_1 BIT 080H.1
FL BIT 0D0H.1
P2_0 BIT 0A0H.0
P1_1 BIT 090H.1
P0_2 BIT 080H.2
P3_0 BIT 0B0H.0
P2_1 BIT 0A0H.1
P1_2 BIT 090H.2
P0_3 BIT 080H.3
P3_1 BIT 0B0H.1
P2_2 BIT 0A0H.2
P1_3 BIT 090H.3
P0_4 BIT 080H.4
d1 BIT 090H.0
P3_2 BIT 0B0H.2
P2_3 BIT 0A0H.3
P1_4 BIT 090H.4
P0_5 BIT 080H.5
d2 BIT 090H.1
RD BIT 0B0H.7
P3_3 BIT 0B0H.3
P2_4 BIT 0A0H.4
P1_5 BIT 090H.5
P0_6 BIT 080H.6
d3 BIT 090H.2
P3_4 BIT 0B0H.4
P2_5 BIT 0A0H.5
P1_6 BIT 090H.6
P0_7 BIT 080H.7
d4 BIT 090H.3
P3_5 BIT 0B0H.5
ES BIT 0A8H.4
P2_6 BIT 0A0H.6
P1_7 BIT 090H.7
d5 BIT 090H.4
P3_6 BIT 0B0H.6
P2_7 BIT 0A0H.7
IP DATA 0B8H
d6 BIT 090H.5
DS1302_CLK BIT 0B0H.6
P3_7 BIT 0B0H.7
d7 BIT 090H.6
RI BIT 098H.0
d8 BIT 090H.7
CY BIT 0D0H.7
INT0 BIT 0B0H.2
INT1 BIT 0B0H.3
TI BIT 098H.1
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
DS1302_RST BIT 0B0H.5
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
ET2 BIT 0A8H.5
TF1 BIT 088H.7
RB8 BIT 098H.2
TH0 DATA 08CH
EX0 BIT 0A8H.0
IT0 BIT 088H.0
TH1 DATA 08DH
EX1 BIT 0A8H.2
TB8 BIT 098H.3
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
RS0 BIT 0D0H.3
PT1 BIT 0B8H.3
RS1 BIT 0D0H.4
PT2 BIT 0B8H.5
TR0 BIT 088H.4
DS1302_IO BIT 0B0H.7
TR1 BIT 088H.6
PX0 BIT 0B8H.0
PX1 BIT 0B8H.2
DPH DATA 083H
DPL DATA 082H
REN BIT 098H.4
RXD BIT 0B0H.0
TXD BIT 0B0H.1
F0 BIT 0D0H.5
ACC0 BIT 0E0H.0
PSW DATA 0D0H
?PR?_DS1302InputByte?DS1302 SEGMENT CODE
?PR?DS1302OutputByte?DS1302 SEGMENT CODE
?PR?_Write1302?DS1302 SEGMENT CODE
?PR?_Read1302?DS1302 SEGMENT CODE
?PR?DS1302_SetProtect?DS1302 SEGMENT CODE
?BI?DS1302_SetProtect?DS1302 SEGMENT BIT OVERLAYABLE
?PR?_DS1302_SetTime?DS1302 SEGMENT CODE
?PR?_DS1302_GetTime?DS1302 SEGMENT CODE
?PR?_DateToStr?DS1302 SEGMENT CODE
?PR?_TimeToStr?DS1302 SEGMENT CODE
?PR?Initial_DS1302?DS1302 SEGMENT CODE
?PR?delay1ms?DS1302 SEGMENT CODE
?PR?main?DS1302 SEGMENT CODE
?C_INITSEG SEGMENT CODE
?CO?DS1302 SEGMENT CODE
?DT?DS1302 SEGMENT DATA
EXTRN CODE (?C?CSTPTR)
EXTRN CODE (?C?CSTOPTR)
EXTRN CODE (?C?CLDOPTR)
EXTRN CODE (?C?CLDPTR)
EXTRN CODE (?C_STARTUP)
PUBLIC time1
PUBLIC buf
PUBLIC ucCurtime
PUBLIC dispcode
PUBLIC main
PUBLIC delay1ms
PUBLIC Initial_DS1302
PUBLIC _TimeToStr
PUBLIC _DateToStr
PUBLIC _DS1302_GetTime
PUBLIC _DS1302_SetTime
PUBLIC ?DS1302_SetProtect?BIT
PUBLIC DS1302_SetProtect
PUBLIC _Read1302
PUBLIC _Write1302
PUBLIC DS1302OutputByte
PUBLIC _DS1302InputByte
RSEG ?BI?DS1302_SetProtect?DS1302
?DS1302_SetProtect?BIT:
flag?447: DBIT 1
RSEG ?DT?DS1302
ucCurtime: DS 7
buf: DS 8
time1: DS 25
RSEG ?CO?DS1302
dispcode:
DB 03FH
DB 006H
DB 05BH
DB 04FH
DB 066H
DB 06DH
DB 07DH
DB 007H
DB 07FH
DB 06FH
DB 040H
DB 0BFH
DB 000H
RSEG ?C_INITSEG
DB 008H
DB buf
DB 000H
DB 000H
DB 000H
DB 000H
DB 000H
DB 000H
DB 000H
DB 000H
; /************************************************************************************************
; 實(shí)時(shí)時(shí)鐘模塊 時(shí)鐘芯片型號:DS1302
; 使用8位動(dòng)態(tài)共陰極數(shù)碼管動(dòng)態(tài)顯示當(dāng)前時(shí)間,沒有設(shè)定初始時(shí)間的功能,
; 顯示有閃爍,延時(shí)函數(shù)有可能有問題,其他顯示正常
;
; *************************************************************************************************/
;
;
; #include <at89x51.h>
; #include<intrins.h>
; #include <DS1302.h>
; #define uchar unsigned char
; #define uint unsigned int
; /*********************************************************************/
;
;
; uchar ucCurtime[7];
; uchar buf[]={0,0,0,0,0,0,0,0};
; SYSTEMTIME time1;
;
; sbit d1=P1^0;
; sbit d2=P1^1;
; sbit d3=P1^2;
; sbit d4=P1^3;
; sbit d5=P1^4;
; sbit d6=P1^5;
; sbit d7=P1^6;
; sbit d8=P1^7;
;
; //0--9 位碼,0X00:清顯示。
; unsigned char code dispcode[13]={
;
; 0X3F,/*0*/
; 0X06,/*1*/
; 0X5B,/*2*/
; 0X4F,/*3*/
; 0X66,/*4*/
; 0X6D,/*5*/
RSEG ?PR?_DS1302InputByte?DS1302
_DS1302InputByte:
USING 0
; SOURCE LINE # 38
;---- Variable 'd?040' assigned to Register 'R7' ----
; 0X7D,/*6*/
; SOURCE LINE # 39
; 0X07,/*7*/
; 0X7F,/*8*/
; SOURCE LINE # 41
MOV A,R7
; 0X6F,/*9*/
; SOURCE LINE # 42
;---- Variable 'i?041' assigned to Register 'R7' ----
MOV R7,#08H
?C0001:
; 0X40,/*-*/
; SOURCE LINE # 43
; 0XBF,/*0.*/
; SOURCE LINE # 44
MOV C,ACC0
MOV DS1302_IO,C
; 0X00,/*NULL*/ };
; SOURCE LINE # 45
SETB DS1302_CLK
;
; SOURCE LINE # 46
CLR DS1302_CLK
;
; SOURCE LINE # 47
CLR C
RRC A
; void delay1ms()
; SOURCE LINE # 48
DJNZ R7,?C0001
; {
; SOURCE LINE # 49
?C0004:
RET
; END OF _DS1302InputByte
; /* unsigned int i,j;
; for(i=0;i<c;i++)
RSEG ?PR?DS1302OutputByte?DS1302
DS1302OutputByte:
USING 0
; SOURCE LINE # 51
; for(j=0;j<100;j++);
; SOURCE LINE # 52
; unsigned int c */
;
; SOURCE LINE # 54
;---- Variable 'i?142' assigned to Register 'R7' ----
MOV R7,#08H
?C0005:
; #pragma asm
; SOURCE LINE # 55
; MOV R4,#5
; SOURCE LINE # 56
CLR C
RRC A
; MOV R6,#100
; SOURCE LINE # 57
MOV C,DS1302_IO
MOV ACC7,C
; MOV R7, #250
; SOURCE LINE # 58
SETB DS1302_CLK
; DJNZ R7,$
; SOURCE LINE # 59
CLR DS1302_CLK
; DJNZ R6, $
; SOURCE LINE # 60
DJNZ R7,?C0005
?C0006:
; DJNZ R4, $
; SOURCE LINE # 61
MOV R7,A
; #pragma endasm
; SOURCE LINE # 62
?C0008:
RET
; END OF DS1302OutputByte
; }
;
RSEG ?PR?_Write1302?DS1302
_Write1302:
USING 0
; SOURCE LINE # 64
;---- Variable 'ucDa?244' assigned to Register 'R6' ----
MOV R6,AR5
;---- Variable 'ucAddr?243' assigned to Register 'R7' ----
; void main()
; SOURCE LINE # 65
; {
; SOURCE LINE # 66
CLR DS1302_RST
; while(1)
; SOURCE LINE # 67
CLR DS1302_CLK
; { DS1302_GetTime(&time1);
; SOURCE LINE # 68
SETB DS1302_RST
;
; SOURCE LINE # 69
LCALL _DS1302InputByte
; buf[7]=(time1.Second)%10;
; SOURCE LINE # 70
MOV R7,AR6
LCALL _DS1302InputByte
; buf[6]=(time1.Second)/10;
; SOURCE LINE # 71
SETB DS1302_CLK
; buf[4]=(time1.Minute)%10;
; SOURCE LINE # 72
CLR DS1302_RST
; buf[3]=(time1.Minute)/10;
; SOURCE LINE # 73
RET
; END OF _Write1302
; buf[1]=(time1.Hour)%10;
; buf[0]=(time1.Hour)/10;
RSEG ?PR?_Read1302?DS1302
_Read1302:
USING 0
; SOURCE LINE # 75
;---- Variable 'ucAddr?345' assigned to Register 'R7' ----
;
; SOURCE LINE # 76
; d1=0;
; P2= dispcode[buf[0]]; //顯示時(shí)的十位數(shù)
; SOURCE LINE # 78
CLR DS1302_RST
; delay1ms();
; SOURCE LINE # 79
CLR DS1302_CLK
; d1=1;
; SOURCE LINE # 80
SETB DS1302_RST
;
; SOURCE LINE # 81
MOV A,R7
ORL A,#01H
MOV R7,A
LCALL _DS1302InputByte
; d2=0;
; SOURCE LINE # 82
LCALL DS1302OutputByte
;---- Variable 'ucData?346' assigned to Register 'R7' ----
; P2= dispcode[buf[1]]; //顯示時(shí)的個(gè)位數(shù)
; SOURCE LINE # 83
SETB DS1302_CLK
; delay1ms();
; SOURCE LINE # 84
CLR DS1302_RST
; d2=1;
; SOURCE LINE # 85
;
; SOURCE LINE # 86
?C0010:
RET
; END OF _Read1302
; d3=0;
; P2= dispcode[10]; //顯示“-”
RSEG ?PR?DS1302_SetProtect?DS1302
DS1302_SetProtect:
USING 0
; SOURCE LINE # 88
; delay1ms();
; SOURCE LINE # 89
; d3=1;
; SOURCE LINE # 90
JNB flag?447,?C0011
;
; SOURCE LINE # 91
MOV R5,#010H
SJMP ?C0024
?C0011:
; d4=0;
; P2= dispcode[buf[3]];
; SOURCE LINE # 93
CLR A
MOV R5,A
?C0024:
MOV R7,#08EH
LCALL _Write1302
; delay1ms();
; SOURCE LINE # 94
?C0013:
RET
; END OF DS1302_SetProtect
; d4=1; //分的十位數(shù)
;
RSEG ?PR?_DS1302_SetTime?DS1302
_DS1302_SetTime:
USING 0
; SOURCE LINE # 96
;---- Variable 'Value?549' assigned to Register 'R4' ----
MOV R4,AR5
;---- Variable 'Address?548' assigned to Register 'R3' ----
MOV R3,AR7
; d5=0;
; SOURCE LINE # 97
; P2= dispcode[buf[4]]; //顯示分的個(gè)位數(shù)
; SOURCE LINE # 98
CLR ?DS1302_SetProtect?BIT
LCALL DS1302_SetProtect
; delay1ms();
; SOURCE LINE # 99
MOV R7,AR3
MOV A,R4
MOV B,#0AH
DIV AB
SWAP A
ANL A,#0F0H
MOV R6,A
MOV A,R4
MOV B,#0AH
DIV AB
MOV A,B
ORL A,R6
MOV R5,A
LJMP _Write1302
; END OF _DS1302_SetTime
; d5=1;
;
; d6=0;
RSEG ?PR?_DS1302_GetTime?DS1302
_DS1302_GetTime:
USING 0
; SOURCE LINE # 102
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -