
- •2.2 Опис ресурсів мк pic16f873
- •2.3.2 Логіка скидання
- •2.3.3 Центральний процесор (cpu)
- •2.3.6 Переривання
- •2.3.7 Система команд.
- •2.4 Огляд характеристик pic16f873
- •2.5 Структурна схема мікроконтролера
- •3.2. Асемблювання
- •4 Технічна діагностика та профілактика
- •4.1 Основні задачі технічної діагностики мікроконтролерів
- •4.2 Технічні засоби діагностики мікроконтролерів
- •5 Економічний розрахунок автомата для акваріума
- •Дані розрахунків заносимо в таблицю 1.
- •5.1.2 Стаття 2. Купівельні комплектуючі вироби
- •5.1.3 Стаття 3. Розрахунок витрат на паливо, енергію на технологічні цілі
- •5.1.4Стаття 4. Основна заробітна плата виробничих робітників
- •6.2 Охорона праці
- •6.2.1 Вимоги до виробничих приміщень
- •6.2.1. Вимоги до організації робочих місць.
- •Додаток б
6.2.1. Вимоги до організації робочих місць.
Робоче місце – це місце постійного або тимчасового перебування працівника в процесі трудової діяльності.
Правильна організація робочих місць сприяє усуненню загального дискомфорту, зменшенню втомлюваності працівника, підвищенню його продуктивності. Проведені дослідження показують, що при раціональній організації робочих місць зростає на 15–25 %.
Організація робочого місця передбачає:
правильне розміщення робочого місця у виробничому приміщені - вибір ергономічного обґрунтованого робочого положення, виробничих меблів з урахуванням антропометричних характеристик людини;
- раціональну компоновку обладнання на робочих місцях;
- урахування характеру та особливостей трудової діяльності. Найкраще розмістити робочі місця з ВДТ рядами, причому відносно вікон сморід повинні розміщуватися так, щоб природне світло падало з боку, переважно зліва. Це дасть змогу виключити дзеркальне відбиття на екрані джерел природного світла (вікон) та потрапляння останніх в полі зору користувачів.
Площа, виділена для одного робочого місця з ВДТ або ПК, повинна складати не менше 6 м кв., а об’єм – не менше 20 м куб.. При розміщенні робочих місць необхідно дотримуватись таких вимог:
- робочі місця з ВДТ розміщують на відстані не менше 1 м від стін зі світловими прорізами;
- відстань між бічними поверхнями відеотерміналів має бути не меншою за 1,2 м ;
- відстань між тильною поверхнею одного відеотерміналу та екраном іншого не повинна бути меншою 2,5 м.
При потребі високої концентрації уваги під годину виконання робіт з високим рівнем напруженості суміжні робочі місця з ВДТ необхідно відділяти одне від одного перегородками висотою 1,5 – 2 м.
ВИСНОВОК
В результаті виконання дипломної роботи був спроектований микроконтроллерний регулятор температури, що дозволяє автоматизувати роботу регулювання температури в контрольованому об’єкті. Було розглянуто декілька варіантів реалізації микроконтролерного регулятора, таким чином можна говорити про деяку універсальність спроектованого приладу.
Використання в роботі мікроконтролера і оптронної технології дає основу вважати, що спроектований прилад знайде широке застосування.
В економічної частині ми розрахунок приладу, призначеного для автоматичного регулювання температури для акваріума,яка становить 455,05 грн, що незначно менше ніж у конкурентів на ринку науково-технічних розробок та інформації.
Перелік використаної літератури.
1. Білов А.В. Мікроконтролери АVR в радіоаматорського практиці- СП-б,Наука і техніка, 2007 - 352с.
2. Евстіфеев А.В. Мікроконтролери Microchip: практичне керівництво /А.В.Евстіфеев. - М.: Гаряча лінія- Телеком, 2002. -296 с
3. Кравченко О.В. 10 практичних пристроїв на AVR-мікроконтролерах. Книга 1 - М.,Додека-ХХ1, МК-Пресс, 2008 - 224с
4. Мортон Дж. Мікроконтролери АVR. Вступний курс / Пер. з англ. - М., Додека-ХХ1, 2006 - 272с.
5. Проектування цифрових пристроїв на одно кристальних мікроконтролерах /
В.В. Сташін [та інші]. -М.:Вища школа, 1990. - 224 с.
6. Технічна документація на мікроконтролери PIC16F873 компанії Microchip Technology Incorporated.ТОВ«Мікро-Чіп»,Москва,2002.-184с.
7.Трамперт В. Вимірювання, управління і регулювання за допомогою АVR-мікроконтролерів: Пер. з ним - К., МК-Пресс, 2006 - 208с.
Додаток А
ПРОГРАМА - 27ER.ASM ВЕРСІЯ: 31-07-04.
Асемблер і відладчик: MPLAB IDE, ВЕРСІЯ: 5.70.40.
# INCLUDE P16F84A.INC _CONFIG 3FF1H
вікорістовується КВАРЦ ЧАСТОТОЮ 4,0 МГц
RB4-RB7 - данні LCD
RB2 - RS, RB3 - Е,
RB1 - КНОПКА "РОЗРЯД".
RB0 - КНОПКА "УСТАНОВКА",
RA0 - ВХІД / ВИХІД НА DS1820, 2.
RA1 - ВІХОД РЕГУЛЮВАННЯ 1.
RA2 - ВИХІД РЕГУЛЮВАННЯ 2.
RA3 - КНОПКА "РЕЖИМ" (УСТАНОВКА - Термометр 1 - Термометр 2) RA4 - ВХІД / ВИХІД НА DS1820, 1
СПЕЦ РЕГІСТРИ.
INDF EQU ООН; ДОСТУП ДО ПАМ'ЯТІ ЧЕРЕЗ FSR.
TIMER0 EQU 01Н; TMR0.
PTIONR EQU 8ІН; OPTION (RP0 = 1).
PC • EQU 02Н; ЛІЧІЛЬНІК КОМАНД. .
STATUS EQU 03Н; Регистр СТАНУ АЛУ.
FSR EQU 04Н; Регистр НЕПРЯМОЇ адресації.
PORTA EQU 05Н; ПОРТ А введення / Виведення.
PORTB EQU 06Н; ПОРТ У ВВЕДЕННЯ / Виведення.
TRISA EQU 85Н; НАПРЯМИ данних ПОРТУ А
TRISB EQU 86Н; Напр. Данних ПОРТУ В.
INTCON EQU 03Н; Регистр ПРАПОРІВ ПРЕРІВАНЬ.
; РЕГІСТРІ Загальна ПРИЗНАЧЕННЯ.
SOTY1 EQU ЮН •; Регистр ЗНАКА 1.
DESY1 EQU 11Н.; СКІДАННЯ1
EDIY1 EQU .12 H ДЕСЯТИ ТЕМПЕРАТУР 1.
DSTY1 EQU 13H ДЕСЯТИ ТЕМПЕРАТУР 1.
TYR1 EQU 14H Встановлено ТЕМПЕРАТУРА
SOTY2 EQU 15H РЕГІІСТР ЗНАКУ 2.
DESY2 EQU 16H 'ДЕСЯТОК 2.
EDXY2 EQU 17H Одиниця ТЕМПЕРАТУРА 2.
DSTY2 EQU 18H ДЕСЯТИ ТЕМПЕРАТУР 2.
TYR2 EQU 19H 'Встановлено ТЕМПЕРАТУРА 2 ДВІЙКОВА
TEMP EQU x 1AH ТИМЧАСОВЕ
ZAN EQU 1BH Лічильник ПАУЗА
COUN EQU 1CH Лічильник БІТІВ.
LSB EQU 1DH Регистр Прийом Даних ВІД ОЄ
сої EQU 1EH Лічильник перерахунку
KTEMP EQU 20H ТИМЧАСОВЕ
STEMP EQO 21H ТИМЧАСОВЕ
FTEMP EQU 22H ТИМЧАСОВЕREID 'EQU 23H РЕЖИМУ ІНДІКАІЇ
KYPC EQU 24H курсору
. . РЕГІСТРІ ІНДІКАЦІЇ
R1 EQU ЗОН
R2 EQU 31H
R3 EQU 32H
М EQU 33H
м EQU 34H
R6 EQU 35H
R7 EQU 36H
R8 EQU 37H
R9 EQU 38H
R10 EQU 39H
R11 EQU 3AH
R12 EQU 3BH
R13 EQU. 3CH
R14 EQU ЗОН
R15 EQU Зен
R16 EQU 3FH
РЕГІСТРІ ВІМІРЯНІХ ТЕМПЕРАТУР
SOT2 EQU 4 ОН ЗНАК 2.
EDI2 EQU 41Н ОДІНІЦІ 2.
DES2 EQU 42н Скиданов 2. '
DST2 EQU 43н Скиданов 2.
SOT1 EQU 44н ЗНАК 1.
EDI1 EQU 4 5Н ОДІНІЦІ 1.
DES1 EQU 4 6Н Скиданов 1.
DST1 EQU 47Н Скиданов 1.
; ВИЗНАЧЕННЯ Визначення БІТІВ СТАНУ РЕГІСТРІВ ПРАПОРІВ.
FLAG EQU 48Н;
»0 -> ЗНАКА. 1-МІІНУС
1 -> ПРОЧІТУВАННЯ 9 розряда.
-> КНОПКИ "УСТАНОВКА".
4 -> КНОПКИ "РЕЖИМ".
5 -> КНОПКИ "розряд".
6 -> чергування курсору І ІНДІКАЦІЇ. FLAG1 EQU 4 9Н
»0 -> УСТАНОВКИ -1.
в 6 -> УСТАНОВКИ 1 термометр.
вDS2 EQU 0; ВИХІД ПРО, 2.
DS1 EQU 4; ВИХІД ПРО, 1
YPR1 EQU 1; ВИХІД
YPR2 EQU 2; ВИХІД У
УПРАВЛІННЯ RS EQU 2; КОМАНДА УПРАВЛІННЯ.
Е EQU 3 СІНХРОНІЗАЦІЯ.
УСТ EQU 0; УСТАНОВКА.
PAZ EOU 1; РОЗРЯД.
PEJ EQU 3; РЕЖИМ.
1. ЗАПУСК
ORG 0
GOTO INIT
NOPNOPNOPNOP
INIT 3. Ініціалізації.
BSF STATUS, RT? 0 ПЕРЕХОДИМО У БАНК 1.
MOVLW B'00000000 '
MOVWF OPTION REG "80H ПОДТЯГІВАКЩІЕ РЕЗИСТОРИ ВКЛЮЧЕНІ
MOVLW B'00000000 'ПРЕРІВАНЬ ЗАБОРОНЕНІ
MOVWF INTCON J –
MOVLW B'00011001 '0,3,4 - НА ВХІД.
MOVWF TRISAA80H
MOVLW B'00000011 0,1 - НА ВХІД
MOVWF TRISBA80H
BCF STATUS, RP0. • ПЕРЕХОДИМО В БАНК 0.
CLRF TMR0; ВСЕ ОБНУЛЯЄМ І ВСТАНОВЛЮЄМО
CLRF FLAG W
CLRF FLAG1
CLRF PORTA
CLRF PORTB
CLRF RE ID
CLRF KYPC
MOVLW .6 ІНДІКАЦІЯ ЧЕРЕЗ 68 мс.
MOVWF COU
CALL АКТ виборки Із ПАМЯТІ.
3. ІНІЦІАЛІЗАЦІЯ ЖКІ.
JEKI
JEKOMI
STROB
3
JEKOMI STROB
MOVLW
CALL
CALL
MOVLW
CALL
CALL
Скиданов.
Передачі команд.
ПРОСТРОБІРУЄМ.
СІДАННЯ.
ПРОСТРОБІРУЄМ.
BTFSS
RETURN
BCF
MOVFWADDWF
PORTA, PEJ
FLAG, 4
REID PC, 1
MOVLW 3
CALL JEKOMI
CALL STROB ПРОСТРОБІРУЄМ.
MOVLW 10 ЗАБОРОНА ЗСУВУ ЗОБРАЖЕННЯ
CALL JEKOMI
CALL STROB ПРОСТРОБІРУЄМ.
MOVLW 06 инкрементирования ПОЗІЦІЇ курсору.
CALL JEKOMI
CALL STROB ПРОСТРОБІРУЄМ.
MOVLW 01 Стирання Дисплей.
CALL JEKOMI
CALL STROB ПРОСТРОБІРУЄМ.
MOVLW 28 ФОРМАТ ОБМІНУ: 4 РАЗР.5x7
2 рядки.
CALL JEKOMI
CALL STROB ПРОСТРОБІРУЄМ.
MOVLW 28
CALL JEKOMI
CALL STROB-ПРОСТРОБІРУЄМ.
MOVLW ОС ВКЛЮЧЕННЯ Дисплей,
Заборона курсору.
CALL JEKOMI
CALL STROB ПРОСТРОБІРУЄМ.
GOTO JEKI НА ІНДІКАЦІЮ.
MOVLW .25
MOVWF ZAN
MOVLW .255
ADDLW -1
BTFSS STATUS, 2
GOTO $ -2
DECFSZ ZAN, 1
GOTO PAUS •
"RETURN TX
MOVWF TEMP Перепишемо ЗНАЧЕННЯ
У ТИМЧАСОВЕ Регистр
ANDLW B'llUOOOO 'ЗАМАСКУЄМО МОЛОДШІ
Розряди ПІД НУЛЬ.
MOVWF PPRTB Інші Розряди
Перепишемо В ПОРТ "В".
CALL STROB ПРОСТРОБІРУЄМ.
CALL PAUSA ПАУЗА.
MOVFW TEMP
SWAPF TEMP, W ПОМІНЯЄМО МІСЦЯМІ
ПІВБАЙТІ
ANDLW B'111100001 ЗАМАСКІРУЄМ СТАРШІ
РОЗРЯДУ ПІД НУЛЬ.
MOVWF PORTB ПЕРЕПІШЕМО В ПОРТ "В".
CALL STROB ПРОСТРОБІРУЄМ.
CALL PAUSA ПАУЗА.
RETURN
PAUSA
PAUS
JEKOMI
ЯКЩО КНОПКА НАТІСНУТА, ТО ВИБОРИ НЕМАЄ.СКІДАННЯ ПРАПОР РЕЖІМУ.ПО НОМЕРУ ВІБІРАЄМО ІНДІКАЦІЮ.
GOTO IND12. • ТЕМПЕРАТУРА 1-2.
GOTO XND1Y; 1-УСТАНОВКА.
GOTO IND2Y; 2-УСТАНОВКА.
GOTO INOY1. • УСТАНОВКА 1.
GOTO INDY2; УСТАНОВКА 2.
ВИБІР РОЗРЯДУ УСТАНОВКИ.
BTFSS PORTB, YCT.-ЯКЩО кнопка натиснута,
RETURN; ТО ВІБІРА НІ.
BTFSS FLAG1, 0. • ЯКЩО НІ УСТАНОВКИ,
RETURN; ТО КНОПКА НЕ ПРАЦЮЄ.
BCF FLAG, 3. • Скиданов ПРАПОРА РЕЖИМУ.
MOVFW КУРС; по курсору
ADDWF PC.l; ЗНАХОДИМО РОЗРЯД.
GOTO YCO.-ЗНАК 1
GOTO. YC2. • ОДІНІЦІ 1.
GOTO YC4. • Десяткова 1.
6. ТАБЛИЦІ ПЕРЕКЛАДУ ДЕСЯТКІВ В двійкове число.
СЕВ IN
ADDWF PC, 1
RETLW .0
RETLW .10
RETLW .20
RETLW .30
RETLW .40
RETLW .50
RETLW .60
RETLW .70
RETLW .80
RETLW .90
RETLW .100
RETLW .110
RETLW .120
Нормування СТРОБІРУЩЕГОІМПУЛЬСУ
YCTA
STROB
ВКЛЮЧАЄМ СТРОБ-ІМПУЛЬС
PORTS, E PORTB, E
BSF NOP BCF. RETURN
ВІМІКАЄМО СТРОБ. ПОВЕРНЕМОСЯ.
8. Передачі команд В ЖКИ. JEKOM
MOVWF
ANDLW
MOVWF
CALL
CALL
TEMP
B'llllOOOO 'PORTB STROB PUS
ПЕРЕПІШЕМО ЗНАЧЕННЯ У ТИМЧАСОВЕ Регистр ЗАМАСКУЄМ МОЛОДШІ РОЗРЯДУ ПІД НУЛЬ ОСТАННІ РОЗРЯДУ перепишемо у ПОРТ. "В" ПРОСТРОБІРУЄМ; ПАУЗА.
MOVFW SWAPF ANDLW MOVWF CALL
MOVLW
ADDLW
BTFSS
GOTO
RETURN
MOVLW
ADDLW BTFSS GOTO RETURN TEMP TEMP, W B'11110000 'PORTB STROB
.255 -1 1 STATUS, 2 S-2
PUS
PUSO
; ЗАМАСКУЄМО СТАРШІ Розряди ПІД НУЛЬ; ПЕРЕПІШЕМО В ПОРТ "В". ; ПРОСТРОБІРУЄМ.
STATUS, 2 S-2
1 мс.
40 мкс.
9. ЗАПИС ДАНИХ В ЖКИ.
Перепишемо ЗНАЧЕННЯ У ТИМЧАСОВЕ Регистр ЗАМАСКУЄМО МОЛОДШІ Розряди ПІД НУЛЬ ПЕРЕКЛАД В КОД ASCII, ТІЛЬКІ ДЛЯ ЦИФР ОСТАННІ Розряди перепишемо у ПОРТ "В" ВСТАНОВИВ R / S НА Дозвіл ЗАПИСИ
ПРОСТРОБІРУЄМ.
ПАУЗА ДЛЯ ЗВІЛЬНЕННЯ ЖКІ ВІД ЦИКЛУ
ПОМІНЯЄМ МІСЦЯМІ ПІВБАЙТІ ЗАМАСКУЄМО СТАРШІ Розряди ПІД НУЛЬ ОСТАННІ Розряди перепишемо у ПОРТ "В"
ВСТАНОВИВ R / S НА Дозвіл ЗАПИСИ• •
JEDAT
MOVWF ANDLW ADDLW MOVWF BSF ДАНИХ.
CALL CALL ЗАПИСИ.
MOVFW SWAPF ANDLW MOVWF BSF ДАНИХ.
CALL GOTO
TEMP
B'11110000 '30
PORTB PORTB, RS
STROB PUSO
TEMP TEMP, 0 B'11110000 'PORTB PORTB, RS
STROB PUSO
; ПРОСТРОБІРУЄМ. ; ПАУЗА.
10. ВИСНОВОК ЗНАЧЕНЬ РЕГІСТРОВ НА індикації.
JEKI
ЯКЩО НІ УСТАНОВКИ, то пропускаємо ІНДИКАЦІЯ курсору. ЯКЩО НЕ БУЛО ІНДИКАЦІЇ курсору, ТО ПРОІНДІЦІРУЕМ.
ПОВЕРНЕННЯ курсору в початковий стан. ЗАПИШІТЬ КОМАНДУ.
КУРСОР НА 0 ПОЗИЦІЮ першого рядка. ЗАПИШІТЬ КОМАНДУ. Запишіть число знакомісць.
BTFSS GOTO BTFSS GOTO MOVLW CALL MOVLW CALL MOVLW MOVWF MOVLW MOVWF MOVFW
FLAG1, 0 $ +3 FLAG, 6 JEKYC
02
JEKOM. B'10000000 'JEKOM .8
COUN
FSR INDF
АДРЕСА ПЕРШОГО РЕГІСТРА ІНДИКАЦІЇ. ПО непрямої адресації. Індіціруя ЗНАЧЕННЯ. ВПОВНОВАЖУЮ миготіння курсору.
ЗАПИШІТЬ КОМАНДУ.
НА ВИБІР миготливим розряд.
ЗАПИШІТЬ КОМАНДУ.
Наступна ІНДИКАЦІЯ - РОЗРЯДІВ.
НА Ініціалізація ПРО.
MOVLW
CALL
CALL
CALL
BSF
GOTO
MOVFW ADDWF RETLW RETLW RETLW RETLW
.14 JEKOM
JEKYK JEKOM
FLAG, 6 INIDS1
KYPC PC, 1 OxCO OxCl 0xC2 0xC4
JEKYK CALL JEDAT
DECF COUN, 1 зменшує лічильник.
BTFSC STATUS, 2 ЯКЩО ВЖЕ 0,
GOTO S + 3 ТО ПЕРЕХОДИМО НА другого рядка.
INCF FSR, 1 ІНАКШЕ ПРОІНДІЦІРУЕМ СЛЕДУЕДІЙ
GOTO $ -6 Регистр.
MOVLW B'llOOOOOO 'ДРУГА РЯДОК (УМОВНО 2x8). Охос
CALL JEKOM ЗАПИШІТЬ КОМАНДУ.
. MOVLW .8 ІНДИКАЦІЯ АНАЛОГІЧНА
MOVWF COUN ІНДИКАЦІЇ першого рядка.
INCF FSR, 1
MOVFW INDF
CALL JEDAT
DECF COUN, 1
BTFSS STATUS, 2
GOTO $ -5
BCF FLAG, 6 СЛЕДУОДАЯ ІНДИКАЦІЯ - курсору.
GOTO INIDS1 НА Ініціалізація ПРО.
11. ІНДИКАЦІЯ курсору.
JEKYC
Регистр курсору В РОБОЧИЙ. ; ДРУГА РЯДОК (УМОВНО 2x8) Охос;; ЗНАК. ; ДЕСЯТКИ. ; ОДІНІЦІ. / Десятов.
12. Ініціалізація DS 1.
INIDS1
Посилаючи імпульси обнулення. ; ПРОПУСК НАДСИЛАЙТЕ НОМЕРА DS. . • ПІШЛИ.
ВПОВНОВАЖУЮ ПЕРЕТВОРЕННЯ. ; П031ЛЕМ.
CALL
MOVLW
CALL
MOVLW
CALL
GOTO
CALL _ MOVLW
ADDLW
BTFSS
GOTO
CALL
MOVLW
ADDLW
BTFSS
HYL1
OxCC
POSIL1
0x44
POSIL1
PRIEM1
WUX1 .125 -1
STATUS, 2 S-2 WXOl .125 -1
STATUS, 2
HYL1
НА ПРИЙОМ ТЕМПЕРАТУРИ.
ВИХІД НУЛЯ. НУЛЬОВИЙ ІМПУЛЬС • - 500 МКС.
ВИХІД ОДІНІЦІ. ІМПУЛЬС - 500 мкс.
GOTO RETURN
13. ЗМІНА ВХОДУ НА ПРИЙОМ / ПЕРЕДАЧУ. WUX1
BCF £ SF BCF • BCF _ RETURN
BSF BSF BCF RETURN
WX01
PORTA/DS1 STATUS, 5 TRISAA80H, DS1 STATUS, 5
STATUS, 5 TRISA "80H, DS1 STATUS, 5
КОРОТКИЙ ЗАПИТ. Перекладу в банк 1. НА ВИХІД.
ПЕРЕХОДИМО В БАНК 0.
ПЕРЕХОДИМО В БАНК 1. ; НА ВХІД.
ПЕРЕХОДИМО В БАНК 0.
14. ПРИЙОМ 9 БІТ З DS 1
PRIEM1
Посилаючи імпульси обнулення. ; ПРОПУСК НОМЕРА. ; Посил.
ЧИТАННЯ ТЕМПЕРАТУРИ З блокнота. ; Посил. ; НА ПРИЙОМ. / Встановити 9 БІТ.; І приймемо його. ; СКІДАННЯІМ ПРАПОР. . ; ЯКЩО ПРІНЯТИЙ.БІТ - 0,; ТО встановив прапор ПЛЮС.
PRIE1
PRI1
Або мінус. . • Пропустивши, ЯКЩО МІНУС. ; Порахуємо. ; Інвертуємо. / Додати 1
І ОТРИМАЄМО; НЕГАТИВНІ ДАНІ. ; НА ПЕРЕРАХУНОК.
Запишіть число БІТ. ; Обнулив Регистр ПРИЙОМУ.
Почуєте короткий НУЛЬ І ЧЕКАЄМО Відгуки. ; НА ПРИЙОМ. ; ЗАТРИМКА; 8 мкс. ; Перепишемо. • ЗНАЧЕННЯ ПОРТУ. ; ЯКЩО ЦЕ 9 БІТ,; ПОВЕРНЕМОСЯ.
HYLl OxCC POSIL1 OxBE POSIL1 PRIE1 FLAG, 1 PRI1 FLAG, 1 TEMP, DS1 FLAG, 0 TEMP, DS1 FLAG, 0 FLAG, 0 CXET1 LSB, 0 .1 LSB CXETl
COUN LSB
WUX1 WXOl .2 X4
PORTA TEMP FLAG, 1
TEMP, DS1 STATUS, 0 TEMP, DS1
CALL MOVLW CALL MOVLW CALL CALL BSF CALL BCF BTFSS BCF BTFSC BSF BTFSS GOTO COMF ADDLW MOVWF GOTO
MOVLW MOVWF CLRF
CALL CALL MOVLW CALL MOVFW MOVWF BTFSC RETURN BTFSS BCF BTFSC ВСТАНОВИВ БІТ ПРИЙОМУ В НУЛЬ.
АБО ОДИНИЦЮ. Запишемо в Регистр. ПАУЗА 60 мкс.
STATUS, 0 LSB, 1 .15 X4
COUN, 1 PRI1
BSF RRF MOVLW CALL DECFSZ GOTO RETURN
ЗМЕНШИТИ ЛІЧИЛЬНИК. Повторити прийом. ПОВЕРНЕМОСЯ.
15. ЗАТРИМКА мкс, помноженої на 4.Х4
-1 STATUS, 2
$ -2
ADDLW BTFSS GOTO RETURN
16. Посил КОМАНДИ В DS 1.
POSIL1
Перепишемо ВО ТИМЧАСОВЕ. Запишіть число БІТ.
Виштовхни МОЛОДШИЙ БІТ. ЯКЩО ВІН НУЛЬОВИЙ, ПІШЛИ ІМПУЛЬС НУЛЯ. АБО ОДІНІЦІ.
Зменшує лічильник. НА НАСТУПНИЙ БІТ. ПОВЕРНЕННЯ.
ВСТАНОВИВ ВИХІД В НУЛЬ. Утримувати 60 мкс.
НА ВХІД - 1 НА ВИХОДІ. Потім.
КОРОТКИЙ НУЛЬОВИЙ ІМПУЛЬС НА ВХІД - 1 НА ВИХОДІ. Утримувати 60 мкс.
MOVWF MOVLW MOVWF
RRF BTFSS GOTO GOTO
DECFSZ
GOTO
RETURN
CALL MOVLW CALL CALL GOTO
CALL CALL MOVLW CALL GOTO
TEMP .8
COUN
TEMP, 1 STATUS, 0 woi
Wll
COUN, 1 POSIl
POSH
POS1
W01
WUX1
15
X4
WXOl POS1
WUX1 WXOl .15 X4
POS1
Wll
Потім.
17. РАХУНОК 1
CXETl
За умовчанням
ЗНАК ПЛЮС.
ЯКЩО 9 РОЗРЯД = 1,
ТО встановити знак МІНУС.
251 SOT1 FLAG, 0 $ + 3 .253 SOT1 COM PI STATUS, 0
MOVLW
MOVWF
BTFSS
GOTO
MOVLW
MOVWF
CALL
BCF
Порівняти з установкою.
Вимірювати температуру в 1 ІНДИКАЦІЯ ЧЕРЕЗ 68 МС.
DECFS2
GOTO
MOVLW
MOVWF
CALL
GOTO
COU, 1 INIDS1 .6 COU KHOP JEKI
RRF LSB, 1 Ділимо ТЕМПЕРАТУРУ НА 2.
BTFSS STATUS, 0 ЯКЩО МОЛОДШИЙ РОЗРЯД - 1 ",
GOTO $ + 4
MOVLW .5 ТО ДЕСЯТИЙ
MOVWF 4DSTI РІВНІ 5.
GOTO $ +2
CLRF DST1 АБО - 0.
MOVFW 'LSB перекодіруя Поточне значення
MCJVWF TEMP З 2-ГО В 2_10-Е.
CALL '. BIDE. ТІЛЬКИ ДО 99!
MOVWF DES1 Запишемо в ДЕСЯТКИ.
MOVFW TEMP ЗАЛИШОК>
MOVWF EDI1 В ОДІНІЦІ.
GOTO INIDS2 вимірювати температуру в 2.
18. КОМУТАТОР.
POSLA
ПЕРЕВІРИТИ КНОПКИ .. НА індикації.
19. ПОРІВНЯННЯ З ВСТАНОВЛЕННЯМ 1
СОМР1
ЯКЩО ЗНАК ПЛЮС,
251 SOTY1, 0 STATUS, 2 COM IN SOT1 SOTY1, 0 STATUS, 0 COPM TYR1 LSB, 0
COP
PORTA, YPR1
MOVLW
SUBWF
BTFSS
GOTO
MOVFW
SUBWF
BTFSS
GOTO
MOVFW
SUBWF
SKPNC GOTO BSF RETURN
BCF RETURN
ТО пропускати. ІНАКШЕ ЙДЕМО НА МІНУС. ЯКЩО ТЕМПЕРАТУРА мінусова, а УСТАНОВКА плюсовою,
СОРPORTA, YPR1
ТО ВКЛЮЧАЄМ ВИХІД. ПОРІВНЯТИ виміру Значення і встановлення. ЯКЩО БІЛЬШЕ АБО ОДНО, ТО ЙДЕМО ВИМИКАЙТЕ ВИХІД. Або включити його.
ВИМКНУТИ ВИХІД.
сом ™
SOTY1
SOTI, O
STATUS, 0 COP TYR1 LSB, 0
COPM PORTA, YPR1
MOVFW SUBWF BTFSS •. GOTO MOVFW SUBWF SKPNC GOTO BCF
ЯКЩО ТЕМПЕРАТУРА Плюсова,; А УСТАНОВКА мінусової,
ТО ВІМІКАЄМО ВИХІД.
ЯКЩО БІЛЬШЕ АБО ОДНО,; ТО ВКЛЮЧАЄМ ВИХІД. ; ВІМІКАЄМО ВЦХОД.
RETURN
СОРМ
BSF PORTA, YPR1; ВКЛЮЧАЄМ ВИХІД.
RETURN
20. ПЕРЕВІРКА КНОПОК.
KHOP
BTFSC FLAG, 3; ЯКЩО РАНІШЕ була натиснута кнопка,
CALL Статут; ТО ЙДЕМО НА УСТАНОВКУ розряд.
BTFSS PORTB, УСТ; ЯКЩО кнопка натиснута,
BSF FLAG, 3. • поставили прапор.
BTFSC FLAG, 5; ЯКЩО РАНІШЕ була натиснута кнопка,
CALL КУРСУ; ТО ЙДЕМО НА УСТАНОВКУ курсору.
BTFSS. PORTS, PAZ; ЯКЩО кнопка натиснута,
BSF FLAG, S; поставили прапор.
BTFSS PORTA, PEJ; ЯКЩО кнопка натиснута,
BSF FLAG, 4; поставили прапор.
BTFSS FLAG, 4; ЯКЩО КНОПКА не була натиснута,
GOTO VUBOR; ТО ЙДЕМО НА ВИБІР РЕЖИМУ ІНДИКАЦІЇ.
BTFSS PORTA, PEJ; ЯКЩО кнопка натиснута,
GOTO VUBOR; ТО ЙДЕМО НА ВИБІР РЕЖИМУ ІНДИКАЦІЇ.
BCF FLAG, 4; СКІДАННЯІМ ПРАПОР РЕЖИМУ.
INCF REID, 1. • ЗМІНА РЕЖИМУ ІНДИКАЦІЇ.
MOVLW .5; 5 РЕЖИМУ ІНДИКАЦІЇ.
SUBWF REID, 0; ЯКЩО БІЛЬШЕ,
BTFSS STATUS, 2. ; ТО ПІДЕМО НА Скиданов.
GOTO VUBOR; НА ЗАПИС У РЕГІСТРИ ІНДИКАЦІЇ.
CLRF REID; Скиданов РЕЖИМУ.
BCF • FLAG1, 0; Скиданов УСТАНОВКИ.
GOTO VUBOR; НА ВИБІР РЕЖИМУ ІНДИКАЦІЇ.
21. Установка курсора (ВИБІР РОЗРЯДУ УСТАНОВКИ).
КУРСУ
УСТАНОВКА МОЖЛИВА, ЯКЩО ІНДИКАЦІЯ УСТАНОВКИ. При натисканні кнопки УСТАНОВКА НЕ ЗМІНЮЄТЬСЯ. Продублюємо СТАН ПРАПОРА.
BTFSS
RETURN
BTFSS
RETURN
BTFSS
RETURN
BCF
INCF
MOVLW
SUBWF
SKPC
RETURN
CLRF
RETURN
FLAG1, 0
PORTB, PAZ
FLAG, 5 -.
FLAG, S КУРС, 1 .4
КУРС, про КУРС
СКІДАННЯІМ ЙОГО.
Додати одиницю В КУРСОР. НЕ БІЛЬШЕ 4.
ІНАКШЕ обнулив КУРСОР.
22. УСТАНОВКА.
УСО
BTFSS FLAG1, .6
GOTO УС02 '
ЯКЩО ЙДЕ УСТАНОВКА 2,; то встановлять 2 ТЕМПЕРАТУРУ.
MOVLW 251 ЯКЩО БУЛО
SUBWF SOTY1, 0 ЗНАК ПЛЮС,
BTFSS STATUS, 2
GOTO? + 4
MOVLW .253 ТО встановити знак МІНУС.
MOVWF SOTY1
RETURN • ПОВЕРНЕМОСЯ.
MOVLW .251 ВСТАНОВИВ
MOVWF SOTY1 ЗНАК ПЛЮС.
RETURN ПОВЕРНЕМОСЯ.
MOVLW .251 ЯКЩО БУЛО
SUBWF SOTY2, 0 ЗНАК ПЛЮС,
BTFSS STATUS, 2
MOVLW .253 ТО встановити знак МІНУС.
MOVWF SOTY2
RETURN ПОВЕРНЕМОСЯ.
MOVLW. .251 ВСТАНОВИВ
MOVWF SOTY2 ЗНАК ПЛЮС.
RETURN ПОВЕРНЕМОСЯ.
BTFSS FLAG1, 6 ЯКЩО ЙДЕ УСТАНОВКА 2,
GOTO YC12 то встановлять 2 ТЕМПЕРАТУРУ.
INCF DESY1, 1 збільшити СКІДАННЯ1.
MOVLW .13 НЕ БІЛЬШЕ 12.
SUBWF DESY1, 0
SKPNC
CLRF DESYl ЯКЩО БІЛЬШЕ, ТО обнулив.
GOTO PERY1 НА ПЕРЕРАХУНОК ДВОИЧНОГО ЧИСЛА
INCF DESY2, 1 збільшити СКІДАННЯ2.
MOVLW .13 НЕ БІЛЬШЕ 12.
SUBWF DESY2, 0 /
SKPNC
CLRF DESY2 ЯКЩО БІЛЬШЕ, ТО обнулив.
GOTO PERY2 НА ПЕРЕРАХУНОК ДВОИЧНОГО ЧИСЛА
BTFSS FLAG1, 6 ЯКЩО ЙДЕ УСТАНОВКА 2,
GOTO YC22 то встановлять 2 ТЕМПЕРАТУРУ.
INCF EDIY1, 1 збільшити ОДІНІЦІ.
MOVLW .10 НЕ БІЛЬШЕ 9.
SUBWF EDIY1, 0
SKPNC ЯКЩО БІЛЬШЕ АБО ОДНО 10,
CLRF EDI Yl ТО обнулив.
GOTO PERY1 НА ПЕРЕРАХУНОК ДВОИЧНОГО ЧИСЛА
INCF EDIY2, 1 Збільшити ОДІНІЦІ.
MOVLW .10; НЕ БІЛЬШЕ 9.
SUBWF EDIY2, 0
SKPNC; ЯКЩО БІЛЬШЕ АБО ОДНО 10,
CLRF EDIY2; ТО обнулив.
YC12
YC2
YC21
YC22
НА ПЕРЕРАХУНОК ДВОИЧНОГО ЧИСЛА 2,
ЯКЩО ЙДЕ УСТАНОВКА 2,; то встановлять 2 ТЕМПЕРАТУРУ.
ЯКЩО БУЛО
YC42
ТО обнулив. ПОВЕРНЕМОСЯ. Встановив 5.
НА ПЕРЕРАХУНОК ДВОИЧНОГО ЧИСЛА 1. ЯКЩО БУЛО
PERY1
ТО обнулив. ПОВЕРНЕМОСЯ. Встановив 5.
НА ПЕРЕРАХУНОК ДВОИЧНОГО ЧИСЛА 2.
Перекодіруя у двійковий код ДЕСЯТКИ. ДОДАСТЬ ОДІНІЦІ І ОТРИМАЄМО двійкове число. ДОДАМО Десятов.
PERY2 ЧИСЛО I ДЛЯ ПОРІВНЯННЯ.
Перекодіруя у двійковий код ДЕСЯТКИ. ДОДАСТЬ ОДІНІЦІ І ОТРИМАЄМО двійкове число. ДОДАМО Десятов.
GOTO
BTFSS GOTO
MOVLW
SUBWF
BTFSS
GOTO
CLRF
RETURN
MOVLW
MOVWF
GOTO
MOVLW
SUBWF
BTFSS
GOTO
CLRF
GOTO
MOVLW
MOVWF
GOTO
MOVFW
CALL
ADDWF
MOVWF
MOVLW
SUBWF
RLF
GOTO
MOVFW
CALL
ADDWF
MOVWF
MOVLW
SUBWF
RLF
GOTO
PERY2
FLAG1, 6 YC42
DSTY1, 0 STATUS, 2 $ + 3 DSTY1
DSTY1 PERY1
D57Y2, 0 STATUS, 2 $ + 3 DSTY2 PERY2 .5
DSTY2 PERY2
DESY1 DEBIN EDIYl, 0 TYR1. S
DSTY1, 0 TYR1, 1 ZAPIS
DESY2 DEBIN EDIY2, 0 TYR2 .5 •
DSTY2, 0 TYR2, 1 ZAPIS
YC4
YC41
ЧИСЛО 2 ДЛЯ ПОРІВНЯННЯ.
23. Перезапис В РЕГІСТРИ ІНДИКАЦІЇ.
IND12
Скиданов УСТАНОВКИ. • ІНДИКАЦІЯ ПЕРШОГО РЯДУ. ДРУГОГО РЯДУ.
ЗНАК 1.
СКІДАННЯ1.
BCF
CALL
GOTO
MOVFW MOVWF MOVFW MOVWF MOVFW
FLAG1, 0
IND1
IND2
SOT1 Rl DES1 R2 • EDI1
IND1 ОДІНІЦІ 1. –
MOVWF R3
MOVLW .252
MOVWF R4
MOVFW DST1
MOVWF. R5
MOVLW .14
MOVWF R6
MOVLW 1 MOVWF R7
MOVLW 240
MOVWF R8
RETURN
MOVFW
MOVWF
MOVFW
MOVWF
MOVFW
MOVWF
MOVLW
MOVWF
MOVFW
MOVWF
MOVLW
MOVWF
MOVLW
MOVWF MOVLW
MOVWF
RETURN
CALL
MOVFW MOVWF MOVFW MOVWF MOVFW MOVWF MOVLW MOVWF MOVFW MOVWF MOVLW MOVWF MOVLW MOVWF MOVLW MOVWF RETURN
IND2 SOT2 R9 DES2 RIO EDI 2 Rll .252 R12 DST2 R13 .14 R14 .2 R15. 240 R16
IND1Y
IND1 SOTY1 R9
DESY1
RIO
EDIY1
Rll
R12
DSTY1
R13
14
R14
73
R15
240
R16
IDY1
IND2Y
SOT2 R1
DES2 R2
MOVFW MOVWF MOVFW MOVWF
КОМА 1. ДЕСЯТИЙ 1. >. 1.
Нехай. ЗНАК 2. СКІДАННЯ2. ОДІНІЦІ 2. КОМА. ДЕСЯТИЙ 2. >. 2.
Нехай.
НА індикації. .ПЕРШИЙ РЯД. ЗНАК ДЛЯ 1 УСТАНОВКИ ДЕСЯТКИ. ОДІНІЦІ.КОМА. Десятов. >. У.
Нехай.
НА індикації. / ЗНАК 2. ; СКІДАННЯ2.
MOVFW EDI2
MOVWF R3
MOVLW .252
MOVWF R4
MOVFW DST2
MOVWF R5
MOVLW 14
MOVWF R6-
MOVLW 2
MOVWF R7
MOVLW 240
MOVWF R8
MOVFW MOVWF MOVFW MOVWF MOVFW MOVWF MOVLW MOVWF MOVFW MOVWF MOVLW MOVWF MOVLW MOVWF MOVLW MOVWF RETURN
FLAG1, 0 FLAG1, 6. 121 R1, R2 .19 .36 R3 .254 R4. 1 R5 .240 R6 R7 R8 IDY1
IDY2
SOTY2 R9
DESY2
RIO.
EDIY2
Rll
252
R12
DSTY2
R13
14
R14
73
R15
240
R16
INDY1
BSF BSF MOVLW MOVWF MOVLW MOVWF MOVLW MOVWF MOVLW MOVWF MOVLW MOVWF MOVLW MOVWF MOVWF MOVWF и GOTO
INDY2
BSF
BCF
MOVLW
MOVWF
MOVLW
MOVWF
FLAG1, 0 FLAG1, 6 .121 Rl. І 9 R2
ОДІНІЦІ 2.
КОМА. ; ДЕСЯТИЙ 2. ,> ; 2.
І нехай.
ЗНАК ДЛЯ 2 УСТАНОВКИ. ; СКІДАННЯ2. ; ОДІНІЦІ 2. • '; КОМА. ; ДЕСЯТИЙ 2. ,>.
І нехай.
НА індикації.
УСТАНОВКА. ; ПЕРШИЙ ДАТЧИК. ; У.
ТОЧКА.1.
І нехай.
УСТАНОВКА. ; СКІДАННЯІМ ПРАПОР. ; У.
С. MOVLW .36 T.
MOVWF R3
MOVLW .254 ТОЧКА.
MOVWF R4
MOVLW .2. * 2.
MOVWF R5
MOVLW .240 Нехай.
MOVWF R6
MOVWF R7
MOVWF R8
GOTO IDY2
24. Ініціалізація DS 2.
INIDS2
ДЛЯ ДОМА.
Посилаючи імпульси обнулення. ПРОПУСК НАДСИЛАЙТЕ НОМЕРА ПРО. Пішли.
ВПОВНОВАЖУЮ ПЕРЕТВОРЕННЯ. Пішли.
FLAG1, 3
HYL2 "
OxCC
POSIL2
0x44
POSIL2
PRIEM2
WUX2 .125 -1
STATUS, 2 $ -2 WX02 .125 -1
STATUS, 2 S-2
BSF
CALL
MOVLW
CALL
MOVLW
CALL GOTO
CALL
MOVLW
ADDLW BTFSS
GOTO
CALL
MOVLW
ADDLW
BTFSS
GOTO
RETURN
HYL2
НА ПРИЙОМ ТЕМПЕРАТУРИ
ВИХІД НУЛЯ. *. НУЛЬОВИЙ ІМПУЛЬС 500 МКС.
ВИХІД ОДІНІЦІ. ІМПУЛЬС - 500 МКС.
25. ЗМІНА ВХОДУ НА ПРИЙОМ / ПЕРЕДАЧУ.
WUX2
BCF BSF BCF BCF RETURN
BSF BSF BCF RETURN
WX02 PORTA, DS2 STATUS, 5 TRISA ~ 80H, DS2 STATUS, 5
STATUS, 5 TRISA "80H, DS2 STATUS, 5 ІМПУЛЬС ЗАПИТУ. ПЕРЕХОДИМО В БАНК 1. НА ВИХІД.
ПЕРЕХОДИМО В БАНК 0,
ПЕРЕХОДИМО В БАНК 1.
НА вхід. I
ПЕРЕХОДИМО В БАНК 0.
26. ПРИЙОМ 9 БІТ З DS ДЛЯ ДОМА.
PRIEM2 Посилаючи імпульси обнулення.
ПРОПУСК НОМЕРА.
HYL2 OXCC POSIL2
CALL
MOVLW
CALL
Посил.
MOVLW OxBE
CALL POSIL2
CALL PRIE2
BSF FLAG, 1
CALL PRI2
BCF. FLAG, 1
BTFSS TEMP, DS2
BCF FLAG, 0
BTFSC TEMP, DS2
BSF FLAG, 0
BTFSS FLAG, 0
GOTO CXET2
COMF LSB, 0
ADDLW. 1
MOVWF LSB
GOTO CXET2
MOVLW .8
MOVWF COUN
CLRF LSB
CALL WUX2
CALL WX02.
MOVLW .2
CALL X4
MOVFW PORTA
MOVWF TEMP
BTFSC FLAG, 1
RETURN BTFSS TEMP, DS2
BCF STATUS, 0
BTFSC TEMP, DS2
BSF STATUS, 0
RRF LSB, 1
MOVLW. IS
CALL X4
DECFSZ COUN, 1
GOTO PRI2
Посил КОМАНДИ В DS
MOVWF TEMP
MOVLW .8 '
MOVWF COUN
RRF TEMP, 1
BTFSS STATUS, 0
GOTO W02
GOTO W12
DECFSZ COUN, 1
GOTO POSI2
RETURN
PRIE2
PRI2
P0SIL2
POSI2
POS2
ЧИТАННЯ ТЕМПЕРАТУРИ З блокнота. ; Посил. ; НА ПРИЙОМ. . • Встановити 9 БІТ.І приймемо його. .-СКІДАННЯІМ ПРАПОР. ; ЯКЩО прийнятий біт - О,! ТО встановив прапор ПЛЮС. В
Або мінус.
Пропустивши, ЯКЩО ЗНАК МІНУС. ; Порахуємо. ; Інвертуємо. ; Додати 1
Отримавши негативну ДАНІ. ; НА ПЕРЕРАХУНОК.
Запишіть число БІТ. ; Обнулив Регистр ПРИЙОМУ.
Почуєте короткий НУЛЬ І ЧЕКАЄМО ВІДГУК
НА ПРИЙОМ.
ЗАТРИМКА
8 мкс.
Перепишемо
ЗНАЧЕННЯ ПОРТУ.ЯКЩО ЦЕ 9 БІТ,
ПОВЕРНЕМОСЯ.
ВСТАНОВИВ БІТ ПРИЙОМУ В НУЛЬ.
АБО ОДИНИЦЮ. Запишемо в Регистр. ПАУЗА 60 мкс.
ЗМЕНШИТИ ЛІЧИЛЬНИК. Повторити прийом. ПОВЕРНЕМОСЯ.
Перепишемо ВО ТИМЧАСОВЕ. Запишіть число БІТ.
Виштовхни МОЛОДШИЙ БІТ. ; ЯКЩО ВІН НУЛЬОВИЙ,ПІШЛИ ІМПУЛЬС НУЛЯ. АБО ОДІНІЦІ.
Зменшує лічильник. ; НА НАСТУПНИЙ БІТ. ; ПОВЕРНЕННЯ.
RETURN
C0P2
BCF RETURN C0MIN2
MOVFW SUBWF BTFSS GOTO MOVFW SUBWF SKPNC GOTO BCF RETURN
COPM2
BSF
PORTA, YPR2
; ВИМКНУТИ ВИХІД.
SOTY2 SOT2, 0 STATUS, 0 COP2 TYR2 LSB, 0
COPM2 PORTA, YPR2
ЯКЩО ТЕМПЕРАТУРА Плюсова, А УСТАНОВКА мінусової,
ТО ВІМІКАЄМО ВИХІД.
ЯКЩО БІЛЬШЕ АБО ОДНО, ТО ВКЛЮЧАЄМ ВИХІД. ВІМІКАЄМО ВИХІД.
PORTA, YPR2
ВКЛЮЧАЄМ ВИХІД.
RETURN
30. Перекодування З 2-ГО В 2 10
Перекодування ДЕСЯТКІВ VОБНУЛЯЕМ ЛІЧИЛЬНИК. ; Віднімемо 10.
ЯКЩО Є ПЕРЕХІД ЧЕРЕЗ НУЛЬ,; ТО ЗАВЕРШУЄ перекодування. ; ІНАКШЕ Перепишемо НОВЕ ЗНАЧЕННЯ ВО
Збільшити лічильник. ; ПОВТОР віднімання.
BIDE
CLRF, ADDLW BTFSS. GOTO MOVWF ТИМЧАСОВЕ. INCF 'GOTO MOVFW
COUN - .10
STATUS, 0
S +4
TEMP COUN, 1
COUN
Перепишемо В РОБОЧИЙ Регистр. RETURN
ЗНАЧЕННЯ ЛІЧИЛЬНИКА (ОДНО числі десятки); ПОВЕРНЕМОСЯ.
31. ВІБІРКА ІЗ ПАМ'ЯТІ.
АКТ
CLRF
CALL
MOVWF
CALL
MOVWF
CALL
MOVWF
CALL
MOVWF
CALL
MOVWF
CALL
MOVWF
CALL
MOVWF
CALL
MOVWF
CALL
EEADR AKTETE
SOTY1 AKTETE
DESYl AKTETE
EDI Yl AKTETE DSTY1 AKTETE TYR1 AKTETE
SOTY2 AKTETE
DESY2 AKTETE 'EDIY2 AKTETE
Починається з нульового АДРЕСИ. ВІБІРКА ІЗ ПАМ'ЯТІ. ЗАПИС У Регистр.ВІБІРКА ІЗ ПАМ'ЯТІ. ЗАПИС У Регистр. ВІБІРКА ІЗ ПАМ'ЯТІ. ЗАПИС У Регистр.ВІБІРКА ІЗ ПАМ'ЯТІ. ЗАПИС У Регистр. ВІБІРКА ІЗ ПАМ'ЯТІ. ЗАПИС У Регистр.ВИБІРКА ІЗ ПАМ'ЯТІ. ЗАПИС У Регистр. ВІБІРКА ІЗ ПАМ'ЯТІ. ЗАПИС У Регистр.ВИБІРКА ІЗ
ПАМ'ЯТІ. ЗАПИС У Регистр. . ВІБІРКА ІЗ ПАМ'ЯТІ.
MOVWF CALL MOVWF RETURN AKTETE
BSF
BCF
BSF
BTFSC
GOTO
BCF
MOVLW
SUBWF
BTFSC
CLRF
INCF
MOVFW
RETURN
DSTY2
AKTETE
TYR2
STATUS, 5
EECON1 "80H, 7 EECON1A80H, RD EECON1A80H, RD $ -1 STATUS, 5 .255
EEDATA, 0 STATUS, 2
EEDATA EEADR, 1 EEDATA; ЗАПИС У Регистр. ; ВІБІРКА ІЗ ПАМ'ЯТІ. . • ЗАПИС У Регистр.
БАНК 1.
ВИБІР ПАМ'ЯТІ ДАНИХ. ЧИТАННЯ.
ЧЕКАЄМО ЗАКІНЧЕННЯ ЧИТАННЯ. БАНК 0.
ЯКЩО ПАМ'ЯТЬ не заповнений,
ЗАПИШІТЬ -0. ♦ 1 В АДРЕСА. Перепишіть дані.
32. ЗАПИС У ПАМ'ЯТЬ.
ZAPIS
CLRF MOVLW MOVWF ZAPISE
MOVFW MOVWF BSF BCF • BSF MOVLW MOVWF MOVLW MOVWF BSF BTFSC GOTO BCF BCF INCF MOVFW SUBLW 3TFSC RETURN INCF GOTO
EEADR SOTY1 FSR
INDF EEDATA STATUS, 5
EECON1л80Н, 7 EECON1A80H, WREN 55H
EECON2A80H OAAH
EECON1A 8 0 H, WREN STATUS, 5 EEADR, 1 EEADR .11
STATUS, 2
FSR, 1 ZAPISE
НУЛЬОВИЙ АДРЕСА.
АДРЕСА ПЕРШОЇ ЗАПИСИ В ЕЕОАТА. Завантажує значення
РЕГІСТРА. Записую. БАНК 1.
ВИБИРАЄМО ПАМ'ЯТЬ ДАНИХ. Дозвіл ЗАПИСИ.
ОБОВ'ЯЗКОВА ПОСЛІДОВНІСТЬ
РАЗРЕШАЕМ'ЗАПІСЬ ВО ФЛЕШ ПЗУ.
ПОКИ НЕ БУДЕ закінчити запис
Ходимо по колу.
ЗАБОРОНА ЗАПІСІ.2
БАНК 0.
+1 В АДРЕСА.
ЯКЩО ВЖЕ І,
ТО ПОВЕРНЕМОСЯ.
+1 В ЛІЧИЛЬНИК АДРЕСИ.
ПО КОЛУ ДО КІНЦЯ ЗАПИСИ.