Breaking

Thứ Bảy, 3 tháng 5, 2014

PIC 16F877A- Mạch đếm từ 00 đến 99

PIC 16F877A- Mạch đếm từ 00 đến 99




























Chương trình
#include <16F877A.h>

#FUSES NOWDT, HS, NOPUT, NOPROTECT, NODEBUG, NOBROWNOUT,NOLVP, NOCPD, NOWRT 
#use delay(clock=4000000)      
#use standard_io(b) 
#use standard_io(c)

unsigned char ma7seg[]={0xc0,
                        0xf9,
                        0xa4,
                        0xb0,
                        0x99,
                        0x92,
                        0x82,
                        0xf8,
                        0x80,
                        0x90};
                        
                        
unsigned char chuc,donvi,machuc,madonvi,lapht;                        
void main()
{
donvi=0;
chuc=0;
for(;;)
{
for(lapht=0;lapht<200;lapht++)
{
madonvi=ma7seg[donvi];
output_b(madonvi);
output_low(pin_c1);
delay_ms(1);
output_high(pin_c1);

machuc=ma7seg[chuc];
output_b(machuc);
output_low(pin_c0);
delay_ms(1);
output_high(pin_c0);
}





donvi++;
if(donvi==10)
{
chuc++;
donvi=0;
if(chuc==10)
{
chuc=0;
donvi=0;
}
}

}
}