¿Cómo utilizar at89s51 para hacer un reloj electrónico y su programación?
m _ establecer bitp 1.1; bit de control de minutos
h _ establecer bitp 1.2; Segundo lote 30H
Minutos 31H
HOUREQU 32H
TCNTEQU 34H
Organización 00H
SJMPSTART
p>Organización 0BH
LJMPINT_T0
Inicio: MOVDPTR, #Table
MOVHOUR, #0; inicialización
Mover minutos, #0
Mover segundos, #0
Mover eventos, #0
MOVTMOD, #01H
MOVTH0, # ( 65536-50000)/256; Temporización 50 milisegundos
MOVTL0, #(65536-50000) MOD? 256
Película #82H
SETBTR0
************************ ****** *******************************
Determinar si se presionó la tecla de control; y qué tecla se presionó.
a 1: LCALLDISPLAY
JNBS_SET,S1
JNBM_SET
JNBH_SET
ljm pa 1
s 1: LCALLDELAY; Jitter
JBS _ SET, A1
INCSECOND segundo valor más 1
MOVA, segundo
CJNEA, #60, J0; determinar si se agregan 60 segundos.
Segundos en movimiento, #0
ljmpk 1
S2: Retardo
JBM_SET, A1
k 1 : Inc minuto; suma 1 al valor del minuto
MOVA, espera un momento
CJNEA, #60, j 1; determina si agregar a 60 minutos.
MINUTOS EN MOVIMIENTO, #0
LJMPK2
S3: DELAY
JBH_SET, A1
K2: Británico sistema; sumar 1 al valor de la hora
HORA, hora
CJNEA, N° 24, J2; determinar si se suma a 24 horas.
MOVHOUR, #0
Mover minutos, #0
Mover segundos, #0
ljm pa 1
************************************************ *****
;Espere a que se levante el botón.
j0:JBS_SET,A1
LCALLDISPLAY
SJMPJ0
j 1:JBM_SET,A1
LCALLDISPLAY
sjmpj 1
J2: JBH Episodio, A1
LCALLDISPLAY
SJMPJ2
;* **** ********************************************
;Temporizador de interrupción de rutina de servicio, contando segundos, minutos y horas.
INT_T0: movimiento 0, #(65536-50000)/256
MOVTL0, #(65536-50000)MOD? 256
Incremento
TCNT MOVA
CJNEA, #20, RETUNE Temporización 1 segundo
Pulgadas segundos
Mover evento, #0
MOVA, segundo
CJNEA, No. 60, regreso
Agregar un minuto
Mover segundos, # 0
MOVA, espera
CJNEA, N° 60, atrás
En nuestro local
Minutos de mudanza, #0
p>HORA, hora
CJNEA, 24, regreso
MOVHOUR, #0
Mover minuto, #0
Mover segundos, #0
Mover eventos, #0
Regresar: RETI
;************** ** ******************************
;Subrutina de control de visualización
Visualización: MOVA, segundo; visualización de segundos
MOVB, #10
DIVAB
CLRP3.6
Movka, @A DPTR
MOVP0,A
LCALLDELAY
SETBP3.6
Bahía MOVA
CLRP3.7
Movka, @A DPTR
MOVP0, A
LCALLDELAY
SETBP3.7
CLRP3.5
p>MOVP0, delimitador de visualización # 40H
LCALLDELAY
SETBP3.5
MOVA, minutos de visualización
MOVB; , #10
DIVAB
CLRP3.3
Movka, @A DPTR
MOVP0, A
LCALLDELAY
SETBP3.3
MOVA BAY
CLRP3.4
Movka, @A DPTR
MOVP0 , A
LCALLDELAY
SETBP3.4
CLRP3.2
MOVP0, # delimitador de visualización 40H
LCALLDELAY
SETBP3.2
? HORA, visualización de hora
MOVB, #10
DIVAB
CLRP3.0
Movka, @A DPTR
>MOVP0,A
LCALLDELAY
SETBP3.0
Bahía MOVA
clrp 3.1
Movka, @A DPTR
MOVP0, A
LCALLDELAY
setbp 3.1
Remojar en agua para suavizar
Tabla:? DB? 3FH, 06H, 5BH, 4FH, 66H
DB 6DH, 7DH, 07H, 7FH, 6FH
Retardo: MOVR6, #10
d 1: movr 7, #250
DJNZR7, USD
DJNZR6, D1
Remojado en agua para ablandar
Fin