por brasilma » 13 Out 2008 20:48
Vc pode armazenar em um DB 'SUNDAY' e recuperar utilisando um MOVC, ou pode carregar manualmente: 53H, 55H, 4EH, 44H, 41H, 59H.
MOV SBUF,"DADO"
JNB TI,$
CLR TI
Não esquecer de configurar o TIMER, SCON, PCON, com o modo e velocidade desejada (baud rate) de acordo com seu cristal.
Depois abilitar interrupação serial ES e interrupção geral EA.
Ligar timer TR.
Veja um exemplinho abaixo de configuração para um cristal de 24MHz:
INITTIMER: MOV TMOD,#21H ; Timer 1 (2=timer 8 bits auto-reload) e timer 0 (1=timer 16bits)
MOV TH0,#0E0H ; 24MHz/12=2MHz/8192=244Hz (65535-8192=E000H)
MOV TL0,#0 ;
;MOV TH1,#0CCH ; 1202 = ((2^SMOD)/32)*(OSC/(12*(256-204))) =
;MOV TL1,TH1 ; = ((2^0)/32)*(24x10^6/(12*(52))) (CCH=204)
MOV TH1,#0F3H ; 4808 = ((2^SMOD)/32)*(OSC/(12*(256-243))) =
MOV TL1,TH1 ; =((2^0)/32)*(24x10^6/(12*(13))) (F3H=243)
;MOV TH1,#0F3H ; 9615 = ((2^SMOD)/32)*(OSC/(12*(256-243))) =
;MOV TL1,TH1 ; =((2^1)/32)*(24x10^6/(12*(13))) (F3H=243)
; *** Não esquecer de ajustar o SMOD ***
; Inicializa Serial
INITSERIAL: MOV SCON,#50H ; Serial Mode 1 (8-bit, start (0), 8 data, stop (1) Baud Rate Var-
; -iable ) + REN (Rec Enable) = 1
;*** Configurado aqui e reconfugurado mais abaixo (configuracao da balanca) para conf printer ***
;MOV PCON,#00H ; SMOD 0 - obs: este registrador nao e bit enderessavel - 1200, 4800
MOV PCON,#80H ; SMOD 1 - obs: este registrador nao e bit enderessavel - 9600
; Inicializa Ints
INITINT: SETB EA ; Abilita Interrupcoes
SETB ET0 ; Abilita T0
;SETB ES ; Abilita Serial - Config no programa; evita recepcao qdo fora hora
MOV IP,#10H ; Define Serial Port Interrupt como High
; Liga Timers
ONTIMER: SETB TR0 ; Liga timer 0
SETB TR1 ; Liga timer 1
SETB ES ;
Transmitiu ou recebeu??? se a rotina é de transmissão, após cada byte ser transmitido é gerado um TI, portanto se forem gerados 10 interrupções 10 bytes devem ter sido enviados, na recepção é o mesmo, ou seja, um RI para cada byte recebido.
Se vc iniciar o processo de transmissão (ou recepção) e as interrupções estiverem habilitadas, sempre que for gerado um TI ou RI o processamento será desviado para o vetor de tratamento da interrrupção, para vc tratá-la.
" A Teoria orienta e a Prática decide"
