Thông báo

Collapse
No announcement yet.

Cần giúp đỡ về đọc adc của mega32

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

  • Cần giúp đỡ về đọc adc của mega32

    mình viết đoạn chương trình đọc dữ liệu qua ADC của mega32

    code dọc adc:
    unsigned int ADC_doc(unsigned char kenh)
    {

    ADMUX=0X40;// CHON NGUON SO SANH LA NGUỒN NGOÀI TẠI CHÂN 31
    ADMUX|=kenh;//CHON KENH
    delay_us(10);
    ADCSRA|=ADEN;
    ADCSRA|=ADSC; //ADSC = 1: start
    while ((ADCSRA & ADIF)==0);
    ADCSRA|=ADIF;
    delay_ms(100);
    return ADCW;
    }

    //================================================== ===============
    đoạn code gọi ADC và hiển thị lên lcd
    }
    lcd_clear();
    k=ADC_doc(R_CENTER);
    doi_5so(k);
    lcd_gotoxy(0,0);
    lcd_putsf("doc adc R_CENTER");
    for(i=0;i<5;i++)
    {
    lcd_gotoxy(i,1);
    data[i]=data[i]+'0';
    lcd_putchar(data[i]);
    }
    delay_ms(5000);
    ctrinh con doi_5so

    void doi_5so(unsigned int dlieu)
    {
    unsigned char i;
    for(i=0;i<5;i++)
    {
    data[i]=dlieu%10;
    dlieu=dlieu/10;
    }
    }

    Các bác xem còn thiếu hay sai gì nữa không mà em thây nó hiện lên lcd những con số không đúng.
    em có đo chân tại ngõ vào(R_CENTER) của avr thì thấy có điện áp thay đổi nhưng nó vẫn hiển thị một con số nhất định không thay đổi.
    Rồi tự nhiên bây giờ nó chỉ hiện toàn số 0 mặc dù điện áp ở chân vào của nó có thay đổi

    Các bác xem giúp em với. em cảm ơn nhiều!!!!

  • #2
    Chia sẻ cho bạn 1 cách đọc giá trị adc đưa ra hiển thị lcd cũng rất đơn giản nữa nè
    /************************************************** ***
    This program was produced by the
    CodeWizardAVR V2.03.4 Standard
    Automatic Program Generator
    © Copyright 1998-2008 Pavel Haiduc, HP InfoTech s.r.l.
    HP InfoTech, Development Tools for Microcontrollers, C Compilers, In-System Programmers

    Project :
    Version :
    Date : 14/01/2012
    Author :
    Company :
    Comments:


    Chip type : ATmega16
    Program type : Application
    Clock frequency : 8.000000 MHz
    Memory model : Small
    External RAM size : 0
    Data Stack size : 256
    ************************************************** ***/

    #include <mega16.h>
    unsigned char x,a,b,c;

    #asm
    .equ __lcd_port=0x18 ;PORTB
    #endasm
    #include <lcd.h>

    #include <delay.h>

    #define ADC_VREF_TYPE 0x00

    // Read the AD conversion result
    unsigned int read_adc(unsigned char adc_input)
    {
    ADMUX=adc_input | (ADC_VREF_TYPE & 0xff);
    // Delay needed for the stabilization of the ADC input voltage
    delay_us(10);
    // Start the AD conversion
    ADCSRA|=0x40;
    // Wait for the AD conversion to complete
    while ((ADCSRA & 0x10)==0);
    ADCSRA|=0x10;
    return ADCW;
    }


    void main(void)
    {
    PORTA=0x00;
    DDRA=0x00;

    PORTB=0x00;
    DDRB=0x00;

    PORTC=0x00;
    DDRC=0x00;

    PORTD=0x00;
    DDRD=0x00;

    TCCR0=0x00;
    TCNT0=0x00;
    OCR0=0x00;

    TCCR1A=0x00;
    TCCR1B=0x00;
    TCNT1H=0x00;
    TCNT1L=0x00;
    ICR1H=0x00;
    ICR1L=0x00;
    OCR1AH=0x00;
    OCR1AL=0x00;
    OCR1BH=0x00;
    OCR1BL=0x00;

    ASSR=0x00;
    TCCR2=0x00;
    TCNT2=0x00;
    OCR2=0x00;

    MCUCR=0x00;
    MCUCSR=0x00;

    TIMSK=0x00;

    ACSR=0x80;
    SFIOR=0x00;

    ADMUX=ADC_VREF_TYPE & 0xff;
    ADCSRA=0x83;

    lcd_init(16);

    while (1)
    {
    x=read_adc(0); // doc gia tri adc kenh 0
    a=x/100;
    b=(x/10)%10;
    c=x%10;
    lcd_gotoxy(0,0);
    lcd_putchar(a+48);
    lcd_putchar(b+48);
    lcd_putchar(c+48);
    };
    }
    Nhận làm mạch, ĐAMH sử dụng vđk Pic & AVR tại tp.HCM
    Liên hệ sđt: 0902.808.371

    Comment


    • #3
      cám ơn bạn đã góp ý,cái mình đang cần quan tâm là làm sao để đọc được adc, cái ctrinh của mình cũng hiển thị được rồi, nhưng mà không biết adc đã đọc được chưa, như mình đã nói ở trên, nó chỉ hiển thị được một số nhất định trong khi điện áp vào có sự thay đổi, lúc trước thì nó hiển thị lên một số cụ thể(nhưng vẫn không đúng) còn bây jo tự nhiên chỉ hiện lên toàn số 0, trong khi không có thay đổi gì cả.

      Comment


      • #4
        Chú ý chân AVCC, AREF của VDK đã nối lên VCC chưa? Mà tốt nhất là lấy đầu ra của biến trở nối vào chân ADC rồi chỉnh thử xem.
        Nhận làm mạch, ĐAMH sử dụng vđk Pic & AVR tại tp.HCM
        Liên hệ sđt: 0902.808.371

        Comment


        • #5
          cám ơn các bác đã góp ý, em đọc được rồi, không biết nguyên nhân từ đâu, tự nhiên sáng nay mở lên thi thấy nó đọc đúng.

          đời còn nhiều cái hên xung quanh cái xui, chịu khó tìm tòi ắt sẽ ra cái gì đó.........

          Comment

          Về tác giả

          Collapse

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

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

          Collapse

          • tuyennhan
            Trả lời cho Tiếng Anh cho người Việt
            bởi tuyennhan
            Cái thư sai ngay câu chào Dear sir mới đúng Hi chỉ dùng cho người quen , các vấn đề về kỹ thuật nó không trả lời hoặc nói loanh quanh tránh ảnh hưởng đến công ty .
            Giup1 người cần không giúp người không cần với lại văn mình vợ người nha đừng quên .
            Hôm qua, 07:44
          • vi van pham
            Trả lời cho Tiếng Anh cho người Việt
            bởi vi van pham
            Cám ơn những lời chúc tốt đẹp của em.

            Việc em làm giống như chê sếp dốt, chẳng những không có miếng xôi nào để ăn mà còn chịu nhiều trù dập lên bờ , xuống ruộng.

            Hãy tránh vết xe đổ của tui đi. Dành thời gian lo cho gia đình....
            Hôm qua, 02:00
          • nhathung1101
            Trả lời cho Tiếng Anh cho người Việt
            bởi nhathung1101
            Ngoại ngữ là không thể thiếu, nhất là làm việc với công nghệ.

            Nhưng học để tán gái hay để đọc datasheet, manual là chuyện cần quan tâm.

            Và đọc ở nguồn nào đáng tin cậy, chứ cứ lên tictok hay facebook học lỏm thì...
            22-02-2025, 22:18
          • dinhthuong80
            Trả lời cho Tiếng Anh cho người Việt
            bởi dinhthuong80
            Bác nói rất khách quan và chính xác. Ngoại ngữ là chìa khóa thăng tiến dù làm gì. Chả thế mà nay nước mình dạy tiếng Anh từ tiểu học.

            Nhớ hồi năm 2006 em ra Hải Phòng, Hải Dương tìm việc, thời đó ở Bình Dương lương công...
            22-02-2025, 14:51
          • dinhthuong80
            Trả lời cho Tiếng Anh cho người Việt
            bởi dinhthuong80
            Cảm ơn bạn, ĐT cũng có ý nghĩ như vậy.

            Thực ra, lỗi của hãng đó ( gọi là hãng vì không chỉ một model sản phẩm) là về phần cứng, ĐT tuy không biết về lập trình phần mềm nhưng cũng thấy rằng sẽ chẳng khó khăn gì đáng...
            22-02-2025, 14:39
          • dinhthuong80
            Trả lời cho Tiếng Anh cho người Việt
            bởi dinhthuong80
            Dạ, bác bảy mấy tuổi đời rồi cũng không kém bố cháu bao nhiêu. Tuổi nghề thì bác cũng đáng tuổi cha chú.

            Nhưng 2 điều trên thì chưa hẳn đã đáng quí và đáng tôn trọng bằng việc bác rất nhiệt tình chia sẻ kinh nghiệm chuyên...
            22-02-2025, 14:28
          • bqviet
            Trả lời cho Tiếng Anh cho người Việt
            bởi bqviet
            Đúng, nếu chú tâm thì chỉ cần mỗi tiếng Việt là đã khá đủ để làm đa số công việc thông thường, ở thời đại ngày nay khi tài liệu sách vở phương tiện thông tin liên lạc đã nhiều. Nhưng cũng chính ở thời nay giao lưu các nước nhiều...
            21-02-2025, 20:26
          • mèomướp
            Trả lời cho Tiếng Anh cho người Việt
            bởi mèomướp
            Dạ cháu nghĩ chú dinh... cứ mạnh dạn gửi thư đi ạ, chú có thể gửi bằng văn bản in chuyển phát nhanh sẽ có giá trị hơn. Vấn đề chưa hẳn là cần hãng làm gì đó, mà chỉ đơn giản là mình cảm thấy nhẹ lòng vì đã làm những việc bản...
            21-02-2025, 12:32
          • vi van pham
            Trả lời cho Tiếng Anh cho người Việt
            bởi vi van pham
            Những lần hắt hơi sổ mũi làm tôi mệt lã, phải dùng rượu uống để ngũ. Tôi cũng đang uống rượu 1 mình, viết vài dòng này cho em ( có lẽ dt chỉ bằng tuổi em tôi).

            Dinh thuong dang đi vào vết xe đổ của tôi. Càng chứng minh, có...
            20-02-2025, 21:31
          • bqviet
            Trả lời cho Hỏi về cách hàn linh kiện ( giúp tớ với )
            bởi bqviet
            Thiết nghĩ thi thoảng bác lên đây chia xẻ ít kinh nghiệm cũng vui rồi. Còn chuyện con người sinh lão bệnh tử là thường, sống cùng với quy luật đó thôi. Bqv nhớ trước đây bác từng kể về chuyện rang chì ô-xít bằng chảo để phục hồi bình điện, đấy cũng là thành quả đáng nể phục ở thời kỳ thiếu thốn đó.
            20-02-2025, 17:22
          Đang tải...
          X