Professional Documents
Culture Documents
305 Tai Lieu Huong Dan Lap Trinh Pic16f877a Ccs PDF
305 Tai Lieu Huong Dan Lap Trinh Pic16f877a Ccs PDF
#use delay(clock=800000)
#fuses HS,NOWDT
void main(void)
set_tris_b(0x00);
output_b(0);
while(true)
{
delay_ms(1000);
output_b(0xff);
delay_ms(1000);
output_b(0x00);
#fuses HS,NOLVP,NOWDT,PUT
#use delay(clock=8000000)
INT a,I,J,CD,D,Y,X;
TRISB = 0X00;
PORTB = 0X00;
while(true)
// left
PORTB = 0X01;
for(a=0;a<8;a++)
delay_ms(200);
PORTB = PORTB<<1;
// right
PORTB = 0X80;
for(a=0;a<8;a++)
delay_ms(200);
PORTB = PORTB>>1;
}
// left 2
PORTB = 0X03;
for(a=0;a<4;a++)
delay_ms(200);
PORTB = PORTB<<2;
// right 2
PORTB = 0XC0;
for(a=0;a<4;a++)
delay_ms(200);
PORTB = PORTB>>2;
// chase left
delay_ms(200);
PORTB = 0X00;
for(a=0;a<9;a++)
delay_ms(200);
PORTB = PORTB<<1;
PORTB = PORTB | 0X01;
// chase right
delay_ms(200);
PORTB = 0X00;
for(a=0;a<9;a++)
delay_ms(200);
PORTB = PORTB>>1;
delay_ms(200);
PORTB = 0X00;
for(a=0;a<9;a++)
delay_ms(200);
for(i=0;i<9;i++)
delay_ms(100);
PORTB = PORTB<<1;
}
/////////
X=0X00000000;
for(I=0;I<8;I++)
X=(X<<1)+0X01;
PORTB = X;
delay_ms(100);
for(I=0;I<8;I++)
X=(X>>1);
PORTB = X;
delay_ms(100);
///////////////
delay_ms(200);
CD=0X00000000;
for ( J=8;J>0;J--)
D=0X00000001;
for(I=0;I<J;I++)
{
Y=CD+D;
PORTB = (Y);
delay_ms(100);
D=(D<<1);
CD=Y;
//////////
delay_ms(200);
CD=0X00000000;
for ( J=4;J>0;J--)
D=0X03;
for(I=0;I<J;I++)
Y=CD+D;
PORTB = (Y);
delay_ms(100);
D=(D<<2);
CD=Y;
#include <def_877a.h>
#use delay(clock=800000)
#fuses HS,NOWDT
set_tris_a(0xff);
set_tris_b(0x00);
output_b(0x00);
while(true)
if(input(PIN_A0)==0)
delay_ms(10);
output_b(0xff);
if(input(PIN_A1)==0)
delay_ms(10);
output_b(0xaa);
if(input(PIN_A2)==1)
delay_ms(10);
output_b(0x00);
if(input(PIN_A3)==1)
delay_ms(10);
output_b(0xf0);
}
#use delay(clock=800000)
#fuses HS,NOWDT
#byte portb=0x06
#bit rc0=0x07.0
#bit rc1=0x07.1
#bit rc2=0x07.2
#bit rc3=0x07.3
const unsigned char maled[] = {0x3F, 0x06, 0x5B, 0x4F, 0x66, 0x6D, 0x7D, 0x07, 0x7F,
0x6F};
void main(void)
set_tris_b(0x00);
set_tris_c(0x00);
output_b(0);
output_c(0);
while(true)
// hien thi so 2
portb=0x5b;
rc0=0;
delay_ms(10);
rc0=1;
// hien thi so 0
portb=0x3f;
rc1=0;
delay_ms(10);
rc1=1;
// hien thi so 1
portb=0x06;
rc2=0;
delay_ms(10);
rc2=1;
// hien thi so 5
portb=0x6d;
rc3=0;
delay_ms(10);
rc3=1;
#fuses NOLVP,NOWDT,PUT,XT
#use delay(clock=8000000)
const unsigned char maled[10]={0xC0, 0xF9, 0xA4, 0xB0, 0x99, 0x92, 0x82,0xF8, 0x80,
0x90};
int dem;
set_tris_b(0x00);
output_b(0);
while(true)
output_b(maled[dem]);
delay_ms(300);
dem++;
if(dem==10)
dem=0;
#fuses NOLVP,NOWDT,PUT,XT
#use delay(clock=8000000)
#bit ra0=0x05.0
#bit ra1=0x05.1
const unsigned char maled[10]={0xC0, 0xF9, 0xA4, 0xB0, 0x99, 0x92, 0x82,0xF8, 0x80,
0x90};
int dem,chuc,donvi;
{
set_tris_c(0x00);
set_tris_a(0x00);
output_b(0);
while(true)
chuc=dem/10;
donvi=dem%10;
output_c(maled[chuc]);
ra0=0;
delay_ms(40);
ra0=1;
output_c(maled[donvi]);
ra1=0;
delay_ms(40);
ra1=1;
dem++;
delay_ms(10);
if(dem==100)
dem=0;
}
}
BI 8 : N T 99 0 PIC1F877A CCS.
- HNH M PHNG PROTUES.
#fuses NOLVP,NOWDT,PUT,XT
#use delay(clock=8000000)
#bit ra0=0x05.0
#bit ra1=0x05.1
const unsigned char maled[10]={0xC0, 0xF9, 0xA4, 0xB0, 0x99, 0x92, 0x82,0xF8, 0x80,
0x90};
int dem,chuc,donvi;
set_tris_c(0x00);
set_tris_a(0x00);
output_b(0);
dem = 99;
while(true)
chuc=dem/10;
donvi=dem%10;
output_c(maled[chuc]);
ra0=0;
delay_ms(40);
ra0=1;
output_c(maled[donvi]);
ra1=0;
delay_ms(40);
ra1=1;
dem--;
delay_ms(10);
if(dem==0)
dem=99;
#include <def_877a.h>
#FUSES NOWDT, XT, NOPUT, NOPROTECT, NODEBUG, NOBROWNOUT, NOLVP, NOCPD, NOWRT
#use Delay(Clock=4000000)
#int_TIMER0
void TIMER0_isr(void)
set_timer0(206);
led=!led;
void main()
set_tris_c(0x00);
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_4);
set_timer0(206);
enable_interrupts(INT_TIMER0);
enable_interrupts(GlOBAL);
while(true)
#include <def_877a.h>
#FUSES NOWDT, XT, NOPUT, NOPROTECT, NODEBUG, NOBROWNOUT, NOLVP, NOCPD, NOWRT
#use Delay(Clock=4000000)
#int_TIMER1
void TIMER1_isr(void)
set_timer1(59286);
led^=1;
void main()
set_tris_c(0x00);
setup_timer_1(T1_INTERNAL|T1_DIV_BY_8);
set_timer1(59286);
enable_interrupts(INT_TIMER1);
enable_interrupts(GlOBAL);
while(true)
#include <def_877a.h>
#use delay(clock=20000000)
#include <lcd_lib_4bit.c>
void main()
LCD_Init();
LCD_PutCmd(0x80);
LCD_PutChar(" DEMO PWM");
LCD_PutCmd(0xC0);
setup_timer_2(T2_DIV_BY_1,59,1);
setup_ccp1(CCP_PWM);
set_pwm1_duty(72);
while(TRUE)
#device 16f877a*16ADC=10
#fuses nowdt,xt
#use delay(clock=4000000)
#include <lcd_lib_4bit.c>
int16 x;
void docADC();
void main ()
LCD_Init();
set_tris_a(0x01);
while(true)
{
docADC();
x = read_ADC();
LCD_PutCmd(0x80);
void docADC()
setup_ADC(ADC_clock_internal);
setup_ADC_ports(AN0);
set_ADC_channel(0);
delay_us(10);
}
BI 12 : M T 0 9 S DNG NGT RB0 PIC1F877A CCS.
#fuses NOWDT,PUT,XT,NOPROTECT
#use delay(clock=4000000)
#use fast_io(b)
#use fast_io(d)
#byte portb=0x06
#byte portd=0x08
void ngat_RB0()
int i;
portd=digital[i];
++i;
if(i==10)
i=0;
void main(void)
set_tris_b(0b00000001);
set_tris_d(0);
enable_interrupts(global);
enable_interrupts(int_ext);
ext_int_edge(H_to_L);
portd=0b00111111;
while(true)
}
- Link download code v file m phng :
http://xcvn.blogspot.com/2016/01/bai-22-dem-tu-0-den-9-su-dung-ngat-rb0-pic16f877a-
ccs.html
#device 16f877a*16ADC=10
#use delay(clock=4000000)
int16 nghin,tram,chuc,donvi;
void docADC();
void main()
set_tris_a(0x01);
set_tris_c(0x00);
output_b(0x00);
output_c(0x00);
while(true)
docADC();
x=read_ADC();
nghin = (x/1000);
tram = (x - nghin*1000)/100;
output_b(maled[nghin]);
led1=1;
delay_ms(1);
led1=0;
output_b(maled[tram]);
led2=1;
delay_ms(1);
led2=0;
output_b(maled[chuc]);
led3=1;
delay_ms(1);
led3=0;
output_b(maled[donvi]);
led4=1;
delay_ms(1);
led4=0;
void docADC()
setup_ADC(ADC_clock_internal);
setup_ADC_ports(AN0);
set_ADC_channel(0);
delay_us(100);