ΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² написании студСнчСских Ρ€Π°Π±ΠΎΡ‚
АнтистрСссовый сСрвис

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° устройства

ΠšΡƒΡ€ΡΠΎΠ²Π°ΡΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈΠ£Π·Π½Π°Ρ‚ΡŒ ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒΠΌΠΎΠ΅ΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹

Π’ R0 ΠΏΠΎΠΌΠ΅Ρ‰Π°Π΅ΠΌ адрСс Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅Π³ΠΎ рСгистра Π΄Π°Π½Π½Ρ‹Ρ… LCD. Π—Π°Ρ‚Π΅ΠΌ Π½Π° Π»ΠΈΠ½ΠΈΠΈ RS устанавливаСм высокий ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π», Π° Π½Π° Π»ΠΈΠ½ΠΈΠΈ RW — Π½ΠΈΠ·ΠΊΠΈΠΉ, Ρ‡Ρ‚ΠΎ соотвСтствуСт Ρ€Π΅ΠΆΠΈΠΌΡƒ ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ†ΠΈΠΈ LCD. И, Π·Π°Ρ‚Π΅ΠΌ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ записи Π²ΠΎ Π²Π½Π΅ΡˆΠ½Π΅Π΅ ΠžΠ—Π£, ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅ΠΌ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ· Π°ΠΊΠΊΡƒΠΌΡƒΠ»ΡΡ‚ΠΎΡ€Π° Π²ΠΎ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΉ рСгистр Π΄Π°Π½Π½Ρ‹Ρ… LCD. ΠŸΡ€ΠΈ этом автоматичСски гСнСрируСтся ΠΈΠΌΠΏΡƒΠ»ΡŒΡ Π½Π° Π²Ρ‹Ρ…ΠΎΠ΄Π΅ WR ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°, Ρ‡Ρ‚ΠΎ ΠΏΠΎ Π²Ρ‹ΡˆΠ΅ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ схСмС соСдинСния… Π§ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Ρ‰Ρ‘ >

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° устройства (Ρ€Π΅Ρ„Π΅Ρ€Π°Ρ‚, курсовая, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ)

1. Аппаратная Ρ‡Π°ΡΡ‚ΡŒ

2. Π’Ρ‹Π±ΠΎΡ€ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ²

3. ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΈΠ°Π»ΡŒΠ½Π°Ρ элСктричСская схСма

4. Алгоритм функционирования ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

5. ОписаниС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

6. Листинг Π›ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΡƒΡ€Π°

1. Аппаратная Ρ‡Π°ΡΡ‚ΡŒ ОписаниС.

НСобходимо ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅Ρ‡Π΅Π½ΡŒ устройств ΠΈ ΡΠ»Π΅ΠΌΠ΅Π½Ρ‚ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ Π²Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ Π² Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½ΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ. Π‘Ρ…Π΅ΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎΠ΅ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Ρ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΎ Π½Π° Ρ€ΠΈΡΡƒΠ½ΠΊΠ΅ 1.

Рисунок 1

Π’Ρ‹Π±Π΅Ρ€Π΅ΠΌ ΠΈ ΠΏΡ€ΠΎΠ°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅ΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹, ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΡΡ‚ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΈΠ°Π»ΡŒΠ½Π°Ρ схСма.

2. Π’Ρ‹Π±ΠΎΡ€ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² Π°) Π’Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ AT89C51RC2 Ρ„ΠΈΡ€ΠΌΡ‹ Atmel.

ΠœΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ сСмСйства АВ89 Ρ„ΠΈΡ€ΠΌΡ‹ Atmel прСдставляСт собой Π²ΠΎΡΡŒΠΌΠΈΡ€Π°Π·Ρ€ΡΠ΄Π½ΡƒΡŽ ΠΎΠ΄Π½ΠΎΠΊΡ€ΠΈΡΡ‚Π°Π»ΡŒΠ½ΡƒΡŽ ΠΌΠΈΠΊΡ€ΠΎΠ­Π’Πœ с ΡΠΈΡΡ‚Π΅ΠΌΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ MCS-51 Ρ„ΠΈΡ€ΠΌΡ‹ Intel. ΠœΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Ρ‹ ΠΈΠ·Π³ΠΎΡ‚Π°Π²Π»ΠΈΠ²Π°ΡŽΡ‚ΡΡ ΠΏΠΎ ΠšΠœΠžΠŸ (CMOS) Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ.

ВСхничСскиС Π΄Π°Π½Π½Ρ‹Π΅ AT89C51RC2:

ΠŸΠ°ΠΌΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ (Flash)…32 Кб Π’нутрисхСмноС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅… SPI

ΠžΠ—Π£…128 Π±Π°ΠΉΡ‚ Π’Π°ΠΉΠΌΠ΅Ρ€-счСтчик…3

НапряТСниС питания…2,7−5,5 Π’ Максимальная тактовая частота…60 ΠœΠ“Ρ† Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊΠΎΠ² прСрывания сигнала…6

Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ: встроСнный Π°Π½Π°Π»ΠΎΠ³ΠΎΠ²Ρ‹ΠΉ ΠΊΠΎΠΌΠΏΠ°Ρ€Π°Ρ‚ΠΎΡ€

ΠŸΡ€Π΅Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ допустимыС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹:

Рабочая Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Π° … -40Β°C +85Β°C

НапряТСниС Π½Π° Π»ΡŽΠ±ΠΎΠΌ Π²Ρ‹Π²ΠΎΠ΄Π΅ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π·Π΅ΠΌΠ»ΠΈ … -1.0 Π’ +7.0 Π’ МаксимальноС напряТСниС питания … 6.6 Π’ Π’Ρ‹Ρ…ΠΎΠ΄Π½ΠΎΠΉ Ρ‚ΠΎΠΊ (Π»ΠΎΠ³ 0) …25.0 мА Π±) Для ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Π–Πš-ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€ LM020L.

Π­Ρ‚ΠΎ 16-разрядный однострочный ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€ с ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠΌ HD44780.

ΠŸΡ€Π΅Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ допустимыС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ LM020L:

Рабочая Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Π° … 0 Β°C +50Β°C

Π’Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Π° хранСния … -20Β°C +60Β°C

МаксимальноС напряТСниС питания …7.0 Π’ Π²) Для автоматичСского управлСния стробовыми ΠΈΠΌΠΏΡƒΠ»ΡŒΡΠ°ΠΌΠΈ записи ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ логичСский элСмСнт 2И-НЕ 74LS26

ΠŸΡ€Π΅Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ допустимыС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ 74LS26:

Рабочая Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Π° … -55Β°C +125Β°C

МаксимальноС напряТСниС питания … 5.5 Π’ Для ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ Π·Π°Π΄Π°Π½Π½ΠΎΠΉ частоты записываСм Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ (1/f)*100, Ρ‡Ρ‚ΠΎ соотвСтствуСт 100 ΠΏΠ΅Ρ€ΠΈΠΎΠ΄Π°ΠΌ Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠΉ частоты Π² ΠΌΠΈΠΊΡ€ΠΎΡΠ΅ΠΊΡƒΠ½Π΄Π°Ρ…. Π’Π°ΠΊ ΠΆΠ΅ Π΄Π΅Π»Π°Π΅ΠΌ ΠΏΠΎΠΏΡ€Π°Π²ΠΊΡƒ Π½Π° Π²Ρ€Π΅ΠΌΡ выполнСния ΠΊΠΎΠΌΠ°Π½Π΄. Для процСссора с Ρ‡Π°ΡΡ‚ΠΎΡ‚ΠΎΠΉ 12 ΠœΠ“Ρ† врСмя ΠΎΠ΄Π½ΠΎΠ³ΠΎ машинного Ρ†ΠΈΠΊΠ»Π° составляСт 2мкс.

Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π³Ρ€ΡƒΠΏΠΏ Π±ΡƒΠ΄ΡƒΡ‚ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ значСния:

1-я Π³Ρ€ΡƒΠΏΠΏΠ° — 1007 мкс;

2-я Π³Ρ€ΡƒΠΏΠΏΠ° — 916 мкс;

3-я Π³Ρ€ΡƒΠΏΠΏΠ° — 840 мкс;

4 — Π³Ρ€ΡƒΠΏΠΏΠ° — 776 мкс;

3. Π‘Ρ…Π΅ΠΌΠ° элСктричСская ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΈΠ°Π»ΡŒΠ½Π°Ρ

На Ρ€ΠΈΡΡƒΠ½ΠΊΠ΅ 2 ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π° ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΈΠ°Π»ΡŒΠ½Π°Ρ схСма, подходящая для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ поставлСнной Π·Π°Π΄Π°Ρ‡ΠΈ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰Π°Ρ Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Рисунок 2

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° устройства

4. Алгоритм функционирования ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ РазрабатываСмая систСма позволяСт Ρ€Π°Π·Π±Ρ€Π°ΠΊΠΎΠ²Π°Ρ‚ΡŒ микросхСмы ΠΏΠΎ Ρ‡Π°ΡΡ‚ΠΎΡ‚Π΅ Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ 100…130 ΠΊΠ“Ρ† ΠΏΠΎ Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ΠΌ Π³Ρ€ΡƒΠΏΠΏΠ°ΠΌ:

100.110 — Π³Ρ€ΡƒΠΏΠΏΠ° 1;

110.120 — Π³Ρ€ΡƒΠΏΠΏΠ° 2;

120…130 — Π³Ρ€ΡƒΠΏΠΏΠ° 3;

Π’Ρ‹Ρ…ΠΎΠ΄ Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Ρ‹ — Π±Ρ€Π°ΠΊ (Π³Ρ€ΡƒΠΏΠΏΠ° 4);

Алгоритм функционирования ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ Π½Π° Ρ€ΠΈΡΡƒΠ½ΠΊΠ΅ 3.

Рисунок 3

ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ устройство ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π‘ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠΉ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ функционирования ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ Π½Π° Ρ€ΠΈΡΡƒΠ½ΠΊΠ΅ 4.

Рисунок 4.

Π’ ΡΠΎΠΎΡ‚вСтствии с ΡΡ‚ΠΈΠΌ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠΌ Π±Ρ‹Π»Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°, ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‰Π°Ρ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠΌ Π·Π°Π΄Π°Π½Π½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.

5. ОписаниС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ По Π°Π΄Ρ€Π΅ΡΡƒ Π² ΠŸΠ—Π£ 00h Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°Π΅ΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° Π½Π° ΠΌΠ΅Ρ‚ΠΊΡƒ init (Ρ‚.Π΅. инициализация дисплСя ΠΈ Π½Π°Ρ‡Π°Π»ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹).

1BhадрСс ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ прСрывания ΠΎΡ‚ Ρ‚Π°ΠΉΠΌΠ΅Ρ€Π° ΠΏΡ€ΠΈ Π΅Π³ΠΎ ΠΏΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΎΡ‚ ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΡ Ρ„Π»Π°Π³Π° TF.

ΠŸΡ€ΠΈΡΠ²ΠΎΠΈΠΌ ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹Π΅ ΠΈΠΌΠ΅Π½Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΌ ΠΏΠΎΡ€Ρ‚Π°ΠΌ ΠœΠš. Π£ΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅ Π²Ρ…ΠΎΠ΄Ρ‹ LCD-дисплСя соСдинСны с ΠΏΠ΅Ρ€Π²Ρ‹ΠΌΠΈ ΠΏΠΎΡ€Ρ‚Π°ΠΌΠΈ:

RS bit P1.0

RW bit P1.1

Π’Π°ΠΊ ΠΆΠ΅ присвоим ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹Π΅ ΠΈΠΌΠ΅Π½Π° Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΌ рСгистрам LCD-дисплСя, Π² Π΄Π°Π»ΡŒΠ½Π΅ΠΉΡˆΠ΅ΠΌ Π±ΡƒΠ΄Π΅ΠΌ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ ΠΊ Π½ΠΈΠΌ ΠΊΠ°ΠΊ ΠΊ Π²Π½Π΅ΡˆΠ½Π΅ΠΉ ΠžΠ—Π£:

CMD equ 00b

DAT equ00000001b

BUS equ00000010b

Π’Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌ ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ настройки Ρ€Π΅ΠΆΠΈΠΌΠΎΠ² Ρ‚Π°ΠΉΠΌΠ΅Ρ€ΠΎΠ² ΠΈ Π½Π°ΡΡ‚Ρ€ΠΎΠΉΠΊΠΈ дисплСя. НастраиваСм ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ рСгистр управлСния Ρ‚Π°ΠΉΠΌΠ΅Ρ€Π°ΠΌΠΈ TMOD

mov tmod, #101 0001b;16-Π±ΠΈΡ‚Π½Ρ‹Π΅ Ρ‚Π°ΠΉΠΌΠ΅Ρ€Ρ‹ Π’0 ΠΈ Π’1 ΠΈ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ счётчика ΠΎΡ‚ Π²Π½Π΅ΡˆΠ½ΠΈΡ… сигналов.

setb EA; всС прСрывания Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½Ρ‹

setb ET1; Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΎ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠ΅ ΠΎΡ‚ Ρ‚Π°ΠΉΠΌΠ΅Ρ€Π° 1.

ΠŸΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΠΌ настройку ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°. Π—Π°ΠΏΠΈΡˆΠ΅ΠΌ Π² Π°ΠΊΠΊΡƒΠΌΡƒΠ»ΡΡ‚ΠΎΡ€ ΠΈ Π²ΠΏΠΎΡΠ»Π΅Π΄ΡΡ‚Π²ΠΈΠΈ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½Ρ‹ΠΉ рСгистр LCD ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ x040h. Π­Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° устанавливаСт 8-Π±ΠΈΡ‚Π½ΡƒΡŽ ΡˆΠΈΠ½Ρƒ ΠΎΠ±ΠΌΠ΅Π½Π° Π΄Π°Π½Π½Ρ‹Ρ… LCD с ΠœΠš, ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½ΡƒΡŽ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ 5×8 Ρ‚ΠΎΡ‡Π΅ΠΊ ΠΈ ΠΎΠ΄Π½Ρƒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡƒΡŽ строку дисплСя.

mov A,#040h

call LSDSetup.

Π—Π°ΠΏΠΈΡˆΠ΅ΠΌ Π² Π°ΠΊΠΊΡƒΠΌΡƒΠ»ΡΡ‚ΠΎΡ€ ΠΈ Π²ΠΏΠΎΡΠ»Π΅Π΄ΡΡ‚Π²ΠΈΠΈ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½Ρ‹ΠΉ рСгистр LCD ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ x0Fh. Π­Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° нСпосрСдствСнно Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ дисплСй, Π²Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚ Ρ‚ΠΈΠΏ курсора. Π’Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌ ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, которая ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅Ρ‚ эту настройку Π² LCD:

mov A,#0Fh

call LSDSetup.

Π—Π°ΠΏΠΈΡˆΠ΅ΠΌ Π² Π°ΠΊΠΊΡƒΠΌΡƒΠ»ΡΡ‚ΠΎΡ€ ΠΈ Π²ΠΏΠΎΡΠ»Π΅Π΄ΡΡ‚Π²ΠΈΠΈ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½Ρ‹ΠΉ рСгистр LCD ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ x06h. Π­Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π°Π²Ρ‚ΠΎΠΈΠ½ΠΊΡ€Π΅ΠΌΠ΅Π½Ρ‚ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ ΠΈ ΡΠ΄Π²ΠΈΠ³ курсора Π²ΠΏΡ€Π°Π²ΠΎ. Π’Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌ ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, которая ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅Ρ‚ эту настройку Π² LCD:

mov A,#06h

call LSDSetup.

ΠŸΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΠΌ Π½Π° ΠΌΠ΅Ρ‚ΠΊΡƒ Start

setb P2.0; УстанавливаСм Π΅Π΄ΠΈΠ½ΠΈΡ‡Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ стробового ΠΏΠΎΡ€Ρ‚Π°.

ΠžΠΏΡƒΡΡ‚ΠΎΡˆΠ°Π΅ΠΌ рСгистры Ρ‚Π°ΠΉΠΌΠ΅Ρ€ΠΎΠ² ΠΈ ΡΠ±Ρ€Π°ΡΡ‹Π²Π°Π΅ΠΌ Ρ„Π»Π°Π³ΠΈ пСрСполнСния

mov TH0,#0

mov TL0,#0

mov TH1,#0

mov TL1,#0

mov DPTR,#0000h

clr tr0

clr tr1

clr tf0

clr tf1

Π–Π΄Ρ‘ΠΌ наТатия ΠΊΠ½ΠΎΠΏΠΊΠΈ: jb p1.2,$;

ЗаписываСм Π² Ρ€Π΅Π³ΠΈΡΡ‚Ρ€Ρ‹ счётчика число «-100»

mov TH1, # 0FFh

mov TL1, #9bh

Π”Π°Π»Π΅Π΅ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ Ρ‚Π°ΠΉΠΌΠ΅Ρ€ ΠΈ ΡΡ‡Ρ‘Ρ‚Ρ‡ΠΈΠΊ

setb TR1

setb TR0

ΠœΠ΅Ρ‚ΠΊΠ° gr ΠΈ ΡƒΡΠ»ΠΎΠ²Π½Ρ‹ΠΉ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ Π½Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ ΠΏΡ€ΠΎΠΉΡ‚ΠΈ дальшС, ΠΏΠΎΠΊΠ° Π½Π΅ ΡƒΡΡ‚Π°Π½ΠΎΠ²Π»Π΅Π½ Ρ„Π»Π°Π³ F0. Π­Ρ‚ΠΎΡ‚ Ρ„Π»Π°Π³ устанавливаСтся послС ΠΎΠ΄Π½ΠΎΠΊΡ€Π°Ρ‚Π½ΠΎΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ прСрывания.

gr:

jb F0, gotovo1

jmp gr

По ΠΏΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡŽ счётчика (Ρ‚.Π΅. послС отсчСта 100 ΠΈΠΌΠΏΡƒΠ»ΡŒΡΠΎΠ²) выставится Ρ„Π»Π°Π³ TF1, ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΏΠ΅Ρ€Π΅ΠΉΠ΄Ρ‘Ρ‚ ΠΏΠΎ Π°Π΄Ρ€Π΅ΡΡƒ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ прСрывания. По Π΄Π°Π½Π½ΠΎΠΌΡƒ адрСсу Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° Π½Π° ΠΌΠ΅Ρ‚ΠΊΡƒ check.

Π’Ρ‹ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ Ρ‚Π°ΠΉΠΌΠ΅Ρ€ ΠΈ ΡΡ‡Ρ‘Ρ‚Ρ‡ΠΈΠΊ

clr TR0

clr TR1

Π’ Ρ€Π΅Π³ΠΈΡΡ‚Ρ€Π°Ρ… Ρ‚Π°ΠΉΠΌΠ΅Ρ€Π° TH0 ΠΈ TL0 хранится Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ 100 ΠΈΠΌΠΏΡƒΠ»ΡŒΡΠΎΠ².

ΠŸΠ΅Ρ€Π΅ΡΡ‹Π»Π°Π΅ΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈΠ· Ρ€Π΅Π³ΠΈΡΡ‚Ρ€ΠΎΠ² Ρ‚Π°ΠΉΠΌΠ΅Ρ€Π° Π² DPTR

mov dpl, TL0

mov dph, TH0

Π₯ранящССся Π² DPTR число Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ ΠΈ ΠΎΡ‚нСсти Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΡƒΡŽ Π³Ρ€ΡƒΠΏΠΏΡƒ Π² ΡΠΎΠΎΡ‚вСтствии с ΡƒΡΠ»ΠΎΠ²ΠΈΠ΅ΠΌ курсовой Ρ€Π°Π±ΠΎΡ‚Ρ‹.

Π’ Ρ€Π΅Π³ΠΈΡΡ‚Ρ€Ρ‹ R1 ΠΈ R2 записываСм Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ (1/f)*100, Ρ‡Ρ‚ΠΎ соотвСтствуСт 100 ΠΏΠ΅Ρ€ΠΈΠΎΠ΄Π°ΠΌ Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠΉ частоты Π² ΠΌΠΈΠΊΡ€ΠΎΡΠ΅ΠΊΡƒΠ½Π΄Π°Ρ…. Π’Π°ΠΊ ΠΆΠ΅ Π΄Π΅Π»Π°Π΅ΠΌ ΠΏΠΎΠΏΡ€Π°Π²ΠΊΡƒ Π½Π° Π²Ρ€Π΅ΠΌΡ выполнСния ΠΊΠΎΠΌΠ°Π½Π΄. Для процСссора с Ρ‡Π°ΡΡ‚ΠΎΡ‚ΠΎΠΉ 12 ΠœΠ“Ρ† врСмя ΠΎΠ΄Π½ΠΎΠ³ΠΎ машинного Ρ†ΠΈΠΊΠ»Π° составляСт 2мкс.

ΠŸΠ΅Ρ€Π΅Π½ΠΎΡΠΈΠΌ младший Π±ΠΈΡ‚ DPTR Π² Π°ΠΊΠΊΡƒΠΌΡƒΠ»ΡΡ‚ΠΎΡ€, Π²Ρ‹Ρ‡ΠΈΡ‚Π°Π΅ΠΌ ΠΈΠ· Ρ‡ΠΈΡΠ»Π°, записанного Π² R1, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ зафиксированного Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ 100 ΠΈΠΌΠΏΡƒΠ»ΡŒΡΠΎΠ², ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ сбросив Ρ„Π»Π°Π³ пСрСноса:

mov R1, # low (776)

mov R0, # high (776)

clr C

mov A, DPL

subb A, R1

Если послС выполнСния вычитания установится Ρ„Π»Π°Π³ пСрСноса. Π’ ΡΡ‚ΠΎΠΌ случаС, сработаСт условный ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ «jc», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠ΅Ρ€Π΅Π²Π΅Π΄Π΅Ρ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π½Π° ΠΌΠ΅Ρ‚ΠΊΡƒ Perenos 7700. Если ΠΆΠ΅ Ρ„Π»Π°Π³ пСрСноса Π½Π΅ ΡƒΡΡ‚ановится, Ρ‡Ρ‚ΠΎ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π΄Π°Π½Π½ΠΎΠ΅ число большС, Ρ‚ΠΎ ΡΡ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ условный ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ «jnc», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠ΅Ρ€Π΅Π²Π΅Π΄Π΅Ρ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ ΠΏΠΎ ΠΌΠ΅Ρ‚ΠΊΠ΅ neperenos 7700.

ΠŸΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π΅ ΠΏΠΎ ΠΌΠ΅Ρ‚ΠΊΠ΅ Perenos 7700 записываСм Π² Π°ΠΊΠΊΡƒΠΌΡƒΠ»ΡΡ‚ΠΎΡ€ ΡΡ‚Π°Ρ€ΡˆΠΈΠΉ Π±ΠΈΡ‚ DPTR, ΠΈ ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°Π΅ΠΌ аккумулятор Π½Π° 1 ΠΈ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΠΌ Π½Π° ΠΌΠ΅Ρ‚ΠΊΡƒ gruppa7700 Π³Π΄Π΅ ΠΈΠ· ΡΡ‚Π°Ρ€ΡˆΠ΅Π³ΠΎ Π±Π°ΠΉΡ‚Π° записанного Π² R0 Π²Ρ‹Ρ‡ΠΈΡ‚Π°Π΅ΠΌ число, хранящССся Π² Π°ΠΊΠΊΡƒΠΌΡƒΠ»ΡΡ‚ΠΎΡ€Π΅. Если Ρ„Π»Π°Π³ пСрСноса Π½Π΅ ΡƒΡΡ‚ановится, это Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‡Ρ‚ΠΎ нашС число большС 776. ΠŸΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΠΌ Π½Π° ΠΌΠ΅Ρ‚ΠΊΡƒ sravn8300, Π³Π΄Π΅ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΠΌ ΡΡ€Π°Π²Π½ΠΈΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. Если ΠΆΠ΅ Ρ„Π»Π°Π³ пСрСноса установился, это Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‡Ρ‚ΠΎ нашС число мСньшС 776, Ρ‡Ρ‚ΠΎ соотвСтствуСт Π³Ρ€ΡƒΠΏΠΏΠ΅ «Π±Ρ€Π°ΠΊ». ΠŸΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΠΌ Π½Π° ΠΌΠ΅Ρ‚ΠΊΡƒ Π±Ρ€Π°ΠΊ.

jc perenos7700

jnc neperenos7700

perenos7700:

mov A, DPH

dec A

jmp gruppa7700

neperenos7700:

mov A, DPH

jmp gruppa7700

gruppa7700:

clr C

subb A, R0

jnc sravn8300

jc brak

ΠŸΠΎΡΡ€Π΅Π΄ΡΡ‚Π²ΠΎΠΌ условных ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΎΠ² ΠΏΠΎΠΏΠ°Π΄Π°Π΅Ρ‚ Π½Π° ΠΌΠ΅Ρ‚ΠΊΡƒ brak, ΠΈ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ рСгистра R7 Π½Π° Π΅Π΄ΠΈΠ½ΠΈΡ†Ρƒ, Π° Ρ‚Π°ΠΊ ΠΆΠ΅ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ ΠΊΠΎΠ΄ Π³Ρ€ΡƒΠΏΠΏΡ‹ Π² ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎΠΌ инвСрсном ΠΊΠΎΠ΄Π΅.

Brak:

Inc R7

Для Π²Ρ‹Π²ΠΎΠ΄Π° ΠΊΠΎΠ΄Π° Π³Ρ€ΡƒΠΏΠΏ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Π²Ρ‹Π²ΠΎΠ΄Ρ‹ P2.1 ΠΈ P2.2. Π“Ρ€ΡƒΠΏΠΏΠ΅ «Π‘Ρ€Π°ΠΊ» Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ «11»:

setb P2.1

setb P2.2

Π—Π°ΠΏΠΈΡˆΠ΅ΠΌ Π² Π°ΠΊΠΊΡƒΠΌΡƒΠ»ΡΡ‚ΠΎΡ€ ΠΈ Π²ΠΏΠΎΡΠ»Π΅Π΄ΡΡ‚Π²ΠΈΠΈ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½Ρ‹ΠΉ рСгистр LCD ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ x01h. Π­Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΎΡ‡ΠΈΡ‰Π°Π΅Ρ‚ дисплСй. Π’Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌ ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, которая ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅Ρ‚ эту настройку Π² LCD:

mov A,#01h

call LSDSetup.

послС Ρ‡Π΅Π³ΠΎ ΠΏΠ΅Ρ€Π΅ΠΉΠ΄Π΅ΠΌ Π½Π° ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ†ΠΈΡŽ:

jmp indic

Аналогичным ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ сравниваСм число ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½ΠΎΠ΅ Π² DPTR, с ΠΏΠΎΡ€ΠΎΠ³ΠΎΠ²Ρ‹ΠΌΠΈ значСниями ΠΏΠ΅Ρ€ΠΈΠΎΠ΄ΠΎΠ² ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ… Π³Ρ€ΡƒΠΏΠΏ. Π’Π°ΠΊΠΈΠ΅ ΠΆΠ΅ дСйствия Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΡ€ΠΎΠΈΡΡ…ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° ΠΌΠ΅Ρ‚ΠΊΠΈ gruppa3, gruppa2 ΠΈ gruppa1. Различия ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ лишь ΠΊΠΎΠ΄Ρ‹ Π³Ρ€ΡƒΠΏΠΏ ΠΈ Ρ€Π΅Π³ΠΈΡΡ‚Ρ€Ρ‹, ΠΎΡ‚Π²Π΅Ρ‡Π°ΡŽΡ‰ΠΈΠ΅ Π·Π° ΠΊΠ°ΠΆΠ΄ΡƒΡŽ Π³Ρ€ΡƒΠΏΠΏΡƒ:

gruppa3:

Inc R6

Для Ρ‚Ρ€Π΅Ρ‚ΡŒΠ΅ΠΉ Π³Ρ€ΡƒΠΏΠΏΡ‹ Π±ΡƒΠ΄Π΅Ρ‚ установлСн ΠΊΠΎΠ΄ «01»:

setb P2.1

setb P2.2

jmp indic

gruppa2:

Inc R5

Для Π³Ρ€ΡƒΠΏΠΏΡ‹ 2 ΠΊΠΎΠ΄ «10»:

setb P2.1

clr P2.2

jmp indic

gruppa1:

Inc R4

Π“Ρ€ΡƒΠΏΠΏΠ΅ 1 Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ «00»:

clr P2.1

clr P2.2

jmp indic

Π’Π΅ΠΏΠ΅Ρ€ΡŒ приступим ΠΊ ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ†ΠΈΠΈ.

indic:

mov A,#31h

call symbol

Π—Π°ΠΏΠΈΡˆΠ΅ΠΌ Π² Π°ΠΊΠΊΡƒΠΌΡƒΠ»ΡΡ‚ΠΎΡ€ ΠΊΠΎΠ΄ символа «:"ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ΠΌ ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ†ΠΈΠΈ:

mov A,#3Ah

call symbol

Π—Π°ΠΏΠΈΡˆΠ΅ΠΌ Π² Π°ΠΊΠΊΡƒΠΌΡƒΠ»ΡΡ‚ΠΎΡ€ число микросхСм, относящихся ΠΊ ΠΏΠ΅Ρ€Π²ΠΎΠΉ Π³Ρ€ΡƒΠΏΠΏΠ΅, добавляСм ΡΡ‚Π°Ρ€ΡˆΡƒΡŽ Ρ‚Π΅Ρ‚Ρ€Π°Π΄Ρƒ ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ΠΌ ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ†ΠΈΠΈ:

mov A, R4

Add A,#30h

call symbol

Π’Ρ‹Π²Π΅Π΄Π΅ΠΌ Π½Π° ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ†ΠΈΡŽ ΠΏΡ€ΠΎΠ±Π΅Π»:

mov A,# 00h

call symbol

ΠŸΠΎΠ²Ρ‚ΠΎΡ€ΡΠ΅ΠΌ Ρ‚ΠΎΠΆΠ΅ самоС для Π³Ρ€ΡƒΠΏΠΏΡ‹ 2, 3 ΠΈ Π³Ρ€ΡƒΠΏΠΏΡ‹ «Π‘Ρ€Π°ΠΊ»:

mov A,#32h

call symbol

mov A,#3Ah

call symbol

mov A, R5

add A,#30h

call symbol

mov A,#00h

call symbol

mov A,#33h

call symbol

mov A,#3Ah

call symbol

mov A, R6

add A,#30h

call symbol

mov A,#00h

call symbol

mov A,#34h

call symbol

mov A,#3Ah

call symbol

mov A, R7

add A,#30h

call symbol

По ΠΎΠΊΠΎΠ½Ρ‡Π°Π½ΠΈΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ прСрывания выставляСтся Ρ„Π»Π°Π³ F0.

setb F0

reti

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Ρ„Π»Π°Π³ F0 установлСн, ΠΏΠ΅Ρ€Π΅ΠΉΠ΄Π΅ΠΌ Π½Π° ΠΌΠ΅Ρ‚ΠΊΡƒ gotovo.

gotovo:

clr F0

БбрасываСм Ρ„Π»Π°Π³ΠΈ ΠΈ ΠΎΡ‡ΠΈΡ‰Π°Π΅ΠΌ рСгистры Ρ‚Π°ΠΉΠΌΠ΅Ρ€Π° ΠΈ ΡΡ‡Ρ‘Ρ‚Ρ‡ΠΈΠΊΠ°

clr TF0

clr TF1

mov TH0,#0

mov TL0,#0

mov TH1,#0

mov TL1,#0

БбрасываСм ΠΏΠΎΡ€Ρ‚ P2.0, Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌ ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ ΠΈ ΡΠ½ΠΎΠ²Π° устанавливаСм ΠΏΠΎΡ€Ρ‚ P2.0, Ρ‡Π΅ΠΌ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΠ΅ΠΌ ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ строб.

clr P2.0

call twosecdelay

setb P2.0

ОТидаСм, ΠΏΠΎΠΊΠ° Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ΠΆΠ°Ρ‚Π° ΠΊΠ½ΠΎΠΏΠΊΠ°. Π’ ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ Π½Π΅ Π½Π°Ρ‡Π½Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ сначала. Когда ΠΊΠ½ΠΎΠΏΠΊΠ° ΠΎΡ‚ΠΆΠ°Ρ‚Π°, процСсс зацикливаСтся.

jnb P1.2,$

ljmp start

Рассмотрим ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

1. ΠŸΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π² LCD-дисплСй.

Π’ R0 ΠΏΠΎΠΌΠ΅Ρ‰Π°Π΅ΠΌ адрСс Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅Π³ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠ³ΠΎ рСгистра LCD. Π—Π°Ρ‚Π΅ΠΌ Π½Π° Π»ΠΈΠ½ΠΈΡΡ… RS ΠΈ RW устанавливаСм Π½ΠΈΠ·ΠΊΠΈΠ΅ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»Ρ‹, Ρ‡Ρ‚ΠΎ соотвСтствуСт ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΌΡƒ Ρ€Π΅ΠΆΠΈΠΌΡƒ LCD. И, Π·Π°Ρ‚Π΅ΠΌ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ записи Π²ΠΎ Π²Π½Π΅ΡˆΠ½Π΅Π΅ ΠžΠ—Π£, ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅ΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ ΠΈΠ· Π°ΠΊΠΊΡƒΠΌΡƒΠ»ΡΡ‚ΠΎΡ€Π° Π²ΠΎ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Π½Ρ‹ΠΉ рСгистр. ΠŸΡ€ΠΈ этом автоматичСски гСнСрируСтся ΠΈΠΌΠΏΡƒΠ»ΡŒΡ Π½Π° Π²Ρ‹Ρ…ΠΎΠ΄Π΅ WR ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°, Ρ‡Ρ‚ΠΎ ΠΏΠΎ Π²Ρ‹ΡˆΠ΅ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ схСмС соСдинСния соотвСтствуСт ΠΏΠΎΠ΄Π°Ρ‡Π΅ стробового ΠΈΠΌΠΏΡƒΠ»ΡŒΡΠ° E Π½Π° LCD-ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€. Π’.ΠΊ. LCD-дисплСи ΡΡ€Π°Π²Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΌΠ΅Π΄Π»Π΅Π½Π½Ρ‹Π΅, послС ΠΏΠΎΠ΄Π°Ρ‡ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, ΠΏΠ΅Ρ€Π΅ΠΉΠ΄Π΅ΠΌ Π½Π° ΠΌΠ΅Ρ‚ΠΊΡƒ оТидания занятости LCD.

LSDSetup:

mov R0,#CMD

clr RS

clr RW

movx @R0,A

jmp Busy

2. ΠŸΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ†ΠΈΠΈ символа Π½Π° LCD-дисплСС.

Π’ R0 ΠΏΠΎΠΌΠ΅Ρ‰Π°Π΅ΠΌ адрСс Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅Π³ΠΎ рСгистра Π΄Π°Π½Π½Ρ‹Ρ… LCD. Π—Π°Ρ‚Π΅ΠΌ Π½Π° Π»ΠΈΠ½ΠΈΠΈ RS устанавливаСм высокий ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π», Π° Π½Π° Π»ΠΈΠ½ΠΈΠΈ RW — Π½ΠΈΠ·ΠΊΠΈΠΉ, Ρ‡Ρ‚ΠΎ соотвСтствуСт Ρ€Π΅ΠΆΠΈΠΌΡƒ ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ†ΠΈΠΈ LCD. И, Π·Π°Ρ‚Π΅ΠΌ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ записи Π²ΠΎ Π²Π½Π΅ΡˆΠ½Π΅Π΅ ΠžΠ—Π£, ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅ΠΌ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ· Π°ΠΊΠΊΡƒΠΌΡƒΠ»ΡΡ‚ΠΎΡ€Π° Π²ΠΎ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΉ рСгистр Π΄Π°Π½Π½Ρ‹Ρ… LCD. ΠŸΡ€ΠΈ этом автоматичСски гСнСрируСтся ΠΈΠΌΠΏΡƒΠ»ΡŒΡ Π½Π° Π²Ρ‹Ρ…ΠΎΠ΄Π΅ WR ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°, Ρ‡Ρ‚ΠΎ ΠΏΠΎ Π²Ρ‹ΡˆΠ΅ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ схСмС соСдинСния соотвСтствуСт ΠΏΠΎΠ΄Π°Ρ‡Π΅ стробового ΠΈΠΌΠΏΡƒΠ»ΡŒΡΠ° E Π½Π° LCD-ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€. Π’.ΠΊ. LCD-дисплСи ΡΡ€Π°Π²Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΌΠ΅Π΄Π»Π΅Π½Π½Ρ‹Π΅, послС ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΏΠ΅Ρ€Π΅ΠΉΠ΄Π΅ΠΌ Π½Π° ΠΌΠ΅Ρ‚ΠΊΡƒ оТидания занятости LCD.

Symbol:

mov R0,#DAT

setb RS

clr RW

movx @R0,A

jmp Busy

3. ΠœΠ΅Ρ‚ΠΊΠ° оТидания «Π·Π°Π½ΡΡ‚ости» LCD дисплСя.

Π’ R1 ΠΏΠΎΠΌΠ΅Ρ‰Π°Π΅ΠΌ адрСс busy-рСгистра LCD. Π—Π°Ρ‚Π΅ΠΌ Π½Π° Π»ΠΈΠ½ΠΈΠΈ RW устанавливаСм высокий ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π», Π° Π½Π° Π»ΠΈΠ½ΠΈΠΈ RS — Π½ΠΈΠ·ΠΊΠΈΠΉ, Ρ‡Ρ‚ΠΎ соотвСтствуСт Ρ„Π»Π°Π³ΠΎΠ²ΠΎΠΌΡƒ Ρ€Π΅ΠΆΠΈΠΌΡƒ занятости LCD. И, Π·Π°Ρ‚Π΅ΠΌ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ чтСния ΠΈΠ· Π²Π½Π΅ΡˆΠ½Π΅Π³ΠΎ ΠžΠ—Π£, ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅ΠΌ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ· busy-рСгистра LCD Π² Π°ΠΊΠΊΡƒΠΌΡƒΠ»ΡΡ‚ΠΎΡ€. ΠŸΡ€ΠΈ этом автоматичСски гСнСрируСтся ΠΈΠΌΠΏΡƒΠ»ΡŒΡ Π½Π° Π²Ρ‹Ρ…ΠΎΠ΄Π΅ RD ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°, Ρ‡Ρ‚ΠΎ ΠΏΠΎ Π²Ρ‹ΡˆΠ΅ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ схСмС соСдинСния соотвСтствуСт ΠΏΠΎΠ΄Π°Ρ‡Π΅ стробового ΠΈΠΌΠΏΡƒΠ»ΡŒΡΠ° E Π½Π° LCD-ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€. LCD ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ свою Π·Π°Π½ΡΡ‚ΠΎΡΡ‚ΡŒ, Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ΠΌ ΡΡ‚Π°Ρ€ΡˆΠ΅Π³ΠΎ Π±ΠΈΡ‚Π° Π² busy-рСгистрС, поэтому ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π·Π°Ρ†ΠΈΠΊΠ»Π΅Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ «jb» Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎ Π²Ρ‹Ρ…ΠΎΠ΄ ΠΈΠ· Π½Π΅Ρ‘ Π²ΠΎΠ·ΠΌΠΎΠΆΠ΅Π½ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ, ΠΊΠΎΠ³Π΄Π° исчСзнСт ΡΡ‚Π°Ρ€ΡˆΠΈΠΉ Π±ΠΈΡ‚ Π² busy-рСгистрС Π² Π°ΠΊΠΊΡƒΠΌΡƒΠ»ΡΡ‚ΠΎΡ€Π΅, Ρ‡Ρ‚ΠΎ соотвСтствуСт ΠΎΠΊΠΎΠ½Ρ‡Π°Π½ΠΈΡŽ выполнСния ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ LCD-дисплССм.

Busy:

mov R0,#BUS

clr RS

setb RW

movx A,@R0

jb ACC.7,Busy

ret

6. ΠŸΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°, Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‰Π°Ρ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΡƒ.

Π—Π°Π΄Π΅Ρ€ΠΆΠΊΡƒ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅ΠΌ, ΠΎΡΠ½ΠΎΠ²Ρ‹Π²Π°ΡΡΡŒ Π½Π° Ρ‚ΠΎΠΌ свойствС МК, Ρ‡Ρ‚ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΈΠΌ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ врСмя.

Π’ Ρ‚Π°ΠΉΠΌΠ΅Ρ€ Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅ΠΌ числа, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Π·Π°Π΄Π°Π½Π½ΠΎΠΉ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠ΅. И ΠΆΠ΄Π΅ΠΌ, ΠΏΠΎΠΊΠ° Ρ‚Π°ΠΉΠΌΠ΅Ρ€ отсчитаСт Π·Π°Π΄Π°Π½Π½ΠΎΠ΅ врСмя.

twosecdelay:

mov TH0,#high (-2000)

mov TL0,#low (-2000)

setb TR0

jnb TF0,$

clr TR0

clr TF0

ret

end

6. Листинг ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

A51 MACRO ASSEMBLER KURS 05/15/2014 19:45:29 PAGE 1

MACRO ASSEMBLER A51 V8.02b

OBJECT MODULE PLACED IN kurs. OBJ

ASSEMBLER INVOKED BY: C: KeilC51BINA51. EXE kurs.a51 SET (SMALL) DEBUG EP

LOC OBJ LINE SOURCE

0000 1 org 00h

0000 802E 2 jmp init

001B 3 org 1Bh

001B 805B 4 jmp check

0000 6 CMD equ 00b

0001 7 DAT equ 01b

0002 8 BUS equ 10b

001D 7C00 9 mov R4, #00h

0090 10 RS bit P1.0

0091 11 RW bit P1.1

0030 12 org 30h

0030 13 init:

0030 758 951 14 mov tmod, #101 0001b

0033 D2AF 15 setb EA

0035 D2AB 16 setb ET1

0037 7440 18 mov A, #040h

0039 3197 19 call LSDsetup

003B 740 °F 20 mov A, #0Fh

003D 3197 21 call LSDsetup

003 °F 7406 22 mov A, #06h

0041 3197 23 call LSDsetup

0043 25 start:

0043 D2A0 26 setb P2.0

0045 C28D 28 clr TF0

0047 C28 °F 29 clr TF1

0049 758C00 30 mov TH0, #0

004C 758A00 31 mov TL0, #0

004 °F 758D00 32 mov TH1, #0

0052 758B00 33 mov TL1, #0

0055 900 000 34 mov DPTR, #0000h

0058 2092FD 35 jb P1.2, $

005B C28C 37 clr tr0

005D C28E 38 clr tr1

005 °F C28D 39 clr tf0

0061 C28 °F 40 clr tf1

0063 C290 42 clr RS

0065 C291 43 clr RW

0067 758DFF 44 mov TH1, #0FFh

006A 758B9B 45 mov TL1, #9bh

006D D28E 52 setb TR1

006 °F D28C 53 setb TR0

0071 20D502 54 gr: jb F0, gotovo1

0074 80FB 55 jmp gr

0076 57 gotovo1:

0076 215D 58 jmp gotovo

A51 MACRO ASSEMBLER KURS 05/15/2014 19:45:29 PAGE 2

0078 60 check:

0078 C28C 61 clr TR0

007A C28E 62 clr TR1

007C 858A82 64 mov dpl, TL0

007 °F 858C83 65 mov dph, TH0

0082 67 sravn7700:

0082 790A 68 mov R1, # low (778)

0084 7803 69 mov R0, # high (778)

0086 C3 70 clr C

0087 E582 71 mov A, DPL

0089 99 72 subb A, R1

008A 4002 73 jc perenos7700

008C 5005 74 jnc neperenos7700

008E 75 perenos7700:

008E E583 76 mov A, DPH

0090 14 77 dec A

0091 8004 78 jmp gruppa7700

0093 79 neperenos7700:

0093 E583 80 mov A, DPH

0095 8000 81 jmp gruppa7700

0097 82 gruppa7700:

0097 C3 83 clr C

0098 98 84 subb A, R0

0099 500D 85 jnc sravn8300

009B 4000 86 jc brak

009D 89 brak:

009D 0 °F 91 inc R7

009E D2A1 92 setb P2.1

00A0 D2A2 93 setb P2.2

00A2 7401 95 mov A, #01h

00A4 3197 96 call LSDsetup

00A6 8072 97 jmp indic

00A8 99 sravn8300:

00A8 7948 100 mov R1, # low (840)

00AA 7803 101 mov R0, # high (840)

00AC C3 102 clr C

00AD E582 103 mov A, DPL

00AF 99 104 subb A, R1

00B0 4002 105 jc perenos8300

00B2 5005 106 jnc neperenos8300

00B4 107 perenos8300:

00B4 E583 108 mov A, DPH

00B6 14 109 dec A

00B7 8004 110 jmp gruppa8300

00B9 111 neperenos8300:

00B9 E583 112 mov A, DPH

00BB 8000 113 jmp gruppa8300

00BD 114 gruppa8300:

00BD C3 115 clr C

00BE 98 116 subb A, R0

00BF 4002 117 jc gruppa3

00C1 500B 119 jnc sravn9100

00C3 121 gruppa3:

00C3 0E 123 inc R6

00C4 C2A1 124 clr P2.1

51 MACRO ASSEMBLER KURS 05/15/2014 19:45:29 PAGE 3

00C6 D2A2 125 setb P2.2

00C8 7401 127 mov A, #1

00CA 3197 128 call LSDsetup

00CC 804C 129 jmp indic

00CE 131 sravn9100:

00CE 7994 132 mov R1, # low (916)

00D0 7803 133 mov R0, # high (916)

00D2 C3 134 clr C

00D3 E582 135 mov A, DPL

00D5 99 136 subb A, R1

00D6 4002 137 jc perenos9100

00D8 5005 138 jnc neperenos9100

00DA 139 perenos9100:

00DA E583 140 mov A, DPH

00DC 14 141 dec A

00DD 8004 142 jmp gruppa9100

00DF 143 neperenos9100:

00DF E583 144 mov A, DPH

00E1 8000 145 jmp gruppa9100

00E3 146 gruppa9100:

00E3 C3 147 clr C

00E4 98 148 subb A, R0

00E5 4002 149 jc gruppa2

00E7 500B 150 jnc sravn10000

00E9 151 gruppa2:

00E9 0D 154 inc R5

00EA D2A1 155 setb P2.1

00EC C2A2 156 clr P2.2

00EE 7401 158 mov A,#1

00F0 3197 159 call LSDsetup

00F2 8026 160 jmp indic

00F4 162 sravn10000:

00F4 79EF 163 mov R1, # low (1007)

00F6 7803 164 mov R0, # high (1007)

00F8 C3 165 clr C

00F9 E582 166 mov A, DPL

00FB 99 167 subb A, R1

00FC 4002 168 jc perenos10000

00FE 5005 169 jnc neperenos10000

0100 170 perenos10000:

0100 E583 171 mov A, DPH

0102 14 172 dec A

0103 8004 173 jmp gruppa10000

0105 174 neperenos10000:

0105 E583 175 mov A, DPH

0107 8000 176 jmp gruppa10000

0109 177 gruppa10000:

0109 C3 178 clr C

010A 98 179 subb A, R0

010B 4002 180 jc gruppa1

010D 508E 181 jnc brak

010 °F 182 gruppa1:

010 °F 0C 184 inc R4

0110 C2A1 185 clr P2.1

0112 C2A2 186 clr P2.2

0114 7401 187 mov A,#1

0116 3197 188 call LSDsetup

0118 8000 189 jmp indic

011A 190 indic:

011A 7431 191 mov A,#31h

011C 31A0 192 call symbol

011E 743A 195 mov A,#3Ah

0120 31A0 196 call symbol

0122 EC 199 mov A, R4

0123 2430 200 add A,#30h

0125 31A0 201 call symbol

0127 7400 204 mov A,#00h

0129 31A0 205 call symbol

012B 7432 208 mov A,#32h

012D 31A0 209 call symbol

012 °F 743A 212 mov A,#3Ah

0131 31A0 213 call symbol

0133 ED 216 mov A, R5

0134 2430 218 add A,#30h

0136 31A0 219 call symbol

0138 7400 221 mov A,#00h

013A 31A0 222 call symbol

013C 7433 224 mov A,#33h

013E 31A0 225 call symbol

0140 743A 228 mov A,#3Ah

0142 31A0 229 call symbol

0144 EE 231 mov A, R6

0145 2430 233 add A,#30h

0147 31A0 234 call symbol

0149 7400 236 mov A,#00h

014B 31A0 237 call symbol

014D 7434 239 mov A,#34h

014 °F 31A0 240 call symbol

0151 743A 242 mov A,#3Ah

0153 31A0 243 call symbol

0155 EF 246 mov A, R7

0156 2430 248 add A,#30h

0158 31A0 249 call symbol

015A D2D5 251 setb F0

015C 32 252 reti

015D 254 gotovo:

015D C2D5 255 clr F0

015 °F C28D 257 clr TF0

0161 C28 °F 258 clr TF1

0163 758C00 259 mov TH0,#0

0166 758A00 260 mov TL0,#0

0169 758D00 261 mov TH1,#0

016C 758B00 262 mov TL1,#0

016 °F 900 000 263 mov DPTR,#0000h

0172 C2A0 264 clr P2.0

0174 31B4 265 call twosecdelay

0176 D2A0 266 setb P2.0

0178 C28D 267 clr TF0

017A C28 °F 268 clr TF1

017C 758C00 269 mov TH0,#0

017 °F 758A00 270 mov TL0,#0

0182 758D00 271 mov TH1,#0

0185 758B00 272 mov TL1,#0

0188 900 000 273 mov DPTR,#0000h

018B C2A0 274 clr P2.0

018D 31B4 275 call twosecdelay

018 °F D2A0 276 setb P2.0

0191 3092FD 277 jnb P1.2,$

0194 20 043 278 ljmp start

0197 280 LSDsetup:

0197 7800 281 mov R0,#CMD

0199 C290 282 clr RS

019B C291 283 clr RW

019D F2 284 movx @R0,A

019E 8009 285 jmp Busy

01A0 287 symbol:

01A0 7801 288 mov R0, #DAT

01A2 D290 289 setb RS

01A4 C291 290 clr RW

01A6 F2 291 movx @R0, A

01A7 8000 292 jmp Busy

01A9 294 Busy:

01A9 7802 295 mov R0, #BUS

01AB C290 296 clr RS

01AD D291 297 setb RW

01AF E2 298 movx A,@R0

01B0 20E7F6 299 jb ACC.7,Busy

01B3 22 300 ret

01B4 302 twosecdelay:

01B4 758CF8 303 mov TH0,#high (-2000)

01B7 758A30 304 mov TL0,#low (-2000)

01BA D28C 305 setb TR0

01BC 308DFD 306 jnb TF0,$

01BF C28C 307 clr TR0

01C1 C28D 308 clr TF0

01C3 22 309 ret

311 end

A51 MACRO ASSEMBLER KURS 05/15/2014 19:45:29 PAGE 6

SYMBOL TABLE LISTING

——— ——- ———;

N A M E T Y P E V A L U E ATTRIBUTES

ACC.. .. .. .. D ADDR 00E0H A

BRAK. .. .. .. C ADDR 009DH A

BUS.. .. .. .. N NUMB 0002H A

BUSY. .. .. .. C ADDR 01A9H A

CHECK.. .. ... C ADDR 0078H A

CMD.. .. .. .. N NUMB 0000H A

DAT.. .. .. .. N NUMB 0001H A

DPH.. .. .. .. D ADDR 0083H A

DPL.. .. .. .. D ADDR 0082H A

EA. .. .. ... B ADDR 00A8H.7 A

ET1.. .. .. .. B ADDR 00A8H.3 A

F0. .. .. ... B ADDR 00D0H.5 A

GOTOVO. .. ... C ADDR 015DH A

GOTOVO1.. .. .. C ADDR 0076H A

GR. .. .. ... C ADDR 0071H A

GRUPPA1.. .. .. C ADDR 010FH A

GRUPPA10000.. .. C ADDR 0109H A

GRUPPA2.. .. .. C ADDR 00E9H A

GRUPPA3.. .. .. C ADDR 00C3H A

GRUPPA7700. ... C ADDR 0097H A

GRUPPA8300. ... C ADDR 00BDH A

GRUPPA9100. ... C ADDR 00E3H A

INDIC.. .. ... C ADDR 011AH A

INIT. .. .. .. C ADDR 0030H A

LSDSETUP. .. .. C ADDR 0197H A

NEPERENOS10000.. C ADDR 0105H A

NEPERENOS7700... C ADDR 0093H A

NEPERENOS8300... C ADDR 00B9H A

NEPERENOS9100... C ADDR 00DFH A

P1. .. .. ... D ADDR 0090H A

P2. .. .. ... D ADDR 00A0H A

PERENOS10000. .. C ADDR 0100H A

PERENOS7700.. .. C ADDR 008EH A

PERENOS8300.. .. C ADDR 00B4H A

PERENOS9100.. .. C ADDR 00DAH A

RS. .. .. ... B ADDR 0090H.0 A

RW. .. .. ... B ADDR 0090H.1 A

SRAVN10000. ... C ADDR 00F4H A

SRAVN7700.. ... C ADDR 0082H A

SRAVN8300.. ... C ADDR 00A8H A

SRAVN9100.. ... C ADDR 00CEH A

START.. .. ... C ADDR 0043H A

SYMBOL. .. ... C ADDR 01A0H A

TF0.. .. .. .. B ADDR 0088H.5 A

TF1.. .. .. .. B ADDR 0088H.7 A

TH0.. .. .. .. D ADDR 008CH A

TH1.. .. .. .. D ADDR 008DH A

TL0.. .. .. .. D ADDR 008AH A

TL1.. .. .. .. D ADDR 008BH A

TMOD. .. .. .. D ADDR 0089H A

TR0.. .. .. .. B ADDR 0088H.4 A

TR1.. .. .. .. B ADDR 0088H.6 A

TWOSECDELAY.. .. C ADDR 01B4H A

REGISTER BANK (S) USED: 0

ASSEMBLY COMPLETE. 0 WARNING (S), 0 ERROR (S)

2.4 Hex Ρ„Π°ΠΉΠ»

:200 000 0802E50

:04001B00805B7C008A

:1 000 300 075 8951D2AFD2AB7438317E740F317E7472

:100 040 000 6317ED2A0C28DC28F758C00758A007574

:10 005 0008D00758B009000002092FDC28CC28EC274

:10 006 0008DC28FC290C291758DFF758B9BD28ED23F

:10 007 0008C20D50280FB215DC28CC28E858A828550

:10 008 0008C8379087803C3E5829940025005E583A3

:1 000 900 014 8004E5838000C398500D40000FD2A166

:1000A000D2A27401317E807279487803C3E58299C7

:1000B00040025005E583148004E5838000C3984026

:1000C00002500B0EC2A1D2A27401317E804C7994F1

:1000D0007803C3E5829940025005E583148004E566

:1000E000838000C3984002500B0DD2A1C2A27401BC

:1000F000317E802679EF7803C3E58299400250056E

:1 001 0000E583148004E5838000C3984002508E0C80

:1 001 1000C2A1C2A27401317E800074313187743A69

:10 012 000 3187EC2430318774003187743231877421

:10 013 0003A3187ED24303187740031877433318749

:0B014000743A3187EE243031877400E0

:10014B00318774343187743A3187EF24303187D259

:10015B00D532C2D5C28DC28F758C00758A00758D54

:10016B0000758B00900000C2A0319BD2A03092FD95

:10017B000200437800C290C291F280097801D290BC

:10018B00C291F280007802C290D291E220E7F6226F

:10019B00758CF8758A30D28C308DFDC28CC28D2255

:01FF

ΠœΠΎΠ΄Π΅Π»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ работоспособности микропроцСссорной систСмы Π² ΡΡ€Π΅Π΄Π΅ Proteus 8 Professional Π±Ρ‹Π»Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π° модСль (Рисунок 5).

Рисунок 5

Π›ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΡƒΡ€Π°

Π€Ρ€ΡƒΠ½Π·Π΅ А. Π’. ΠœΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Ρ‹? Π­Ρ‚ΠΎ ΠΆΠ΅ просто! Π’.1. — Πœ.: ООО «Π˜Π” Π‘ΠšΠ˜ΠœΠ•Π», 2002, — 336 с., ΠΈΠ».

Π‘Π΅Π»ΠΎΠ² А. Π’. Π‘Π°ΠΌΠΎΡƒΡ‡ΠΈΡ‚Π΅Π»ΡŒ ΠΏΠΎ ΠΌΠΈΠΊΡ€ΠΎΠΏΡ€ΠΎΡ†Π΅ΡΡΠΎΡ€Π½ΠΎΠΉ Ρ‚Π΅Ρ…Π½ΠΈΠΊΠ΅. — Π‘Пб.: Наука ΠΈ Π’Π΅Ρ…Π½ΠΈΠΊΠ°, 2003. — 224 с.: ΠΈΠ»

ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ вСсь тСкст
Π—Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ„ΠΎΡ€ΠΌΡƒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ