Ðề tài: code LCD?
View Single Post
Old 21-02-2011, 09:40 AM   #11
ElecTel
Đệ tử 2 túi
 
Tham gia ngày: Jan 2011
Bài gửi: 36
:
mình đã làm theo cách của bạn viết ra cái này .biên dịch ok nhưng vdk nó không chạy ko biết vì sao??? nản luôn!
Code:
 #include <16F877A.h>
#device *=16 adc=10
#FUSES NOWDT, HS, NOPUT, NOPROTECT, NODEBUG, NOBROWNOUT, NOLVP, NOCPD, NOWRT
#use delay(clock=4000000)
#include <lcd.c>
#define LCD_DATA_PORT getenv("SFR:PORTD")  
#define LCD_ENABLE_PIN  PIN_D0                                    ////
#define LCD_RS_PIN      PIN_D1                                    ////
#define LCD_RW_PIN      PIN_D2    
#define LCD_DATA4       PIN_D4                                    ////
#define LCD_DATA5       PIN_D5                                    ////
#define LCD_DATA6       PIN_D6                                    ////
#define LCD_DATA7       PIN_D7                                    ////
#byte   portA =0x05                              ////
#bit A1= portA.1                        ////
#bit A2= portA.2      
#bit A3= portA.3
signed int count,i,d,k;
int up()
      {
         if(A1==0)
            {
               delay_ms(100);
               while(A1==0)
               continue;
               delay_ms(10);
               return 0;
            }
      }
int down()
      {
         if(A2==0)
            {
               delay_ms(150);
               while(A2==0)
               continue;
               delay_ms(10);
               return 0;
            }
      }
void push_key()                ////
      {
        if(up()==0)
          {
            ++count;   //dem so lan bam nut
            if(count>99)count=99;
          };
        if(down()==0)    //nut o chan B2 duoc nhan
          {
            --count;   //dem so lan bam nut
            if(count<0)count=0;
          };
        printf(lcd_putc,"%u",count);
        delay_ms(10);
      }

   int chose()
      {   
         if(A3==0)
            {
               delay_ms(100);
               while(A3==0)
               continue;
               delay_ms(10);
               return 0;
            }
          
      }

   void main()
      {  

         set_tris_a(0b00001110);
         lcd_init();
         lcd_gotoxy(9,1);     // cot 9 hang 1
         lcd_putc("Menu controler");
         lcd_gotoxy(1,2);
         lcd_putc("K=");
         lcd_gotoxy(3,2);
         if(k==0)lcd_putc("0");        // hien gia tri trong lan truoc
         else printf(lcd_putc,"%i",k);
         lcd_gotoxy(7,2);
         lcd_putc("I=");
         lcd_gotoxy(9,2);
         if(i==0)lcd_putc("0");
         else printf(lcd_putc,"%i",i);
         lcd_gotoxy(13,2);
         lcd_putc("D=");
         lcd_gotoxy(14,2);
         if(d==0)lcd_putc("0");
         else printf(lcd_putc,"%i",i);// hien thi so khai man hinh LCD
         lcd_gotoxy(3,2);         
          //lcd_send_byte(0,0x0A);
          lcd_send_byte(0,0x0E);          //con tro nhap nhay
         while(up()==0||down()==0)
            push_key();
         if(chose()==0)
            {
               write_eeprom(0x01,count);   //luu gia tri vao eeprom
               k=read_eeprom(0x01);     //
               lcd_gotoxy(9,2);
               lcd_send_byte(0,0x0E);  //nhap nhay con tro
               while(up()==0||down()==0)  //chinh gia tri
                  push_key();
               if(chose()==0)
                  {  
                     write_eeprom(0x02,count);     //chuong trinh su dung 3 vong
                     i=read_eeprom(0x02);          // lap while de lua chon menu
                     lcd_gotoxy(14,2);         
                     lcd_send_byte(0,0x0E);
                     while(up()==0||down()==0);
                        push_key();
                     if(chose()==0)
                           {  
                              write_eeprom(0x03,count);
                              d=read_eeprom(0x03);
                              lcd_gotoxy(3,2);
                              lcd_send_byte(0,0x0E); 
                            }
                  }
             }
      }
ElecTel vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn