Giao tiêp giữa Vi đieău khieơn với IC chuyeđn dùng thu phát

Một phần của tài liệu Đồ án thiết kế và thi công mô hình điều khiển thiết bị qua điện thoại doc (Trang 56 - 61)

5. Giáo vieđn hướng dăn : Th.S TÁ COĐNG ĐỨC

3.5.6.Giao tiêp giữa Vi đieău khieơn với IC chuyeđn dùng thu phát

IC MT8888.

Múc tieđu thiêt kê

Viêt 2 chương trình con. Chương trình thứ nhât, gĩi là Transmit, đieău khieơn MT8888 phát moơt dãy sô được lưu trữ trong Ram từ ođ nhớ 40h đên ođ nhớ 45h moêi khi có nhân phím SwDial. Chương trình thứ 2, gĩi là Receiver, đĩc lieđn túc dữ lieơu nhaơn được từ MT8888 và cho hieơn thị ỏ 4 led kêt nôi ở port 1 khi nhân

Kêt nôi phaăn cứng

Hình 3 - 21 : Giao tiêp giữa Vi đieău khieơn và MT8888

Phaăn cứng giao tiêp được thiêt kê như tređn nhaỉm múc đích thử nghieơm vieơc giao tiêp giữa vi đieău khieơn với IC chuyeđn dùng thu phát DTMF. Mách

khuêch đái tín hieơu dùng opamp đeơ nađng bieđn đoơ cụa tín hieơu phát leđn và tín hieơu nhaơn xuông.

Nguoăn moơt chieău 24Vdc maĩc nôi tiêp với đieơn trở R100 (1k ohm) được sử dúng đeơ giạ laơp tín hieơu nguoăn từ toơng đài đưa tới. Nguoăn này cung câp cho máy đieơn thối (telephone) hốt đoơng. Khi nhâc tay thối, toơng trở DC cụa đieơn thối khoạng 300ohm, dòng đieơn cháy trong mách (I=24/(1000+300)=18.5mA) tương đương như nguoăn được cung câp từ toơng đài.

Khi ta nhâc tay thối leđn, nhân moơt phím tređn bàn phím cụa đieơn thối, tín hieơu DTMF phát ra từ mách đieơn beđn trong đieơn thối (đieơn thối đang đaịt ở chê đoơ Tone, khođng phại chê đoơ Pulse) được đưa đên biên áp ađm taăn thođng qua tú lieđn lác C121. Tín hieơu này cạm ứng tređn cuoơn dađy còn lái cụa biên áp, qua mách khuêch đái roăi đưa đên ngõ vào DTMF _IN cụa MT8888, tín hieơu này sẽ được MT8888 ghi nhaơn và giại mã thành mã 4 bit nhị phađn trong thanh ghi nhaơn cụa MT8888. Vi đieău khieơn đĩc thanh ghi dữ lieơu nhaơn cụa MT8888 và cho hieơn thị ra led kêt nôi ở port 1.

Khi vi đieău khieơn đieău khieơn MT8888 phát tín hieơu DTMF cụa moơt sô thì tái ngõ DTMF_OUT cụa MT8888 xuât hieơn tín hieơu DTMF tương ứng cụa mã sô. Tín hieơu này được đưa qua mách khuêch đái, đên cuoơn dađy biên áp ađm taăn, và xuât hieơn beđn cuoơn dađy còn lái cụa biên áp. Nêu lúc này, ta nhâc tay thối leđn, sẽ nghe được tín hieơu DTMF trong loa cụa tay thối.

Các đieơn trở kéo leđn beđn ngoài ở port 0 khođng caăn đên, vì MT8888 được kêt nôi như là moơt boơ nhớ dữ lieơu ngoài, lúc này vieơc truy xuât MT8888 được thực hieơn bởi leơnh MOVX, port 0 được sử dúng như là bus dữ lieơu/ địa chư đa hợp 8 bit neđn đã có các đieơn trở kéo leđn beđn trong.

Vieơc truy xuât MT8888 được đieău khieơn qua 2 đường RD\ và WR\. Khi 2 đường này ở mức khođng tích cực, dữ lieơu tređn bus cụa port 0 khođng làm ạnh hưởng đên hốt đoơng cụa MT8888.

Viêt chương trình

Chương trình chính

1. Khởi táo MT8888.

2. Náp dãy sô muôn phát vào Ram.

3. Kieơm tra phím SwDial, nêu có nhân thì gĩi chương trình Transmit.

4. Kieơm tra phím SwRec, nêu có nhân thì gĩi chương trình Receiver.

5. Quay veă bước 2.

Chương trình Transmit

1. Đĩc dữ lieơu caăn phát từ Ram.

Chương trình Receiver

1. Đĩc dữ lieơu từ thanh ghi nhaơn cụa MT8888. 2. Hieơn thị ra Led.

Chương trình thực hieơn yeđu caău tređn được viêt như sau:

RS_0 Bit P2.2

SwDial Bit P3.4

SwRec Bit P3.2

Org 000h

Mov 40h,#7 ;Lưu mã cụa sô 7.

Mov 41h,#2 ;Lưu mã cụa sô 2.

Mov 42h,#2 ;Lưu mã cụa sô 2. (adsbygoogle = window.adsbygoogle || []).push({});

Mov 43h,#7 ;Lưu mã cụa sô 7.

Mov 44h,#7 ;Lưu mã cụa sô 7.

Mov 45h,#10 ;Lưu mã cụa sô 0.

Lcall IntMT ;Chương trình khởi táoMT8888.

Back11: Mov R3,#50 ;Biên đêm (chông nạy).

Back12: Jb SwDial,Back21 ;Kieơm tra SwDial

Djnz R3,Back12 ;Có nhân, kieơm tra lái 50 laăn.

Back13 Mov R3,#50 ;Chờ nhạ phím

Back14: Jnb SwDial,Back13

Djnz R3,Back14

Lcall Transmit ;Gĩi chương trình phát.

Back21: Mov R3,#50

Back22: Jb SwRec,EndCheck ;Kieơm tra phím SwRec Djnz R3,Back22 ;Có nhân, kieơm tra lái 50 laăn.

Back23: Mov R3,#50

Back24: Jnb SwRec,Back23 ;Chờ nhạ phím. Djnz R3,Back24 ;Kieơm tra lái 50 laăn.

Lcall Receiver ;Gĩi chương trình nhaơn mã. Endcheck: Sjmp Back11 ;Quay veă thực hieơn từ đaău. ;=======================================================

;WriteCR : Ghi dữ lieơu trong thanh ghi A vào thanh ghi đieău khieơn cụa MT8888. ;=======================================================

WriteCR: Setb RS_0

Movx @R0,A

RET

;====================================================== ;WriteDigit : Ghi dữ lieơu trong thanh ghi A vào thanh ghi phát cụa MT8888. ;=======================================================

WriteDigit: Clr RS_0

RET

;====================================================== ;ReadStatus : Đĩc dữ lieơu thanh ghi tráng thái cụa MT8888 vào thanh ghi A ;======================================================= ReadStatus: Setb RS_0 Movx A, @R0 Anl A,#0F0h RET ;====================================================== ;ReadDigit : Đĩc dữ lieơu thanh ghi nhaơn cụa MT8888 vào thanh ghi A . ;======================================================= ReadDigit: Clr RS_0 Movx A, @R0 Anl A,#0F0h RET ;======================================================= ;IntMT : Khởi táo MT8888.

;======================================================= IntMT: Lcall ReadStatus ;Đĩc thanh ghi tráng thái.

Mov A,#00h

Lcall WriteCR ;CRA=0000b

Mov A,#00h

Lcall WriteCR ;CRA=0000b

Mov A,#08h (adsbygoogle = window.adsbygoogle || []).push({});

Lcall WriteCR ;CRA=1000b

Mov A,#00h

Lcall WriteCR ;CRB=0000b

Lcall ReadStatus

Mov A,#00001101b ;Select CRB,IQR\,DTMF, ToneOut

Lcall WriteCR ;CRA=1101b

Mov A,#00000000b

Lcall WriteCR ;CRB=0000b , Burt mode

RET

;======================================================= ;Transmit : Phát dãy sô lưu trong Ram từ ođ nhớ 40h đên 45h.

;=================================================== Transmit: Mov R0,#40h ;Địa chư baĩt đaău dãy sô.

Mov R2,#6 ;Sô đêm (6 sô).

Back1: Mov A,@R0 ;Lây dữ lieơu.

Lcall WriteDigit ;Phát dữ lieơu.

Jnb Acc.1,Back2 ;Kieơm tra cờ phát=1?.

Inc R0 ;Taíng địa chư Ram

Djnz R2,Back1 ;Quay veă phát sô kê tiêp

;nêu chưa đụ 6 sô.

RET

; ===================================================

;Receiver : Nhaơn lieđn tiêp các sô nhaơn được từ MT8888, cho hieơn thị ra 4 led

; kêt nôi ở port 1

; Chương trình chư kêt thúc khi nhaơn được mã 0Bh (mã cụa phím ‘*’).

;======================================================= Receiver: Lcall ReadStaus ;Đĩc thanh ghi tráng thái.

Jnb Acc.2,Receiver ;Kieơm tra cờ nhaơn cụa MT8888.

;Cờ nhaơn baỉng [1].

Lcall ReadDigit ;Đĩc thanh ghi nhaơn.

Mov P1,A ;Hieơn thị ra led

Cjne A,#0Bh,Receiver ;So sánh mã kêt thúc.

RET ;Thoát nêu đúng mã kêt thúc. (adsbygoogle = window.adsbygoogle || []).push({});

END

Một phần của tài liệu Đồ án thiết kế và thi công mô hình điều khiển thiết bị qua điện thoại doc (Trang 56 - 61)