View Single Post
Old 19-11-2008, 08:44 PM   #1
dientudong
Đệ tử 5 túi
 
Tham gia ngày: Oct 2008
Bài gửi: 95
:
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 !

thay đổi nội dung bởi: namqn, 19-11-2008 lúc 10:32 PM.
dientudong vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn