Code:
#include <16F877A.h> //
#use delay(clock=20000000) //
#include <lcd.c> //
float vantoc,soxung; //
int8 a,b,c,d,a1; //
int16 sovong,i; //
/////////////////ket thuc phan khai bao thu vien va cac bien//////////////////////
////////////khai bao va chuong trinh ngat cho TIMER1/////////////////////
#int_TIMER1 //
void TIMER1_isr(void) //
{ //
soxung=get_timer0(); //Lay so xung ma Timer0 dem //
set_timer1(65535); // Trong 1ms //
if(tmr1if==1) //neu Timer1 tran thi co tmr1if =1 //
{ //
intcon=0; //stop ngat (reset cac thong so ngat ) //
a1=1; //cho a1=1 //
} //
} //
//////////////////////////ket thuc phan TIMER1///////////////////////////
//////////////////////////bat dau chuong trinh chinh////////////////////////////
void main()
{
trisa=0xFF; //set RA4 input,chan lay xung tu Encoder
trisb=0; //dinh huong portB la ngo ra
trisc=0; //dinh huong portC la ngo ra
trisd=0; //dinh huong portD la ngo ra
lcd_init(); //ham khoi tao LCD
lcd_gotoxy(1,1); //den vi tri hang 1 cot 1
lcd_putc("Beginning...."); //in ra beginning....
delay_ms(1000); // tao tre 1s
lcd_putc('\f'); //dau cham nhap nhay
setup_timer_2(T2_DIV_BY_2,254,1); //tao f(pwm)=9775Hz hay T(pwm)=0.1023ms
setup_ccp1(CCP_PWM); //thiet lap chan CCP1 o che do PWM
for(i=0;i<1000;i++) //tu 0 den 1000 thi toc do tang dan
{
set_pwm1_duty(i); // Toc do tang dan
delay_ms(1);
set_timer0(0); //lam moi Timer0 de chuan bi dem xung
set_timer1(65535); //dat gia tri cho Timer1_khoang 1s
setup_timer_0(RTCC_EXT_H_TO_L|RTCC_DIV_1);//setupTimer0_demcanhxuongxungEncoder
setup_timer_1(T1_INTERNAL|T1_DIV_BY_1);
enable_interrupts(INT_TIMER1); //cho phep ngat Timer1
enable_interrupts(GLOBAL); //cho phep ngat toan cuc
delay_ms(10); //
if(a1==1) //cu moi lan Timer1 ngat thi a1=1 ,roi tinh vantoc,hien thi
{
vantoc=((float)(60*soxung)/(0.01*100)); //Tinh van toc
a=vantoc/1000; //chia lay phan nguyen
b=(int)(vantoc-1000*a)/100; //chia lay phan nguyen
c=(int)(vantoc-1000*a-100*b)/10; //chia lay phan nguyen
d=(int)vantoc%10; //chia lay phan du
///////////////////toi phan hien thi LCD/////////////////////////////
lcd_gotoxy(3,3); //den vi tri hang 3 cot 3
lcd_putc(a+48); //in ra a
lcd_gotoxy(3,4); //den vi tri hang 3 cot 4
lcd_putc(b+48); //in ra b
lcd_gotoxy(3,5); //den vi tri hang 3 cot 5
lcd_putc(c+48); //in ra c
lcd_gotoxy(3,6); //den vi tri hang 3 cot 6
lcd_putc(d+48); //in ra d
lcd_gotoxy(4,3); //den vi tri hang 4 cot 3
lcd_putc("vong/phut"); //in ra "vong/phut"
lcd_gotoxy(2,2); //den vi tri hang 2 cot 2
lcd_putc("toc do dc"); //in ra "toc do dc"
delay_ms(5); //
tmr0if=0;tmr1if=0; //Xoa co tran cua Timer0 va Timer1
}
}
}
Các bạn cho mình hỏi,sao khi biên dịch CCS nó cứ báo lỗi trong file lcd,mong các bạn chỉ bảo.Rất cảm ơn !