Ðề tài: CCS C for PIC16F877A
View Single Post
Old 29-08-2007, 09:16 PM   #291
cuopbienquin
Đệ tử 2 túi
 
cuopbienquin's Avatar
 
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.
cuopbienquin vẫn chưa có mặt trong diễn đàn