Nhaơp mã đieău khieơn từ bàn phím

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 101)

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

5.11.Nhaơp mã đieău khieơn từ bàn phím

Begin

End F0=0

Count=3

Ram= Địa chư đaău cụa vùng Ram lưu trữ mã phím.

Time=5s Kieơm tra phím nhân.

Cờ C=1 T=A (lưu tám). Kieơm tra phím nhân.

Cờ C=0

T= mã phím Lưu T vào Ram.

Taíng vị trí lưu trữ trong Ram. Count=Count-1.

Count=0 Giại mã 3 phím nhaơn được. Lưu trữ 3 mã sau giại mã vào 2 ođ nhớ: IndexEQ và Event.

F0=1 Time=Time-1 Time=0 Y Y Y Y N N N Y N N

Input Output:

- Cờ F0=[1] nêu nhaơn thành cođng mã đieău khieơn, 3 sô cụa mã đieău khieơn lưu vào 2 ođ nhớ IndexEQ và Event. IndexEQ chứa 2 sô chư chư sô thiêt bị, Event chứa mã cụa chư thị (mã mở thiêt bị, taĩt thiêt bị, xem tráng thái).

- Cờ F0=[0] nêu vieơc nhaơn mã khođng thành cođng, do nhân phím ‘*’ hoaịc quá thời gian quy định.

5.12. Khởi táo MT8888

Input Output:

- Các thođng sô thích hợp được ghi vào các thanh ghi đieău khieơn cụa MT8888 đeơ thiêt đaịt chê đoơ hốt đoơng cho MT8888.

5.13. Nhaơp mã đieău khieơn từ đieơn thối Input Input

Output:

- Cờ F0=[1] nêu nhaơn thành cođng mã đieău khieơn, 3 sô cụa mã đieău khieơn lưu vào 2 ođ nhớ IndexEQ và Event. IndexEQ chứa 2 sô chư chư sô thiêt bị, Event chứa mã cụa chư thị (mã mở thiêt bị, taĩt thiêt bị, xem tráng thái).

- Cờ F0=[0] nêu vieơc nhaơn mã khođng thành cođng, do nhân phím ‘*’ hoaịc quá thời gian quy định.

Begin

End

Đĩc thanh ghi tráng thái MT8888. Ghi giá trị 00h vào thanh ghi CRA Ghi giá trị 08h vào thanh ghi CRA Ghi giá trị 00h vào thanh ghi CRB Đĩc thanh ghi tráng thái MT8888. Ghi giá trị 0Dh vào thanh ghi CRA (Select CRB, IQR\, DTMF, Tone

O )

Ghi giá trị 00h vào thanh ghi CRB (Dual Tone, Burst Mode)

Begin

End F0=0

Count=3

Ram= Địa chư đaău cụa vùng Ram lưu trữ mã phím.

Time=5s Đĩc thanh ghi tráng thái cụa MT8888 vào A (adsbygoogle = window.adsbygoogle || []).push({});

Bít A.2=1

A=mã phím ‘*’ Lưu A vào Ram.

Taíng vị trí lưu trữ trong Ram. Count=Count -1

Count=0

Lưu trữ 3 mã nhaơn được vào 2 ođ nhớ: IndexEQ và Event.

F0=1 Time=Time-1 Time=0 Y Y Y N N N Y N

Đĩc thanh ghi dữ lieơu nhaơn cụa MT8888 vào A

5.14. Nhaơp 6 mã DTMF

Input Output:

-Cờ F0=[1]: hoàn tât vieơc nhaơn 6 phím, mã 6 phím nhaơn được lưu trữ trong các ođ nhớ Temp0 đên Temp5.

Begin

End F0=0

Count=6

Ram= Địa chư đaău cụa vùng Ram lưu trữ mã phím.

Time=5s Đĩc thanh ghi tráng thái cụa MT8888 vào A

Bít A.2=1

A=mã phím ‘*’ Lưu A vào Ram.

Taíng vị trí lưu trữ trong Ram. Count=Count -1

Count=0

Lưu trữ 6 mã nhaơn được vào 6 ođ nhớ: Temp0 -->Temp5

F0=1 Time=Time-1 Time=0 Y Y Y N N N Y N

Đĩc thanh ghi dữ lieơu nhaơn cụa MT8888 vào A

-Cờ F0=[0]:khođng hoàn tât, do nhân phím ‘*’hoaịc quá thời gian quy định (5s).

5.15. Ghi 1 byte dữ lieơu vào AT24C08

5.16. Ghi 6 sô cụa maơt mã vào AT24C08 Input : Input :

- 6 sô cụa maơt mã naỉm trong vùng Ram có địa chư được khai báo từ PW0 đên PW5.

Output

Begin

End

Táo đieău kieơn Start. Náp Slave Address vào A với (adsbygoogle = window.adsbygoogle || []).push({});

chư thị Write (R/W=0). Ghi Byte chứa trong A vào AT24C08.

C=0

C=0 Y

Náp Word Address vào A Ghi Byte chứa trong A vào AT24C08.

Náp Byte Data vào A Ghi Byte chứa trong A vào AT24C08.

C=0

Táo đieău kieơn Stop. Y

Y

N

N

Begin

End Táo đieău kieơn Start.

Count=6

Náp Slave Address vào A với chư thị Write (R/W=0). Ghi Byte chứa trong A vào AT24C08.

C=0

C=0 Y

Náp Word Address vào A Ghi Byte chứa trong A vào AT24C08.

Náp sô thứ nhât vào A Ghi Byte chứa trong A vào AT24C08.

C=0

Táo đieău kieơn Stop. Y Y N N N Count=Count-1 Count=0 Y N

5.17. Đĩc 6 sô cụa maơt mã từ AT24C08

Begin

End Táo đieău kieơn Start.

Count=6

Náp Slave Address vào A với chư thị Write (R/W=0).

Ghi Byte chứa trong A vào C=0

C=0 Y

Náp Word Address vào A Ghi Byte chứa trong A vào AT24C08.

Náp Slave Address vào A với chư thị Read (R/W=1).

Ghi Byte chứa trong A vào AT24C08. C=0 (adsbygoogle = window.adsbygoogle || []).push({});

Táo đieău kieơn Stop. Y Y N N N Lưu trữ A vào vùng nhớ (PW0-PW5) Count=Count-1 Count=0 Y N

Táo đieău kieơn Acknowlege.

Táo đieău kieơn No Acknowlege. Đĩc 1 Byte từ AT24C08 vào A

Input Output :

- 6 sô maơt mã naỉm trong vùng Ram có địa chư được khai báo từ PW0 đên PW5.

5.18. Phát moơt cađu thođng báo

Input :

- Địa chư cụa ođ nhớ chứa địa chư cụa đốn thođng báo đaău tieđn chứa trong con trỏ DPTR.

Output

5.19. Nhaơn mã đieău khieơn từ Remote Input Input

Output :

Begin

End Đĩc địa chư cụa đốn thođng báo tái địa

chư chứa trong DPTR vào A

Ghi địa chư ra các đường địa chư cụa ISD Táo xung kích cho ISD phát đốn thođng báo.

A=0FFh

EOM=1

EOM=0

Taíng giá trị con trỏ DPTR

Y Y N N N Y

- Cờ F0=[1] nêu nhaơn thành cođng mã đieău khieơn, 3 sô cụa mã đieău khieơn lưu vào 2 ođ nhớ IndexEQ và Event. IndexEQ chứa 2 sô chư chư sô thiêt bị, Event chứa mã cụa chư thị (mã mở thiêt bị, taĩt thiêt bị, xem tráng thái).

- Cờ F0=[0] nêu vieơc nhaơn mã khođng thành cođng, do nhân phím ‘*’ hoaịc quá thời gian quy định.

Begin

End F0=0

Count=3

Ram= Địa chư đaău cụa vùng Ram lưu trữ mã phím. Time=5s IR=0 Nhaơn 1 mã từ Remote, lưu vào A A= mã phím ‘*’ Lưu A vào Ram.

Taíng vị trí lưu trữ trong Ram. Count=Count-1.

Count=0 Giại mã 3 phím nhaơn được. Lưu trữ 3 mã sau giại mã vào 2 ođ nhớ: IndexEQ và Event.

F0=1 Time=Time-1 Time=0 Y Y Y N N N Y N

5.20. Phát tín hieơu DTMF cụa moơt dãy sô (adsbygoogle = window.adsbygoogle || []).push({});

Input :

-Địa chư đaău tieđn cụa vùng Ram lưu trữ các sô caăn phát được chứa trong ođ nhớ R0

-Sô lượng sô muôn phát chứa trong R2.

Output

5.21. Xử lý mã đieău khieơn Input : Input :

- Chư sô thiêt bị chứa trong ođ nhớ IndexEQ, Chư thị chứa trong ođ nhớ Event : IndexEQ=01h :Thiêt bị sô 1.

IndexEQ=02h :Thiêt bị sô 2. . . . .

IndexEQ=09h :Thiêt bị sô 9. IndexEQ=10h :Thiêt bị sô 10.

Begin

End

Đĩc giá trị cụa ođ nhớ có địa chư chứa trong ođ nhớ R0 vào A.

Ghi dữ lieơu chứa trong A vào thanh ghi phát cụa MT8888.

Đĩc g.trị cụa thanh ghi tráng thái cụa MT8888 vào A. A.1=1 R2=0 R0=R0+1 R2=R2-1 Y Y N N

IndexEQ=11h :Thiêt bị sô 11. . . . .

IndexEQ=16h :Thiêt bị sô 16. Event=01h :Mở thiêt bị.

Event=02h :Taĩt thiêt bị.

Event=03h :Kieơm tra tráng thái thiêt bị.

Output Begin End. IndexEQ=02h IndexEQ=xyh IndexEQ=15h IndexEQ=16h N N N Y Y Y Y IndexEQ=01h N Y

Xử lí trang thái thiêt bị 01

Xử lí trang thái thiêt bị 02

Xử lí trang thái thiêt bị xy

Xử lí trang thái thiêt bị 15

Xử lí trang thái thiêt bị 16

CHƯƠNG 6. GIAO TIÊP VỚI MÁY TÍNH

Giao tiêp giữa máy tính với các thiêt bị ngối vi là vieơc trao đoơi dữ lieơu giữa máy tính với moơt hay nhieău thiêt bị ngối vi ( với mođi trường ngoài). Đeơ có theơ thực hieơn cođng vieơc này baỉng máy tính trước hêt caăn thiêt phại có môi quan heơ giữa máy tính với thê giới beđn ngoài thođng qua các coơng giao tiêp . Trong lĩnh vực kỹ thuaơt, vieơc giao tiêp giữa máy tính và thiêt bị ngối vi có theơ giao tiêp baỉng 3 phương thức sau:

Giao tiêp baỉng Slot-Card.

Giao tiêp qua coơng song song (coơng máy in) Giao tiêp qua coơng nôi tiêp (coơng COM)

Tuy có nhieău phương pháp giao tiêp với thiêt bị ngối vi được trình bày ở tređn, nhưng nhóm thực hieơn đeă tài chĩn phương pháp giao tiêp song song qua coơng máy in LPT1, vì phương pháp này đơn giạn, deê thiêt kê phaăn cứng, tôc đoơ truyeăn nhanh, thích hợp truyeăn dữ lieơu trong khoạng cách gaăn…

6.1. Giới thieơu veă coơng máy in

6.1.1. Vài nét cơ bạn veă coơng ghép nôi máy in (adsbygoogle = window.adsbygoogle || []).push({});

Coơng máy in hay thường gĩi là giao dieơn Centronics, vieơc nôi với coơng máy in, máy tính được thực hieơn thođng qua oơ caĩm 25 chađn ở phía sau máy tính. Nhưng đađy khođng chư là choê nôi với máy in mà khi sử dúng vào múc đích đo lường và đieău khieơn thì vieơc ghép nôi cũng có theơ thực hieơn qua oơ caĩm này. Qua coơng này dữ lieơu được truyeăn đi song song, do vaơy tôc đoơ truyeăn dữ lieơu cũng đát đên mức đáng keơ. Tât cạ các đường dăn cụa coơng máy in đeău tương thích với TTL. Chính sự tương thích này giúp cho vieơc giao tiêp trở neđn đơn giạn và deê dàng hơn. Nghĩa là chúng đeău cung câp mức đieơn áp naỉm giữa 0V đên 5V.

Do đó ta caăn lưu ý là các đường dăn vào coơng này khođng được đaịt mức đieơn áp quá lớn. Vì vaơy khi ta tiên hành ghép nôi chúng với nhau ta phại chú ý tới những qui taĩc an toàn sau:

Chư được ghép nôi khi máy tính đang ở tráng thái ngaĩt đieơn. Các lôi vào chư được phép tiêp nhaơn đieơn áp giữa 0V và 5 V.

Các lôi ra khođng được phép ngaĩn mách hoaịc đâu nôi với các ngõ ra khác và các lôi ra khođng được phép nôi với các nguoăn tín hieơu đieơn áp khođng biêt rõ thođng sô.

Coơng máy in trong máy tính được ký hieơu baỉng LPT1 hoaịc LPT2, có toơng coơng 17 đường dăn dữ lieơu sô: bao goăm có 12 đường dăn ra và 5

đường dăn vào. Các đường dăn dữ lieơu từ D0 – D7 là những đường dăn moơt chieău, và là đường dăn ra. Các đường tín hieơu vào, ra có chôt. Sơ đoă chađn cụa coơng máy in được mođ tạ như sau:

Hình 6 - 1 : Sơ đoă chađn coơng máy in( Jack đực)

Hình 6 - 2 :Sơ đoă chađn coơng máy in( Jack cái)

Các chađn và đường dăn được mođ tạ như sau:

Bạng 6 - 1 : Bạng chức naíng các chađn coơng máy in

Chađn Ký hieơu Vào/ra Ý nghĩa Mức tác đoơng

1 STROBE Lôi ra Dữ lieơu đã được gửi ra Thâp

2 D0 Lôi ra Đường dữ lieơu, bit thứ 01 Ba tráng thái 3 D1 Lôi ra Đường dữ lieơu, bit thứ 02 Ba tráng thái 4 D2 Lôi ra Đường dữ lieơu, bit thứ 03 Ba tráng thái 5 D3 Lôi ra Đường dữ lieơu, bit thứ 04 Ba tráng thái 6 D4 Lôi ra Đường dữ lieơu, bit thứ 05 Ba tráng thái 7 D5 Lôi ra Đường dữ lieơu, bit thứ 06 Ba tráng thái 8 D6 Lôi ra Đường dữ lieơu, bit thứ 07 Ba tráng thái 9 D7 Lôi ra Đường dữ lieơu, bit thứ 08 Ba tráng thái

10 ACK Lôi vào Xác nhaơn Thâp

11 BUSY Lôi vào Máy in baơn Cao

12 PE Lôi vào Hêt giây Cao

13 SLCT Lôi vào Lựa chĩn Cao

14 AF Lôi ra Tự náp Cao

15 ERROR Lôi vào Loêi Cao

16 INIT Lôi ra Đaịt lái máy in Tháâp

17 SLCTIN Lôi ra Chĩn kieơu in Cao

19 GND Nôi đât 20 GND Nôi đât 21 GND Nôi đât 22 GND Nôi đât 23 GND Nôi đât 24 GND Nôi đât 25 GND Nôi đât

Do coơng máy in có 5 đường dăn lôi vào, nhờ vaơy mà vieơc baĩt tay giữa máy tính và các thiêt bị ngối vi được thực hieơn.

Trong 17 đường dăn tín hieơu thì có 5 vào, vì vaơy vieơc baĩt tay giữa máy tính và máy in được thực hieơn, chẳng hán như khi máy in khođng còn đụ choê trông trong boơ nhớ thì nó đưa đên máy tính moơt tráng thái (BUSY =1) tức là báo máy in đang baơn khođng neđn gởi dữ lieơu ra nữa.

6.1.2. Sự trao đoơi với các đường dăn tín hieơu

Các đường dăn tín hieơu cụa coơng máy in được saĩp xêp thành 3 thanh ghi: Thanh ghi dữ lieơu, thanh ghi tráng thái và thanh ghi đieău khieơn. Thođng qua 3 thanh ghi này cho phép trao đoơi thođng tin giữa mođi trường ngoài và boơ nhớ máy tính.

Muôn truy xuât dữ lieơu qua coơng máy in thì ta phại bieẫt được địa chư cơ bạn cụa các thanh ghi dữ lieơu gĩi là địa chư cơ bạn cụa coơng máy in.

Coơng máy in LPT1 có địa chư cơ bạn là 378Hex và coơng LPT2 có địa chư cơ bạn là 278Hex.

Địa chư thanh ghi dữ lieơu với địa chư cơ bạn cụa coơng máy in 378h. Địa chư thanh ghi tráng thái là 379h.

Địa chư thanh ghi đieău khieơn là 37Ah. (adsbygoogle = window.adsbygoogle || []).push({});

a. Thanh ghi dữ lieơu: goăm có 8 bit dữ lieơu, có địa chư là 378h. Thanh ghi dữ lieơu (Data register, địa chư = địa chư cơ bạn )

b. Thanh ghi tráng thái: có địa chư là 379h.

Thanh ghi tráng thái(status register, địa chư = địa chư cơ bạn +1)

Hình 6 - 4 :Thanh ghi tráng thái

c. Thanh ghi đieău khieơn :có địa chư là 37AH

Thanh ghi đieău khieơn(control register, địa chư = địa chư cơ bạn + 2)

Hình 6 - 5 : Thanh ghi đieău khieơn

Nhìn vào bạng cođng dúng các chađn cụa coơng LPT1 và 3 thanh ghi cụa máy tính, ta thây có theơ sử dúng thanh ghi data là thanh ghi phát, có nhieơm vú truyeăn dữ lieơu ra ngoài, và thanh ghi đieău khieơn sẽ gởi tín hieơu đieău khieơn cho Kit, còn thanh ghi tráng thái sẽ nhaơn tín hieơu báo tráng thái hieơn tái cụa thiêt bị veă máy tính.

6.1.3. Phương thức truyeăn cụa coơng máy in

Thođng tin truyeăn trong máy vi tính dưới dáng nhị phađn, được theơ hieơn qua hai chư sô 0 và 1. Tât cạ mĩi ngođn ngữ, laơp trình và đieău khieơn, đeău được chuyeơn veă ngođn ngữ máy dưới dáng sô nhị phađn. Người ta gĩi vieơc truyeăn dữ lieơu này là truyeăn dữ lieơu dưới dáng sô (Digital), vieơc truyeăn này khác hẳn với vieơc truyeăn dữ lieơu dưới dáng tương tự (Analog) như tín hieơu ađm thanh, hình ạnh….

Truyeăn dữ lieơu kieơu digital, có bôn (04) dáng truyeăn: Truyeăn song song đoăng boơ.

Truyeăn song song bât đoăng boơ. Truyeăn nôi tiêp đoăng boơ. Truyeăn nôi tiêp bât đoăng boơ.

Thực hieơn giao tiêp qua coơng máy in là hình thức truyeăn dữ lieơu dưới dáng song song bât đoăng boơ. Vieơc truyeăn sô lieơu theo dáng song song bât đoăng boơ này cho phép truyeăn 08 bit cùng moơt laăn truyeăn, tôc đoơ truyeăn tuỳ thuoơc vào hàm truyeăn. Khuyêt đieơm chính cụa hình thức truyeăn này là khoạng cách truyeăn ngaĩn, muôn truyeăn xa phại có boơ phaơn đeơm dữ lieơu.

Vì là hình thức truyeăn bât đoăng boơ neđn khođng đòi hỏi phại đoăng boơ từ nơi phát đên nơi thu, tức là xung clock (ck) nơi phát và nơi thu khođng nhât thiêt phại đoăng boơ với nhau. Đađy là ưu đieơm cụa hình thức truyeăn bât đoăng boơ, tuy nhieđn beđn cánh ây văn toăn tái những khó khaín khác, đó là tín hieơu baĩt tay giữa nơi truyeăn và nơi thu. Coơng máy in giại quyêt vân đeă nhờ các tín hieơu: /STROBE, /ACK, /BUSY.

Quá trình thực hieơn phương thức truyeăn từ máy tính qua coơng máy in thực hieơn như sau:

Hốt đoơng cụa phaăn phát

Đĩc Busy cho đên khi Busy\ = 1. Gửi dữ lieơu ra bus dữ lieơu

Cho Strobe = 0.

Chuoơn bị dữ lieơu tiêp theo Quay veă bước 1

Hốt đoơng cụa phaăn thu

Đĩc Strobe cho đên khi Strobe = 1. Busy = 0 , ACK = 0.

Đĩc dữ lieơu vào . Đưa ACK = 1 . Xử lý dữ lieơu .

Cho Busy = 1 đeơ phát ký tự tiêp theo Quay veă bước 1.

Có theơ bieơu dieên các bước thực hieơn cụa dáng giao tiêp song song bât đoăng boơ qua coơng máy in như sau:

Hình 6 - 6 : Giạn đoă thời gian

Tuy nhieđn, ở đađy các đường tín hieơu dữ lieơu là dáng tín hieơu moơt chieău neđn trong vieơc giao tiêp với các hình thức trao đoơi tín hieơu hai (02) chieău hay tín hieơu lớn hơn phám vi moơt byte thì coơng máy in khođng thích hợp. Táo ra moơt coơng vào ra có phám vi trao đoơi lớn hơn và đa dúng hơn coơng máy in là nhieơm vú đaịt ra cho người thực hieơn.

6.2. Thiêt kê heơ thông giao tiêp máy tính 6.2.1. Yeđu caău đaịt ra cho heơ thông 6.2.1. Yeđu caău đaịt ra cho heơ thông

Maơt mã cụa heơ thông : Cũng goăm 5 sô.

Tređn giao dieơn thiêt kê cụa heơ thông có hieơn thị trực quan tráng thái taĩt mở cụa các thiêt bị.

Giao dieơn được thiêt kê caăn phại có đaăy đụ các thođng sô đeơ nhaơp Sô đieơn thối, maơt mã, các nút đieău khieơn heơ thông … (adsbygoogle = window.adsbygoogle || []).push({});

6.2.2. Phương thức hốt đoơng

Đeơ đieău khieơn heơ thông thiêt bị thì máy tính phại được kêt nôi với Line đieơn thối cụa moơt thueđ bao. Khi người đieău khieơn nhaơp sô đieơn thối tređn

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 101)