Tutorial Microcontroller MCS-51 ATMEL ISP

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