P�gina Anterior/Pr�xima P�gina
3 de 4 - Exemplos:
Ser� apresentado um programa de um rel�gio de horas, minutos, segundos e cent�simos de segundos.
Programa:
hora equ 0h
min equ 1h
seg equ 2h
cent equ 3h
;
ajmp INICIO
org 11
call relogio
org 30
INICIO: MOV IE,#82h
MOV TMOD,#1h
MOV TH0,#FCh
MOV TL0,#17h
SETB TR0
relogio: clr c
mov a,cent
inc a
da a
mov cent,a
jc inc_seg
jmp fim
inc_seg: clr c
mov a,seg
inc a
da a
mov seg,a
cjne a,#60h,fim
mov seg,#0
mov a,min
inc a
da a
mov min,a
cjne a,#60h,fim
mov min,#0
mov a,hora
inc a
da a
mov hora,a
cjne a,#24h,fim
mov hora,#0
fim: reti
Pode-se perceber a fun��o equ no come�o do programa que serve para atribuir um nome a um determinado registrador, os endere�os que s�o usados no exemplo s�o dos registradores RX, para se fazer a simula��o se age da mesma forma do que no exemplo anterior. O programa foi criado para contar com a velocidade de 1 ms que � o tempo de 1 cent�simo de segundo, o microcontrolador na freq��ncia de 12 MHz demora 1 us para cada contagem, ent�o se ajusta um de seus temporizadores pra contar 1000 vezes e atualizar a contagem do rel�gio, no caso o temporizador 0 � configurado para modo 1 que � a forma de 16 bits, se coloca o valor inicial dele de FC17h.
Se for observado a mem�ria Sfr se tem algo semelhante a isso:

Pode se reconhecer o nome de cada valor atrav�s do endere�o como os registradores IE, TMOD, TH0, TL0 e outros. Existe mais um recurso no simulador, indo no menu em View e clicando-se em Hardware se encontra as seguintes op��es:

Ser� explicado mais detalhes a seu respeito, no momento escolhe-se a op��o Timer 0, isso far� aparecer uma janela referente ao Timer 0 que mostra sua configura��o, o valor corrente de contagem seu estado atual e valor de registradores relacionados a ele, Timer 1 funciona de maneira id�ntica.

Na linha inferior do programa aparece a contagem de tempo de Execu��o de programa, para se checar se a dura��o da contagem do programa esta correto se roda as instru��es at� o momento que tr0 que � o bit de habilita��o do timer � setado, ent�o vai no menu em Debug e tecla-se em Reset Timer, ele ser� zerado, ent�o se roda o programa at� o fim da interrup��o, a visualiza��o do tempo � um pouco inconveniente pois ele some quando se coloca o cursor sobre a teclas de controle mas isso � facilmente contornado usando a tecla F8 em vez delas.
P�gina Anterior/Pr�xima P�gina