Thông báo

Collapse
No announcement yet.

Mt8880-89c51 : Here!

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

  • Mt8880-89c51 : Here!

    mình đang làm mạch đồ án tôt nghiệp. cần giao tiếp MT8880 với 89C51. đã làm khá nhiều mạch nhưng vẩn ko thể chạy.
    So đồ mạch kêt nối như sau: (cũng đã làm y nhw datasheet nhung ko chạy)


    và đây là chương trình:
    chương trình phát tone: (phat so dien thoai 0976789201)

    #include <c:\Rigel\Reads51\Include\sfr51.inc>
    #include <c:\Rigel\Reads51\Include\Rc51regs.inc>
    ;=========================== p1.7 không dùng, mặc định cho nó là 1
    CS BIT P1.6
    ORG 000h
    mov scon,#52h
    mov tmod,#21h


    lcall delay ; tao tre 1s truoc khi khoi tao MT8880
    LCALL INIT ; ham khoi tao MT8880,
    LCALL SET_UP ; Cài đặt chế độ hoạt động cho MT

    MOV A,#10 ;phát số 0
    LCALL Transmit_DTMF ; chương trình con phát số
    LCALL DELAY_250ms ; goi chuong trinh con delay 250 mili giay

    MOV A,#9 ; phát số 9
    LCALL Transmit_DTMF
    LCALL DELAY_250ms

    MOV A,#7
    LCALL Transmit_DTMF
    LCALL DELAY_250ms

    MOV A,#6
    LCALL Transmit_DTMF
    LCALL DELAY_250ms


    MOV A,#7
    LCALL Transmit_DTMF
    LCALL DELAY_250ms

    MOV A,#8
    LCALL Transmit_DTMF
    LCALL DELAY_250ms


    MOV A,#9
    LCALL Transmit_DTMF
    LCALL DELAY_250ms


    MOV A,#2
    LCALL Transmit_DTMF
    LCALL DELAY_250ms


    MOV A,#10 ;phát số 0
    LCALL Transmit_DTMF
    LCALL DELAY_250ms


    MOV A,#1
    LCALL Transmit_DTMF

    ljmp $


    ;khoi dong MT
    INIT:
    MOV P1,#11111111B ; mac dinh cho P1.7=1 , luc dau CS=1
    MOV P1,#10111111B ; tich cuc,CS=0 ,doc thanh ghi trang thai
    ; ta da thuc hien xong buoc 1 trong datasheet
    MOV P1,#11100000B ; chuan bi xuat du lieu ra thanh ghi dk
    MOV P1,#10100000B ; tich cuc chip , CS=0
    ; ta da thuc hien xong buoc 2trong datasheet
    MOV P1,#11100000B
    MOV P1,#10100000B
    ; ta da thuc hien xong buoc 3trong datasheet
    MOV P1,#11101000B
    MOV P1,#10101000B
    ; ta da thuc hien xong buoc 4trong datasheet
    MOV P1,#11100000B
    MOV P1,#10100000B
    ; ta da thuc hien xong buoc 5trong datasheet
    MOV P1,#11111111B
    MOV P1,#10111111B
    ; ta da thuc hien xong buoc 6trong datasheet
    RET

    ;thiết lập chế độ làm việc cho MT8880
    SET_UP:
    MOV P1,#11101101B
    MOV P1,#10101101B ; b1) xuat 1101 ra thanh ghi dk CRA
    MOV P1,#11100000B
    MOV P1,#10100000B ; b2) xuat 0000 ra thanh ghi dk CRB
    ; Cac lenh tren dinh che do cho MT8880
    RET

    ;================================================
    ;chuơng trình con phát số chúa trong nybble thấp của thanh chưa A
    Transmit_DTMF:
    ; Ta phai doc thanh ghi trang thai , de biet digit truoc do da phat xong chua
    MOV P1,#11111111B ; chuan bi doc thanh ghi trang thai
    LOOP1:
    CLR CS ; doc thanh ghi trang thai
    mov c,p1.1 ; luu bit 1 cua thanh ghi trang thai vao C
    SETB CS ; ngung doc thanh ghi trang thai
    JNc LOOP1 ; cho bit1 cua thanh ghi status set len 1
    ; neu qua khoi loop1 , MT8880 san sang
    ; phat digit ke tiep
    ANL A,#00001111B ; giu nybble thap
    ORL A,#11000000B ; nybble cao la cac chan dk,nyble thap la
    ; digit can phat di
    MOV P1,A ; chuan bi ghi digit ra thanh ghi data phat
    CLR CS ; tich cuc CS
    SETB CS ; ngung chon chip MT8880
    RET

    delay_250mS:
    mov r2,#250
    djnz r2,$
    ret

    ;HAM DELAY 1s
    DELAY:
    mov r4,#100
    lap100:
    MOV TH0,#HIGH(-9126)
    MOV TL0,#LOW(-9126)
    SETB TR0
    JNB TF0,$
    CLR TR0
    CLR TF0
    djnz r4,lap100
    RET
    END


    chuong trinh thu tone (update sau)
    Có ai làm MT8880 rôi chỉ giáo giúp vơi!
    Last edited by tonthatnhan; 15-11-2008, 15:09.
    |

  • #2
    Tôi đã từng làm mạch ĐK và cảnh báo qua điện thoại rồi, nhưng dùng con MT8888. Phần ĐK thì tốt, nhưng phần gọi đi thì không chuẩn lắm, nó rất dễ bị nhiễu, nếu mạch của tôi mới khởi động lên thì gọi đi rất tốt, nhưng để 1 thời gian sau thì nó xuất tone ra khong chuẩn nủa. Kinh nghiệm thế này, bạn cứ làm phần thu hoặc phần phát trước. Để kiểm tra phần phát tone bạn ra ngoài mua 1 bộ hiển thi số ĐT của trung quốc khoản 60k, khi bạn đấu với ngõ ra của mạch, nếu phát đúng tone thì nó sẽ hiển thi số. Có khi nó hiển thị ra nhưng chưa chắc đã gọi đi được. Tôi đang khắc phục điểm này. Đề tài này mặc dù đã hoàn thành nhưng đưa vào sử dụng thì chưa được vì tính ổn định chưa cao. Lúc trước mình làm có cả phần giao tiếp mày tính để quản lý thời gian và số điện thoại gọi đi nữa. Chúc bạn sớm thành công.

    Comment


    • #3
      Nguyên văn bởi vxk Xem bài viết
      Tôi đã từng làm mạch ĐK và cảnh báo qua điện thoại rồi, nhưng dùng con MT8888. Phần ĐK thì tốt, nhưng phần gọi đi thì không chuẩn lắm, nó rất dễ bị nhiễu, nếu mạch của tôi mới khởi động lên thì gọi đi rất tốt, nhưng để 1 thời gian sau thì nó xuất tone ra khong chuẩn nủa. Kinh nghiệm thế này, bạn cứ làm phần thu hoặc phần phát trước. Để kiểm tra phần phát tone bạn ra ngoài mua 1 bộ hiển thi số ĐT của trung quốc khoản 60k, khi bạn đấu với ngõ ra của mạch, nếu phát đúng tone thì nó sẽ hiển thi số. Có khi nó hiển thị ra nhưng chưa chắc đã gọi đi được. Tôi đang khắc phục điểm này. Đề tài này mặc dù đã hoàn thành nhưng đưa vào sử dụng thì chưa được vì tính ổn định chưa cao. Lúc trước mình làm có cả phần giao tiếp mày tính để quản lý thời gian và số điện thoại gọi đi nữa. Chúc bạn sớm thành công.
      mình đang chuyển sang dùng Mt8888, ko cần dùng chân IRQ noi vao ngat ( INT) có được không nhỉ. bạn có thể code mình 1 đoạn làm ví dụ đựoc không, vi du setup MT8888 chẵng hạn., có sơ đồ mắc chân MT8888 voi 8951 thì cho mình luôn nha. tonthatnhan@yahoo.com. cảm ơn nhiều!
      |

      Comment


      • #4
        Nguyên văn bởi vxk Xem bài viết
        Tôi đã từng làm mạch ĐK và cảnh báo qua điện thoại rồi, nhưng dùng con MT8888. Phần ĐK thì tốt, nhưng phần gọi đi thì không chuẩn lắm, nó rất dễ bị nhiễu, nếu mạch của tôi mới khởi động lên thì gọi đi rất tốt, nhưng để 1 thời gian sau thì nó xuất tone ra khong chuẩn nủa. Kinh nghiệm thế này, bạn cứ làm phần thu hoặc phần phát trước. Để kiểm tra phần phát tone bạn ra ngoài mua 1 bộ hiển thi số ĐT của trung quốc khoản 60k, khi bạn đấu với ngõ ra của mạch, nếu phát đúng tone thì nó sẽ hiển thi số. Có khi nó hiển thị ra nhưng chưa chắc đã gọi đi được. Tôi đang khắc phục điểm này. Đề tài này mặc dù đã hoàn thành nhưng đưa vào sử dụng thì chưa được vì tính ổn định chưa cao. Lúc trước mình làm có cả phần giao tiếp mày tính để quản lý thời gian và số điện thoại gọi đi nữa. Chúc bạn sớm thành công.
        Em cũng đang làm đề tài này nhưng làm tới làm lui 3 tuần rồi mà vẫn im re không quay so được, nhờ các anh ai đã từng làm qua cho xin sơ đồ phần cứng kết nối MT8888 với 89C51 với, có thể chia sẽ thêm những kinh nghiệm ráp mạch này nữa em giờ rối quá làm rồi sữa đủ kiểu ma cũng không được gì?
        mail: nguyenminh.thuat@gmail.com

        ĐƯỜNG ĐI KHÓ,
        KHÔNG KHÓ VÌ NGĂN SÔNG CÁCH NÚI
        MÀ CHỈ SỢ LÒNG NGƯỜI NGẠI NÚI E SÔNG !

        Comment


        • #5
          hien gio em cung dang lam de tai bao dong qua mang dien thoai nhung ma gio toi phan quay so ra ngoai em khong b lam the nao ca.Em dung mt 8888 quay so ra ngoai nhung khi nao do xung tu d0-d3 deu la 0001.Em cung khong biet phan chuong trinh em viet co dung khong nua.Vay ban nao da tung lam co the giup do mih va co the thi cho minh lun code de minh kiem tra.Cam on.

          Comment

          Về tác giả

          Collapse

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

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

          Collapse

          Đang tải...
          X