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

ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏ дСйствия систСмы сбора ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ с Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΎΠ²

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

ΠŸΡ€ΠΈ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° происходит Π΅Π³ΠΎ инициализация, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ задаётся частота пСрСполнСния Ρ‚Π°ΠΉΠΌΠ΅Ρ€Π° Π’/Π‘0, опрСдСлятся ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Ρ‡Π΅Ρ€Π΅Π· УАПП, ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°ΡŽΡ‚ΡΡ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Ρ‹ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠΉ. ПослС этого ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ ΠΏΠΎ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚ ΠΎΠΏΡ€Π°ΡˆΠΈΠ²Π°Ρ‚ΡŒ Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΈ. ΠŸΡ€ΠΈ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ΠΈΠΈ измСнСния состояния Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠ° ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ записываСт Π²ΠΎ Flash Π½ΠΎΠΌΠ΅Ρ€ Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠ°, ΠΊΠΎΠ΄ события ΠΈ Π²Ρ€Π΅ΠΌΡ, ΠΊΠΎΠ³Π΄Π° это событиС… Π§ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Ρ‰Ρ‘ >

ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏ дСйствия систСмы сбора ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ с Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΎΠ² (Ρ€Π΅Ρ„Π΅Ρ€Π°Ρ‚, курсовая, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ)

ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏ дСйствия систСмы сбора ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ с Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΎΠ²

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅ ВСхничСскоС Π·Π°Π΄Π°Π½ΠΈΠ΅

1.ΠžΠ±ΡŠΠ΅ΠΊΡ‚ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ

1.1 ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ устройства

1.2 ОписаниС ΠΈ Π°Π½Π°Π»ΠΈΠ· Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, выполняСмых МПБ устройства

1.3 ΠœΠΈΠΊΡ€ΠΎΠΏΡ€ΠΎΡ†Π΅ΡΡΠΎΡ€Π½Π°Ρ систСма Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ОМК Intel 80C51

2. ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏ дСйствия устройства

2.1 Π€ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Π°Ρ схСма

2.2 ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΈΠ°Π»ΡŒΠ½Π°Ρ схСма

2.3 ОписаниС элСмСнтов схСмы

3. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС МПБ

3.1 Алгоритм Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

3.2 Листинг ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π›ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΡƒΡ€Π° ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅

ВСхничСскоС Π·Π°Π΄Π°Π½ΠΈΠ΅ НСобходимо ΡΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ схСму Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° для сбора ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ с 128 Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΎΠ². Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡ поступаСт Π² Π²ΠΈΠ΄Π΅ логичСских ΡƒΡ€ΠΎΠ²Π½Π΅ΠΉ 0Π’-0 ΠΈΠ»ΠΈ 5Π’-1. Π”Π°Ρ‚Ρ‡ΠΈΠΊΠΈ ΠΏΠΎΠΎΡ‡Π΅Ρ€Ρ‘Π΄Π½ΠΎ ΠΎΠΏΡ€Π°ΡˆΠΈΠ²Π°ΡŽΡ‚ΡΡ, ΠΈ ΡΡ€Π°Π²Π½ΠΈΠ²Π°Π΅Ρ‚ся ΠΈΡ… Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ состояниС с ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΌ, Π² ΡΠ»ΡƒΡ‡Π°Π΅ измСнСния состояния информация (Π΄Π°Ρ‚Π°, врСмя ΠΈ ΡΠΎΡΡ‚ояниС) сохраняСтся Π²ΠΎ Flash-памяти, ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Ρ‘Π½Π½ΠΎΠΉ ΠΊ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Ρƒ. Устройство Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΈΠΌΠ΅Ρ‚ΡŒ часы Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. ΠΠ°Ρ‡Π°Π»ΡŒΠ½ΡƒΡŽ установку Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Π­Π’Πœ, ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ устройство Ρ‡Π΅Ρ€Π΅Π· интСрфСйс RS232. Π”Π°Π»Π΅Π΅ устройство само Π²Π΅Π΄Π΅Ρ‚ счСт Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, ΠΈ Π΄Π°Ρ‚Ρ‹ Π² Π½Π΅ ΠΏΠΎΠ»Π½ΠΎΠΌ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ (число, мСсяц).

Π’Π°ΠΊΠΆΠ΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ для ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°, которая Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΠΎΡΡ‚ΡƒΠΏΠ°ΡŽΡ‰ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Π΅, Π½Π°ΠΊΠ°ΠΏΠ»ΠΈΠ²Π°Ρ‚ΡŒ ΠΈΡ… Π²ΠΎ Flash-памяти ΠΈ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ ΠΎΡ‚ Π­Π’Πœ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ‚ΠΎΡ‡Π½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΈ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Π΄Π°Ρ‚Ρ‹.

Π’ Π΄Π°Π»ΡŒΠ½Π΅ΠΉΡˆΠ΅ΠΌ ΠΏΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π° Π΄Π°Π½Π½Ρ‹Π΅ ΠΎΠ± ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ состояния Π½Π°ΠΊΠΎΠΏΠ»Π΅Π½Π½Ρ‹Π΅ Π²ΠΎ Ρ„Π»Π΅Ρˆ-памяти ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ΡΡ ΠΏΠΎ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΌΡƒ ΠΏΠΎΡ€Ρ‚Ρƒ Π² ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€.

ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ Π΄Π°Ρ‚Ρ‡ΠΈΠΊ информация

1.ΠžΠ±ΡŠΠ΅ΠΊΡ‚ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ Π’ ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ Π±Ρ‹Π»Π° Π²Ρ‹Π±Ρ€Π°Π½Π° систСма, состоящая ΠΈΠ· 128 Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΎΠ², ΠΈ Ρ€Π΅Π³ΠΈΡΡ‚Ρ€Π°Ρ‚ΠΎΡ€Π°. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Π΄Π°Ρ‚Ρ‡ΠΈΠΊ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Π΄Π²Π° состояния, Π΅Π΄ΠΈΠ½ΠΈΡ†Ρƒ ΠΈ Π½ΠΎΠ»ΡŒ. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Π΄Π°Ρ‚Ρ‡ΠΈΠΊ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΎΠ½ΡƒΠΌΠ΅Ρ€ΠΎΠ²Π°Π½, ΠΈ Ρ€Π΅Π³ΠΈΡΡ‚Ρ€Π°Ρ‚ΠΎΡ€ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΡ€ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ состояния Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠ° Π·Π°ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ Π²ΠΎ Flash — ΠΏΠ°ΠΌΡΡ‚ΡŒ врСмя ΠΈ ΠΊΠΎΠ΄ события. РСгистратор Ρ‚Π°ΠΊΠΆΠ΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠΌΠ΅Ρ‚ΡŒ часы Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, с Π΄ΠΈΡΠΊΡ€Π΅Ρ‚Π½ΠΎΡΡ‚ΡŒΡŽ Π½Π΅ Π±ΠΎΠ»Π΅Π΅ 1 сСкунды, связь с ΠŸΠš. Flash — ΠΏΠ°ΠΌΡΡ‚ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΊΠ°ΠΊ внСшнСй, Ρ‚Π°ΠΊ ΠΈ Π²ΡΡ‚Ρ€ΠΎΠ΅Π½Π° Π² Ρ€Π΅Π³ΠΈΡΡ‚Ρ€Π°Ρ‚ΠΎΡ€.

1.1 ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ устройства

Число Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΎΠ² — 128;

Часы Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ — 1 Π³ΠΎΠ΄;

Π”ΠΈΡΠΊΡ€Π΅Ρ‚Π½ΠΎΡΡ‚ΡŒ часов — 1 сСкунда;

Бвязь с Π­Π’Πœ — БОМ-ΠΏΠΎΡ€Ρ‚, интСрфСйс RS232;

Π‘ΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ ΠΎΠ±ΠΌΠ΅Π½Π° ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ с Π­Π’Πœ — 2400 Π‘ΠΎΠ΄.

ΠΠΌΠΊΠΎΡΡ‚ΡŒ Flash — памяти — 32ΠΊΠ‘;

1.2 ОписаниС ΠΈ Π°Π½Π°Π»ΠΈΠ· Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, выполняСмых МПБ устройства

ΠœΠΈΠΊΡ€ΠΎΠΏΡ€ΠΎΡ†Π΅ΡΡΠΎΡ€Π½Π°Ρ систСма устройства позволяСт ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ΡŒ сбор ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎΡ‚ 128 Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΎΠ², Ρ€Π΅Π³ΠΈΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ состояния ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· Π½ΠΈΡ…, ΠΈ Π·Π°ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π²ΠΎ Flash, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΡ‘ΠΌ Ρ‚ΠΎΡ‡Π½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΎΡ‚ Π­Π’Πœ ΠΏΠΎ ΠΈΠ½Ρ‚СрфСйсу RS232.

1.3 ОбоснованиС Π²Ρ‹Π±ΠΎΡ€Π° микропроцСссора

ОснованиСм для Π²Ρ‹Π±ΠΎΡ€Π° Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° послуТили Π΅Π³ΠΎ высокиС характСристики ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΠΈ, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ написания ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° ΡΠ·Ρ‹ΠΊΠ΅ высокого уровня ΠŸΠ›Πœ. ΠšΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ ΠΈΠΌΠ΅Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ тСхничСскиС характСристики:

— Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ достаточного количСства ΠΏΠΎΡ€Ρ‚ΠΎΠ² Π²Π²ΠΎΠ΄Π°-Π²Ρ‹Π²ΠΎΠ΄Π°;

— Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ достаточного количСства Ρ‚Π°ΠΉΠΌΠ΅Ρ€ΠΎΠ²-счётчиков;

— Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ УАПП;

— Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ внСшнСй памяти Π΄Π°Π½Π½Ρ‹Ρ…;

— ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½ΠΎΠ΅ Π·Π°Π΄Π°Π½ΠΈΠ΅.

Π’ ΠΏΠΎΠ»ΡŒΠ·Ρƒ Π²Ρ‹Π±ΠΎΡ€Π° МК51 послуТила Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ внСшнСй памяти Π΄Π°Π½Π½Ρ‹Ρ…, Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠ² сСмСйства PIC Micro.

2. ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏ дСйствия устройства

2.1 Π€ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Π°Ρ схСма

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Π°Ρ схСма устройства ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π° Π½Π° рис. 1.

ΠœΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ сканируСт Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΈ, ΠΈ Ρ„иксируСт ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ состояния Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΎΠ² Π²ΠΎ Flash — памяти, ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ Flash — памяти ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ сигнализируСт ΠΎΠ± ΡΡ‚ΠΎΠΌ свСтодиодным ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠΌ ΠΈ Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ΡŒ запись Π² Π΄Ρ€ΡƒΠ³ΡƒΡŽ микросхСму памяти. На Ρ‚Π°ΠΉΠΌΠ΅Ρ€Π΅/счётчикС ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹ часы Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, установка Ρ‚ΠΎΡ‡Π½ΠΎΠ³ΠΎ значСния Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ производится ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Π­Π’Πœ, Ρ‡Π΅Ρ€Π΅Π· интСрфСйс RS232.

2.2 ОписаниС ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΈΠ°Π»ΡŒΠ½Π°Ρ схСма

ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΈΠ°Π»ΡŒΠ½Π°Ρ схСма ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π° Π½Π° Ρ‡Π΅Ρ€Ρ‚Π΅ΠΆΠ΅ КП03.2101.303.00.Π­3

ΠœΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ DD2 устанавливаСт Π½Π° ΠΏΠΎΡ€Ρ‚Ρƒ Π 0 Π΄Π°Π½Π½Ρ‹Π΅, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Π½ΠΎΠΌΠ΅Ρ€Ρƒ ΠΎΠΏΡ€Π°ΡˆΠΈΠ²Π°Π΅ΠΌΠΎΠ³ΠΎ Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠ°, ΠΈ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹ΠΉ ΠΎΡ‚ Π½Π΅Π³ΠΎ сигнал ΠΏΠΎ Π»ΠΈΠ½ΠΈΠΈ Π 3.5 ΠΏΠΎΡ€Ρ‚Π° Π 3. Π§Π΅Ρ‚Ρ‹Ρ€ΡŒΠΌΡ младшими Π±ΠΈΡ‚Π°ΠΌΠΈ адрСса выбираСтся ΠΎΠ΄ΠΈΠ½ ΠΈΠ· 16 Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΎΠ², ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Ρ‘Π½Π½Ρ‹Ρ… ΠΊ ΠΌΡƒΠ»ΡŒΡ‚иплСксорам DD1 — DD8, Π° Ρ‚рСмя ΡΡ‚Π°Ρ€ΡˆΠΈΠΌΠΈ выбираСтся ΠΎΠ΄ΠΈΠ½ ΠΈΠ· 8 ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΏΠ»Π΅ΠΊΡΠΎΡ€ΠΎΠ², ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Ρ‘Π½Π½Ρ‹Ρ… ΠΊ ΠΌΡƒΠ»ΡŒΡ‚иплСксору DD9. Π’ ΡΠ»ΡƒΡ‡Π°Π΅ измСнСния состояния Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠ° ΠΎΠ½ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ запись Π΄Π°Π½Π½Ρ‹Ρ… Π² ΠΌΠΈΠΊΡ€ΠΎΡΡ…Π΅ΠΌΡ‹ Flash DD13 ΠΈ DD14. ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ записи/чтСния происходят ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ: сначала ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ устанавливаСт адрСс Π½Π° ΠΏΠΎΡ€Ρ‚Π°Ρ… Π 0 ΠΈ Π 2, Π·Π°Ρ‚Π΅ΠΌ сигналом ALE Π·Π°Ρ‰Π΅Π»ΠΊΠΈΠ²Π°Π΅Ρ‚ младший Π±Π°ΠΉΡ‚ адрСса Π² Ρ€Π΅Π³ΠΈΡΡ‚Ρ€Π΅ DD12 ΠΈ Π°ΠΊΡ‚ΠΈΠ²ΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΎΠ΄Π½Ρƒ ΠΈΠ· Π»ΠΈΠ½ΠΈΠΉ, OE ΠΈΠ»ΠΈ WE, Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΠΈ ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ, произвСсти, Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ запись, ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ ΠΎΠ±ΠΌΠ΅Π½ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ Ρ‡Π΅Ρ€Π΅Π· ΠΏΠΎΡ€Ρ‚ Π 0.

РСзисторы R3 ΠΈ R4 Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ для ограничСния Ρ‚ΠΎΠΊΠ°, ΠΏΡ€ΠΎΡ‚Π΅ΠΊΠ°ΡŽΡ‰Π΅Π³ΠΎ Ρ‡Π΅Ρ€Π΅Π· свСтодиоды VD2 ΠΈ VD3.

ΠšΠΎΠ½Π΄Π΅Π½ΡΠ°Ρ‚ΠΎΡ€Ρ‹ Π‘1, Π‘2 ΠΈ ΠΊΠ²Π°Ρ€Ρ†Π΅Π²Ρ‹ΠΉ Ρ€Π΅Π·ΠΎΠ½Π°Ρ‚ΠΎΡ€ ZQ1 Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ Ρ‚Π°ΠΊΡ‚ΠΎΠ²ΠΎΠ³ΠΎ Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Π° ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°.

РСзистор R2 слуТит для ΠΏΠΎΠ΄Π°Ρ‡ΠΈ Π»ΠΎΠ³.1 Π½Π° Π²Ρ…ΠΎΠ΄ DEMA, этим обСспСчиваСтся использованиС Ρ€Π΅Π·ΠΈΠ΄Π΅Π½Ρ‚Π½ΠΎΠΉ памяти ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° DD11.

ΠšΠΎΠ½Π΄Π΅Π½ΡΠ°Ρ‚ΠΎΡ€ Π‘3 ΠΈ Ρ€Π΅Π·ΠΈΡΡ‚ΠΎΡ€ R1 ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ собой схСму формирования сигнала сброса ΠΏΡ€ΠΈ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ питания, Π΄ΠΈΠΎΠ΄ VD1 ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для разряда кондСнсатора Π‘3 ΠΏΡ€ΠΈ исчСзновСнии напряТСния питания.

2.3 ОписаниС элСмСнтов схСмы

ΠœΠΈΠΊΡ€ΠΎΡΡ…Π΅ΠΌΠ° DD10 — ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ уровня Π’Π’Π› — БОМ-ΠΏΠΎΡ€Ρ‚, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠ° для согласования элСктричСских ΡƒΡ€ΠΎΠ²Π½Π΅ΠΉ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° ΠΈ COM-ΠΏΠΎΡ€Ρ‚Π° ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°. Π£Ρ€ΠΎΠ²Π΅Π½ΡŒ логичСского нуля ΠΈ Π΅Π΄ΠΈΠ½ΠΈΡ†Ρ‹ Ρƒ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° Ρ€Π°Π²Π½Ρ‹ 0 ΠΈ +5 Π’, Π° Ρƒ COM-ΠΏΠΎΡ€Ρ‚Π° ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π° +12 Π’ ΠΈ -12 Π’ соотвСтствСнно. ΠœΠΈΠΊΡ€ΠΎΡΡ…Π΅ΠΌΠ° питаСтся напряТСниСм +5 Π’, Π° Π½Π°ΠΏΡ€ΡΠΆΠ΅Π½ΠΈΡ ±12 Π’ ΠΎΠ½Π° Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ встроСнных ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ напряТСния

ΠœΠΈΠΊΡ€ΠΎΡΡ…Π΅ΠΌΠ° DD11 — Intel 80C51 — ΠΎΠ΄Π½ΠΎΠΊΡ€ΠΈΡΡ‚Π°Π»ΡŒΠ½Ρ‹ΠΉ 8-ΠΌΠΈ разрядный ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€, ΠΎΠ½ ΠΈΠΌΠ΅Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½Ρ‹Π΅ особСнности:

Β· Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅Π΅ ΠžΠ—Π£ объСмом 128 Π±Π°ΠΉΡ‚;

Β· Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ Π΄Π²ΡƒΠ½Π°ΠΏΡ€Π°Π²Π»Π΅Π½Π½Ρ‹Ρ… ΠΏΠΎΠ±ΠΈΡ‚Π½ΠΎ настраиваСмых Π²ΠΎΡΡŒΠΌΠΈΡ€Π°Π·Ρ€ΡΠ΄Π½Ρ‹Ρ… ΠΏΠΎΡ€Ρ‚Π° Π²Π²ΠΎΠ΄Π°-Π²Ρ‹Π²ΠΎΠ΄Π°;

Β· Π΄Π²Π° 16-разрядных Ρ‚Π°ΠΉΠΌΠ΅Ρ€Π°-счСтчика;

Β· встроСнный Ρ‚Π°ΠΊΡ‚ΠΎΠ²Ρ‹ΠΉ Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€;

Β· адрСсация 64 ΠšΠ‘Π°ΠΉΡ‚ памяти ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ΠΈ 64 ΠšΠ±Π°ΠΉΡ‚ памяти Π΄Π°Π½Π½Ρ‹Ρ…;

Β· Π΄Π²Π΅ Π»ΠΈΠ½ΠΈΠΈ запросов Π½Π° ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠ΅ ΠΎΡ‚ Π²Π½Π΅ΡˆΠ½ΠΈΡ… устройств;

Β· интСрфСйс для ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΎΠ±ΠΌΠ΅Π½Π° ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°ΠΌΠΈ ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°ΠΌΠΈ.

РСгистр-Π·Π°Ρ‰Π΅Π»ΠΊΠ° DD12 — слуТит для фиксации младшСго Π±Π°ΠΉΡ‚Π° адрСса ΠΏΡ€ΠΈ опСрациях записи/чтСния внСшнСй памяти. ΠŸΡ€ΠΈ высоком ΡƒΡ€ΠΎΠ²Π½Π΅ Π½Π° Π²Ρ…ΠΎΠ΄Π΅ информация ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ Π½Π° Π²Ρ‹Ρ…ΠΎΠ΄ микросхСмы, Π° ΠΏΡ€ΠΈ ΠΏΠΎΠ΄Π°Ρ‡Π΅ Π½ΠΈΠ·ΠΊΠΎΠ³ΠΎ уровня ΠΎΠ½Π° «Π·Π°Ρ‰Ρ‘лкиваСтся» Π½Π° Π²Ρ‹Ρ…ΠΎΠ΄Π°Ρ… микросхСмы.

ΠœΠΈΠΊΡ€ΠΎΡΡ…Π΅ΠΌΡ‹ DD1-DD9 — ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΏΠ»Π΅ΠΊΡΠΎΡ€-сСлСктор 16>1 со ΡΡ‚Ρ€ΠΎΠ±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ.

ΠœΠΈΠΊΡ€ΠΎΡΡ…Π΅ΠΌΠ° Flash — памяти AT29C257.

Β· ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒ — Atmel Corporation

Β· Ρ‘ΠΌΠΊΠΎΡΡ‚ΡŒ — 32ΠΊΠ‘ Ρ… 8

Β· ВрСмя доступа ΠΏΡ€ΠΈ Ρ‡Ρ‚Π΅Π½ΠΈΠΈ — 70нс

Β· напряТСниС программирования — 5Π’

Β· автоматичСскоС стираниС ΠΏΠ΅Ρ€Π΅Π΄ записью

Β· Ρ†ΠΈΠΊΠ» записи — 10мс

Β· Ρ‚ΠΎΠΊ потрСблСния: 50мА — Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ΅ состояниС

300мА — Ρ€Π΅ΠΆΠΈΠΌ Ρ….Ρ….

Β· КМОП ΠΈ Π’Π’Π› совмСстимый Π²Ρ‹Ρ…ΠΎΠ΄

Β· напряТСниС питания — 5Π’

Β· количСство Ρ†ΠΈΠΊΠ»ΠΎΠ² пСрСзаписи Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ 10 000

Β· Эмуляция микросхСмы ΠžΠ—Π£

Β· Низкая потрСбляСмая ΠΌΠΎΡ‰Π½ΠΎΡΡ‚ΡŒ

3. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС МПБ

3.1 Алгоритм Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

ΠžΠ±Ρ‰ΠΈΠΉ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ Π½Π° Ρ€ΠΈΡ. 2.

ΠŸΡ€ΠΈ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° происходит Π΅Π³ΠΎ инициализация, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ задаётся частота пСрСполнСния Ρ‚Π°ΠΉΠΌΠ΅Ρ€Π° Π’/Π‘0, опрСдСлятся ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Ρ‡Π΅Ρ€Π΅Π· УАПП, ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°ΡŽΡ‚ΡΡ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Ρ‹ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠΉ. ПослС этого ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ ΠΏΠΎ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚ ΠΎΠΏΡ€Π°ΡˆΠΈΠ²Π°Ρ‚ΡŒ Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΈ. ΠŸΡ€ΠΈ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ΠΈΠΈ измСнСния состояния Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠ° ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ записываСт Π²ΠΎ Flash Π½ΠΎΠΌΠ΅Ρ€ Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠ°, ΠΊΠΎΠ΄ события ΠΈ Π²Ρ€Π΅ΠΌΡ, ΠΊΠΎΠ³Π΄Π° это событиС ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»ΠΎ.

ΠœΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ ΠΈΠΌΠ΅Π΅Ρ‚ часы Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Π½Π° Π’/Π‘0, Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ часов Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ прСдставлСн Π½Π° Ρ€ΠΈΡ. 3.

Для связи с Π­Π’Πœ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ УАПП, Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ Ρ€Π°Π±ΠΎΡ‚Ρ‹ УАПП прСдставлСн Π½Π° Ρ€ΠΈΡ. 4.

Рисунок 2. Алгоритм Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π³Π»Π°Π²Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

Рисунок 3. Алгоритм Ρ€Π°Π±ΠΎΡ‚Ρ‹ часов Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ

(прСрывания ΠΎΡ‚ Ρ‚Π°ΠΉΠΌΠ΅Ρ€Π° 0).

Рисунок 4. Алгоритм Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ

прСрывания ΠΎΡ‚ Π£ΠΠŸΠŸ.

Рис4.

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

start: do;

include (reg51.dcl)

declare

DZY byte (65 526) auxiliry,

(adr1, adr2) word,/* адрСс считываСмой ячСйки, адрСс записываСмой ячСйки*/

P bit (128),

(temp, delay, t, sec, min, hour, day, month, num_dat, f1, f2) byte,

m (13) byte, ms (16) byte, /* m-массив для мСсяцСв Π³ΠΎΠ΄Π°, ms-массив с ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΌΠΈ состояниями Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΎΠ²*/

ms11 word constant (1272),

comand byte, /*ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΎΡ‚ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°*/

input byte, /* считываСмый Π²Ρ…ΠΎΠ΄*/

adr word;

/*———————————————————————————-*/

Init: procedure;

delay=20;

t=0;

sec=0;

min=0;

hour=0;

day=0;

month=1;

m (1)=31;/*ΡΠ½Π²Π°Ρ€ΡŒ*/

m (2)=28;/*Ρ„Π΅Π²Ρ€Π°Π»ΡŒ*/

m (3)=31;/*ΠΌΠ°Ρ€Ρ‚*/

m (4)=30;/*Π°ΠΏΡ€Π΅Π»ΡŒ*/

m (5)=31;/*ΠΌΠ°ΠΉ*/

m (6)=30;/*июнь*/

m (7)=31;/*июль*/

m (8)=31;/*август*/

m (9)=30;/*ΡΠ΅Π½Ρ‚ΡΠ±Ρ€ΡŒ*/

m (10)=31;/*ΠΎΠΊΡ‚ΡΠ±Ρ€ΡŒ*/

m (11)=30;/*Π½ΠΎΡΠ±Ρ€ΡŒ*/

m (12)=31;/*Π΄Π΅ΠΊΠ°Π±Ρ€ΡŒ*/

P0=0ffh;/*настройка ΠΏΠΎΡ€Ρ‚ΠΎΠ² Π½Π° Π²Ρ…ΠΎΠ΄*/

P1=0ffh;/* настройка ΠΏΠΎΡ€Ρ‚ΠΎΠ² Π½Π° Π²Ρ…ΠΎΠ΄*/

P2=0ffh;/* настройка ΠΏΠΎΡ€Ρ‚ΠΎΠ² Π½Π° Π²Ρ…ΠΎΠ΄*/

P3=0ffh; /* настройка ΠΏΠΎΡ€Ρ‚ΠΎΠ² Π½Π° Π²Ρ…ΠΎΠ΄*/

/*XTAL=12MHz ΠΊΠ²Π°Ρ€Ρ†Π΅Π²Ρ‹ΠΉ Ρ€Π΅Π·ΠΎΠ½Π°Ρ‚ΠΎΡ€*/

TMOD=21h; /*Π‘Ρ‡Ρ‘Ρ‚Ρ‡ΠΈΠΊΠΈ Π’/Π‘0 — 1 Ρ€Π΅ΠΆ ΠΈ Π’/Π‘1 Π²ΠΎ 2-ΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅*/

SCON=60h; /*UART Π²ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅*/

TL0=0AFh; /*ΠŸΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ счётчика 0*/

TH0=03Ch; /* Ρ‡Π΅Ρ€Π΅Π· 50мс ΠΏΡ€ΠΈ 12ΠœΠ“Ρ†*/

TL1=0F3h; /*счётчик1 — Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ частоты*/

TH1=0F3h; /*ΠΎΠ±ΠΌΠ΅Π½Π° скорости с Π­Π’Πœ, 2400 Π‘ΠΎΠ΄*/

IE=09Ah; /*Π Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠΉ 1001 1010 Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ прСрывания ΠΎΡ‚ Π£ΠΠŸΠŸ*/

IP=2; /*ΠŸΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Ρ‹ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠΉ: Π’/Π‘0=1, Π’/Π‘2=0, SBUF=0*/

End ;

/*—————————————————————————————*/

timer0:procedure interrupt1;

do;

/*часы Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ*/

TL0=0AFh; /*ΠŸΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ счётчика 0 Ρ‡Π΅Ρ€Π΅Π· 50мс ΠΏΡ€ΠΈ 12ΠœΠ“Ρ†*/

TH0=03Ch; /*Π·Π°Π³Ρ€ΡƒΠ·ΠΈΠ»ΠΈ 15 535 Π² Ρ‚Π°ΠΉΠΌΠ΅Ρ€, ΠΏΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Ρ‡/Π· 50 000*/

if ((t=t+1)=20) /* 1 сСкунда послС 20 срабатываний*/

then

do;

t=0;

if (f1=1) then P3.3=not (P3.3); /*Π±ΠΈΡ‚ ΠΏΠΎΡ€Ρ‚Π°*/

if (f2=1) then P3.4= notP3.4;

sec=sec+1; then

if (sec)=60 /*подсчёт сСкунд*/

do;

sec=0;

min=min+1; then

if (min)=60 /*подсчёт ΠΌΠΈΠ½ΡƒΡ‚*/

do;

min=0;

hour= hour+1; then

if (hour)=24 /*подсчёт часов*/

do;

hour=0;temp=m (month)+1;

day= day+1; then

if (day)=temp) /*подсчёт Π΄Π½Π΅ΠΉ*/

do;

day=1;

month= month+1; then

if (month)=13 /*подсчёт мСсяцСв*/

month=1; do;

end;

end;

end;

end;

end;

end timer0;

/*————————————————————————————-*/

uchar Scan_Dat (uchar ndat) /* ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° сканирования Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠ° */

uchar nbyte, nbit, p, s;

call init;

do while 1;

nbyte=ndat/8; /*вычисляСм Π½ΠΎΠΌΠ΅Ρ€ Π±Π°ΠΉΡ‚Π°*/

nbit=(ndat mod8); /*вычисляСм Π½ΠΎΠΌΠ΅Ρ€ Π±ΠΈΡ‚Π°*/

P1=ndat; /*Π²Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ Π΄Π°Ρ‚Ρ‡ΠΈΠΊ β„– ndat*/

s=P3; /*считываСм ΠΏΠΎΡ€Ρ‚ Π 3*/

s=80h and SHL (ms (nbyte),(8-nbit)); /*1000 0000 массив состояния ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠ°*/

p=(80h and (SHL (p, 2))); /*0001 0000 << 3 = 1000 0000*/

yes=0;

then

end;

if (p (ndat)=1)and (s=0) then /* смотрим Π±Ρ‹Π»ΠΎ Π»ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ состояния*/

do;

yes=1; /*Π±Ρ‹Π»ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ состояния*/

p (ndat)=0;

end;

if (p (ndat)=0)and (s=1) then

do;

yes=1;

p (ndat)=1;

end;

return s;

end;

/*————————————————————————————-*/

Serial: procedure interrupt 4//ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° прСрывания ΠΎΡ‚ Π£ΠΠŸΠŸ

do; /*0xAA=0b10101010*/

if (SBUF=0AAh) then /*Ссли принятоС число Ρ€Π°Π²Π½ΠΎ 0xAA — установка Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ*/

end;

/***——————————————————————————-***/

uchar sob;

adr=0;

call init;

TCON=0F0h; /*Π Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Ρ€Π°Π±ΠΎΡ‚Ρ‹ счётчиков 0 ΠΈ 1*/

do while (I);

do;

/*Π‘Π»ΠΎΠΊ чтСния*/

do while (not (RI)); /*RI=1 ΠΊΠΎΠ³Π΄Π° ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° ΠΎΡ‚ Π­Π’Πœ ΠΊ Π£ΠΠŸΠŸ Π·Π°ΠΊΠΎΠ½Ρ‡Π΅Π½Π°*/

sec=SBUF;

end;

RI=0;

do while (not (RI)); /*RI=1 ΠΊΠΎΠ³Π΄Π° ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° ΠΎΡ‚ Π­Π’Πœ ΠΊ Π£ΠΠŸΠŸ Π·Π°ΠΊΠΎΠ½Ρ‡Π΅Π½Π°*/

min=SBUF;

end;

RI=0;

do while (not (RI)); /*RI=1 ΠΊΠΎΠ³Π΄Π° ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° ΠΎΡ‚ Π­Π’Πœ ΠΊ Π£ΠΠŸΠŸ Π·Π°ΠΊΠΎΠ½Ρ‡Π΅Π½Π°*/

hour=SBUF;

end;

RI=0;

do while (not (RI)); /*RI=1 ΠΊΠΎΠ³Π΄Π° ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° ΠΎΡ‚ Π­Π’Πœ ΠΊ Π£ΠΠŸΠŸ Π·Π°ΠΊΠΎΠ½Ρ‡Π΅Π½Π°*/

day=SBUF;

end;

RI=0;

do while (not (RI)); /*RI=1 ΠΊΠΎΠ³Π΄Π° ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° ΠΎΡ‚ Π­Π’Πœ ΠΊ Π£ΠΠŸΠŸ Π·Π°ΠΊΠΎΠ½Ρ‡Π΅Π½Π°*/

month=SBUF;

RI=0;

end;

if SBUF=0DDh then /* Ρ†ΠΈΠΊΠ» ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π΄Π°Π½Π½Ρ‹Ρ…*/

do;

if fl_per=1 then

do;

i=0;

do while i<=adr+6;

sbuf=DZY (i);

i=i+1;

call time (50);

end;

end;

end;

do;

/* Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ хранСния:*/

/* 0000 0000 — Π½ΠΎΠΌΠ΅Ρ€ Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠ°*/

/* Ρ…Ρ…00 0000 — сСкунды*/

/* Ρ…Ρ…00 0000 — ΠΌΠΈΠ½ΡƒΡ‚Ρ‹*/

/* Ρ…Ρ…Ρ…0 0000 — часы*/

/* 0Ρ…Ρ…0 0000 — событиС 1−0/дСнь*/

/*Ρ…Ρ…Ρ…Ρ… 0000 — /*Π·ΡΠ½ΡΡ‚ΠΎΡΡ‚ΡŒ ячСйки/мСсяц*/

/*опрос Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠ°*/

sob=Scan_Dat (num_dat); /*событиС ΠΎΡ‚ Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠ° 1000 0000 ΠΈΠ»ΠΈ 0000 0000*/

if (yes) then do; /*Ссли Ρƒ Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠ° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ состояния*/

do; /*Ρ‚ΠΎ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΠΌ Π΅Π³ΠΎ запись*/ DZY (adr)=num_dat; /*запись Π½ΠΎΠΌΠ΅Ρ€Π° Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠ°*/

ms11=ms11−1;

while (ms11); /*ΠΏΠ°ΡƒΠ·Π° 11 мс*/

DZY (adr+1)=sec; /*запись сСкунд*/

ms11=ms11−1;

while (ms11); /*ΠΏΠ°ΡƒΠ·Π° 11 мс*/

DZY (adr+2)=min; /*запись ΠΌΠΈΠ½ΡƒΡ‚*/

ms11=ms11−1;

while (ms11); /*ΠΏΠ°ΡƒΠ·Π° 11 мс*/

DZY (adr+3)=hour; /*запись часов*/

ms11=ms11−1;

while (ms11); /*ΠΏΠ°ΡƒΠ·Π° 11 мс*/

DZY (adr+4)=day and sob; /*запись днСй*/

ms11=ms11−1;

while (ms11); /*ΠΏΠ°ΡƒΠ·Π° 11 мс*/

DZY (adr+5)=month; /*запись мСсяца*/

ms11=ms11−1;

while (ms11); /*ΠΏΠ°ΡƒΠ·Π° 11 мс*/

adr=adr+6; /* ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠ΅ адрСса для записи Π² ΠΏΠ°ΠΌΡΡ‚ΡŒ, ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ запись Ρ‡Π΅Ρ€Π΅Π· 6 ячССк*/

end;

f1=0; f2=0;

if (adr>07FFFh) then f1=1; /* Flash ΠΏΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½Π°, Π²ΠΊΠ»ΡŽΡ‡. ΠΌΠΎΡ€Π³Π°Π½ΠΈΠ΅ свСтодиода 1*/

else f2=1; /*Π²ΠΊΠ»ΡŽΡ‡. ΠΌΠΎΡ€Π³Π°Π½ΠΈΠ΅ свСтодиода 2*/

num_dat=num_dat+1; /*ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠ΅ Π½ΠΎΠΌΠ΅Ρ€Π° Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠ°*/

end;

end; /*while (1)*/

/*——————————————————————————-*/

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

ΠŸΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ Π΄Π°Π½Π½ΠΎΠΉ курсовой Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π±Ρ‹Π» ΠΈΠ·ΡƒΡ‡Π΅Π½ ΠΎΠ΄Π½ΠΎΠΊΡ€ΠΈΡΡ‚Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ Intel 80C51, Flash — ΠΏΠ°ΠΌΡΡ‚ΡŒ производства ΠΊΠΎΡ€ΠΏΠΎΡ€Π°Ρ†ΠΈΠΈ Atmel, ΠΏΡ€ΠΈΠΎΠ±Ρ€Π΅Ρ‚Π΅Π½Ρ‹ Π½Π°Π²Ρ‹ΠΊΠΈ программирования ΠΎΠ΄Π½ΠΎΠΊΡ€ΠΈΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠ². ΠŸΡ€ΠΈ написании ΠΈ ΠΎΡ‚Π»Π°Π΄ΠΊΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния Π±Ρ‹Π» ΠΈΠ·ΡƒΡ‡Π΅Π½ симулятор ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠ² сСмСйства MCS'51 Keil uVision 2.

ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅

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