Vous êtes sur la page 1sur 2

Université 20 Aout 1955 Skikda License 3ème année Automatique - 2021/2022

Département de Génie électrique Module : Microprocesseur et microcontrôleur

TD 6 : Le microcontrôleur 3 (Timer)

Exercice 1 :
Selon le circuit de la figure ci-dessous, écrire un programme en mickroC qui permet de compter
par le module TIMER0 les fronts montants arrivant sur la broche RA4 et d'allumer la diode chaque
fois que 10 fronts sont comptés.

Solution :

MikroC

void main() {

TRISA = 0b010000;

TRISB = 0;

OPTION_REG.T0CS = 1 ;

OPTION_REG.T0SE = 1 ;

OPTION_REG.PSA = 1;

TMR0 = 0;

for(;;){

if(TMR0 == 10){

PORTB.F0 = 1;

Delay_ms(100);

TMR0 = 0;

PORTB.F0 = 0;

1
Université 20 Aout 1955 Skikda License 3ème année Automatique - 2021/2022
Département de Génie électrique Module : Microprocesseur et microcontrôleur

Exercice 2 :
On veut incrémenter le contenu du PORTB à chaque demi-seconde en utilisant l’interruption de
Timer0. Le microcontrôleur PIC6F84A est piloté par un quartz de 4 Mhz, pré-diviseur = 4.
Solution :

MikroC

Int count = 0 ; void main() {

void interrupt() { TRISA = 0;

INTCON.GIE = 0 ; TRISB = 0;

If(INTCON.T0IF == 1){ INTCON = 0b10100000 ;

If (count == 488){ OPTION_REG = 0b10000001 ;

PORTB = PORTB++; TMR0 = 0;

count = 0; for(;;){}

}else{ count = count++;} }

INTCON.GIE = 1;

INTCON.T0IF = 0;

Vous aimerez peut-être aussi