View Single Post
Old 19-03-2008, 04:47 PM   #5
tungtot_vl
Đệ tử 6 túi
 
tungtot_vl's Avatar
 
Tham gia ngày: Jul 2007
Bài gửi: 154
:
Trích:
Nguyên văn bởi namqn View Post
Bạn nên cho biết phần cứng của bạn thiết kế ra sao, code của bạn viết như thế nào (không cần code chi tiết, chỉ cần chương trình chính, và các phần code liên quan đến đọc/ghi EEPROM).

Những câu hỏi trên của bạn liên quan đến nhiều vấn đề, không thể giải thích đơn giản bằng vài đoạn văn bản.

Thân,
cái này chỉ là từng đoạn chường trình thôi. anh coi có giúp gì được cho em không.

Code:
#include<18f4550.h>
#fuses HSPLL,NOWDT,NOPROTECT,NOLVP,NODEBUG,USBDIV,PLL5,CPUDIV1,VREGEN,NOBROWNOUT
#device 18F4550*=16 ADC=10
#use delay(clock=48000000)
#include<E:\595\font9moi.c>
#include<E:\595\font7.c>
#use rs232(baud=9600, xmit=PIN_C6, rcv=PIN_C7)
#priority rda
#use fast_io(a)
#byte porta=0x05
#use fast_io(b)
#byte portb=0x06
#use fast_io(c)
#byte portc=0x07
#use fast_io(d)

#byte portd=0x08
#use fast_io(e)
#byte porte=0x09
#define clk pin_b4
#define data pin_b5
#define lock pin_b6
//********** DIA CHI CAC EPPROM ************************************************
#define add1  0x06   // 30 byte
#define add2  0x25   // 34 byte
#define add3  0x49   // 80 byte
#define add4  0x9f   // 100 byte
#define b1    0x01
#define b2    0x02
#define b3    0x03
#define b4    0x04
//==================
      void giao_tiep();
               void viet_eeprom();
               void doc_eeprom1();
               void doc_eeprom2();
               void doc_eeprom3();
               void doc_eeprom4();
               void trabang();
#INT_RDA
void giao_tiep()
   {  int8 c;
      disable_interrupts(global);
      output_low(pin_b0); output_low(pin_b1); output_low(pin_b2); output_low(pin_b3);
      c = getc();
      putc(c);
      k=c;
      if(k==255)
        {
           viet_eeprom();
        }
      else { chu[s]=k; s++; delay_ms(500);}
      enable_interrupts(global);
   }
//****************************************************
 #INT_EEPROM
void viet_eeprom()
   {  int i,l,x;
      disable_interrupts(global);
     if(chu[0]==251)// chuoi 1
       {
         write_eeprom(b1,s);
         for(i=0;i<s;i++)  // s
          { write_eeprom(add1+i,chu[i]); }
       }
     if(chu[0]==252) // chuoi 2
       {
         write_eeprom(b2,s);
         for(i=0;i<s;i++)  // s
          { write_eeprom(add2+i,chu[i]); }
       }
     if(chu[0]==253)// chuoi 3
       {
         write_eeprom(b3,s);
         for(i=0;i<s;i++)  // s
          { write_eeprom(add3+i,chu[i]); }
       }
     if(chu[0]==254) // chuoi 4
       {
         write_eeprom(b4,s);
         for(i=0;i<s;i++)  // s
          { write_eeprom(add4+i,chu[i]); }
       }

      for(i=0;i<s+2;i++) {chu[i] = 10;}
      s=0;
      printf("W ");
      enable_interrupts(global);
   }
//****************************************************
void doc_eeprom1()
   {  int i,l;
      disable_interrupts(global);
      for(i=0;i<f1;i++)
        {
          l = read_eeprom(add1+i);
          chu[i] = l;
        }
      enable_interrupts(global);
      printf("C1 ");
   }
//**********************************************************
 void doc_eeprom2()
   {  int i,l;
      disable_interrupts(global);
      for(i=0;i<f2;i++)
        {
          l = read_eeprom(add2+i);
          chu[i] = l;
        }
      enable_interrupts(global);
      printf("C2 ");
   }
//****************************************************
void doc_eeprom3()
   {  int i,l;
      disable_interrupts(global);
      for(i=0;i<f3;i++)
        {
          l = read_eeprom(add3+i);
          chu[i] = l;
        }
      enable_interrupts(global);
      printf("C3 ");
   }
//**********************************************************
 void doc_eeprom4()
   {  int i,l;
      disable_interrupts(global);
      for(i=0;i<f4;i++)
        {
          l = read_eeprom(add4+i);
          chu[i] = l;
        }
      enable_interrupts(global);
      printf("C4 ");
   }
//====================


void main()
   {
      set_tris_b(0);
      set_tris_a(0);
      set_tris_c(0);
      set_tris_e(0);
      set_tris_d(0);
      output_b(0);
      output_e(16);
      enable_interrupts(INT_eeprom);
      enable_interrupts(INT_RDA);
      enable_interrupts(global);
      printf("v ");
      delay_ms(3000);
      while(true)
        {
         // printf("/");
           f1 = read_eeprom(b1);  f2 = read_eeprom(b2);
           f3 = read_eeprom(b3);  f4 = read_eeprom(b4);
           doc_eeprom1();
            trabang();
           doc_eeprom2();
            trabang();
           doc_eeprom3();
             trabang();
           doc_eeprom4();
             trabang();
            trabang1();
            dichtrai1();

          }
   }

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