ΠΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ Π²ΡΠ²ΠΎΠ΄Π° ΡΠΈΡΡΠ½ΠΊΠΎΠ² Π½Π° Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΠ-ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡ
MCS-51 — ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ ΡΠ΅ΡΠΈΠΈ ΠΠ51. ΠΠ½ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΠΏΠΎ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΡ INT0 Π΄Π²Π° Π±Π°ΠΉΡΠ°, ΠΎΠ·Π½Π°ΡΠ°ΡΡΠΈΠ΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ, ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ X ΠΈ Y Π²ΡΠ²ΠΎΠ΄ΠΈΠΌΠΎΠΉ ΡΠΎΡΠΊΠΈ, ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ΅Ρ ΠΈΡ Π² ΠΎΠ΄ΠΈΠ½ Π±Π°ΠΉΡ Π΄Π»Ρ Π±ΠΈΡΠΎΠ²ΠΎΠΉ ΠΊΠ°ΡΡΡ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π΄ΠΈΡΠΏΠ»Π΅Ρ ΠΈ ΠΎΡΡΡΠ»Π°Π΅Ρ Π΅Π³ΠΎ Π½Π° ΠΠ-Π΄ΠΈΡΠΏΠ»Π΅ΠΉ. Π‘Π½Π°ΡΠ°Π»Π° ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΉ ΡΠ±ΡΠΎΡ ΠΆΠΈΠ΄ΠΊΠΎΠΊΡΠΈΡΡΠ°Π»Π»ΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π΄ΠΈΡΠΏΠ»Π΅Ρ, ΠΏΠΎΡΡΠ»Π°Ρ Π½Π° Π²Ρ ΠΎΠ΄ RST Π½ΡΠ»Π΅Π²ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Ρ Π΅Π³ΠΎ Π² ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ 2… Π§ΠΈΡΠ°ΡΡ Π΅ΡΡ >
ΠΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ Π²ΡΠ²ΠΎΠ΄Π° ΡΠΈΡΡΠ½ΠΊΠΎΠ² Π½Π° Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΠ-ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡ (ΡΠ΅ΡΠ΅ΡΠ°Ρ, ΠΊΡΡΡΠΎΠ²Π°Ρ, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½Π°Ρ)
ΠΡΡΡΠΎΠ²Π°Ρ ΡΠ°Π±ΠΎΡΠ° ΠΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ Π²ΡΠ²ΠΎΠ΄Π° ΡΠΈΡΡΠ½ΠΊΠΎΠ² Π½Π° Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΠ-ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡ
1. Π’Π΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΎΠ΅ Π·Π°Π΄Π°Π½ΠΈΠ΅
2. Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΡΡΡΡΠΊΡΡΡΠ½ΠΎ-ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠΉ ΡΡ Π΅ΠΌΡ
3. Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΠΏΡΠΈΠ½ΡΠΈΠΏΠΈΠ°Π»ΡΠ½ΠΎΠΉ ΡΡ Π΅ΠΌΡ
3.1 ΠΡΠΈΠ½ΡΠΈΠΏΠΈΠ°Π»ΡΠ½Π°Ρ ΡΡ Π΅ΠΌΠ° ΠΈ Π΅Π΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅
3.2 ΠΡΠ±ΠΎΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ½ΠΎΠΉ Π±Π°Π·Ρ
4. Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ
4.1 ΠΠ»Π³ΠΎΡΠΈΡΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
4.2 ΠΠΈΡΡΠΈΠ½Π³ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
5.
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
.
6. Π‘ΠΏΠΈΡΠΎΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠΎΠΉ Π»ΠΈΡΠ΅ΡΠ°ΡΡΡΡ ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅
1. Π’Π΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΎΠ΅ Π·Π°Π΄Π°Π½ΠΈΠ΅
ΠΠ΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ ΡΡ Π΅ΠΌΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ° Π΄Π»Ρ Π²ΡΠ²ΠΎΠ΄Π° ΡΠΈΡΡΠ½ΠΊΠΎΠ² Π½Π° Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΠ-ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡ. ΠΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π΄Π°Π½Π½ΡΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΠΎΡΡΡΠΏΠ°ΡΡ Ρ LPT ΠΏΠΎΡΡΠ°, ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡΡΡ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠΎΠΌ ΠΈ Π·Π°ΡΠ΅ΠΌ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡΡΡ Π½Π° Π΄ΠΈΡΠΏΠ»Π΅ΠΉ.
ΠΠ°ΠΏΠΈΡΠ°ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π΄Π»Ρ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ°, ΠΊΠΎΡΠΎΡΠ°Ρ Π±ΡΠ΄Π΅Ρ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΠΏΠΎΡΡΡΠΏΠ°ΡΡΠΈΠ΅ Ρ LPT ΠΏΠΎΡΡΠ° Π΄Π°Π½Π½ΡΠ΅, ΠΈ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡ ΠΈΡ Π½Π° ΠΠ-Π΄ΠΈΡΠΏΠ»Π΅ΠΉ.
2. Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΡΡΡΡΠΊΡΡΡΠ½ΠΎ-ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠΉ ΡΡ Π΅ΠΌΡ
Π ΠΈΡ. 1. Π‘ΡΡΡΠΊΡΡΡΠ½ΠΎ-ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½Π°Ρ ΡΡ Π΅ΠΌΠ°.
ΠΠ°Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π±Π»ΠΎΠΊΠΎΠ² ΠΈ ΠΏΡΠΈΠ½ΡΠΈΠΏ ΡΠ°Π±ΠΎΡΡ ΡΡΡΡΠΊΡΡΡΠ½ΠΎ-ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠΉ ΡΡ Π΅ΠΌΡ.
Β· LPT ΠΏΠΎΡΡ — 25-ΠΊΠΎΠ½ΡΠ°ΠΊΡΠ½ΡΠΉ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΡΠΉ ΠΏΠΎΡΡ ΠΏΠ΅ΡΡΠΎΠ½Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ°. ΠΠΎ ΡΠΈΠ³Π½Π°Π»Ρ Ack# ΠΏΡΠΈΡ ΠΎΠ΄ΡΡΠ΅ΠΌΡ ΠΎΡ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ°, ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ ΠΎΡΠΏΡΠ°Π²Π»ΡΡΡ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π΄Π°Π½Π½ΡΠ΅ (Π½Π°Π±ΠΎΡ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°Ρ X, Y) Π΄Π»Ρ MCS — 51 ΠΏΠΎ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Ρ Centronics. ΠΡΠΈ ΡΡΠΎΠΌ ΠΎΠ½ Π²ΡΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΈΠ³Π½Π°Π» Strobe#, ΠΏΠΎ ΠΊΠΎΡΠΎΡΠΎΠΌΡ Π±ΡΡΠ΅ΡΠ½ΡΠΉ ΡΠ΅Π³ΠΈΡΡΡ Π½Π°ΡΠΈΠ½Π°Π΅Ρ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ Π΄Π°Π½Π½ΡΠ΅, Π° ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ ΡΡΠΈΡΡΠ²Π°Π΅Ρ ΠΈΡ .
Β· ΠΡΡΠ΅ΡΠ½ΡΠΉ ΡΠ΅Π³ΠΈΡΡΡ. ΠΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ Π΄Π»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ , ΠΏΡΠΈΡΠ»Π°Π½Π½ΡΡ LPT ΠΏΠΎΡΡΠΎΠΌ.
Β· MCS-51 — ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ ΡΠ΅ΡΠΈΠΈ ΠΠ51. ΠΠ½ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΠΏΠΎ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΡ INT0 Π΄Π²Π° Π±Π°ΠΉΡΠ°, ΠΎΠ·Π½Π°ΡΠ°ΡΡΠΈΠ΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ, ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ X ΠΈ Y Π²ΡΠ²ΠΎΠ΄ΠΈΠΌΠΎΠΉ ΡΠΎΡΠΊΠΈ, ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ΅Ρ ΠΈΡ Π² ΠΎΠ΄ΠΈΠ½ Π±Π°ΠΉΡ Π΄Π»Ρ Π±ΠΈΡΠΎΠ²ΠΎΠΉ ΠΊΠ°ΡΡΡ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π΄ΠΈΡΠΏΠ»Π΅Ρ ΠΈ ΠΎΡΡΡΠ»Π°Π΅Ρ Π΅Π³ΠΎ Π½Π° ΠΠ-Π΄ΠΈΡΠΏΠ»Π΅ΠΉ.
Β· LCD Π΄ΠΈΡΠΏΠ»Π΅ΠΉ — ΠΆΠΈΠ΄ΠΊΠΎΠΊΡΠΈΡΡΠ°Π»Π»ΠΈΡΠ΅ΡΠΊΠΈΠΉ Π΄ΠΈΡΠΏΠ»Π΅ΠΉ. ΠΡΡΠ²Π΅ΡΠΈΠ²Π°Π΅Ρ ΠΏΡΠΈΠ½ΡΡΡΠΉ ΠΎΡ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ° Π±Π°ΠΉΡ.
3. Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΠΏΡΠΈΠ½ΡΠΈΠΏΠΈΠ°Π»ΡΠ½ΠΎΠΉ ΡΡ Π΅ΠΌΡ
3.1 ΠΡΠΈΠ½ΡΠΈΠΏΠΈΠ°Π»ΡΠ½Π°Ρ ΡΡ Π΅ΠΌΠ° ΠΈ Π΅Π΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅
ΠΡΠΈΠ½ΡΠΈΠΏΠΈΠ°Π»ΡΠ½Π°Ρ ΡΡ Π΅ΠΌΠ° ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π° Π½Π° ΡΠ΅ΡΡΠ΅ΠΆΠ΅ ΠΠ02.98 020 088.01.Π3.
Π‘ ΠΏΠΎΠΌΠΎΡΡΡ LPT ΠΏΠΎΡΡΠ° ΠΏΠΎ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Ρ Centronics Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ Ρ ΠΏΠ΅ΡΡΠΎΠ½Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ° ΡΠ΅ΡΠ΅Π· Π±ΡΡΠ΅ΡΠ½ΡΠΉ ΡΠ΅Π³ΠΈΡΡΡ-Π·Π°ΡΠ΅Π»ΠΊΡ Π½Π° ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ. ΠΠ°Π½Π½ΡΠ΅ ΠΏΠΎΠ΄Π°ΡΡΡΡ Π½Π° 8-Π±ΠΈΡΠ½ΡΡ ΡΠΈΠ½Ρ Π΄Π°Π½Π½ΡΡ ΠΏΠΎΡΡΠ° Π² Π²ΠΈΠ΄Π΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ Π±Π°ΠΉΡΠΎΠ². Π ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Π±Π°ΠΉΡΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡΡΡ ΠΎΠ΄Π½Π° ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠ° (X ΠΈΠ»ΠΈ Y), ΠΏΡΠΈΡΠ΅ΠΌ ΠΎΠ½ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠ΅ΡΠ΅Π΄ΠΎΠ²Π°ΡΡΡΡ.
ΠΡΡΠ΅ΡΠ½ΡΠΉ ΡΠ΅Π³ΠΈΡΡΡ Π½Π°ΡΠΈΠ½Π°Π΅Ρ ΡΡΠΈΡΡΠ²Π°ΡΡ Π΄Π°Π½Π½ΡΠ΅ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎ ΠΏΠΎΠ»ΠΎΠΆΠΈΡΠ΅Π»ΡΠ½ΠΎΠΌΡ ΠΏΠ΅ΡΠ΅ΠΏΠ°Π΄Ρ ΡΠΈΠ³Π½Π°Π»Π° Π½Π° Π²Ρ ΠΎΠ΄Π΅ Π‘, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΏΡΠΈ ΠΏΠΎΠ΄Π°ΡΠ΅ ΡΠΈΠ³Π½Π°Π»Π° Strobe# ΡΠ΅ΡΠ΅Π· ΠΈΠ½Π²Π΅ΡΡΠΎΡ Π½Π° ΠΎΠ΄ΠΈΠ½Π½Π°Π΄ΡΠ°ΡΡΡ Π»ΠΈΠ½ΠΈΡ ΡΠ΅Π³ΠΈΡΡΡΠ°. ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ ΠΎΠ½ Π·Π°ΡΠ΅Π»ΠΊΠΈΠ²Π°Π΅ΡΡΡ ΠΈ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΡ Π² ΡΠ΅ΠΆΠΈΠΌ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ Π΄ΠΎ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π³ΠΎ ΠΏΠ΅ΡΠ΅ΠΏΠ°Π΄Π° Π½Π° Π‘.
ΠΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ ΠΏΠΎΡΠ»Π΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΡΠ±ΡΠΎΡΠ° ΠΈ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΠ-Π΄ΠΈΡΠΏΠ»Π΅Ρ, ΠΊΠΎΡΠΎΡΡΡ ΠΎΠ½ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ, Π·Π°ΡΡΠ»Π°Ρ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΈΠ· ΡΠ΅ΠΌΠΈ ΡΡΠ΅Ρ Π±Π°ΠΉΡΠΎΠ²ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄ Π½Π° 8-ΡΠ°Π·ΡΡΠ΄Π½ΡΡ ΡΠΈΠ½Ρ Π΄Π°Π½Π½ΡΡ , Π²ΡΡΡΠ°Π²Π»ΡΠ΅Ρ Π²ΡΡΠΎΠΊΠΈΠΉ ΡΡΠΎΠ²Π΅Π½Ρ Π½Π° 36 Π»ΠΈΠ½ΠΈΡ, ΡΠΈΠ³Π½Π°Π»ΠΈΠ·ΠΈΡΡΡ ΡΡΠΈΠΌ LPT ΠΏΠΎΡΡΡ ΠΎ ΡΠ²ΠΎΠ΅ΠΉ Π³ΠΎΡΠΎΠ²Π½ΠΎΡΡΠΈ ΠΊ ΠΏΡΠΈΠ΅ΠΌΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ.
ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ MCS-51 ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΡ Π² ΡΠ΅ΠΆΠΈΠΌ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΡ Π΄ΠΎ ΡΠ΅Ρ ΠΏΠΎΡ, ΠΏΠΎΠΊΠ° Π½Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ½Π΅Ρ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠ΅ INT0 ΠΏΠΎ ΡΠΈΠ³Π½Π°Π»Ρ Π½Π° Π΄Π²Π΅Π½Π°Π΄ΡΠ°ΡΠΎΠΉ Π»ΠΈΠ½ΠΈΠΈ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ°.
ΠΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ, ΠΎΠ½ ΡΡΠΈΡΡΠ²Π°Π΅Ρ Π΄Π°Π½Π½ΡΠ΅ Ρ ΠΏΠΎΡΡΠ° P1. ΠΠ°ΡΠ΅ΠΌ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ ΡΠ½ΠΎΠ²Π° ΡΠΎΠΎΠ±ΡΠ°Π΅Ρ ΠΎ Π³ΠΎΡΠΎΠ²Π½ΠΎΡΡΠΈ ΠΊ ΠΏΡΠΈΠ΅ΠΌΡ. ΠΠΎΡΠ»Π΅ ΠΏΡΠΈΠ½ΡΡΠΈΡ Π΄Π²ΡΡ Π±Π°ΠΉΡ MCS-51 ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ ΠΈΡ , ΠΏΠΎΠ»ΡΡΠ°Ρ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ Π² Π±ΠΈΡΠΎΠ²ΠΎΠΉ ΠΊΠ°ΡΡΠ΅ Π΄ΠΈΡΠΏΠ»Π΅Ρ, Π³Π΄Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°ΡΠ²Π΅ΡΠΈΡΡ ΡΠΎΡΠΊΡ.
ΠΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ ΡΡΠΈΡΡΠ²Π°Π΅Ρ Π±Π°ΠΉΡ, Π½Π°Ρ ΠΎΠ΄ΡΡΠΈΠΉΡΡ ΠΏΠΎ ΡΡΠΎΠΉ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠ΅, Π½Π°ΠΊΠ»Π°Π΄ΡΠ²Π°Π΅Ρ Π½Π° Π½Π΅Π³ΠΎ ΠΌΠ°ΡΠΊΡ Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ Π·Π°ΡΠ²Π΅ΡΠΈΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π½ΡΠΆΠ½ΡΡ ΡΠΎΡΠΊΡ ΠΈ Π·Π°ΡΠ΅ΠΌ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ Π΅Π³ΠΎ Π½Π° Π΄ΠΈΡΠΏΠ»Π΅ΠΉ.
3.2 ΠΡΠ±ΠΎΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ½ΠΎΠΉ Π±Π°Π·Ρ
ΠΠΈΠΊΡΠΎΡΡ Π΅ΠΌΠ° XP1 — ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΡΠΉ LPT ΠΏΠΎΡΡ.
ΠΠ²Π°ΡΡΠ΅Π²ΡΠΉ ΡΠ΅Π·ΠΎΠ½Π°ΡΠΎΡ ZQ1 — 16ΠΠΡ ΡΠΈΠΏΠ° Π Π-5−16ΠΠΡ ΠΠΈΠΊΡΠΎΡΡ Π΅ΠΌΠ° DD1 — Π1554ΠΠ 23. 8-ΡΠ°Π·ΡΡΠ΄Π½ΡΠΉ Π±ΡΡΠ΅ΡΠ½ΡΠΉ ΡΠ΅Π³ΠΈΡΡΡ-Π·Π°ΡΠ΅Π»ΠΊΠ°.
ΠΠΈΠΊΡΠΎΡΡ Π΅ΠΌΠ° DD2 — ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ ΠΠ’89Π‘52.
ΠΠΈΠΊΡΠΎΡΡ Π΅ΠΌΠ° DD3 — ΠΆΠΈΠ΄ΠΊΠΎΠΊΡΠΈΡΡΠ°Π»Π»ΠΈΡΠ΅ΡΠΊΠΈΠΉ Π΄ΠΈΡΠΏΠ»Π΅ΠΉ Hantronix 240×64.
ΠΠΈΠΊΡΠΎΡΡ Π΅ΠΌΠ° DD4 — ΠΠ 1554ΠΠ1. ΠΠΈΠΊΡΠΎΡΡ Π΅ΠΌΠ° ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ 6 ΠΈΠ½Π²Π΅ΡΡΠΎΡΠΎΠ².
ΠΠΎΠ½Π΄Π΅Π½ΡΠ°ΡΠΎΡΡ Π‘2 ΠΈ Π‘3 Π²ΡΠ±ΠΈΡΠ°ΡΡΡΡ ΡΠ°Π²Π½ΡΠΌΠΈ 33 ΠΏΠ€, C1 -1 ΠΌΠΊΠ€.
Π Π΅Π·ΠΈΡΡΠΎΡΡ R1 — 20ΠΠΠΌ, R2 — 10 ΠΠΠΌ.
ΠΠΈΠΎΠ΄ VD1 — ΠΠ521.
4. Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ
4.1 ΠΠ»Π³ΠΎΡΠΈΡΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
Π‘Π½Π°ΡΠ°Π»Π° ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΉ ΡΠ±ΡΠΎΡ ΠΆΠΈΠ΄ΠΊΠΎΠΊΡΠΈΡΡΠ°Π»Π»ΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π΄ΠΈΡΠΏΠ»Π΅Ρ, ΠΏΠΎΡΡΠ»Π°Ρ Π½Π° Π²Ρ ΠΎΠ΄ RST Π½ΡΠ»Π΅Π²ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Ρ Π΅Π³ΠΎ Π² ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ 2 ΠΌΠΈΠΊΡΠΎΡΠ΅ΠΊΡΠ½Π΄. ΠΠ°ΡΠ΅ΠΌ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Π΄ΠΈΡΠΏΠ»Π΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
Β· ΠΡΠΎΠ²Π΅ΡΡΠ΅ΡΡΡ Π³ΠΎΡΠΎΠ²Π½ΠΎΡΡΡ Π΄ΠΈΡΠΏΠ»Π΅Ρ ΠΊ ΠΏΡΠΈΠ΅ΠΌΡ Π±Π°ΠΉΡΠΎΠ² ΠΊΠΎΠΌΠ°Π½Π΄.
Β· ΠΠ° Π²Ρ ΠΎΠ΄ Π‘D ΡΠ΅ΡΠ΅Π· Π²ΡΡ ΠΎΠ΄ Π 2.2 ΠΏΠΎΠ΄Π°Π΅ΡΡΡ Π²ΡΡΠΎΠΊΠΈΠΉ ΡΡΠΎΠ²Π΅Π½Ρ ΡΠΈΠ³Π½Π°Π»Π°, ΠΎΠ·Π½Π°ΡΠ°ΡΡΠΈΠΉ, ΡΡΠΎ ΠΏΡΠΈΡΠ»Π°Π½Π½ΡΠΉ Π±Π°ΠΉΡ Π±ΡΠ΄Π΅Ρ ΡΠ²Π»ΡΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ.
Β· Π ΠΏΠΎΡΡ Π 0 Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅ΡΡΡ Π±Π°ΠΉΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ.
Β· ΠΠΊΡΠΈΠ²ΠΈΠ·ΠΈΡΡΠ΅ΡΡΡ Π²Ρ ΠΎΠ΄ WR Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΠΎΠ΄Π°ΡΠΈ ΡΠ΅ΡΠ΅Π· Π²ΡΡ ΠΎΠ΄ P2.0 ΡΠΈΠ³Π½Π°Π»Π° Π½ΠΈΠ·ΠΊΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ Π΄Π»Ρ ΡΡΠΈΡΡΠ²Π°Π½ΠΈΡ Π±Π°ΠΉΡΠ° Π΄ΠΈΡΠΏΠ»Π΅Π΅ΠΌ Ρ Π²Ρ ΠΎΠ΄ΠΎΠ² D0D7.
Β· ΠΠ° Π²Ρ ΠΎΠ΄Π΅ WR (ΡΠ΅ΡΠ΅Π· Π²ΡΡ ΠΎΠ΄ Π 2.0) ΡΠ½ΠΎΠ²Π° ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠ°Ρ Π΅Π΄ΠΈΠ½ΠΈΡΠ°, ΠΎΠ·Π½Π°ΡΠ°ΡΡΠ°Ρ ΠΊΠΎΠ½Π΅Ρ ΡΡΠΈΡΡΠ²Π°Π½ΠΈΡ Π±Π°ΠΉΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Ρ.
Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π½Π° Π΄ΠΈΡΠΏΠ»Π΅ΠΉ ΠΏΠΎΡΡΠ»Π°Π΅ΡΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΈΠ· 21 Π±Π°ΠΉΡΠ° (ΡΠ΅ΠΌΡ ΠΊΠΎΠΌΠ°Π½Π΄).
ΠΠ°ΡΠ΅ΠΌ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ ΠΏΠΎΡΡΠ»Π°Π΅Ρ Π½Π° Π»ΠΈΠ½ΠΈΡ Ack# LPT ΠΏΠΎΡΡΠ° ΡΠ΅ΡΠ΅Π· Π²ΡΡ ΠΎΠ΄ Π 2.4 Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΡΡ Π΅Π΄ΠΈΠ½ΠΈΡΡ, ΠΎΠ·Π½Π°ΡΠ°ΡΡΡΡ Π³ΠΎΡΠΎΠ²Π½ΠΎΡΡΡ ΠΊ ΠΏΡΠΈΠ΅ΠΌΡ, ΠΏΠΎΡΠ»Π΅ ΡΠ΅Π³ΠΎ ΡΠ°Π·ΡΠ΅ΡΠ°Π΅Ρ Π²ΡΠ΅ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΡ.
ΠΠΎ ΠΏΡΠΈΡ ΠΎΠ΄Ρ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π½ΡΠ»Ρ Π½Π° 12 Π»ΠΈΠ½ΠΈΡ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ° Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠ΅ INT0, Π²ΡΡΡΠΏΠ°Π΅Ρ Π² Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΡΡΠΎΠ³ΠΎ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΡΠΈΡΡΠ²Π°Π΅Ρ Π΄Π°Π½Π½ΡΠ΅ Ρ ΠΏΠΎΡΡΠ° Π 1 ΠΈ Π·Π°ΠΏΡΡΠΊΠ°Π΅Ρ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΡΠΈΠ½ΡΡΠΎΠ³ΠΎ Π±Π°ΠΉΡΠ°.
Π Π²ΡΠ·Π²Π°Π½Π½ΠΎΠΉ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ΅ ΠΏΡΠΈΠ½ΡΡΡΠΉ Π±Π°ΠΉΡ Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°Π΅ΡΡΡ ΠΈ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ ΠΎΠΆΠΈΠ΄Π°Π΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π³ΠΎ Π±Π°ΠΉΡΠ° Π²ΡΡΡΠ°Π²Π»ΡΡ Π΅Π΄ΠΈΠ½ΠΈΡΡ Π½Π° Π 2.4.
ΠΠΎΠ³Π΄Π° ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡ Π²ΡΠΎΡΠΎΠΉ Π±Π°ΠΉΡ, ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΡΠΈΠ½ΡΡΠΎΠ³ΠΎ Π±Π°ΠΉΡΠ°, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΏΠ΅ΡΠ²ΡΠΉ Π±Π°ΠΉΡ, Π²ΡΡΠΈΡΠ»ΡΠ΅Ρ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ Π½Π° Π±ΠΈΡΠΎΠ²ΠΎΠΉ ΠΊΠ°ΡΡΠ΅ Π΄ΠΈΡΠΏΠ»Π΅Ρ.
ΠΠ°ΡΠ΅ΠΌ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ ΡΡΠΈΡΡΠ²Π°Π΅Ρ Ρ LCD Π±Π°ΠΉΡ Ρ ΡΠ°ΠΊΠΈΠΌ ΠΆΠ΅ ΠΌΠ΅ΡΡΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ, ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ:
Β· ΠΠ° Π²ΡΡ ΠΎΠ΄ Π 2.2 Π²ΡΡΡΠ°Π²Π»ΡΠ΅ΡΡΡ Π΅Π΄ΠΈΠ½ΠΈΡΠ°, ΠΎΠ·Π½Π°ΡΠ°ΡΡΠ°Ρ ΡΡΠΎ Π±ΡΠ΄Π΅Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π°.
Β· ΠΠ° ΠΏΠΎΡΡ Π 0 ΠΏΠΎΡΡΠ»Π°Π΅ΡΡΡ ΠΏΠΎΠΎΡΠ΅ΡΠ΅Π΄Π½ΠΎ ΡΡΠΈ Π±Π°ΠΉΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ Π½Π° Π±ΠΈΡΠΎΠ²ΠΎΠΉ ΠΊΠ°ΡΡΠ΅ Π΄ΠΈΡΠΏΠ»Π΅Ρ.
Β· Π‘ΡΠΈΡΡΠ²Π°Π΅ΡΡΡ Π±Π°ΠΉΡ, Π·Π°ΠΏΠΈΡΠ°Π½Π½ΡΠΉ Π² ΡΡΠΎΠΉ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ.
ΠΠ°ΡΠ΅ΠΌ Π½Π° ΡΡΠΈΡΠ°Π½Π½ΡΠΉ Π±Π°ΠΉΡ Π½Π°ΠΊΠ»Π°Π΄ΡΠ²Π°Π΅ΡΡΡ ΠΌΠ°ΡΠΊΠ°, ΡΠΊΠ°Π·ΡΠ²Π°ΡΡΠ°Ρ ΠΊΠ°ΠΊΠΎΠΉ Π±ΠΈΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°ΡΠ²Π΅ΡΠΈΡΡ, ΠΈ Π±Π°ΠΉΡ ΠΏΠΎΡΡΠ»Π°Π΅ΡΡΡ ΠΎΠ±ΡΠ°ΡΠ½ΠΎ Π½Π° ΡΠ²ΠΎΠ΅ ΠΌΠ΅ΡΡΠΎ Π½Π° Π΄ΠΈΡΠΏΠ»Π΅Π΅.
Π ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠ΅Π΄ΡΡΠΌΠΎΡΡΠ΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΎΡΠΈΡΡΠΊΠΈ Π΄ΠΈΡΠΏΠ»Π΅Ρ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΏΡΠΈ ΠΏΠΎΡΡΠ»Π°Π½ΠΈΠΈ Ρ LPT ΠΏΠΎΡΡΠ° Π±Π°ΠΉΡΠ° 0FFH.
4.2 ΠΠΈΡΡΠΈΠ½Π³ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
ts:do;
$include (reg51.dcl)
declare (i, r0, r1,a, a1, x, y, bait, ostatok, nomer, counter, mask, j) byte,
inibyte (*) byte constant (80h, 07h, 40h,
1eh, 00h, 41h,
00h, 00h, 42h,
1eh, 00h, 43h,
00h, 00h, 81h,
00h, 00h, 24h,
00h, 00h, 98h);
/*ΠΡΠΎΠ²Π΅ΡΠΊΠ° Π³ΠΎΡΠΎΠ²Π½ΠΎΡΡΠΈ Π΄ΠΈΡΠΏΠ»Π΅Ρ*/
status: procedure;
declare c byte;
p2=p2 or 100b; /*cd=1*/
p0=0ffh;
c=0bh;
r1=0;
do while r1-c<>0;
p2=p2 and 1 111 1101b; /*rd=0*/
r1=p0;
p2=p2 or 10b; /*rd=1*/
r1=r1 and c;
end;
end status;
/*Π§ΡΠ΅Π½ΠΈΠ΅ Π±Π°ΠΉΡΠ° Ρ Π΄ΠΈΡΠΏΠ»Π΅Ρ*/
read: procedure;
call status;
p2=p2 or 100b; /*cd=1*/
p0=low (nomer);
p2=p2 and 1 111 1110b; /*wr=0*/
p2=p2 or 01b; /*wr=1*/
p0=high (nomer);
p2=p2 and 1 111 1110b; /*wr=0*/
p2=p2 or 01b; /*wr=1*/
p0=24h;
p2=p2 and 1 111 1110b; /*wr=0*/
p0=p2 or 01b; /*wr=1*/
p2=p0 and 1 111 1011b; /*cd=0*/
p2=p2 and 1 111 1101b; /*rd=0*/
a=p0;
p2=p2 or 10b; /*rd=1*/
end read;
/*ΠΠ°ΠΏΠΈΡΡ Π±Π°ΠΉΡΠ° Π½Π° Π΄ΠΈΡΠΏΠ»Π΅ΠΉ*/
write: procedure;
p0=a;
p2=p2 and 1 111 1110b; /*wr=0*/
p2=p2 or 01b; /*wr=1*/
end write;
/*ΠΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΏΡΠΈΠ½ΡΡΡΡ ΠΎΡ LPT ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°Ρ*/
send: procedure;
if a=0ffh then goto label1; /*ΠΡΠ»ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π·Π°ΡΡΠ»Π°Π΅Ρ 0ffh, ΡΠΎ Π΄ΠΈΡΠΏΠ»Π΅ΠΉ ΠΎΡΠΈΡΠ°Π΅ΡΡΡ ΠΈ ΡΠ½ΠΎΠ²Π° Π³ΠΎΡΠΎΠ² ΠΊ ΠΏΡΠΈΠ΅ΠΌΡ*/
counter=counter+1;
if counter=2 then
do;
counter=0;
y=a;/*ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠ° ΠΏΠΎ Y*/
mask=1 000 0000b;
if x>7 then bait=y*30+x/8; /*Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠ΅ Π±Π°ΠΉΡΠ° Π½Π° Π±ΠΈΡΠΎΠ²ΠΎΠΉ ΠΊΠ°ΡΡΠ΅ Π΄ΠΈΡΠΏΠ»Π΅Ρ*/
else bait=y*30;
nomer=bait;
ostatok=x mod 8;/*Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠ΅ Π±ΠΈΡΠ°*/
mask=ror (mask, ostatok); /*ΡΠΈΠΊΠ»ΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΠ΄Π²ΠΈΠ³ Π²ΠΏΡΠ°Π²ΠΎ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ mask Π½Π° ostatok ΠΏΠΎΠ·ΠΈΡΠΈΠΉ*/
call read;/*ΡΡΠ΅Π½ΠΈΠ΅ Π±Π°ΠΉΡΠ° Ρ Π΄ΠΈΡΠΏΠ»Π΅Ρ*/
a=mask or a;/*Π½Π°Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠ°ΡΠΊΠΈ Π½Π° ΡΡΠΈΡΠ°Π½Π½ΡΠΉ Π±Π°ΠΉΡ*/
call status;/*ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π³ΠΎΡΠΎΠ²Π½ΠΎΡΡΠΈ Π΄ΠΈΡΠΏΠ»Π΅Ρ*/
p2=p2 or 100b;/*cd=1*/
p0=low (nomer);
p2=p2 and 1 111 1110b;/*wr=0*/
p2=p2 or 01b;/*wr=1*/
p0=high (nomer);
p2=p2 and 1 111 1110b;/*wr=0*/
p2=p2 or 01b;/*wr=1*/
p0=24h;
p2=p2 and 1 111 1110b;/*wr=0*/
p2=p2 or 01b;/*wr=1*/
p2=p2 and 1 111 1011b;/*cd=0*/
call write;/*Π²ΡΠ²ΠΎΠ΄ Π±Π°ΠΉΡΠ° Π½Π° Π΄ΠΈΡΠΏΠ»Π΅ΠΉ*/
p2=p2 or 1 0000b;/*Π³ΠΎΡΠΎΠ² ΠΊ ΠΏΡΠΈΠ΅ΠΌΡ*/
end;
else
do;
x=a;/*ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠ° ΠΏΠΎ X*/
a=0;
p2=p2 or 1 0000b;/*ack=1*/
end;
end send;
*ΠΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π±Π°ΠΉΡΠ° ΠΎΡ LPT*/
receive: procedure interrupt 0;
a=p1; /*ΡΡΠΈΡΡΠ²Π°Π½ΠΈΠ΅ ΠΈΠ· ΠΏΠΎΡΡΠ° P1*/
call send;/*Π²ΡΠ·ΠΎΠ² ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΡΠΈΠ½ΡΡΠΎΠ³ΠΎ Π±Π°ΠΉΡΠ°*/
end receive;
/*ΠΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Π΄ΠΈΡΠΏΠ»Π΅Ρ*/
initialization: procedure;
do i=0 to 20;
a=inibyte (i);
call status;/*ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π³ΠΎΡΠΎΠ²Π½ΠΎΡΡΠΈ Π΄ΠΈΡΠΏΠ»Π΅Ρ*/
p2=p2 or 100b;/*cd=1*/
call write;/*Π²ΡΠ²ΠΎΠ΄ Π±Π°ΠΉΡΠ° Π½Π° Π΄ΠΈΡΠΏΠ»Π΅ΠΉ*/
p2=p2 and 1 111 1011b;/*cd=0*/
end;
end initialization;
/*—————————-ΠΠΠ§ΠΠΠ ΠΠ ΠΠΠ ΠΠΠΠ«—————————————-*/
/*ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΉ ΡΠ±ΡΠΎΡ Π΄ΠΈΡΠΏΠ»Π΅Ρ Π² ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ 2-Ρ ΠΌΠΈΠΊΡΠΎΡΠ΅ΠΊΡΠ½Π΄*/
label1: p2=p2 and 1 111 0111b; /*RST=0*/
do i=0 to 25;
end;
p2=p2 or 1000b;/*RST=1*/
/*ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Π΄ΠΈΡΠΏΠ»Π΅Ρ*/
call initialization;
/*acknowledge — Π³ΠΎΡΠΎΠ² ΠΊ ΠΏΡΠΈΠ΅ΠΌΡ*/
p2=p2 or 1 0000b;/*Ack=1*/
enable;/*ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠΉ*/
counter=0;
do while 1;
end;
end;
ΠΡΠΈ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π±ΡΠ»Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°, ΡΠΊΠ°Π·Π°Π½Π½Π°Ρ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ ΠΊΠ°ΠΊ ΡΠ°ΠΉΠ» reg51.dcl. ΠΠ³ΠΎ Π»ΠΈΡΡΠΈΠ½Π³ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ Π½ΠΈΠΆΠ΅:
/* Copyright 1982,1983,1986 Intel Corporation */
/* REGISTER DECLARATIONS FOR 8051 */
$nolist
DECLARE REG LITERALLY 'REGISTER';
/********* BYTE REGISTERS ********/
DECLARE
P0 BYTE AT (80H) REG,
P1 BYTE AT (90H) REG,
P2 BYTE AT (0A0H) REG,
P3 BYTE AT (0B0H) REG,
PSW BYTE AT (0D0H) REG,
ACC BYTE AT (0E0H) REG,
B BYTE AT (0F0H) REG,
SP BYTE AT (81H) REG,
DPL BYTE AT (82H) REG,
DPH BYTE AT (83H) REG,
DPP BYTE AT (84H) REG,
PCON BYTE AT (87H) REG,
TCON BYTE AT (88H) REG,
TMOD BYTE AT (89H) REG,
TL0 BYTE AT (8AH) REG,
TL1 BYTE AT (8BH) REG,
TH0 BYTE AT (8CH) REG,
TH1 BYTE AT (8DH) REG,
IE BYTE AT (0A8H) REG,
IP BYTE AT (0B8H) REG,
SCON BYTE AT (98H) REG,
SBUF BYTE AT (99H) REG;
/********* BIT REGISTERS ********/
/********* PSW BITS ********/
DECLARE
CY BIT AT (0D7H) REG,
AC BIT AT (0D6H) REG,
F0 BIT AT (0D5H) REG,
RS1 BIT AT (0D4H) REG,
RS0 BIT AT (0D3H) REG,
OV BIT AT (0D2H) REG,
P BIT AT (0D0H) REG,
/********* TCON BITS ********/
TF1 BIT AT (8FH) REG,
TR1 BIT AT (8EH) REG,
TF0 BIT AT (8DH) REG,
TR0 BIT AT (8CH) REG,
IE1 BIT AT (8BH) REG,
IT1 BIT AT (8AH) REG,
IE0 BIT AT (89H) REG,
IT0 BIT AT (88H) REG,
/********* IE BITS ********/
EA BIT AT (0AFH) REG,
ES BIT AT (0ACH) REG,
ET1 BIT AT (0ABH) REG,
EX1 BIT AT (0AAH) REG,
ET0 BIT AT (0A9H) REG,
EX0 BIT AT (0A8H) REG,
/********* IP BITS ********/
PS BIT AT (0BCH) REG,
PT1 BIT AT (0BBH) REG,
PX1 BIT AT (0BAH) REG,
PT0 BIT AT (0B9H) REG,
PX0 BIT AT (0B8H) REG,
/********* P3 BITS ********/
RD BIT AT (0B7H) REG,
WR BIT AT (0B6H) REG,
T1 BIT AT (0B5H) REG,
T0 BIT AT (0B4H) REG,
INT1 BIT AT (0B3H) REG,
INT0 BIT AT (0B2H) REG,
TXD BIT AT (0B1H) REG,
RXD BIT AT (0B0H) REG,
/********* SCON BITS ********/
SM0 BIT AT (9FH) REG,
SM1 BIT AT (9EH) REG,
SM2 BIT AT (9DH) REG,
REN BIT AT (9CH) REG,
TB8 BIT AT (9BH) REG,
RB8 BIT AT (9AH) REG,
TI BIT AT (99H) REG,
RI BIT AT (98H) REG;
$list
ΠΠΎΡΠ»Π΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ ΠΏΠΎΠ»ΡΡΠΈΠ»ΡΡ .hex ΡΠ°ΠΉΠ», Π»ΠΈΡΡΠΈΠ½Π³ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ Π½ΠΈΠΆΠ΅:
:1021F1008007401E00410000421E00430000810094
:52 201 000 024 000 0961C
:1 020 2600E5A04404F5A07580FF75150B750A00E55B
:10 203 6000AC395156017E5A054FDF5A085800AE54D
:1 020 4600A04402F5A0E50A5515F50A80E222122001
:102 056 0026E5A04404F5A0E511F580E5A054FEF5BB
:1 020 6600A0E5A04401F5A0E4F580E5A054FEF5A0A6
:1 020 7600E5A04401F5A0758024E5A054FEF5A0E591
:1 020 8600A04401F580E58054FBF5A0E5A054FDF5DC
:1 020 9600A085800BE5A04402F5A022850B80E5A073
:1020A60054FEF5A0E5A04401F5A022E50BB4FF031C
:1020B60002216E0512E512B4020280030221617547
:1020C6001200850B0E751380E50DD394074018E5B5
:1020D6000E75F01EA4FFAEF0E50D75F00884FD7CCC
:1020E60000EF2DF50F800BE50E75F01EA4FFAEF088
:1020F6008F0F850F11E50D75F00884AFF07E008F08
:102 106 0010E5130F2303DFFDF513122054E51345E5
:10 211 6000BF50B122026E5A04404F5A0E511F58089
:1 021 2600E5A054FEF5A0E5A04401F5A0E4F580E5A0
:1 021 3600A054FEF5A0E5A04401F5A0758024E5A015
:102 146 0054FEF5A0E5A04401F5A0E5A054FBF5A0DA
:10 215 600 1220A1E5A04410F5A0800C850B0D750B8F
:102 166 0000E5A04410F5A0229021A812220F859028
:10 217 6000B1220B122750800E508D394145022E50D
:1 021 860 008 9021F193F50B122026E5A04404F5A052
:10 219 600 1220A1E5A054FBF5A07808740126F6509C
:1021A600D722E5A054F7F5A0750800E508D39419E1
:1021B60050087808740126F650F1E5A04408F5A009
:1021C60012217BE5A04410F5A0D2AF75120080FE67
:05220F00758116E47367
:3 000 300 0221D601
:300 000 002 2206D3
:92 206 007 581 1675D0000221A8B3
:1021D600C0E0C0F0C083C082C0D075D000122174A8
:0B21E600D0D0D082D083D0F0D0E03207
:01FF
5. ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
ΠΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΡΡΡΠΎΠ²ΠΎΠ³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ° Π±ΡΠ»Π° ΠΈΠ·ΡΡΠ΅Π½Π° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ° AT89C52 ΡΠΈΡΠΌΡ Atmel ΠΈ ΠΏΠΎΡΡΡΠΎΠ΅Π½Π° Π½Π° Π΅Π³ΠΎ ΠΎΡΠ½ΠΎΠ²Π΅ ΠΌΠΈΠΊΡΠΎΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ½Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π²ΡΠ²ΠΎΠ΄ΠΎΠΌ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π½Π° Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΠ-Π΄ΠΈΡΠΏΠ»Π΅ΠΉ. Π’Π°ΠΊΠΆΠ΅ ΠΏΡΠΈΠΎΠ±ΡΠ΅ΡΠ΅Π½Ρ Π½Π°Π²ΡΠΊΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΌΠΈΠΊΡΠΎΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ½ΡΡ ΡΠΈΡΡΠ΅ΠΌ.
ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ Π²ΡΠ²ΠΎΠ΄ Π΄Π°Π½Π½ΡΠ΅ ΠΏΠΎΡΡ Π΄ΠΈΡΠΏΠ»Π΅ΠΉ
ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅