Email: Password: Remember Me | Create Account (Free)

Back to Subject List

Old thread has been locked -- no new posts accepted in this thread
???
07/11/03 18:03
Read: times


 
#50503 - RE: Saved my day
Responding to: ???'s previous message
;this program is RTC to 89C51 use 11.0592Mhz
; send DATE and Time via RS-232C (9600,n,8,1) in format ASCII: " MON 31/02/02 16:20:42
;format = " mon 31/02/02 16:20:42"
; only time change and date no change
; you can see in your PC COM1 or COM2) use Hyper Terminal the windows.
; only problem this sourceprogram is in the language, is portuguese

; 8031 TXD --------------------> DB9 2 RXD
; " gnd --------------------> DB9 5 gnd

BAUD EQU 0FDH
CR EQU 0DH
STX EQU 0AH
INTA EQU P3.2
SOM EQU P0.0
SAI EQU P0.1
PORTA EQU P1
INTE EQU 10H
DELAY EQU 11H
SEGUNDO EQU 12H
MINUTO EQU 13H
HORA EQU 14H ; PONTEIRO DE TECLAS
INTE1 EQU 15H ; CONTADOR P/ BOUNCE DE TECLAS
AUXILIAR EQU 16H
PCON EQU 87H
MCON EQU 0C6H
TA EQU 0C7H
HAB_TX EQU P3.5
ORG 0H
LJMP MAIN

ORG 03H
RETI

ORG 0BH
LJMP INTERRUPCAO ; TIMER

ORG 13H
RETI

ORG 23H
CLR ES
RETI

ORG 100H

MAIN:

;***************************************
; REGISTROS DO MICROCONTROLADOR
; DS5000T DALLAS


MOV TA,#0AAH
MOV TA,#55H
MOV PCON,#0
MOV MCON,#048H


CLR EA ; INIBE INTERRUPCOES
MOV SP,#50H ; INICIALIZA STACK
LCALL INICIALIZA
MOV HORA,#08h
MOV MINUTO,#49h
MOV AUXILIAR,#0
SETB HAB_TX
CLR SOM
VOLTA_1:
MOV A,AUXILIAR
JZ VOLTA_1
LCALL ENVIA_HORA
MOV AUXILIAR,#0
CALL T_HORA
CALL T_DADO
JMP VOLTA_1


; counter time format 24hs
T_HORA:
MOV A,#60H
CJNE A,SEGUNDO,HORA_F
MOV SEGUNDO,#0
CLR C
MOV A,MINUTO
INC A
DA A
MOV MINUTO,A


MOV A,#60H
CJNE A,MINUTO,HORA_F
MOV MINUTO,#0
CLR C
MOV A,HORA
INC A
DA A
MOV HORA,A

MOV A,#24H
CJNE A,#HORA,HORA_F
MOV HORA,#00

HORA_F: RET

; maskara to format date time
PAGINA:
DB '<ID00><RPB>@'

PAGINA_B:
DB 02H
DB 'FRI 31/07/02 @'

; send date and time by serial
ENVIA_HORA:
MOV DPTR,#PAGINA_B
LCALL TX_MSG
;LCALL SAIDA
RET

T_DADO: MOV A,HORA
CALL CONVERTE
MOV A,#':'
CALL TX_1
MOV A,MINUTO
CALL CONVERTE
MOV A,#':'
CALL TX_1
MOV A,SEGUNDO
CALL CONVERTE
MOV A,#0DH
CALL TX_1
RET

; convert BCD to ASCII
CONVERTE: MOV B,A
SWAP A
ANL A,#00001111B ;MASCARA MSB
ADD A,#30H
CALL TX_1 ;ENVIA MSB
MOV A,B
ANL A,#00001111B ; MASCARA LSB
ADD A,#30H
CALL TX_1
RET


RODAPAG:
MOV DPTR,#PAGINA
LCALL TX_MSG
LCALL SAIDA
RET


SAIDA:
MOV A,#0DH
LCALL TX_1
;MOV A,#0AH
;LCALL TX_1
RET



; ******************************
; * ROTINA DE INICIALIZACAO *
; ******************************

INICIALIZA:

MOV TMOD,#0A1H ; CONT 0 16 BITS, CONT 1 C/RELOAD
MOV SCON,#11011000B ; SERIAL MODO 3,RX HAB,SM20,TB8=1,TI/RI=0
MOV TH1,#BAUD ; 300 BPS
MOV TH0,#0D9H
MOV TL0,#00H
SETB TR1 ; LIGA CONT.1
SETB TF1 ;
CLR ES ; " CANAL SERIAL
SETB ET0
SETB TR0 ; LIGA CONTADOR 0
MOV PSW,#00H
SETB EA ; HABILITA INTERRUPCOES
RET



MATRIZ:
DB 02H
DB '<ID00><PA><FD><SB>@'


TX_MSG:
MOV R2,#0

TX_MSG1: MOV A,R2
MOVC A,@A+DPTR
CJNE A,#'@',ENVIA
RET

ENVIA: LCALL TX_1
INC R2
LJMP TX_MSG1

TX_1:
MOV SBUF,A ; TRANS. DATA
CLR TI
JNB TI,$
CLR TI

RET



;***************************
; TRATA INTERRUPCAO INTERNA
; DO TIMER 0 A CADA 10MS
;***************************


INTERRUPCAO:
PUSH PSW
PUSH ACC
PUSH DPL
PUSH DPH
MOV TH0,#0D9H ; contador 0
MOV TL0,#10H ; contador 0
INC INTE
CPL SAI
MOV A,#100
CJNE A,INTE,SAIDA1
MOV INTE,#0
MOV A,SEGUNDO
CLR C
INC A
DA A
MOV SEGUNDO,A
MOV AUXILIAR,#1
CPL SOM

SAIDA1: POP DPH
POP DPL
POP ACC
POP PSW
RETI




DB 'RONALDO 28/11/96'
END

List of 8 messages in thread
TopicAuthorDate
RTC interfacing with LCD            01/01/70 00:00      
   RE: RTC interfacing with LCD            01/01/70 00:00      
   RE: RTC interfacing with LCD            01/01/70 00:00      
      RE:Displaying Hex value into ASCII code            01/01/70 00:00      
         RE: RE:Displaying Hex value into ASCII c            01/01/70 00:00      
   RE: Saved my day            01/01/70 00:00      
      RE: Saved my day            01/01/70 00:00      
         RE: Saved my day            01/01/70 00:00      

Back to Subject List