Π ΠΈΡ. 5.5. Π‘Ρ Π΅ΠΌΠ° ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΌΠ°ΡΡΠΈΡΠ½ΠΎΠΉ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ ΠΊ ΠΠ 68HC12
ΠΠ½ΠΎΠΏΠΊΠΈ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ ΡΠΎΠ±ΡΠ°Π½Ρ Π² ΠΌΠ°ΡΡΠΈΡΠ½ΡΡ ΡΡ Π΅ΠΌΡ. ΠΠ΅ΡΠ²ΡΠΉ ΡΡΠ΄ ΡΠΎΡΡΠ°Π²Π»ΡΡΡ ΠΊΠ½ΠΎΠΏΠΊΠΈ 0, 1, 2 ΠΈ 3. ΠΡΠΎΡΠΎΠΉ ΡΡΠ΄ β ΠΊΠ½ΠΎΠΏΠΊΠΈ 4, 5, 6, ΠΈ 7. Π‘Π»Π΅Π΄ΡΡΡΠΈΠ΅ Π²ΠΎΡΠ΅ΠΌΡ ΠΊΠ½ΠΎΠΏΠΎΠΊ ΡΠΎΡΡΠ°Π²Π»ΡΡΡ ΡΡΠ΄ 3 ΠΈ ΡΡΠ΄ 4. ΠΡΠ²ΠΎΠ΄Ρ Π»Π΅Π²ΡΡ ΠΊΠΎΠ½ΡΠ°ΠΊΡΠΎΠ² ΠΊΠ½ΠΎΠΏΠΎΠΊ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΡΠ΄Π° ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½Ρ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠΎΠ±ΠΎΠΉ ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½Ρ ΠΊ ΠΎΠ΄Π½ΠΎΠΌΡ ΠΈΠ· Π²ΡΠ²ΠΎΠ΄ΠΎΠ² ΠΏΠΎΡΡΠ° PORTx (x β ΠΈΠΌΡ ΠΏΠΎΡΡΠ° ΠΠ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, PORTA, PORTB ΠΈ Ρ.Π΄.). Π Π½Π°ΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π΄Π»Ρ ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π½ΠΈΡ ΡΠ΅ΡΡΡΠ΅Ρ Π»ΠΈΠ½ΠΈΠΉ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Ρ ΡΠ΅ΡΡΡΠ΅ Π»ΠΈΠ½ΠΈΠΈ ΠΏΠΎΡΡΠ° PORTx[0]β¦..PORTx[3]. ΠΡΠ΅ ΡΡΠΈ Π»ΠΈΠ½ΠΈΠΈ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ Π²ΡΠ²ΠΎΠ΄Π°.
ΠΡΠ²ΠΎΠ΄Ρ ΠΏΡΠ°Π²ΡΡ ΠΊΠΎΠ½ΡΠ°ΠΊΡΠΎΠ² ΠΊΠ½ΠΎΠΏΠΎΠΊ ΡΠ°ΠΊΠΆΠ΅ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½Ρ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠΎΠ±ΠΎΠΉ. ΠΠΎ ΠΏΡΠΈ ΡΡΠΎΠΌ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½Ρ ΠΊΠ°ΠΆΠ΄ΡΠ΅ ΡΠ΅ΡΡΡΠ΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΏΠΎ Π²Π΅ΡΡΠΈΠΊΠ°Π»ΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π·ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠΎΡΡΠ°Π²Π»ΡΡΡ Π΅Π΄ΠΈΠ½ΡΠΉ ΡΡΠΎΠ»Π±Π΅Ρ. ΠΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠ΅ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ Π½Π°Π·ΡΠ²Π°ΡΡ ΠΌΠ°ΡΡΠΈΡΠ½ΡΠΌ. ΠΠ· ΡΠΈΡ. 5.5. ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΈΠ΄Π΅ΡΡ, ΡΡΠΎ Π±Π»ΠΎΠΊ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ ΠΈΠ· 16 ΠΊΠ»Π°Π²ΠΈΡ ΠΈΠΌΠ΅Π΅Ρ Π²ΡΠ΅Π³ΠΎ Π²ΠΎΡΠ΅ΠΌΡ Π»ΠΈΠ½ΠΈΠΉ ΡΠ²ΡΠ·ΠΈ Π΄Π»Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΊ ΠΠ. Π Π΅ΡΠ»ΠΈ Π±Ρ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ ΡΠ°Π½Π΅Π΅ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½Π½ΡΠ΅ ΡΡ Π΅ΠΌΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ, ΡΠΎ Π΄Π»Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ 16 ΠΊΠ½ΠΎΠΏΠΎΠΊ ΠΏΠΎΡΡΠ΅Π±ΠΎΠ²Π°Π»ΠΎΡΡ Π±Ρ 16 Π»ΠΈΠ½ΠΈΠΉ ΡΠ²ΡΠ·ΠΈ. Π§Π΅ΡΡΡΠ΅ Π²ΡΠ²ΠΎΠ΄Π° ΡΡΠΎΠ»Π±ΡΠΎΠ² ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°ΡΡΡΡ ΠΊΠΎ Π²Ρ ΠΎΠ΄Π°ΠΌ ΠΏΠΎΡΡΠ° PORTx[4]β¦PORTx[7]. ΠΡΠΈ Π»ΠΈΠ½ΠΈΠΈ ΠΏΠΎΡΡΠ° ΡΠ°Π±ΠΎΡΠ°ΡΡ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ Π²Π²ΠΎΠ΄Π°. ΠΠ°ΠΆΠ΄Π°Ρ Π»ΠΈΠ½ΠΈΠΈ PORTx[4]β¦PORTx[7] ΡΠ½Π°Π±ΠΆΠ΅Π½Π° ΠΏΠΎΠ΄ΡΡΠ³ΠΈΠ²Π°ΡΡΠΈΠΌ ΠΊ Π½Π°ΠΏΡΡΠΆΠ΅Π½ΠΈΡ ΠΏΠΈΡΠ°Π½ΠΈΡ ΡΠ΅Π·ΠΈΡΡΠΎΡΠΎΠΌ R = 10 ΠΊΠΠΌ.
ΠΡΠ»ΠΈ Π²ΡΠ΅ ΠΊΠ»Π°Π²ΠΈΡΠΈ, ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°ΡΠΈΠ΅ ΠΊ ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠ΅, ΠΎΡΠΆΠ°ΡΡ, ΡΠΎ Π½Π° ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅ΠΌ Π²Ρ ΠΎΠ΄Π΅ ΠΏΠΎΡΡΠ° PORTx[4]β¦PORTx[7] ΡΠΎΡΠΌΠΈΡΡΠ΅ΡΡΡ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠ°Ρ 1. ΠΠ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΎΠΏΡΠΎΡΠ° ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ, ΡΡΠΎΠ±Ρ ΠΎΠ±Π½Π°ΡΡΠΆΠΈΡΡ, ΠΊΠ°ΠΊΠ°Ρ ΠΊΠ»Π°Π²ΠΈΡΠ° Π² Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π½Π°ΠΆΠ°ΡΠ°. ΠΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΡΠ½Π°ΡΠ°Π»Π° Π²ΡΡΡΠ°Π²Π»ΡΠ΅Ρ Π½Π° Π»ΠΈΠ½ΠΈΡ PORTx[0] Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΠΉ 0. Π’ΠΎΠ³Π΄Π° Π²ΡΠ΅ Π»Π΅Π²ΡΠ΅ Π²ΡΠ²ΠΎΠ΄Ρ ΠΊΠ»Π°Π²ΠΈΡ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΡΡΠ΄Π° ΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡΡΡ ΠΏΠΎΠ΄ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»ΠΎΠΌ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ 0. ΠΡΠ»ΠΈ ΠΎΠ΄Π½Ρ ΠΈΠ· ΠΊΠ»Π°Π²ΠΈΡ ΡΡΠΎΠ³ΠΎ ΡΡΠ΄Π° Π½Π°ΠΆΠ°ΡΡ, ΡΠΎ ΡΡΠΎΠ²Π΅Π½Ρ ΡΠΈΠ³Π½Π°Π»Π° Π½Π° ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ· Π²Ρ ΠΎΠ΄ΠΎΠ² PORTx[4]β¦PORTx[7] ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡΡ Ρ 0 Π½Π° 1. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ Π½Π°ΠΆΠ°Π»ΠΈ ΠΊΠ»Π°Π²ΠΈΡΡ Β«0Β», ΡΠΎ Π½Π° Π²Ρ ΠΎΠ΄Π΅ PORTx[4] ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ Π½ΠΈΠ·ΠΊΠΈΠΉ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΡΠΎΠ²Π΅Π½Ρ, Π° Π²ΡΠ΅ ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅ Π²Ρ ΠΎΠ΄Ρ PORTx[5]β¦PORTx[7] ΠΎΡΡΠ°Π½ΡΡΡΡ Π² 1. ΠΠ»ΠΈ, Π΅ΡΠ»ΠΈ Π½Π°ΠΆΠ°ΡΡ ΠΊΠ»Π°Π²ΠΈΡΡ Β«2Β», ΡΠΎ Π² 0 ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ Π²ΡΠ²ΠΎΠ΄ PORTx[6], Π° Π»ΠΈΠ½ΠΈΠΈ PORTx[4], PORTx[5] ΠΈ PORTx[7] Π±ΡΠ΄ΡΡ Π² 1. Π’Π°ΠΊΠΈ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°, ΠΏΡΠΎΡΠΈΡΠ°Π² ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ Π»ΠΈΠ½ΠΈΠΉ PORTx[4]β¦PORTx[7] ΠΈ ΠΎΠ±Π½Π°ΡΡΠΆΠΈΠ² 0 Π² ΠΊΠ°ΠΊΠΎΠΌ-Π»ΠΈΠ±ΠΎ ΡΠ°Π·ΡΡΠ΄Π΅, ΡΠΌΠΎΠΆΠ΅Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ, ΠΊΠ°ΠΊΠ°Ρ ΠΊΠ»Π°Π²ΠΈΡΠ° Π½Π°ΠΆΠ°ΡΠ°.
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΎΠΏΡΠΎΡΠ° ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ Π°Π½Π°Π»ΠΈΠ·ΠΈΡΡΠ΅Ρ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΊΠ»Π°Π²ΠΈΡ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΡΠ΄Π°, ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ Π²ΡΡΡΠ°Π²Π»ΡΡ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΠΉ 0 Π½Π° Π²ΡΠ²ΠΎΠ΄Ρ PORTx[0]β¦PORTx[3]. ΠΠ° ΡΠΈΡ. 5.5 ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π° ΡΠ°Π±Π»ΠΈΡΠ°, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΏΠΎΠΊΠ°Π·Π°Π½Ρ ΠΊΠΎΠ΄Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ΄ΡΡ Π½Π° Π»ΠΈΠ½ΠΈΡΡ ΠΏΠΎΡΡΠ° ΠΏΡΠΈ Π½Π°ΠΆΠ°ΡΠΈΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΠ· ΠΊΠ»Π°Π²ΠΈΡ. ΠΡΠΈ ΠΊΠΎΠ΄Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΎΠΉ ΠΎΠΏΡΠΎΡΠ° Π΄Π»Ρ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΊΠΎΠ΄Π° Π½Π°ΠΆΠ°ΡΠΎΠΉ ΠΊΠ»Π°Π²ΠΈΡΠΈ ΠΊ ΠΎΠ΄Π½ΠΎΠΌΡ ΠΈΠ· ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠΉ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΠΊ ΠΊΠΎΠ΄Ρ ACSII.
Π Π°ΡΡΠΌΠΎΡΡΠ΅Π½Π½Π°Ρ Π½Π°ΠΌΠΈ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΠ° ΠΌΠΎΠΆΠ΅Ρ ΠΈΠΌΠ΅ΡΡ ΠΈΠ½ΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΠ°Ρ , Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠ΅ Ρ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠΌ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΊΠ½ΠΎΠΏΠΊΠΈ Π² ΡΡΡΡΠΎΠΉΡΡΠ²Π΅. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΠΎΠ΄ΠΎΠ±Π½Π°Ρ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π½Π°ΡΠΎΡΠΎΠΌ Π±Π΅Π½Π·ΠΎΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ. Π’ΠΎΠ³Π΄Π° ΠΊΠ»Π°Π²ΠΈΡΠΈ ΠΌΠΎΠ³ΡΡ Π·Π°Π΄Π°Π²Π°ΡΡ ΡΠΈΠΏ ΠΎΡΠΏΡΡΠΊΠ°Π΅ΠΌΠΎΠ³ΠΎ Π±Π΅Π½Π·ΠΈΠ½Π°, ΡΠΎΡΠΌΡ ΠΏΡΠΈΠ΅ΠΌΠ° ΠΏΠ»Π°ΡΠ΅ΠΆΠ° ΠΈ Ρ.Π΄. ΠΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠ°ΡΠΏΠΎΠ·Π½Π°ΡΡ, ΠΊΠ°ΠΊΠ°Ρ ΠΊΠ»Π°Π²ΠΈΡΠ° Π½Π°ΠΆΠ°ΡΠ°, ΠΈ ΠΏΠ΅ΡΠ΅ΠΉΡΠΈ ΠΊ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅ΠΉ ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅.
Π ΠΈΡ. 5.6. ΠΠ»ΠΎΠΊ-ΡΡ Π΅ΠΌΠ° Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° ΠΎΠΏΡΠΎΡΠ° ΠΌΠ°ΡΡΠΈΡΠ½ΠΎΠΉ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ
ΠΠ° ΡΠΈΡ. 5.6 ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π° Π±Π»ΠΎΠΊ-ΡΡ Π΅ΠΌΠ° Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° ΠΎΠΏΡΠΎΡΠ° ΠΌΠ°ΡΡΠΈΡΠ½ΠΎΠΉ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ ΠΈΠ· 16 ΠΊΠ»Π°Π²ΠΈΡ. ΠΡΠΎΡ Π°Π»Π³ΠΎΡΠΈΡΠΌ ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· ΡΠ΅ΡΡΡΠ΅Ρ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΡ Π±Π»ΠΎΠΊΠΎΠ², Π² ΠΊΠΎΡΠΎΡΡΡ ΡΠ½Π°ΡΠ°Π»Π° ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ Π² 0 ΠΎΠ΄Π½Π° ΠΈΠ· Π»ΠΈΠ½ΠΈΠΉ PORTx[0]β¦PORTx[3], Π° Π·Π°ΡΠ΅ΠΌ ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΡΠ΅ΡΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ Π»ΠΈΠ½ΠΈΠΉ PORTx[4]β¦PORTx[7]. ΠΡΠ»ΠΈ Π½Π° Π²Ρ ΠΎΠ΄Π°Ρ Π»ΠΈΠ½ΠΈΠΉ PORTx[4]β¦PORTx[7] Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΠ΅ 1, ΡΠΎ Π½ΠΈ ΠΎΠ΄Π½Π° ΠΊΠ½ΠΎΠΏΠΊΠ° Π°ΠΊΡΠΈΠ²ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΡΡΠ΄Π° Π½Π΅ Π½Π°ΠΆΠ°ΡΠ°, ΠΈ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΏΠ΅ΡΠ΅ΠΉΡΠΈ ΠΊ ΠΎΠΏΡΠΎΡΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π³ΠΎ ΡΡΠ΄Π°. ΠΡΠ»ΠΈ Π½Π° ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ ΠΈΠ· Π»ΠΈΠ½ΠΈΠΉ PORTx[4]β¦PORTx[7] ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π» Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ 0, ΡΠΎ ΠΏΠΎ Π½ΠΎΠΌΠ΅ΡΡ Π»ΠΈΠ½ΠΈΠΈ ΠΈ ΠΏΠΎ Π½ΠΎΠΌΠ΅ΡΡ Π°ΠΊΡΠΈΠ²ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΡΡΠ΄Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π΄ΠΎΠ»ΠΆΠ½Π° Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΊΠΎΠ΄ Π½Π°ΠΆΠ°ΡΠΎΠΉ ΠΊΠ»Π°Π²ΠΈΡΠΈ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΡΠ΄ΠΎΠ±Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ°Π±Π»ΠΈΡΡ ΡΠΈΡ. 5.5. ΠΡ ΠΏΡΠΈΠ²Π΅Π»ΠΈ Π»ΠΈΡΡ ΠΎΠ±ΡΡΡ ΡΡΡΡΠΊΡΡΡΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ°. ΠΠ΅ΡΠ°Π»ΡΠ½ΠΎΠ΅ Π΅Π΅ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΏΠΎΡΠ»Π΅ ΠΏΡΠΈΠΌΠ΅ΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, ΠΈ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ ΠΠ Π΄ΠΈΡΠΏΠ»Π΅Ρ.
/*-----------------------------------------------------------*/
/* filename: keypad.c */
/* ΠAIN PROGRAΠ: ΠΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ Π°Π½Π°Π»ΠΈΠ· */
/*ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΠΌΠ°ΡΡΠΈΡΠ½ΠΎΠΉ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ ΠΈΠ· 16 ΠΊΠ»Π°Π²ΠΈΡ */
/*ΠΠ»Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ PORTB */
/*Π Π°Π·ΡΡΠ΄Ρ PORTB[0]β¦PORTB[3] Π°ΠΊΡΠΈΠ²ΠΈΠ·ΠΈΡΡΡΡ Π»ΠΈΠ½ΠΈΠΈ ΡΡΠ΄ΠΎΠ² */
/*ΡΠ°Π·ΡΡΠ΄Ρ PORTB[4]β¦PORTB[7]ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π΄Π»Ρ ΡΡΠΈΡΡΠ²Π°Π½ΠΈΡ ΠΊΠΎΠ΄ΠΎΠ² */
/*ΠΊΠΎΠ»ΠΎΠ½ΠΎΠΊ */
/*-----------------------------------------------------------*/
/*ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΠΌΡΠ΅ ΡΠ°ΠΉΠ»Ρ*/
#include <912b32.h>
#include <stdio.h>
#include <math.h>
/*ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ*/
char keypad(unsigned char keypress, unsigned char row);
char which_key(unsigned char keypress); /*Function to select key*/
void main{void) {
unsigned char keypress;
/*Π·Π°Π΄Π°Π½ΠΈΠ΅ ΠΊΠΎΠ΄ΠΎΠ² Π°ΠΊΡΠΈΠ²ΠΈΠ·Π°ΡΠΈΠΈ ΡΡΠ΄ΠΎΠ² ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ*/
unsigned char first = 0xFE; /*ΠΊΠΎΠ΄ Π°ΠΊΡΠΈΠ²ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΡΡΠ΄Π°*/
unsigned char second = 0xFD; /*ΠΊΠΎΠ΄ Π°ΠΊΡΠΈΠ²ΠΈΠ·Π°ΡΠΈΠΈ Π²ΡΠΎΡΠΎΠ³ΠΎ ΡΡΠ΄Π°*/
unsigned char third = 0xFB; /*ΠΊΠΎΠ΄ Π°ΠΊΡΠΈΠ²ΠΈΠ·Π°ΡΠΈΠΈ ΡΡΠ΅ΡΡΠ΅Π³ΠΎ ΡΡΠ΄Π°*/
unsigned char fourth = 0xF7; /*ΠΊΠΎΠ΄ Π°ΠΊΡΠΈΠ²ΠΈΠ·Π°ΡΠΈΠΈ ΡΠ΅ΡΠ²Π΅ΡΡΠΎΠ³ΠΎ ΡΡΠ΄Π°*/
DDRB = 0x0f; /*Π»ΠΈΠ½ΠΈΠΈ 0β¦3 Π½Π° Π²ΡΠ²ΠΎΠ΄, Π»ΠΈΠ½ΠΈΠΈ 4β¦7 Π½Π° Π²Π²ΠΎΠ΄*/
while(1) {
PORTB = 0xFE;
keypress = PORTB;
key = keypad(keypress, first);
PORTB = 0xFD;
keypress = PORTB;
key = keypad(keypress, second);
PORTB = 0xFB;
keypress = PORTB;
key = keypad(keypress, third);
PORTB = 0xF7;
keypress = PORTB;
key = keypad(keypress, fourth);
}
}
/*------------------------------------------------------------------------*/
/*Π€ΡΠ½ΠΊΡΠΈΡ keypad ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ, Π±ΡΠ»Π° Π»ΠΈ Π½Π°ΠΆΠ°ΡΠ° ΠΊΠ°ΠΊΠ°Ρ-Π»ΠΈΠ±ΠΎ ΠΊΠ»Π°Π²ΠΈΡΠ°. */
/*Π€ΡΠ½ΠΊΡΠΈΡ ΡΡΠ°Π²Π½ΠΈΠ²Π°Π΅Ρ ΠΏΡΠΎΡΠΈΡΠ°Π½Π½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΡΡΠ° PORTB Ρ ΡΠ΅ΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ, */
/*ΠΊΠΎΡΠΎΡΠΎΠ΅ Π±ΡΠ»ΠΎ Π²ΡΠ΄Π°Π½ΠΎ Π½Π° ΠΏΠΎΡΡ PORTB. ΠΡΠ»ΠΈ ΠΎΠ½ΠΈ ΡΠ°Π²Π½Ρ, ΡΠΎ Π½ΠΈ ΠΎΠ΄Π½Π° ΠΊΠ»Π°Π²ΠΈΡΠ° Π² */
/*ΡΡΠ΄Ρ Π½Π΅ Π½Π°ΠΆΠ°ΡΠ° */
/*------------------------------------------------------------------------*/
char keypad(unsigned char keypress, unsigned char row) {
char key1;
if (keypress != row) { /*ΠΊΠ°ΠΊΠ°Ρ-ΡΠΎ ΠΊΠ»Π°Π²ΠΈΡΠ° Π½Π°ΠΆΠ°ΡΠ°*/
key1 = which_key(keypress); /*ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΊΠ»Π°Π²ΠΈΡΡ*/
putchars(key1); /*ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ ΡΠΈΠΌΠ²ΠΎΠ» Π½Π° Π΄ΠΈΡΠΏΠ»Π΅ΠΉ*/
} else if(keypress == row) { /*Π½ΠΈ ΠΎΠ΄Π½Π° ΠΈΠ· ΠΊΠ»Π°Π²ΠΈΡ Π½Π΅ Π½Π°ΠΆΠ°ΡΠ°*/
key1 = 'Z';
}
return (key1);
}
/*------------------------------------------------------------------------*/
/* Π€ΡΠ½ΠΊΡΠΈΡ char which_key ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΠΊΠΎΠ΄ Π½Π°ΠΆΠ°ΡΠΎΠΉ ΠΊΠ»Π°Π²ΠΈΡΠΈ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ ΠΏΠ΅ΡΠ΅Π±ΠΎΡΠ° */
/*ΡΠ°Π±Π»ΠΈΡΠ½ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ */
/*------------------------------------------------------------------------*/
char witch_key(unsigned char keypress) {
char key;
switch(keypress) /*ΡΠ°ΡΠΏΠΎΠ·Π½Π°Π²Π°Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° ΠΊΠ»Π°Π²ΠΈΡΠΈ*/
{
case 0xEE:
key = '0'; /*Π½Π°ΠΆΠ°ΡΠ° ΠΊΠ»Π°Π²ΠΈΡΠ° "0"*/
break;
case 0xDE:
key = '1'; /*Π½Π°ΠΆΠ°ΡΠ° ΠΊΠ»Π°Π²ΠΈΡΠ° "1"*/
break;
case 0xBE:
key = '2'; /*Π½Π°ΠΆΠ°ΡΠ° ΠΊΠ»Π°Π²ΠΈΡΠ° "2"*/
break;
case 0x7E:
key = '3'; /*Π½Π°ΠΆΠ°ΡΠ° ΠΊΠ»Π°Π²ΠΈΡΠ° "3"*/
break;
case 0xED:
key = '4'; /*Π½Π°ΠΆΠ°ΡΠ° ΠΊΠ»Π°Π²ΠΈΡΠ° "4"*/
break;
case 0xDD:
key = '5'; /*Π½Π°ΠΆΠ°ΡΠ° ΠΊΠ»Π°Π²ΠΈΡΠ° "5"*/
break;
case 0xBD:
key = '6'; /*Π½Π°ΠΆΠ°ΡΠ° ΠΊΠ»Π°Π²ΠΈΡΠ° "6"*/
break;
case 0x7D:
key = '7'; /*Π½Π°ΠΆΠ°ΡΠ° ΠΊΠ»Π°Π²ΠΈΡΠ° "7"*/
break;
case 0xEB:
key = '8'; /*Π½Π°ΠΆΠ°ΡΠ° ΠΊΠ»Π°Π²ΠΈΡΠ° "8"*/
break;
case 0xDB:
key = '9'; /*Π½Π°ΠΆΠ°ΡΠ° ΠΊΠ»Π°Π²ΠΈΡΠ° "9"*/
break;
case 0xBB:
key = 'A'; /*Π½Π°ΠΆΠ°ΡΠ° ΠΊΠ»Π°Π²ΠΈΡΠ° "A"*/
break;
case 0x7B:
key = 'B'; /*Π½Π°ΠΆΠ°ΡΠ° ΠΊΠ»Π°Π²ΠΈΡΠ° "B"*/
break;
case 0xE7:
key = 'C'; /*Π½Π°ΠΆΠ°ΡΠ° ΠΊΠ»Π°Π²ΠΈΡΠ° "C"*/
break;
case 0xD7:
key = 'D'; /*Π½Π°ΠΆΠ°ΡΠ° ΠΊΠ»Π°Π²ΠΈΡΠ° "D"*/
break;
case 0xB7:
key = 'E'; /*Π½Π°ΠΆΠ°ΡΠ° ΠΊΠ»Π°Π²ΠΈΡΠ° "E"*/
break;
case 0x77:
key = 'F'; /*Π½Π°ΠΆΠ°ΡΠ° ΠΊΠ»Π°Π²ΠΈΡΠ° "F"*/
break;
default:
key = 'Z';
} /*ΠΊΠΎΠ½Π΅Ρ ΡΠ°ΡΠΏΠΎΠ·Π½Π°Π²Π°Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° ΠΊΠ»Π°Π²ΠΈΡΠΈ*/
return(key);
}
/*----------------------------------------------------------*/
ΠΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π½ΡΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΉ ΠΊΠΎΠ΄ Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ Π·Π°Π²Π΅ΡΡΠ΅Π½Π½ΠΎΠΉ ΡΠ°Π±ΠΎΡΠ΅ΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΎΠΉ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π² Π½Π΅ΠΌ ΠΎΡΡΡΡΡΡΠ²ΡΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ Π·Π°ΡΠΈΡΡ ΠΎΡ Π΄ΡΠ΅Π±Π΅Π·Π³Π° ΠΊΠΎΠ½ΡΠ°ΠΊΡΠΎΠ², ΠΎΡΡΡΡΡΡΠ²ΡΠ΅Ρ ΡΠ΅ΠΊΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ Π²ΡΠ²ΠΎΠ΄Π° ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² Π½Π° ΠΠ Π΄ΠΈΡΠΏΠ»Π΅ΠΉ. ΠΡ ΠΈΡΠΏΡΠ°Π²ΠΈΠΌ ΡΡΠΈ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΊΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΠ·ΠΆΠ΅, Π² ΡΠ°Π·Π΄Π΅Π»Π΅ 5.6.
5.3. Π£ΡΡΡΠΎΠΉΡΡΠ²Π° ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΈΠΈ: ΡΠ²Π΅ΡΠΎΠ΄ΠΈΠΎΠ΄Ρ, ΡΠ΅ΠΌΠΈΡΠ΅Π³ΠΌΠ΅Π½ΡΠ½ΡΠ΅ ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡΡ, ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡΡ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π²ΡΡ ΠΎΠ΄Π° Ρ ΡΡΠ΅ΠΌΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΡΠΌΠΈ
Π ΡΡΠΎΠΌ ΠΏΠ°ΡΠ°Π³ΡΠ°ΡΠ΅ ΠΌΡ Π½Π°ΡΡΠΈΠΌΡΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°ΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΡΠΈΠΏΡ ΡΠ²Π΅ΡΠΎΠ΄ΠΈΠΎΠ΄Π½ΡΡ ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡΠΎΠ² ΠΊ Π²ΡΡ ΠΎΠ΄Π°ΠΌ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ°. ΠΡΠ½ΠΎΠ²ΡΠ²Π°ΡΡΡ Π½Π° ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΡ ΡΠ°Π½Π΅Π΅ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡΡ ΠΎΠ± ΡΠ»Π΅ΠΊΡΡΠΈΡΠ΅ΡΠΊΠΈΡ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠ°Ρ ΡΠ²Π΅ΡΠΎΠ΄ΠΈΠΎΠ΄Π° Π²ΠΈΠ΄ΠΈΠΌΠΎΠ³ΠΎ ΡΠΏΠ΅ΠΊΡΡΠ° ΠΈΠ·Π»ΡΡΠ΅Π½ΠΈΡ, ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ, ΠΊΠ°ΠΊ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡ ΠΊ ΠΠ Π»ΠΈΠ½Π΅ΠΉΠΊΡ ΠΈΠ· Π²ΠΎΡΡΠΌΠΈ ΡΠ²Π΅ΡΠΎΠ΄ΠΈΠΎΠ΄ΠΎΠ² ΠΈ ΡΠ΅ΠΌΠΈΡΠ΅Π³ΠΌΠ΅Π½ΡΠ½ΡΠΉ ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡ. ΠΠ°Π»Π΅Π΅ ΠΌΡ ΠΎΠ±ΡΡΠ΄ΠΈΠΌ, ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΡΠΎΠΏΡΡΠΆΠ΅Π½ΠΈΡ Ρ ΡΠ΅ΠΌΠΈΡΠ΅Π³ΠΌΠ΅Π½ΡΠ½ΡΠΌ ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡΠΎΠΌ Π±ΠΎΠ»ΡΡΠΈΡ ΡΠ°Π·ΠΌΠ΅ΡΠΎΠ². ΠΠ°Π²Π΅ΡΡΠΈΠΌ ΠΏΠ°ΡΠ°Π³ΡΠ°Ρ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»ΡΠ½ΠΎΠΉ ΡΡ Π΅ΠΌΡ ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΈΠΈ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΡΠΈΠΏΠΈΡΠ½ΡΡ Π΄Π»Ρ ΠΌΠΈΠΊΡΠΎΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ½ΠΎΠΉ ΡΠ΅Ρ Π½ΠΈΠΊΠΈ Π²ΡΡ ΠΎΠ΄Π½ΡΡ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΡ Π±ΡΡΠ΅ΡΠΎΠ² Ρ ΡΡΠ΅ΠΌΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΡΠΌΠΈ.