Thứ Ba, 19 tháng 3, 2013

PIC 16F877A- Mạch nhấn nút tăng, giảm hiển thị led 7 đoạn















Chương trình trên CCS


#include <16F877A.h>
#use delay(clock=4000000)
#use standard_io(b)
#use standard_io(c)
#use standard_io(e)

unsigned char ma7seg[]={0xc0,

                        0xf9,
                        0xa4,
                        0xb0,
                        0x99,
                        0x92,
                        0x82,
                        0xf8,
                        0x80,
                        0x90};
                        
                        
char chuc,donvi,machuc,madonvi,lapht;                        
void main()
{
set_tris_b(0);
set_tris_c(0);
set_tris_e(0b111);
donvi=0;
chuc=0;
for(;;)
{
for(lapht=0;lapht<150;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);
}

//tang gia tri

if(input(pin_e0)==0)
{
//delay_ms(200);
donvi++;
if(donvi==10)
{
chuc++;
donvi=0;
if(chuc==10)
{
chuc=0;
donvi=0;
}
}
}

//giam gia tri

if(input(pin_e1)==0)
{
//delay_ms(200);
donvi--;
if(donvi==-1)
{
chuc--;
donvi=9;
if(chuc==-1)
{
chuc=9;
donvi=9;
}
}
}




}

}

2 nhận xét: