Red de conocimiento informático - Conocimiento del nombre de dominio - ¡Urgente! Una microcomputadora simple de un solo chip controla un termómetro DS18B20. La simulación de proteus no es posible. El diagrama y el programa de ensamblaje son los siguientes. Gracias~~~~~

¡Urgente! Una microcomputadora simple de un solo chip controla un termómetro DS18B20. La simulación de proteus no es posible. El diagrama y el programa de ensamblaje son los siguientes. Gracias~~~~~

Le ofrecemos un programa de referencia, también con controlador de chip de reloj

SCL2 BIT P1.3; //SCL2 se define como el tercer pin del puerto P1, conectado al pin ADC0831SCL.

SDA2 BIT P1.4; //SDA2 se define como el cuarto pin del puerto P1, conectado al pin ADC0831SDA

CS2 BIT P1.6; como el cuarto pin del pin de 4 bits del puerto P1, conectado al pin ADC0831CS

RST BIT P1.5; // Selección del chip DS1302, porque los dos chips usan el mismo pin de datos (SDA, SCL). ), por lo que debemos definirlo y configurar el chip DS1302, seleccione Apagar; de lo contrario, se producirá un conflicto

L_DISPLAY EQU 30H

L_TMPDATE1 EQU 38H segundos

L_TMPDATE2 EQU 39H; minutos

L_TMPDATE3 EQU 3AH ;Hora

L_TMPDATE4 EQU 3BH ;Día de la semana

L_TMPDATE5 EQU 3CH ;Día

L_TMPDATE6 EQU 3DH ;Mes

L_TMPDATE7 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 Yin 0-9 - tabla*/

ORG 0000H

LJMP PRINCIPAL

ORG 0200H

PRINCIPAL: MOV SP,#60H

CLR RST

LCALL SET_RTC ;Escribir valor inicial primero

M0: LCALL READ_RTC; Leer datos de tiempo en un bucle

MOV R0,#L_DISPLAY

MOV A,L_TMPDATE3; Dividir el tiempo en dos datos, horas y decenas Horas

MOV B,#16

DIV AB

MOV @R0,A ;Diez Horas

INC R0

MOV @R0,B ;Tiempo

INC R0

MOV @R0,#10 ;Agregar "-"

INC R0

MOV A,L_TMPDATE2 ; Igual que arriba

MOV B,#16

DIV AB

MOV @R0,A

INC R0

MOV @R0,B

INC R0

MOV @R0 ,#10

INC R0

MOV A,L_TMPDATE1

MOV B,#16

DIV AB

MOV @R0,A

INC R0

MOV @R0,B

MOV R0,#L_DISPLAY

MOV R7,# 8

PANTALLA DE LLAMADA LC

Y

SJMP M0

DISPLAY: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,A

LCALL DELAY

MOV P2,#0

INC P1

INC R0

DJNZ R7,L2

RET

RETARDO: MOV R5,#20

D1: DJNZ R5,D1

RET

SET_RTC :MOV R6,#7 ;Transfiere 7 datos: segundos, minutos, horas, días de la semana, días, meses, años

MOV DPTR,#L_TIMER ;Los 7 datos iniciales se transfieren de la ROM a nuestra definición en RAM

MOV R0,#L_TMPDATE1

S0: CLR A

MOVC A,@A+DPTR

MOV @ R0 ,A

INC R0

INC DPTR

DJNZ R6,S0

MOV R1,#8EH

MOV R2,#0

LCALL W1302 ;Primero escriba la dirección 8EH en 0, que está desbloqueada, de lo contrario los datos no se pueden escribir

MOV R0,#L_TMPDATE1 ;La dirección donde los datos se guardan

p>

MOV DPTR,#write_rtc_address ;La dirección de los datos escritos

MOV R6,#7 ;Escribe 7 datos: segundos, minutos, horas, días de la semana, días, meses, años

S1: MOV A,@R0

MOV R2,A

CLR A

MOVC A,@A+DPTR

MOV R1,A

LCALL W1302

INC DPTR

INC R0

DJNZ R6,S1

MOV R1,#8EH

MOV R2,#80H

LCALL W1302 ;;La última dirección escrita 8EH es 80H, es decir , se agrega un bloqueo para evitar que se escriban datos

RET

READ_RTC:MOV R6,#7 ;Leer 7 datos: segundos, minutos, horas, días de la semana, días , meses, años

MOV R0 ,#L_TMPDATE1 ;Guardar en la RAM definida

MOV DPTR,#read_rtc_address

RE0: CLR A

MOVC A,@A+DPTR

MOV R1,A

LCALL R1302

MOV @R0,A

INC DPTR

INC R0

DJNZ R6,RE0

RET

W1302B: MOV R7,#8; escritura de un solo byte, el parámetro R1 es los datos escritos

MOV A,R1

W0: RRC A

MOV SDA2,C

NOP

SETB SCL2

NOP

CLR SCL2

DJNZ R7,W0

RET

W1302: CLR RST ; Especifique la dirección para escribir datos, R1: dirección, R2: Datos

>

NOP

CLR SCL2

NOP

SETB RST

NOP

LCALL W1302B

MOV A,R2

MOV R1,A

LCALL W1302B

CLR RST

NOP

RET

R1302: MOV R2,#0; Especifique la dirección para leer los datos, R1: dirección, A: datos devueltos

CLR RST

NOP

CLR SCL2

NOP

SETB RST

NOP

LCALL W1302B

MOV R7,#8

CLR A

RR0: MOV C,SDA2 ;;Lectura de un solo byte, los datos leídos se almacenan en A y se envían

RRC A

SETB SCL2

NOP

CLR SCL2

DJNZ R7,RR0

CLR RST

NOP

CLR SCL2

NOP

SETB SCL2

NOP

CLR SDA2

NOP

SETB SDA2

NOP

RET

END