$Include 'C:\pemicro\ics08qtqyz\qtqy_registers.inc'


RAMStart    equ         $0080          ;Inicio sector memoria RAM
RAMEnd      equ         $00FF          ;Fin memoria RAM
ROMStart    equ         $F800          ;Inicio sector memoria ROM (para JK cambiar por $F600)
VectorStart equ         $FFDE          ;Inicio vectores de interrupción




           org             RAMStart




           org             ROMStart





main:

Entry:
      RSP                       ;Reset al Stack Pointer
      BSR Config_Uc             ;Salto a subrutina de configuración del micro
      BSR Config_PWM            ;Salto a subrutina de PWM
      BSR Config_TIM            ;Salto a subrutina de configuración del modulo TIM

ciclo:
       WAIT
       JMP ciclo ;




Config_Uc:
          CLI                   ;Activación de interrupciones globales.
          CLRA                  ;Limpia el registro A
          CLRX                  ;Limpia el registro X
          CLRH                  ;Limpia el registro H
          MOV #09H,CONFIG1      ;Deshabilita Cop,Stop,Habilita LVI,5V
          MOV #00H,CONFIG2      ;
RTS


Config_PWM:
           BSET 5,TSC          ;PARAR EL CONTADOR.
           BSET 4,TSC          ;RESET AL TIMER.
           BCLR 2,TSC          ;PREESCALER DE 1.
           BCLR 1,TSC          ;PREESCALER DE 1.
           BCLR 0,TSC          ;PREESCALER DE 1.
           MOV #00CH,TMODH     ;VALORES PARA
           MOV #80H,TMODL      ;PERIODO DE 1mS PWM.
           MOV #09H,TCH1H      ;11.7mS PARA ENCENDIDO
           MOV #0FFH,TCH1L     ;DE LED EN 3S.
           BCLR 5,TSC0         ;UNBUFFERED MS0B.
           BSET 4,TSC0         ;UNBUFFERED MS0A.
           BSET 1,TSC0         ;TOGGLE OUTPUT
           BSET 3,TSC0         ;CLEAR OUTPUT
           BCLR 2,TSC0         ;ON COMPARE.

        RTS


Config_TIM:
           BCLR 5,TSC1         ;UNBUFFERED MS0B.
           BSET 4,TSC1         ;UNBUFFERED MS0A.
           BSET 1,TSC1         ;TOGGLE OUTPUT
           BSET 3,TSC1         ;CLEAR OUTPUT
           BCLR 2,TSC1         ;ON COMPARE.
           BSET 6,TSC1         ;HABILITO INTERRUPCION T1CH1
           MOV #00H,TCH0L
           MOV #00H,TCH0H
           BCLR 5,TSC          ;ACTIVO EL CONTADOR

        RTS


INTER_TCH1:
           INC TCH0L
           LDA #0FFH
           CMP TCH0L
           BEQ INI1
           BCLR 7,TSC1
RTI




INI1:
     INC TCH0H
     LDA #0F0H
     CMP TCH0H
     BGE INI2
     BCLR 7,TSC1

  RTI




INI2:
     BSET 5,TSC
     BCLR 7,TSC1

  RTI





   org  VectorStart


   
   ;dw   dummy_isr       ;No usado
   ;dw   dummy_isr       ;No usado
   ;dw   dummy_isr       ;No usado
   ;dw   dummy_isr       ;No usado
   ;dw   dummy_isr       ;No usado
   ;dw   dummy_isr       ;TOF_Int Vector interrupcion overflow de timer
   ;dw   dummy_isr       ;INTER_TCH1 Vector interrupcion timer canal 1
   ;dw   dummy_isr       ;TIM0_Int Vector interrupcion timer canal 0
   ;dw   dummy_isr       ;No usado
   ;dw   dummy_isr       ;IRQ_Int Vector interrupcion por IRQ
   ;dw   dummy_isr       ;SWI_Int Vector interrupcion por SWI
   ;dw   main            ;RST_Int Vector interrupcion por Reset



end
