Franklin

 

Página Principal

Programas de simulação

Projetos eletrônicos

Download e links

Reflexões

Tae Kwon do

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:

sfrcounter.jpg (15949 bytes)

    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:

Hard.jpg (5022 bytes)

    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.

Timer0a.jpg (6765 bytes)

   

    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