Proteus no se puede programar.
SCL2 bit p 1.3; //SCL2 se define como el tercer pin del puerto P1 y está conectado al pin ADC0831SCL.
SDA2 bit p 1.4; //SDA2 se define como el cuarto pin del puerto P1 y está conectado al pin ADC0831SDA.
CS2 bit p 1.6; //CS2 se define como el cuarto pin del puerto P1 y está conectado al pin ADC0831CS.
RST bit p 1.5; // Selección de chip DS1302, debido a que estos dos chips usan el mismo pin de datos (SDA, SCL), debe definirlo y desactivar la selección de chip DS1302; ser conflicto.
l _display EQU 30H
l _ tmpdate 1 EQU 38H; segundo
l _ tmpdate 2 EQU 39H; tmpdate 3 EQU 3AH; hora
l _ tmpdate 4 EQU 3BH; día de la semana
l _ tmpdate 5 EQU 3CH; EQU 3DH; Luna
l_tmpdate 7 EQU 3EH año
ORG 0100H
write_rtc_address: DB 80H, 82H, 84H, 86H, 88H, 8aH, 8cH
read_rtc_address: DB 81H, 83H, 85H, 87H, 89H, 8bH, 8dH
L_TIMER: DB 00H, 59H, 18H, 01H, 01H, 01H, 01H
Tabla: DB 3fH, 06H, 5bH, 4fH, 66H, 6dH, 7dH, 07H, 7fH, 6fH, 40H
/* * * *Tubo digital 0-9-mesa*/ p >
ORG 0000H
Gerente general de LJMP
Organización 0200H
Principal: MOV SP, #60H
CLR RST p> p>
LCALL SET_RTC escribe el valor inicial primero
M0: LCALL READ_RTC; realiza un bucle para leer los datos de tiempo
MOV R0, # L _display
MOV A, L_TMPDATE3 divide el tiempo en dos datos, una hora y una hora.
MOV B, #16
Rama AB
MOV @R0, A; las diez en punto
INC R0
MOV @R0, B; tiempo personal
INC R0
MOV @R0, # 10; agregar "-"
INC R0 p>
MOV A, L _ TMPDATE2 Igual que arriba
MOV B, #16
Rama AB
MOV @R0,A
INC R0
MOV @R0, B
INC R0
MOV @R0, #10
INC R0< / p>
MOV A, L_TMPDATE1
MOV B, #16
Rama AB
MOV @R0, A
INC R0
MOV @R0, B
MOV R0, # L_display
MOV R7, No. 8
Pantalla LCALL
MOV @R0, B
Pantalla LCALL
p>
SJMP·M0
Pantalla: MOV·DPTR, #TABLE /*R0 es la dirección, R7 es el número*/
MOV P2, #0 p >
ANL P1, #0F8H
L2: MOV A, @R0
MOVC A, @A DPTR
MOV·P2
Retardo LCALL
MOV P2, #0
INC P1
INC R0
DJNZ R7
Remojado para suavizar
Delay: MOV R5, #20
D1: DJNZ R5, D1
Remojado para suavizar
SET_RTC: MOV R6, #7; Ingrese 7 datos: segundos, minutos, horas, semanas, días, meses y años.
MOV DPTR, #L_TIMER Los primeros 7 datos se transfieren de la rom a la RAM que definimos.
MOV R0, #L_TMPDATE1
S0: CLR A
MOVC A,@A DPTR
MOV @R0,A p> p>
INC R0
Empresa DPTR
DJNZ R6, S0
MOV R1, #8EH
MOV R2 , # 0
LCALL w 1302; Primero escriba la dirección 8EH como 0, que está desbloqueada; de lo contrario, no se pueden escribir datos.
MOV R0, #L_tmpdate 1; la dirección donde se guardan los datos.
MOV DPTR, # write_rtc_ dirección dirección de escritura de datos
MOV·R6, ocupa el séptimo lugar; escribe 7 datos: segundos, minutos, horas, semanas, días, meses, año.
S1: MOV A, @R0
MOV·R2
CLR A
MOVC A, @A DPTR
MOV R1, A
LCALL W1302
Empresa DPTR
INC R0
DJNZ R6, S1
MOV R1, #8EH
MOV R2, No. 80H
LCALL w 1302;; La última dirección de escritura 8EH es 80H, lo que significa que se agrega un bloqueo para evitar que los datos siendo escrito.
Remojado en agua para suavizar
READ_RTC: MOV R6, #7; Lee siete datos: segundos, minutos, horas, semanas, días, meses, años.
MOV R0, #L_tmpdate 1; almacenado en la RAM especificada.
MOV DPTR, #Leer dirección rtc
RE0: CLR A
MOVC A, @A DPTR
MOV R1, A
LCALL R1302
MOV @R0,A
Empresa DPTR
INC R0
DJNZ R6, RE0
El remojo en agua lo suaviza
W1302B: MOV R7, # 8; escritura de un solo byte, el parámetro R1 son los datos escritos.
MOV A, R1
W0: RRC A
MOV SDA2, C
no se proporciona lo contrario a menos que se especifique lo contrario
p>
SETB SCL2
no se proporciona lo contrario (para) a menos que se especifique lo contrario
CLR SCL2
DJNZ R7, W0
Sumersión en agua Hacer suave
w 1302: CLR RST; escribe datos en la dirección especificada, R1: dirección, R2: datos.
no se proporciona de otra manera (para) a menos que se especifique lo contrario
CLR SCL2
no se proporciona de otra manera (para) a menos que se especifique lo contrario
SETB·RST
no se proporciona lo contrario a menos que se especifique lo contrario
LCALL W1302B
R2 MOV
MOV R1, A
LCALL W1302B
CLR RST
no previsto de otra manera a menos que se especifique lo contrario
Remojado en agua para ablandar
R1302: MOV R2, # 0; Especifique la dirección para leer datos, R1: dirección, a: devolver datos.
CLR RST
no se proporciona de otra manera (para) a menos que se especifique lo contrario
CLR SCL2
no se proporciona de otra manera (para) a menos que se especifique lo contrario
p>
SETB·RST
no se proporciona lo contrario a menos que se especifique lo contrario
LCALL W1302B
MOV R7, No. 8
CLR A
RR0: MOV C, SDA2; lectura de un solo byte, lee los datos almacenados en A y envíalos.
RRC A
SETB SCL2
no se proporciona lo contrario a menos que se especifique lo contrario
CLR SCL2
DJNZ R7, RR0
CLR RST
no se proporciona de otra manera (para) a menos que se especifique lo contrario
CLR SCL2
no se proporciona de otra manera (para) a menos que se especifique lo contrario Requerido
SETB SCL2
no se proporciona de otra manera (para) a menos que se especifique lo contrario
CLR SDA2
no se proporciona de otra manera (para) a menos que se especifique lo contrario
>SETB SDA2
no proporcionado de otra manera a menos que se especifique lo contrario
Remojado en agua para suavizar
Final