| Pelatihan
Mikrokontroller
Microcontroller Kits
Programmer
and Target 89s51
Simple
Mikrokontroller 89s51 Trainer

Standart
Mikrokontroller 89s51 Trainer

Super Mikrokontroller
Trainer 89s51

All Kits
+
Programmer
Serial
|
|
BACK
Mode 13 bits Counter Software Gated (not used)
/********* * Copyright (c) 2004 Atmel. * @brief This file is an example to use timer0 in mode 0. * Put here the functional description of this file within the software * architecture of your program. * **********/ /* @section I N C L U D E S */ #include "reg_c51.h" /*********** * FUNCTION_PURPOSE: This file set up timer 0 in mode 0 (13 bits counter) * with a software gate. The counter count up at each negative transition. * The 13-bits register consist of all 8 bits of TH0 and the lower 5 bits * of TL0. The upper 3 bits of TL0 are undeterminate and are ignored. * FUNCTION_INPUTS: P3.4(T0) must be controlled by an external clock * FUNCTION_OUTPUTS: void **********/ void main(void) { TMOD &= 0xF0;/* Timer 0 mode 0 counter with software gate */ TMOD |= 0x04;/* GATE0=0; C/T0#=1; M10=0; M00=0; */ TH0 = 0x00; /* init values */ TL0 = 0x00; ET0=1; /* enable timer0 interrupt */ EA=1; /* enable interrupts */ TR0=1; /* timer0 run */ while(1); /* endless */ } /***** * FUNCTION_PURPOSE: timer0 interrupt * FUNCTION_INPUTS: void * FUNCTION_OUTPUTS: P1.0 toggle period = 2 * 8192 * P3.4(T0) period *****/ void it_timer0(void) interrupt 1 /* interrupt address is 0x000b */ { TF0 = 0; /* reset interrupt flag (already done by hardware)*/ P1_0 = ~P1_0;/* P1.0 toggle when interrupt. */ }
Mode 13 bits Counter Hardware Gated
/**** * Copyright (c) 2004 Atmel. * @brief This file is an example to use timer0 in mode 0. * Put here the functional description of this file within the software * architecture of your program. ****/ /* @section I N C L U D E S */ #include "8051.h" /**** * FUNCTION_PURPOSE: This file set up timer 0 in mode 0 (13 bits counter) * with a hardware gate. The counter count up at each negative transition. * The 13-bits register consist of all 8 bits of TH0 and the lower 5 bits * of TL0. The upper 3 bits of TL0 are undeterminate and are ignored. * FUNCTION_INPUTS: P3.2(INT0)=1 : GATE Input * P3.4(T0) controlled by an external clock * FUNCTION_OUTPUTS: void ****/ void main(void) { TMOD &= 0xF0;/* Timer 0 mode 0 counter with hardware gate */ TMOD |= 0x0C;/* GATE0=1; C/T0#=1; M10=0; M00=0; */ TH0 = 0x00; /* init values */ TL0 = 0x00; ET0=1; /* enable timer0 interrupt */ EA=1; /* enable interrupts */ TR0=1; /* timer0 run */ while(1); /* endless */ }
/****
* FUNCTION_PURPOSE: timer0 interrupt
* FUNCTION_INPUTS: void
* FUNCTION_OUTPUTS: P1.0 toggle period = 2 * 8192 * P3.4(T0) period
***/
void it_timer0(void) interrupt 1 /* interrupt address is 0x000b */
{
TF0 = 0; /* reset interrupt flag (already done by hardware)*/
P1_0 = ~P1_0;/* P1.0 toggle when interrupt. */
}
Comments,
questions and discussion about this topic
BACK
|
|
|
|