|  | 
|  | 
|  29-08-2007, 09:16 PM | #1 | 
| Đệ tử 2 túi Tham gia ngày: Jun 2007 
					Bài gửi: 43
 : | Đây là mã code mình viết ngắt đơn giản cho LCD.Khi nhấn button 1(RB4) thì LCD hiển thị chữ 'X' dòng 1,button 2 thì LCD hiển thị dòng 2 chữ 'K'.Nhưng khi chạy thì nó bào lỗi ở dòng "void main(void)" là 'A numeric expression must be here' Code: =============================================================================*/
#include <16F877A.h>
#include <DEFS_16F877A.h>
#fuses XT,NOWDT,NOPROTECT,NOLVP
#use delay(clock=4000000)
#define RS  RD0
#define RW  RD1
#define E   RD2
#define LCD PORTC
/*Ham yeu cau goi lenh dieu khien LCD*/
void comnwrt(void)
{
 RS = 0;
 RW = 0;
 E  = 1;
 E  = 0;
 delay_ms(1);
}
/*Ham yeu cau goi du lieu hien thi len LCD*/
void datawrt(void)
{
 RS = 1;
 RW = 0;
 E  = 1;
 E  = 0;
 delay_ms(1);
}
#int_RB
 void ngat_RB(void)
 {
  if(RBIE && RBIF)
    {
     if (RB4==0)
      {
      while(RB5==1)
       {
        LCD = 0x83;
        comnwrt();
        LCD = 'X';
        datawrt();
        
       }
      }
     if (RB5==0)
      {
      while(RB4==1)
       {
        LCD = 0xC3;
        comnwrt();
        LCD = 'K';
        datawrt();
        
       }
      }
    }
   
  void main(void)
    {
     set_tris_b(0b01100000);
     set_tris_c(0);
     set_tris_d(0);
     LCD = 0x38;      //   Hai hang, ma tran dot 5*7, 8 bit interface
     comnwrt();
     LCD = 0x0C;      //   Bat hien thi, tat con tro
     comnwrt();
      while(true)
      {
      }
    }thay đổi nội dung bởi: namqn, 29-08-2007 lúc 11:52 PM. | 
|   | 
|  29-08-2007, 11:56 PM | #2 | 
| Trưởng lão PIC bang | Khi chạy chương trình đó bạn nhận được thông báo lỗi đó? Thông báo lỗi đó xuất hiện ở đâu? Nếu bạn chạy chương trình với phần cứng của bạn theo cách thông thường, chỉ có bộ vi điều khiển và LCD, bộ phận hiển thị duy nhất mà bạn có là màn hình LCD, làm cách nào bạn nhận được thông báo lỗi đó, khi LCD chưa hoạt động đúng. Tôi đoán là bạn muốn nói khi biên dịch chương trình thì nhận được thông báo lỗi đó. Bạn xem thử các ví dụ mẫu của CCS C để biết người ta khai báo main() ra sao. Bạn cũng kiểm tra lại code xử lý ngắt RB của bạn, dường như bạn đang thiếu một dấu '}'. Thân, 
				__________________ Biển học mênh mông, sức người có hạn. Đang gặp vấn đề cần được giúp đỡ? Hãy dành ra vài phút đọc luồng sau: http://www.picvietnam.com/forum/showthread.php?t=1263 | 
|   | 
|  30-08-2007, 12:55 AM | #3 | 
| Đệ tử 7 túi |  Tội nặng, nặng tội Bạn phạm phải trọng tội rùi chắc hình phạt phải là "tử hình" thui đó mà    Lỗi của bạn là thiếu một dấu móc khoá "}" ở cuối hàm, ngay trên void main ấy thêm vào là OK   Lần này tha lần sau là tử hình thiệt đó nghen  . Thân. 
				__________________ _____________________________Tri nhân tri tự bất tri tâm_____________________________ _ _ _ _ _ _ _ _  Yêu mến tất cả anh em Picvietnam.com  _ _ _ _ _ _ _ _ . . . . . . . . . . . . . . . . Để post đuợc một câu hỏi rõ ràng xin tham khảo link sau : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . http://www.picvietnam.com/forum/showthread.php?t=1263. . . . . . . . . . . . . . . . | 
|   | 
|  | 
| 
 | 
 | 
|  Similar Threads | ||||
| Ðề tài | Người gửi | Chuyên mục | Trả lời | Bài mới | 
| TUT về USART trong PIC16F877A | mafd_47a | MPASM | 16 | 19-02-2025 05:32 AM | 
| TUT ve I2C ( pic16f877a ) | mafd_47a | MPASM | 28 | 28-01-2025 10:45 PM | 
| Lập nhóm PIC16F877A | nhh | Cơ bản về vi điều khiển và PIC | 285 | 08-03-2017 11:08 PM | 
| Bộ so sánh và PWM cho PIC16F877A | anhquangngai | Cơ bản về vi điều khiển và PIC | 24 | 08-09-2012 09:00 AM | 
| Pic16f877a TỪ DỄ TỚi KhÓ | ntc | Cơ bản về vi điều khiển và PIC | 373 | 23-05-2009 10:24 PM |