Thông báo

Collapse
No announcement yet.

Mạch thu/phát mã DTMF bằng MT8880

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

  • Mạch thu/phát mã DTMF bằng MT8880

    Chủ đề này tập hợp các mạch thu/phát mã DTMF bằng MT8880.
    Rất mong các anh xây dựng luồng này, là nơi tổng hợp các mạch, các đoạn code điều khiển IC MT8880.


  • #2
    Có thể dùng PIC loại C18 để thay thế con MT8880
    Cũ người mới ta!

    Comment


    • #3
      Nguyên văn bởi phanbobo
      Có thể dùng PIC loại C18 để thay thế con MT8880
      Anh trình ý tưởng cho em tham khảo với.
      em có đọc một số project nhưng người ta luôn khuến cáo là mình có thể làm theo họ, nhưng họ không chịu trách nhiệm về độ tin cậy. Nên có nên vậy không? tại sao lại dùng PIC18 mới có thể làm được? hay ý anh bảo dùng 2 PWM độc lập rồi cộng lại? như vậy cũng phải thiết kế mạch lọc tương đối tốt ở sau?

      Comment


      • #4
        Em chưa làm về cái này nên chỉ nêu ra để xây dựng box, vậy mong các anh chị hưởng ứng ( nhất là các anh Giaosucan,yesme@,linh308, hvh...---đặc biệt anh Giaosucan phải chuộc tội bởi đã lừa em "Giaosucan" là con gái, hihi.. may mà em chưa lộ tung tích của mình).
        Mạch điện sau là ghép nối tiêu biểu giữa MT8880 và uC

        Comment


        • #5
          day la đoạn code viết cho DTMF ghép với 51
          void init()
          {
          delay (5000);
          P2=0xFF;delay(200);
          CS=0;
          delay(200);
          P2=0xE0;delay(200);
          CS=0;
          delay(200);
          P2=0xE0;delay(200);
          CS=0;
          delay(200);
          P2=0xE8;delay(200);
          CS=0;
          delay(200);
          P2=0xE0;delay(200);
          CS=0;
          delay(200);
          P2=0xFF;delay(200);
          CS=0;
          delay(200);
          CS=1;
          delay(200);
          }

          //================================================== ===================

          void ngat()
          {
          P2=0xE4;
          delay(200);
          CS=0;
          delay(7000);
          CS=1;
          delay(200);
          }

          //================================================== ===================

          void setup()
          {
          P2=0xE9;
          delay(200);
          CS=0;
          delay(200);
          P2=0xEB;
          delay(200);
          CS=0;
          delay(200);
          CS=1;
          delay(200);
          }

          //================================================== ===================

          void mot()
          {
          setup();

          P2=0xC1;
          delay(200);
          CS=0;
          delay(15000);
          CS=1;
          delay(200);

          ngat();
          }

          //================================================== ===================

          void hai()
          {
          setup();

          P2=0xC2;
          delay(200);
          CS=0;
          delay(15000);
          CS=1;
          delay(200);

          ngat();
          }

          //================================================== ===================

          void ba()
          {
          setup();

          P2=0xC3;
          delay(200);
          CS=0;
          delay(15000);
          CS=1;
          delay(200);

          ngat();
          }

          //================================================== ===================

          void bon()
          {
          setup();

          P2=0xC4;
          delay(200);
          CS=0;
          delay(15000);
          CS=1;
          delay(200);

          ngat();
          }

          //================================================== ===================

          void nam()
          {
          setup();

          P2=0xC5;
          delay(200);
          CS=0;
          delay(15000);
          CS=1;
          delay(200);

          ngat();
          }

          //================================================== ===================

          void sau()
          {
          setup();

          P2=0xC6;
          delay(200);
          CS=0;
          delay(15000);
          CS=1;
          delay(200);

          ngat();
          }

          //================================================== ===================

          void bay()
          {
          setup();

          P2=0xC7;
          delay(200);
          CS=0;
          delay(15000);
          CS=1;
          delay(200);

          ngat();
          }
          SHARE KHO PHIM LỚN

          Comment


          • #6
            Cảm ơn sự đóng góp của anh.
            Nhưng sơ đồ nối chân giữa 8951 và MT8880 như thế nào?
            Hàm delay(x) có phải là delay x uS không?
            Hihi...anh giải thích từng đoạn lệnh cho em với, đọc mãi mà vẫn chưa hiểu.

            Comment


            • #7
              bạn này thấy cái avatar con gái nên lại nghĩ tui là con gái đây
              hỏng hết hàng
              người trong ảnh ko phải tui ,
              Last edited by giaosucan; 16-02-2006, 01:28.
              SHARE KHO PHIM LỚN

              Comment


              • #8
                Sơ đồ mạch thì cũng giống với datasheet thôi nhưng chân 18,19 thì ta để không ,
                4 chân dữ liệu của MT nối với chân của VDK (cổng P2)
                còn chân ngắt IRQ ,RW,RSO .v.thì nối với các chân VDK
                để chạy dc này thi bạn nên đọc kĩ datasheet của con MT888C , đầu tiên là phải khởi tạo nó (giống như khởi tạo LCD í)
                con ham ngat la thuc hiện chức năng ngắt (tức là làm nó ko phát tần số nũa)
                các hàm 1,2,3,4..v.v là dk cho DTMF phát ra những tần số khác nhau t/ư vơi dũ liệu
                D0->Sơ đồ mạch thì cũng giống với datasheet thôi nhưng chân 18,19 thì ta để không ,
                4 chân dữ liệu của MT nối với chân của VDK (cổng P2)
                còn chân ngắt IRQ ,RW,RSO thì nối với 1 chân VDK
                để chạy dc này thi bạn nên đọc kĩ datasheet của con MT888C , đầu tiên là phải khởi tạo nó (giống như khởi tạo LCD í)
                con ham ngat la thuc hiện chức năng ngắt (tức là làm nó ko phát tần số nũa)
                các hàm 1,2,3,4..v.v là dk cho DTMF phát ra những tần số khác nhau t/ư vơi dũ liệu đưa ra D0-D4
                bạn nên dùng con OSC để kiểm tra ,khi mạch chạy đưa que đo vào chânn TONE OUT
                sẽ nhìn thấy dạng sóng ra hình sin nhưng ko đều (trông giống ngọn nút nhấp nhô)
                vì con naỳp hát đa tần xung ra có tần cao tần thấp
                cón cái hàm delay thực chất là vòng lặp thôi
                void delay(unsigned long time)
                {
                unsigned long i;
                for (i=1;i<time;i++)
                {}
                }
                Last edited by giaosucan; 16-02-2006, 01:25.
                SHARE KHO PHIM LỚN

                Comment


                • #9
                  Để nối với đường dây điện thoại cần có thêm mạch giữ đường dây ( nhấc máy), mạch chuyển đổi 2 to 4 dây, biến áp nữa.
                  Nhà sản xuất chuyên nghiệp các sản phẩm OEM cho gia dụng và công nghiệp.

                  Biến tần
                  Máy giặt
                  Lò vi sóng
                  Bếp từ.
                  Tủ lạnh.
                  Điều hòa

                  Comment


                  • #10
                    Nguyên văn bởi MinhHa
                    Để nối với đường dây điện thoại cần có thêm mạch giữ đường dây ( nhấc máy), mạch chuyển đổi 2 to 4 dây, biến áp nữa.
                    Vậy anh post sơ đồ cho em học hỏi với.Hihi...cảm ơn anh nhiều

                    Comment


                    • #11
                      Sau đây là một số mạch để giao tiếp với PSTN. Đã được kiểm nghiệm kỹ càng, lắp là chạy. Nếu dùng biến áp khác loại cần diều chỉnh lại tham số của mạch 2 to 4 để giame echo nhé.
                      Cung cấp biến áp chất lượng cao cho mạch này. Giá 2USD/1pcs
                      Nhà sản xuất chuyên nghiệp các sản phẩm OEM cho gia dụng và công nghiệp.

                      Biến tần
                      Máy giặt
                      Lò vi sóng
                      Bếp từ.
                      Tủ lạnh.
                      Điều hòa

                      Comment


                      • #12
                        To GSC:em thay 16 hàm(một,hai, ba..) kia bằng một hàm như sau có thể hay hơn:
                        Phat(unsigned char i)
                        {
                        setup();

                        P2= 0xC0 | i ;
                        delay(200);
                        CS=0;
                        delay(15000);
                        CS=1;
                        delay(200);

                        ngat();
                        }
                        Last edited by thaithutrang; 16-02-2006, 15:34.

                        Comment


                        • #13
                          Vừa định viết thì thấy BA. OK đấy .Để chắc ăn hơn nên thay (i & 0x0F) | 0xC0.Để không bị điều khiển sai nếu vô tình để i > 15 .
                          Last edited by thaithutrang; 16-02-2006, 15:34.
                          Nhà sản xuất chuyên nghiệp các sản phẩm OEM cho gia dụng và công nghiệp.

                          Biến tần
                          Máy giặt
                          Lò vi sóng
                          Bếp từ.
                          Tủ lạnh.
                          Điều hòa

                          Comment


                          • #14
                            To anh MH: anh gửi cho em cái sch vào mail: thaithutrang85@yahoo.com.vn nhé. Em cảm ơn nhiều, sau đó em sẽ post lên bởi trị số linh kiện mờ quá. Tỷ số biến áp là 1:1 hả anh?
                            Em chứng minh công thức trên nhé, coi như bài tập về nhà của em.

                            Comment


                            • #15
                              Sử dụng C18F để có khả năng xử lý nhận tín hiệu DTMF thông qua mạch lọc số, chip C16 không dủ khả năng đáp ứng thời gian thực. Có thể sử dụng dsPIC tuy nhiên giá thành sẽ cao. Mạch sử dụng C18 rất đơn giản nhưng độ ổn định thì chưa được kiểm nghiệm.Tuy nhiên mạch phát thì rất tốt (tôi đã dùng mạch phát kiểu DAC thang điện trở này với 8051 và chạy rất OK)!theo tôi chúng ta nên dùng mạch kết hợp 8870 và MCU làm mạch thu phát do 2 nguyên nhân:
                              - 8880 quá đắt so với 8870( 45N so với 15N)
                              - Kiểu gì trong mạch cũng dùng MCU thì tội gì không tận dụng!
                              Cũ người mới ta!

                              Comment

                              Về tác giả

                              Collapse

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

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

                              Collapse

                              Đang tải...
                              X