Using 16F887 microcontroller to count external pulses using T0, the counting results are displayed on 3 leds directly connected to 3 ports
- Requirements: Using microcontroller 16F887 to count external pulses using T0, counting results displayed on 3 leds directly connected to 3 ports, counting limit from 000 to 255, when equal to 255, return to 0
- Circuit diagram on Proteus simulation software:
Figure 1. Counting external pulses using counter T0 |
- Main program:
________________
#INCLUDE<TV_16F887.C>
UNSIGNED INT8 T0, MATRAM, MACHUC;
VOID MAIN()
{
SET_TRIS_B(0x00); SET_TRIS_C(0x00); SET_TRIS_D(0x00);
SETUP_TIMER_0(T0_EXT_L_TO_H | T0_DIV_1);
SET_TIMER0(0);
WHILE(TRUE)
{
T0=GET_TIMER0();
MATRAM=MA7DOAN[T0/100]; MACHUC=MA7DOAN[T0/10%10];
IF (MATRAM==0XC0)
{
MATRAM=0XFF;
IF (MACHUC==0XC0) MACHUC=0XFF;
}
OUTPUT_B(MA7DOAN[T0%10]);
OUTPUT_D(MACHUC);
OUTPUT_C(MATRAM);
}
}
________________
- TV_16F887.c Library:
________________
#INCLUDE <16F887.H>
#FUSES NOWDT,PUT,HS,NOPROTECT,NOLVP
#USE DELAY(CLOCK=16M)
CONST UNSIGNED CHAR MA7DOAN [10]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,
0x80,0x90};
________________
Comments
Post a Comment