| ??? 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 |
| Topic | Author | Date |
| 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 |



