Thông báo

Collapse
No announcement yet.

giao tiếp máy tinh adc 10bit

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

  • giao tiếp máy tinh adc 10bit

    em đang gặp vấn đề trong mô phỏng giao tiếp máy tính .em dịnh dung pic để dọc adc rồi vẽ lên máy tính bằng phần mềm gCom . gCOM - Phần mềm truyền - nhận dữ liệu với cổng COM .phần mềm này yêu cầu khung dữ liệu gởi lên phải theo dúng format: 'ch'+'data'+' ' . em làm mãi mà nó không nhận dũ liệu . các a/c/e có thể giúp mình sủa code được không. code cuả mình : laptrinh .emxin cảm ơn nhiều !

  • #2
    #include <16f877A.h>
    #device *=16 ADC=10 //KHAI BAO ADC 10 BIT
    #FUSES NOWDT, HS, NOPUT, NOPROTECT, NODEBUG, BROWNOUT, LVP, NOCPD, NOWRT
    #use delay(clock=20000000)
    #use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7,bi ts=9)
    //baud là khai báo TOC DO baud rate
    //parity là khai báo check bit
    //xmit là khai báo chân TX
    //Rcv là khai báo chân RX
    //bits LA SO BIT DU LIEU TREN MOT KHUNG
    int16 value;
    void main() {

    setup_adc_ports(AN0); //Khoi tao che do cho bo ADC.
    setup_adc(ADC_CLOCK_INTERNAL);//THOI GIAN LAY MAU BANG XUNG CAU HE THONG
    delay_us(10);
    do {
    value = read_adc();
    // ====Truyen len may tinh
    delay_us(50);
    putc('1'); //du lieu goi len theo dúng format: 'ch'+'data'+' '
    printf("%lu", value); //de doc duoc bang phan mem gCOM
    putc(' '); //
    } while(true);

    }

    Comment


    • #3
      mình đã làm được vấn đề truyền dữ liệu lên máy tính.nhưng gặp phải một vấn đề khác .
      code :#include <16f877A.h>
      #include <def_877a.h>
      #device *=16 ADC=10
      #FUSES NOWDT, HS, NOPUT, NOPROTECT, NODEBUG, BROWNOUT, LVP, NOCPD, NOWRT
      #use delay(clock=20000000)
      #use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7)
      #include <lcd_4bit.c>
      int16 temp;
      int8 nghin,tram,chuc,donvi;
      //==================================
      //==================================
      void convert_bcd(int16 x)
      {
      nghin = x / 1000 + 0x30;
      temp = x % 1000;
      tram = temp / 100 + 0x30;
      temp = temp % 100;
      chuc = temp / 10 + 0x30;
      donvi = temp % 10 + 0x30;
      }
      //===================================
      void main() {
      setup_adc_ports(AN0);
      Set_ADC_channel (0) ;
      setup_adc(ADC_CLOCK_INTERNAL);
      delay_us(10);

      do {
      temp = read_adc();
      convert_bcd((int16)temp);// ====Truyen len may tinh
      putc('1');
      putc(nghin);
      putc(tram);
      putc(chuc);
      putc(donvi);
      putc(' ');

      } while(true);

      }
      thời gian thực thi các câu lệnh in đậm delay khá lâu .làm cho thời gian lấy mẫu adc tăng lên.với tín hiệu dưới 10hz thì được.còn lên thì càng méo .(ko thỏa định lý nyquist). mình cần đọc tín hiệu có dải tần từ 0.5hz tới 100hz.
      a/c/e nào có giải pháp giúp mình ko ạ .
      xin cảm ơn !

      Comment

      Về tác giả

      Collapse

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

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

      Collapse

      • nguyendinhvan
        Trả lời cho Vấn đề về tốc độ quay
        bởi nguyendinhvan
        Sử dụng động cơ servor, hoặc lắp thêm một cái encoder vào động cơ bước. Encoder sẽ kiểm soát động cơ có quay hoặc đứng im.
        Hôm qua, 19:50
      • Andrea14
        Vấn đề về tốc độ quay
        bởi Andrea14
        Chào mọi người,

        Tôi muốn mô phỏng sự thay đổi các mùa bằng cách từ từ nghiêng một quả địa cầu 16 inch bằng một động cơ bước nhỏ. Một động cơ bước khác sẽ quay quả địa cầu theo thời gian thực. Hệ thống truyền động...
        12-12-2025, 12:42
      • bqviet
        Trả lời cho Đấu tắt điện cho máy tính bảng
        bởi bqviet
        Bqv cáo lỗi vì chưa đủ khả năng diễn giải để người đọc hiểu. Người làm kỹ thuật sâu đôi khi như thế đó. Về việc nạp pin không vào dù cell mới, khả năng cái mạch quản lý đó đã hỏng - cũng chính là nguyên nhân đám cell cũ hỏng từ đầu.
        06-12-2025, 17:17
      • nguyendinhvan
        Trả lời cho Xin hỏi về mạch thu FM/AM trong catsette
        bởi nguyendinhvan
        Theo tôi, nó chỉ là cái Tuy- ê - nơ, hoặc là khối Trung Văn Tần, nó một phần trong cái Da đì ô thôi. Vì có thấy một chỗ có ba chân hàn, giiống như chân Cờ rít sờ tăng 455 ki nô hẹc. Còn khối Tuy ê nơ thì không nhìn thây cái Di ốt Va di cáp...
        05-12-2025, 19:59
      Đang tải...
      X