logo
HomeAbout  |  Products  |  ApplicationsDownload  |  Contact Us  |  中文
 
Home-> Products-> 8-bit MCU
 
IC Induction
Develop & Tool
Application Project
Customer Service
 
Quick Coding
1 IO Ports 2 AD Converter
3 Timers 4 Capture
5 Compare 6 PWM 7 Interval Timer and Buzzer 8 External Interrupts
9 SPI 10 UART 11 LVR 12 Watch Dog Timer
13 STOP Mode 14 HALT Mode    

3 Timers

1. Set Timer0 as 8-bit timer operation and generate 1ms period interrupt by Timer0 overflow (Fsys = 8MHz).

lda #6
sta P_TMR0_Preload ;Set low byte initial value latter
lda P_TMR0_1_Ctrl1
and #$F0
ora #C_T0FCS_Div_32
sta P_TMR0_1_Ctrl1 ;Set Timer0 clock source is Fsys/32, Fsys(8MHz)/32/250 = 1KHz(1ms)

lda P_TMR0_1_Ctrl0
and #$F0
ora #C_T08B_Timer
sta P_TMR0_1_Ctrl0 ;Set Timer0 is 8-bit timer

set P_INT_Flag1, CB_INT_T0OIF
;clear INT request flag
set P_INT_Ctrl1, CB_INT_T0OIE
;enable Timer0 overflow INT
cli

2. Set Timer0 as 8-bit timer operation and generate 1ms period overflow without interrupt (Fsys = 8MHz).


lda #6
sta P_TMR0_Preload ;Set low byte initial value latter
lda P_TMR0_1_Ctrl1
and #$F0
ora #C_T0FCS_Div_32
sta P_TMR0_1_Ctrl1 ;Set Timer0 clock source is Fsys/32, Fsys(8MHz)/32/250 = 1KHz(1ms)

lda P_TMR0_1_Ctrl0
and #$F0
ora #C_T08B_Timer
sta P_TMR0_1_Ctrl0 ;Set Timer0 is 8-bit timer

set P_INT_Flag1, CB_INT_T0OIF
;clear INT request flag
Loop:
nop
tst P_INT_Flag1, CB_INT_T0OIF
beq Loop
set P_INT_Flag1, CB_INT_T0OIF


3. Set Timer1 as 8-bit timer operation and generate 1ms period interrupt by Timer1 overflow (Fsys = 8MHz).

  lda  #6
  sta  P_TMR1_Preload ;Set low byte initial value latter lda P_TMR0_1_Ctrl1
  and  #$0F
  ora  #C_T1FCS_Div_32
  sta  P_TMR0_1_Ctrl1 ;Set Timer1 clock source is Fsys/32,Fsys(8MHz)/32/250= 1KHz(1ms)
   
  lda  P_TMR0_1_Ctrl0
  and  #$0F
  ora  #C_T18B_Timer
  sta  P_TMR0_1_Ctrl0 ;Set Timer1 is 8-bit timer
   
  set  P_INT_Flag1,CB_INT_T1OIF
     ;clear INT request flag
  set  P_INT_Ctrl1,CB_INT_T1OIE
     ;enable Timer1 overflow INT
  cli  ;enable INT

4. Set Timer1 as 8-bit timer operation and generate 1ms period overflow without interrupt (Fsys = 8MHz).

  lda  #6
  sta  P_TMR1_Preload ;Set low byte initial value latter lda P_TMR0_1_Ctrl1
  and  #$0F
  ora  #C_T1FCS_Div_32
  sta  P_TMR0_1_Ctrl1 ;Set Timer1 clock source is Fsys/32,Fsys(8MHz)/32/250= 1KHz(1ms)
   
  lda  P_TMR0_1_Ctrl0
  and  #$F0
  ora  #C_T18B_Timer
  sta  P_TMR0_1_Ctrl0 ;Set Timer1 is 8-bit timer
  set  P_INT_Flag1,CB_INT_T1OIF
     ;clear INT request flag
  Loop:
  nop
  tst  P_INT_Flag1,CB_INT_T1OIF
  beq  Loop
  set  P_INT_Flag1,CB_INT_T1OIF

5. Set Timer1 as 16-bit timer operation and generate 10ms period interrupt by Timer1 overflow (Fsys = 8MHz).

  lda  #253
  sta  P_TMR1_PreloadHi ; Set high byte initial value first
  lda  #143
  sta  P_TMR1_Preload ;Set low byte initial value latter lda P_TMR0_1_Ctrl1
  and  #$0F
  ora  #C_T1FCS_Div_128 ; Set Timer1 clock source is Fsys/128
  sta  P_TMR0_1_Ctrl1
   
  lda  P_TMR0_1_Ctrl0
  and  #$0F
  ora  #C_T116B_Timer
  sta  P_TMR0_1_Ctrl0 ;Set Timer1 is 16-bit timer
   
  set  P_INT_Flag1,CB_INT_T1OIF
  set  P_INT_Ctrl1, CB_INT_T1OIE
     ;enable Timer1 overflow
  cli

6. Set Timer1 as 16-bit timer operation and generate 10ms period overflow without interrupt (Fsys = 8MHz).

  lda  #253
  sta  P_TMR1_PreloadHi ; Set high byte initial value first
  lda  #143
  sta  P_TMR1_Preload ;Set low byte initial value latter lda P_TMR0_1_Ctrl1
  and  #$0F
  ora  #C_T1FCS_Div_128 ; Set Timer1 clock source is Fsys/128
  sta  P_TMR0_1_Ctrl1
   
  lda  P_TMR0_1_Ctrl0
  and  #$0F
  ora  #C_T116B_Timer
  sta  P_TMR0_1_Ctrl0 ;Set Timer1 is 16-bit timer
   
  set  P_INT_Flag1,CB_INT_T1OIF

7. Set Timer2 as 8-bit timer operation and generate 1ms period interrupt by Timer2 overflow (Fsys = 8MHz).

  lda  #6
  sta  P_TMR2_Preload ;Set low byte initial value latter lda P_TMR2_3_Ctrl1
  and  #$F0
  ora  #C_T2FCS_Div_32
  sta  P_TMR2_3_Ctrl1 ;Set Timer2 clock source is Fsys/32,Fsys(8MHz)/32/250= 1KHz(1ms)
   
  lda  P_TMR2_3_Ctrl0
  and  #$F0
  ora  #C_T28B_Timer
  sta  P_TMR2_3_Ctrl0 ;Set Timer2 is 8-bit timer
   
  set  P_INT_Flag1,CB_INT_T2OIF
     ;clear INT request flag
  set  P_INT_Ctrl1,CB_INT_T2OIE
     ;enable Timer2 overflow INT
  cli  ;enable INT


8. Set Timer2 as 8-bit timer operation and generate 1ms period overflow without interrupt (Fsys = 8MHz).

  lda  #6
  sta  P_TMR2_Preload ;Set low byte initial value latter lda P_TMR2_3_Ctrl1
  and  #$F0
  ora  #C_T2FCS_Div_32
  sta  P_TMR2_3_Ctrl1 ;Set Timer2 clock source is Fsys/32,Fsys(8MHz)/32/250= 1KHz(1ms)
   
  lda  P_TMR2_3_Ctrl0
  and  #$F0
  ora  #C_T28B_Timer
  sta  P_TMR2_3_Ctrl0 ;Set Timer2 is 8-bit timer
 
  set  P_INT_Flag1,CB_INT_T2OIF
     ;clear INT request flag

9. Set Timer3 as 8-bit timer operation and generate 1ms period interrupt by Timer3 overflow (Fsys = 8MHz).

  lda  #6
  sta  P_TMR3_Preload ;Set low byte initial value latter lda P_TMR2_3_Ctrl1
  and  #$0F
  ora  #C_T3FCS_Div_32
  sta  P_TMR2_3_Ctrl1 ;Set Timer3 clock source is Fsys/32,Fsys(8MHz)/32/250= 1KHz(1ms)
   
  lda  P_TMR2_3_Ctrl0
  and  #$0F
  ora  #C_T38B_Timer
  sta  P_TMR2_3_Ctrl0 ;Set Timer3 is 8-bit timer
   
  set  P_INT_Flag1,CB_INT_T3OIF
     ;clear INT request flag
  set  P_INT_Ctrl1,CB_INT_T3OIE
     ;enable Timer3 overflow INT
  cli  ;enable INT

10. Set Timer3 as 8-bit timer operation and generate 1ms period overflow without interrupt (Fsys = 8MHz).

  lda  #6
  sta  P_TMR3_Preload ;Set low byte initial value latter lda P_TMR2_3_Ctrl1
  and  #$0F
  ora  #C_T3FCS_Div_32
  sta  P_TMR2_3_Ctrl1 ;Set Timer3 clock source is Fsys/32,Fsys(8MHz)/32/250= 1KHz(1ms)
   
  lda  P_TMR2_3_Ctrl0
  and  #$0F
  ora  #C_T38B_Timer
  sta  P_TMR2_3_Ctrl0 ;Set Timer3 is 8-bit timer
   
  set  P_INT_Flag1,CB_INT_T3OIF
     ;clear INT request flag

11. Set Timer3 as 16-bit timer operation and generate 1ms period interrupt by Timer3 overflow (Fsys = 8MHz).

  lda  #253
  sta  P_TMR3_PreloadHi ; Set high byte initial value first
  lda  #143
  sta  P_TMR3_Preload ;Set low byte initial value latter lda P_TMR2_3_Ctrl1
  and  #$0F
  ora  #C_T3FCS_Div_128 ; Set Timer3 clock source is Fsys/128
  sta  P_TMR2_3_Ctrl1
   
  lda  P_TMR2_3_Ctrl0
  and  #$0F
  ora  # C_T316B_Timer
  sta  P_TMR2_3_Ctrl0 ;Set Timer3 is 16-bit timer
   
  set  P_INT_Flag1,CB_INT_T3OIF
  set  P_INT_Ctrl1,CB_INT_T3OIE
     ;enable Timer3 overflow
  cli

12. Set Timer3 as 16-bit timer operation and generate 1ms period overflow without interrupt (Fsys = 8MHz).

  lda  #253
  sta  P_TMR3_PreloadHi ; Set high byte initial value first
  lda  #143
  sta  P_TMR3_Preload ;Set low byte initial value latter lda P_TMR2_3_Ctrl1
  and  #$0F
  ora  #C_T3FCS_Div_128 ; Set Timer3 clock source is Fsys/128
  sta  P_TMR2_3_Ctrl1
   
  lda  P_TMR2_3_Ctrl0
  and  #$0F
  ora  #C_T316B_Timer
  sta  P_TMR2_3_Ctrl0 ;Set Timer3 is 16-bit timer
   
  set  P_INT_Flag1,CB_INT_T3OIF

Copyright © BEIJING SUNNORTH TECHNOLOGY CO., LTD Web site:mcu.sunplusmcu.com online real name:凌阳单片机
Unauthorized copy or republish to the content of this website is forbidden. Any one cannot resume on ICP备05061966号