Đếm từ 9999 - 0000 PIC16F877A with CCS

7:45:00 AM
Chào các bạn trong bài đăng này mình sẽ hướng dẫn các bạn đếm lùi từ 9999 - 0000 hoặc 1 số bất kỳ và các bạn hoàn toàn có thể đếm lùi từ 1 số bất kỳ sử dụng PIC16F877A và trình biên dịch CCS.

Ảnh mô phỏng protues.

đếm từ 9999 về 0000 pic16f877a ccs

Đây là code chương trình.

#include <16f877a.h>
#include <def_877a.h>
#fuses NOLVP,NOWDT,PUT,XT
#use delay(clock=4000000)
int maled[10]={0X03,0X9F,0X25,0X0D,0X99,0X49,0X41,0X1F,0X01,0X09};
int16 giatri;
int16 chuc,tram,nghin,donvi,i;
#bit led1 =portc.4
#bit led2 =portc.3
#bit led3 =portc.2
#bit led4 =portc.1
void hienthi(int16 giatri)
{
nghin = giatri/1000;
tram = (giatri - nghin*1000)/100;
chuc = (giatri - nghin*1000 - tram*100)/10;
donvi = giatri - nghin*1000 - tram*100 - chuc*10;

portb=maled[nghin];
led4=0;
delay_ms(5);
led4=1;

portb=maled[tram];
led3=0;
delay_ms(5);
led3=1;

portb=maled[chuc];
led2=0;
delay_ms(5);
led2=1;

portb=maled[donvi];
led1=0;
delay_ms(5);
led1=1;
}
void main()
{
giatri = 9999;
i = 0;
TMR1IF=0;
setup_timer_1(T1_INTERNAL | T1_DIV_BY_2);
set_timer1(24280);
trisc=0x00;
trisb=0x00;
portc=0xff;
while(true)
{
while(TMR1IF==0)
{
hienthi(giatri);
}
i++;
TMR1IF=0;
set_timer1(24280);
if(i==3)
{
i=0;
giatri--;
if(giatri==0)
{
giatri=3333;
}
}
}
}

Link download project.
http://adf.ly/11512871/9999-0000

Share this

Related Posts

Previous
Next Post »