Thông báo

Collapse
No announcement yet.

Cần giúp đỡ ADC

Collapse
X
 
  • Lọc
  • Giờ
  • Show
Clear All
new posts

  • Cần giúp đỡ ADC

    mình viết code ADC hiển thị trên LCD mà khi biên dịch máy báo lỗi thiếu ";" mà tìm hoài chỗ đó ko thấy thiếu ";" nào.Mình có gửi file đính kèm,ae nào có thể biên dich ra file hex và chỉ ra lỗi giúp mình đc ko
    Attached Files

  • #2
    Bạn định đánh đố nhau à? Nếu bạn dùng keilc báo thiếu báo lỗi thì có chỉ số dòng ngay bên cạnh đó, nếu là trình biên dịch dạng comand line thì nó còn báo lỗi chi tiết hơn là có chỉ số dòng với chỉ số kỹ tự nữa cơ. Phải để ý báo lỗi chứ bạn vứt huỵch toẹt thế này thì có giời tìm được.

    Comment


    • #3
      PHP Code:
      #include<at89x51.h>
      //#include<THUVIEN_LCD16X2.C>
      #define ADD_A P1_0
      #define ADD_B P1_1
      #define ADD_C P1_2
      #define START P1_4
      #define ALE   P1_3
      #define RS    P1_5
      #define RW    P1_6
      #define W     P1_7
      #define DATA_LCD P0
      #define DATA_ADC P2

      unsigned int KQ7;
      unsigned char TR,CH,DV;/*Khai báo những thằng này thì không dùng đi dùng {TR,CH,DV}7*/
      code char HANG1[]=" DH SP KY THUAT";// Đặt cận cho mảng chỗ này làm gì? mà có nhất thiết phải để unsigned char ko?
      code char HANG2[]="NHIET DO DO:  ";// Có thể dùng từ khóa code thay cho const
      void delay();
      void ghilcd();
      void ghichuoi();
      void setup_lcd();
      void TS_GM();
      void HT_LCD();
      void CD_ADC();
      void docADC_7();

      void delay(unsigned int x)
      {
         
      unsigned int y;
         ;
         for(
      y=0;y<x;y++)
            ;
      }

      void TS_GM()
      {
         
      DV7=(KQ7%10)+0x30;
         
      CH7=(KQ7/10%10)+0x30;
         
      TR7=(KQ7/100)+0x30;
         if(
      TR7==0x30)
         {
            
      TR7=' ';
            if(
      CH7==0x30)
               
      CH7=' ';
         }
      }

      void ghilcd(bit chonRSunsigned char DL_LCD)
      {
         
      DATA_LCD=DL_LCD;
         
      RS=chonRS;
         
      RW=0;
         
      E=1;
         
      E=0;
         
      delay(500);      
      }

      void HT_LCD()
      {
         
      ghilcd(0,0x80);
         
      ghilcd(1,TR7);
         
      ghilcd(1,CH7);
         
      ghilcd(1,DV7);
      }

      void ghichuoi(char *chuoi)
      {
         
      char ch;
         ;
         while((
      ch=*chuoi))
         {
            
      ghilcd(1,ch);
            
      chuoi++;
         }
      }

      void setup_lcd()
      {
         
      delay(10000);
         
      ghilcd(0,0x38);
         
      ghilcd(0,0x38);
         
      ghilcd(0,0x38);

         
      ghilcd(0x0C);// Ghi LCD nhận 2 tham số sao ở đây lại chỉ có 1?
         
      ghilcd(0x06);
         
      ghilcd(0x01);
      }

      void CD_ADC()
      {
         
      ALE=START=1;
         
      ALE=START=0;
         
      delay(500);
      }

      void docADC_7()
      {
         
      ADD_A=1;
         
      ADD_B=1;
         
      ADD_C=1;
         
      CD_ADC();
         
      KQ7=DATA_ADC;
      }

      void main()
      {
         
      ADD_A=1;
         
      ADD_B=1;
         
      ADD_C=1;
         while(
      1)
         {
            
      unsigned char i;
            ;
            
      KQ7=0;
            for(
      i=0;i<10;i++)
            {
               
      CD_ADC();
               
      delay(100);
               
      KQ7=KQ7+P2;
               
      KQ7=KQ7/10;
               
      TS_GM();
               
      HT_LCD();
               
      delay(1000);
            }
         }   

      Bạn để ý cái style khi viết 1 chút để cho dễ theo dõi. Cố gắng viết mỗi lệnh trên 1 dòng chứ đừng chen chúc nhau kiểu đó.

      Comment


      • #4
        thanks bạn,mình đã sửa lại chỗ TR,CH,DV và hàm ghi lcd,những keil c báo lỗi *** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS

        Comment


        • #5
          máy báo warning mình nghĩ mấy cái hàm con ADC lỗi,ko bik sửa sao đây
          Build target 'Target 1'
          compiling adc.c...
          linking...
          *** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
          SEGMENT: ?PR?_GHICHUOI?ADC
          *** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
          SEGMENT: ?PR?SETUP_LCD?ADC
          *** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
          SEGMENT: ?PR?DOC_ADC_7?ADC
          *** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
          SEGMENT: ?CO?ADC

          Comment


          • #6
            Chẳng sao cả đó chỉ là "cảnh báo" ý là nó nhắc nhở những hàm đó được đinh nghĩa nhưng không được sử dụng -> có nghĩa là bạn đang lãng phí rom của VSL có thế thôi. Mà chắc cái này đi thuê? thấy viết code cũng không dở lắm nhưng mà câu hỏi thì có vẻ chẳng đâu vào với đâu cả.

            Comment


            • #7
              cái này học trên lớp viết lại chứ thuê mượn j đâu,

              Comment

              Về tác giả

              Collapse

              kendevil Tìm hiểu thêm về kendevil

              Bài viết mới nhất

              Collapse

              Đang tải...
              X