Chào mừng các bạn đến với forum lớp DTVT_K7A CNTT Thái Nguyên
Bạn hãy "Đăng nhập" để tham gia cùng chúng tôi

Join the forum, it's quick and easy

Chào mừng các bạn đến với forum lớp DTVT_K7A CNTT Thái Nguyên
Bạn hãy "Đăng nhập" để tham gia cùng chúng tôi

Bạn có muốn phản ứng với tin nhắn này? Vui lòng đăng ký diễn đàn trong một vài cú nhấp chuột hoặc đăng nhập để tiếp tục.

Top posters

banmun08 (721)
[HƯỚNG DẪN KỸ THUẬT] GIAO TIẾP ADC0804-DAC080 Bar_left[HƯỚNG DẪN KỸ THUẬT] GIAO TIẾP ADC0804-DAC080 Bar[HƯỚNG DẪN KỸ THUẬT] GIAO TIẾP ADC0804-DAC080 Bar_right 
Toanlt_GP (368)
[HƯỚNG DẪN KỸ THUẬT] GIAO TIẾP ADC0804-DAC080 Bar_left[HƯỚNG DẪN KỸ THUẬT] GIAO TIẾP ADC0804-DAC080 Bar[HƯỚNG DẪN KỸ THUẬT] GIAO TIẾP ADC0804-DAC080 Bar_right 
tiendientu343 (344)
[HƯỚNG DẪN KỸ THUẬT] GIAO TIẾP ADC0804-DAC080 Bar_left[HƯỚNG DẪN KỸ THUẬT] GIAO TIẾP ADC0804-DAC080 Bar[HƯỚNG DẪN KỸ THUẬT] GIAO TIẾP ADC0804-DAC080 Bar_right 
hany_mitu (281)
[HƯỚNG DẪN KỸ THUẬT] GIAO TIẾP ADC0804-DAC080 Bar_left[HƯỚNG DẪN KỸ THUẬT] GIAO TIẾP ADC0804-DAC080 Bar[HƯỚNG DẪN KỸ THUẬT] GIAO TIẾP ADC0804-DAC080 Bar_right 
TranTuyen_BG (275)
[HƯỚNG DẪN KỸ THUẬT] GIAO TIẾP ADC0804-DAC080 Bar_left[HƯỚNG DẪN KỸ THUẬT] GIAO TIẾP ADC0804-DAC080 Bar[HƯỚNG DẪN KỸ THUẬT] GIAO TIẾP ADC0804-DAC080 Bar_right 
Capkama (271)
[HƯỚNG DẪN KỸ THUẬT] GIAO TIẾP ADC0804-DAC080 Bar_left[HƯỚNG DẪN KỸ THUẬT] GIAO TIẾP ADC0804-DAC080 Bar[HƯỚNG DẪN KỸ THUẬT] GIAO TIẾP ADC0804-DAC080 Bar_right 
VDuy_NĐ (260)
[HƯỚNG DẪN KỸ THUẬT] GIAO TIẾP ADC0804-DAC080 Bar_left[HƯỚNG DẪN KỸ THUẬT] GIAO TIẾP ADC0804-DAC080 Bar[HƯỚNG DẪN KỸ THUẬT] GIAO TIẾP ADC0804-DAC080 Bar_right 
Minh (257)
[HƯỚNG DẪN KỸ THUẬT] GIAO TIẾP ADC0804-DAC080 Bar_left[HƯỚNG DẪN KỸ THUẬT] GIAO TIẾP ADC0804-DAC080 Bar[HƯỚNG DẪN KỸ THUẬT] GIAO TIẾP ADC0804-DAC080 Bar_right 
tieuthantien_3t (173)
[HƯỚNG DẪN KỸ THUẬT] GIAO TIẾP ADC0804-DAC080 Bar_left[HƯỚNG DẪN KỸ THUẬT] GIAO TIẾP ADC0804-DAC080 Bar[HƯỚNG DẪN KỸ THUẬT] GIAO TIẾP ADC0804-DAC080 Bar_right 
Hangvt_gc (171)
[HƯỚNG DẪN KỸ THUẬT] GIAO TIẾP ADC0804-DAC080 Bar_left[HƯỚNG DẪN KỸ THUẬT] GIAO TIẾP ADC0804-DAC080 Bar[HƯỚNG DẪN KỸ THUẬT] GIAO TIẾP ADC0804-DAC080 Bar_right 

Latest topics

» Game dân gian thuần việt 2014 ra mắt phiên bả
by banmun08 Fri May 02, 2014 5:38 pm

» Ứng dụng Bóng đá trực tuyến - Chia sẻ mới dàn
by meocontt89 Fri May 02, 2014 3:44 pm

» Bài bào cáo mạch bấm chuông trò chơi
by tuyenbk2009 Sun Apr 27, 2014 10:48 pm

» Tư vấn học công nghệ thông tin - lập trình
by wyuru Thu Apr 24, 2014 5:17 pm

» Hero Chibi - Khai mở máy chủ S10 - SonGoKu
by Poligon121 Wed Apr 16, 2014 2:15 pm

» mạch đông hồ vạn niên sư dụng DS1307
by ttd2506 Mon Apr 14, 2014 9:45 pm

» Game8 phát 1000 GiftCode mừng máy chủ mới của
by Poligon121 Mon Apr 14, 2014 3:07 pm

» HIỆP KHÁCH 4U.COM OPEN GAME HỒI 10H00 SÁNG
by anata Fri Apr 11, 2014 1:34 pm

» Đua tốp Mu Thần Tài nhận iphone iphone 5s
by muthantai Sun Apr 06, 2014 12:26 pm

» Hiệp khách 4u.com OPEN game hồi 10h00 chủ nh
by anata Sat Apr 05, 2014 7:48 am


    [HƯỚNG DẪN KỸ THUẬT] GIAO TIẾP ADC0804-DAC080

    tiendientu343
    tiendientu343
    Đại Tướng
    Đại Tướng


    Gender : Nam Số bài : 344
    Birthday : 03/01/1990
    Họ và tên : Bùi Duy Tiến Đến từ : Hải Dương
    Ước mơ : CEO
    Status : Biết lái máy bay ! Biết lái xe tăng.

    [HƯỚNG DẪN KỸ THUẬT] GIAO TIẾP ADC0804-DAC080 Empty [HƯỚNG DẪN KỸ THUẬT] GIAO TIẾP ADC0804-DAC080

    Bài gửi by tiendientu343 Thu Oct 06, 2011 9:07 pm

    Sau đây là tiếp tục loạt bài hướng dẫn kỹ thuật giúp các bạn có thể dễ dàng tiếp cận với các kỹ thuật.
    Như các bạn thấy Vi điều khiển chỉ làm việc với tín hiệu số trong khi đó các vật xung quanh muốn giao tiếp với VĐK là ko thể. Vì muốn giao tiếp với môi trường bên ngoài phải thông qua bộ cảm biến mà tín hiệu cảm biến là tương tự.
    do đó ta sẽ dùng IC chuyển đổi tín hiệu tương tự thành số ADC0804 để giao tiếp với VĐK hình dạng và cách mắc của nó như sau:
    [HƯỚNG DẪN KỸ THUẬT] GIAO TIẾP ADC0804-DAC080 Adc0804


    Với chức năng cụ thể các chân như sau:
    1. Chân CS( chip select) : Đây là chân chọn chíp, tích cực ở mức 0( ở mức 0 mới cho phép hoạt động)
    2. Chân RD(read) là chân đọc Tín hiệu đầu vào tích cực mức thấp. Khi CS=0 và nếu có 1 xung từ cao xuống thấp ở chân RD thì dữ liệu 8 bit sẽ được đưa ra khỏi bộ đệm( Hiểu nôm na là khóa dữ liệu).
    3. Chân WR(write) chân ghi. Chân này dùng để báo cho ADC bắt đầu quá trình chuyển đổi. khi CS=0 WR bắt đầu chuyển đổi với một tín hiệu từ thấp lên cao.
    Lưu ý : lượng thời gian cần thiết để chuyển đổi phụ thuộc vào tần số đưa đến chân CLK IN và CLK R
    4. Chân INT là chân ngắt báo cho VĐK biết khi chuyển đổi đến bít thứ 8( chuyển đổi xong dữ liệu.

    ======================================================
    Các chân còn lại các bạn có thể tham khảo cách mắc như trên và datasheet của nó.
    Còn con DAC chỉ đơn giản là lấy dữ liệu và lập trình ra nó thôi.ko phải lập trình gì cả.
    Còn về lập trình mình sẽ hướng dẫn các bạn cụ thể như sau:
    Đây là sơ đồ mạch:

    [HƯỚNG DẪN KỸ THUẬT] GIAO TIẾP ADC0804-DAC080 Adc
    Đây là mạch cứng. Còn lập trình nó như sau:

    Nguyên lý điều khiển ADC0804 như sau:
    khi chân CS=0 thì cho phep tích cực.
    và khi có 1 xung từ thấp nên cao thì cho phép chuyển đổi.
    Cứ chuyển đổi xong 1 bít thì ngắt ADC để kiểm tra bít thứ 7( chân INT) nếu chuyển đổi xong 8 bít thì chân INT=0;
    từ đó ta có code[chuyển đổi như sau:

    Code:

    // ham chuyen doi gia trij ADC
    void conv(){
            CS = 0;                      //CS muc 0 dc chon
            viet = 0;                      //WR=0 bat dau chuyen doi
            viet= 1;                      //Make WR high
            CS = 1;                      //CS=1 ko cho phep
            while(NGAT);                //Bao la ket thuc chuyen doi du lieu
    }

    Tương tự để hiển thị mình sẽ dùng phương pháp quét led. nếu bạn nào chưa rõ về phương pháp quét led có thế tham khảo thêm trong Hướng dẫ kỹ thuật quét led đã có trong diễn đàn.

    Còn đây là code mình viết để điều khiển cho cả mạch nhé.
    Mạch có sơ đồ khối như sau:
    [HƯỚNG DẪN KỸ THUẬT] GIAO TIẾP ADC0804-DAC080 Khoi
    Còn dưới đây là code của cả bài :
    Code:

    //Hand in hand group
    // DTVTk7a
    --------------------------------------*/
    /*-------khai bao thu vien----------------*/
    #include<reg52.h>
    #include<stdio.h>
    #include<intrins.h>
    /*--------Dinh danh cac cong--------------*/
    #define adc_port P1
    #define dac_port P0
    //======================================
    /* khai bao cac chan dieu khien ADC0804--*/
    sbit doc = P3^0;  // chan so2
    sbit viet = P3^1;   // chan so3
    sbit NGAT = P3^2;   //chan so 5
    sbit CS  = P3^3;   // chan so 1
    /*--------ma led 7 doan anot chung-------------------------------------*/
    unsigned char M[10]={0XC0,0XF9,0XA4,0XB0,0X99,0X92,0X82,0XF8,0X80,0X90}; 
    /* mang dieu khien 74ls138-------------------*/
    unsigned char dk[6]={0x80,0x90,0xA0,0xB0,0xC0,0xD0};  // dieu khien 138
    unsigned char donvi,chuc,tram,adc_val;
    long num,j;
    void tre(void) // tre quet 6 led thoi gian quet la 6.6ms /1 led
      {
      TMOD=0x10;
      TH1=58935/256;
      TL1=58935%256;
      TR1=1;
      while(!TF1) ;
      TF1=0;
      TR1=0;
      }
    void hienthi(void) // chuong trinh quet led
        {
         P0=adc_val;
         tram=(adc_val)/100;
          chuc=(adc_val%100)/10;
          donvi=(adc_val%100)%10;
          P3=dk[0];
          P2=0x88;// hien chu A
          tre();
          P3=~dk[0];
          P2=0xFF;
          P3=dk[1];
          P2=M[tram];
          tre();
          P3=~dk[1];
          P2=0xFF;
          P3=dk[2];
          P2=M[chuc];
          tre();
          P3=~dk[2];
          P2=0xFF;
          P3=dk[3];
          P2=M[donvi];
          tre();
          P3=~dk[3];
          P2=0xFF;
          P3=dk[4];
          P2=0x9C;
          tre();
          P3=~dk[4];
          P2=0xFF;
          P3=dk[5];
          P2=0xC6;
          tre();
          P3=~dk[5];
          P2=0xFF;

       
        }
    // ham chuyen doi gia trij ADC
    void conv(){
            CS = 0;                      //CS muc 0 dc chon
            viet = 0;                      //WR=0 bat dau chuyen doi
            viet= 1;                      //Make WR high
            CS = 1;                      //CS=1 ko cho phep
            while(NGAT);                //Bao la ket thuc chuyen doi du lieu
    }
    void read(){
            CS = 0;                     
            doc = 0;                      //
            adc_val = adc_port;          //doc cong ra adc
          dac_port=adc_val;
            doc = 1;                      //xuat du lieu o cong ra vao vdk
            CS = 1;                      //
    }
    // ham tao tre
    void main(void)
      {
      while(1)
      {
      conv();
      read() ;
      hienthi();
      }
      }
    /* ung voi moi xung tu cao xuong thap o chan WR,RD thi du lieu duoc chuyen doi
    va xuat ra chan cua VDK-----------------------*/
    Chúc anh em thành công!

      Hôm nay: Wed May 08, 2024 5:35 am