Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
черновик.doc
Скачиваний:
4
Добавлен:
14.09.2019
Размер:
1.16 Mб
Скачать

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 розряда.

  1. -> КНОПКИ "УСТАНОВКА".

  2. 4 -> КНОПКИ "РЕЖИМ".

  3. 5 -> КНОПКИ "розряд".

  4. 6 -> чергування курсору І ІНДІКАЦІЇ. FLAG1 EQU 4 9Н

  5. »0 -> УСТАНОВКИ -1.

  6. в 6 -> УСТАНОВКИ 1 термометр.

  7. вDS2 EQU 0; ВИХІД ПРО, 2.

  8. DS1 EQU 4; ВИХІД ПРО, 1

  9. YPR1 EQU 1; ВИХІД

  10. YPR2 EQU 2; ВИХІД У

  11. УПРАВЛІННЯ RS EQU 2; КОМАНДА УПРАВЛІННЯ.

  12. Е EQU 3 СІНХРОНІЗАЦІЯ.

  13. УСТ EQU 0; УСТАНОВКА.

  14. PAZ EOU 1; РОЗРЯД.

  15. PEJ EQU 3; РЕЖИМ.

  16. 1. ЗАПУСК

  17. ORG 0

  18. GOTO INIT

  19. NOPNOPNOPNOP

  20. INIT 3. Ініціалізації.

  21. BSF STATUS, RT? 0 ПЕРЕХОДИМО У БАНК 1.

  22. MOVLW B'00000000 '

  23. MOVWF OPTION REG "80H ПОДТЯГІВАКЩІЕ РЕЗИСТОРИ ВКЛЮЧЕНІ

  24. MOVLW B'00000000 'ПРЕРІВАНЬ ЗАБОРОНЕНІ

  25. MOVWF INTCON J –

  26. MOVLW B'00011001 '0,3,4 - НА ВХІД.

  27. MOVWF TRISAA80H

  28. MOVLW B'00000011 0,1 - НА ВХІД

  29. MOVWF TRISBA80H

  30. BCF STATUS, RP0. • ПЕРЕХОДИМО В БАНК 0.

  31. CLRF TMR0; ВСЕ ОБНУЛЯЄМ І ВСТАНОВЛЮЄМО

  32. CLRF FLAG W

  33. CLRF FLAG1

  34. CLRF PORTA

  35. CLRF PORTB

  36. CLRF RE ID

  37. CLRF KYPC

  38. MOVLW .6 ІНДІКАЦІЯ ЧЕРЕЗ 68 мс.

  39. MOVWF COU

  40. CALL АКТ виборки Із ПАМЯТІ.

  41. 3. ІНІЦІАЛІЗАЦІЯ ЖКІ.

  42. JEKI

  43. JEKOMI

  44. STROB

  45. 3

  46. JEKOMI STROB

  47. MOVLW

  48. CALL

  49. CALL

  50. MOVLW

  51. CALL

  52. CALL

  53. Скиданов.

  54. Передачі команд.

  55. ПРОСТРОБІРУЄМ.

  56. СІДАННЯ.

  57. ПРОСТРОБІРУЄМ.

  58. BTFSS

  59. RETURN

  60. BCF

  61. MOVFWADDWF

  62. PORTA, PEJ

  63. FLAG, 4

  64. REID PC, 1

  65. MOVLW 3

  66. CALL JEKOMI

  67. CALL STROB ПРОСТРОБІРУЄМ.

  68. MOVLW 10 ЗАБОРОНА ЗСУВУ ЗОБРАЖЕННЯ

  69. CALL JEKOMI

  70. CALL STROB ПРОСТРОБІРУЄМ.

  71. MOVLW 06 инкрементирования ПОЗІЦІЇ курсору.

  72. CALL JEKOMI

  73. CALL STROB ПРОСТРОБІРУЄМ.

  74. MOVLW 01 Стирання Дисплей.

  75. CALL JEKOMI

  76. CALL STROB ПРОСТРОБІРУЄМ.

  77. MOVLW 28 ФОРМАТ ОБМІНУ: 4 РАЗР.5x7

  78. 2 рядки.

  79. CALL JEKOMI

  80. CALL STROB ПРОСТРОБІРУЄМ.

  81. MOVLW 28

  82. CALL JEKOMI

  83. CALL STROB-ПРОСТРОБІРУЄМ.

  84. MOVLW ОС ВКЛЮЧЕННЯ Дисплей,

  85. Заборона курсору.

  86. CALL JEKOMI

  87. CALL STROB ПРОСТРОБІРУЄМ.

  88. GOTO JEKI НА ІНДІКАЦІЮ.

  89. MOVLW .25

  90. MOVWF ZAN

  91. MOVLW .255

  92. ADDLW -1

  93. BTFSS STATUS, 2

  94. GOTO $ -2

  95. DECFSZ ZAN, 1

  96. GOTO PAUS •

  97. "RETURN TX

  98. MOVWF TEMP Перепишемо ЗНАЧЕННЯ

  99. У ТИМЧАСОВЕ Регистр

  100. ANDLW B'llUOOOO 'ЗАМАСКУЄМО МОЛОДШІ

  101. Розряди ПІД НУЛЬ.

  102. MOVWF PPRTB Інші Розряди

  103. Перепишемо В ПОРТ "В".

  104. CALL STROB ПРОСТРОБІРУЄМ.

  105. CALL PAUSA ПАУЗА.

  106. MOVFW TEMP

  107. SWAPF TEMP, W ПОМІНЯЄМО МІСЦЯМІ

  108.  ПІВБАЙТІ

  109. ANDLW B'111100001 ЗАМАСКІРУЄМ СТАРШІ

  110. РОЗРЯДУ ПІД НУЛЬ.

  111. MOVWF PORTB ПЕРЕПІШЕМО В ПОРТ "В".

  112. CALL STROB ПРОСТРОБІРУЄМ.

  113. CALL PAUSA ПАУЗА.

  114. RETURN

  115. PAUSA

  116. PAUS

  117. JEKOMI

  118. ЯКЩО КНОПКА НАТІСНУТА, ТО ВИБОРИ НЕМАЄ.СКІДАННЯ ПРАПОР РЕЖІМУ.ПО НОМЕРУ ВІБІРАЄМО ІНДІКАЦІЮ.

  119. GOTO IND12. • ТЕМПЕРАТУРА 1-2.

GOTO XND1Y; 1-УСТАНОВКА.

  1. GOTO IND2Y; 2-УСТАНОВКА.

  2. GOTO INOY1. • УСТАНОВКА 1.

  3. GOTO INDY2; УСТАНОВКА 2.

  4. ВИБІР РОЗРЯДУ УСТАНОВКИ.

  5. BTFSS PORTB, YCT.-ЯКЩО кнопка натиснута,

  6. RETURN; ТО ВІБІРА НІ.

  7. BTFSS FLAG1, 0. • ЯКЩО НІ УСТАНОВКИ,

  8. RETURN; ТО КНОПКА НЕ ПРАЦЮЄ.

  9. BCF FLAG, 3. • Скиданов ПРАПОРА РЕЖИМУ.

  10. MOVFW КУРС; по курсору

  11. ADDWF PC.l; ЗНАХОДИМО РОЗРЯД.

  12. GOTO YCO.-ЗНАК 1

  13. GOTO. YC2. • ОДІНІЦІ 1.

  14. GOTO YC4. • Десяткова 1.

  15. 6. ТАБЛИЦІ ПЕРЕКЛАДУ ДЕСЯТКІВ В двійкове число. 

  16. СЕВ IN

  17. ADDWF PC, 1

  18. RETLW .0

  19. RETLW .10

  20. RETLW .20

  21. RETLW .30

  22. RETLW .40

  23. RETLW .50

  24. RETLW .60

  25. RETLW .70

  26. RETLW .80

  27. RETLW .90

  28. RETLW .100

  29. RETLW .110

  30. RETLW .120

  31. Нормування СТРОБІРУЩЕГОІМПУЛЬСУ

  32. YCTA

  33. STROB 

  34. ВКЛЮЧАЄМ СТРОБ-ІМПУЛЬС

  35. PORTS, E PORTB, E

  36. BSF NOP BCF. RETURN

  37. ВІМІКАЄМО СТРОБ. ПОВЕРНЕМОСЯ.

  38. 8. Передачі команд В ЖКИ. JEKOM

  39. MOVWF

  40. ANDLW

  41. MOVWF

  42. CALL

  43. CALL

  44. TEMP

  45. B'llllOOOO 'PORTB STROB PUS

  46. ПЕРЕПІШЕМО ЗНАЧЕННЯ У ТИМЧАСОВЕ Регистр ЗАМАСКУЄМ МОЛОДШІ РОЗРЯДУ ПІД НУЛЬ ОСТАННІ РОЗРЯДУ перепишемо у ПОРТ. "В" ПРОСТРОБІРУЄМ; ПАУЗА.

  47. MOVFW SWAPF ANDLW MOVWF CALL

  48. MOVLW

  49. ADDLW

  50. BTFSS

  51. GOTO

  52. RETURN

  53. MOVLW

  54. ADDLW BTFSS GOTO RETURN TEMP TEMP, W B'11110000 'PORTB STROB

  55. .255 -1 1 STATUS, 2 S-2

  56. PUS

  57. PUSO

  58. ; ЗАМАСКУЄМО СТАРШІ Розряди ПІД НУЛЬ; ПЕРЕПІШЕМО В ПОРТ "В". ; ПРОСТРОБІРУЄМ.

  59. STATUS, 2 S-2

  60. 1 мс.

  61. 40 мкс.

  62. 9. ЗАПИС ДАНИХ В ЖКИ.

  63. Перепишемо ЗНАЧЕННЯ У ТИМЧАСОВЕ Регистр ЗАМАСКУЄМО МОЛОДШІ Розряди ПІД НУЛЬ ПЕРЕКЛАД В КОД ASCII, ТІЛЬКІ ДЛЯ ЦИФР ОСТАННІ Розряди перепишемо у ПОРТ "В" ВСТАНОВИВ R / S НА Дозвіл ЗАПИСИ

  64. ПРОСТРОБІРУЄМ.

  65. ПАУЗА ДЛЯ ЗВІЛЬНЕННЯ ЖКІ ВІД ЦИКЛУ

  66. ПОМІНЯЄМ МІСЦЯМІ ПІВБАЙТІ ЗАМАСКУЄМО СТАРШІ Розряди ПІД НУЛЬ ОСТАННІ Розряди перепишемо у ПОРТ "В"

  67. ВСТАНОВИВ R / S НА Дозвіл ЗАПИСИ• •

  68. JEDAT

  69. MOVWF ANDLW ADDLW MOVWF BSF ДАНИХ.

  70. CALL CALL ЗАПИСИ.

  71. MOVFW SWAPF ANDLW MOVWF BSF ДАНИХ.

  72. CALL GOTO

  73. TEMP

  74. B'11110000 '30

  75. PORTB PORTB, RS

  76. STROB PUSO

  77. TEMP TEMP, 0 B'11110000 'PORTB PORTB, RS

  78. STROB PUSO

  79. ; ПРОСТРОБІРУЄМ. ; ПАУЗА.

  80.   10. ВИСНОВОК ЗНАЧЕНЬ РЕГІСТРОВ НА індикації.

  81. JEKI

  82. ЯКЩО НІ УСТАНОВКИ, то пропускаємо ІНДИКАЦІЯ курсору. ЯКЩО НЕ БУЛО ІНДИКАЦІЇ курсору, ТО ПРОІНДІЦІРУЕМ.

  83. ПОВЕРНЕННЯ курсору в початковий стан. ЗАПИШІТЬ КОМАНДУ.

  84. КУРСОР НА 0 ПОЗИЦІЮ першого рядка. ЗАПИШІТЬ КОМАНДУ. Запишіть число знакомісць.

  85. BTFSS GOTO BTFSS GOTO MOVLW CALL MOVLW CALL MOVLW MOVWF MOVLW MOVWF MOVFW

  86. FLAG1, 0 $ +3 FLAG, 6 JEKYC

  87. 02

  88. JEKOM. B'10000000 'JEKOM .8

  89. COUN

  90. FSR INDF

  91. АДРЕСА ПЕРШОГО РЕГІСТРА ІНДИКАЦІЇ. ПО непрямої адресації. Індіціруя ЗНАЧЕННЯ. ВПОВНОВАЖУЮ миготіння курсору.

  92. ЗАПИШІТЬ КОМАНДУ.

  93. НА ВИБІР миготливим розряд.

  94. ЗАПИШІТЬ КОМАНДУ.

  95. Наступна ІНДИКАЦІЯ - РОЗРЯДІВ.

  96. НА Ініціалізація ПРО.

  97. MOVLW

  98. CALL

  99. CALL

  100. CALL

  101. BSF

  102. GOTO

  103. MOVFW ADDWF RETLW RETLW RETLW RETLW

  104. .14 ​​JEKOM

  105. JEKYK JEKOM

  106. FLAG, 6 INIDS1

  107. KYPC PC, 1 OxCO OxCl 0xC2 0xC4

  108. JEKYK CALL JEDAT

  109. DECF COUN, 1 зменшує лічильник.

  110. BTFSC STATUS, 2 ЯКЩО ВЖЕ 0,

  111. GOTO S + 3 ТО ПЕРЕХОДИМО НА другого рядка.

  112. INCF FSR, 1 ІНАКШЕ ПРОІНДІЦІРУЕМ СЛЕДУЕДІЙ

  113. GOTO $ -6 Регистр.

  114. MOVLW B'llOOOOOO 'ДРУГА РЯДОК (УМОВНО 2x8). Охос

  115. CALL JEKOM ЗАПИШІТЬ КОМАНДУ.

  116. . MOVLW .8 ІНДИКАЦІЯ АНАЛОГІЧНА

  117. MOVWF COUN ІНДИКАЦІЇ першого рядка.

  118. INCF FSR, 1

  119. MOVFW INDF

  120. CALL JEDAT

  121. DECF COUN, 1

  122. BTFSS STATUS, 2

  123. GOTO $ -5

  124. BCF FLAG, 6 СЛЕДУОДАЯ ІНДИКАЦІЯ - курсору.

  125. GOTO INIDS1 НА Ініціалізація ПРО.

  126. 11. ІНДИКАЦІЯ курсору.

  127. JEKYC

  128. Регистр курсору В РОБОЧИЙ. ; ДРУГА РЯДОК (УМОВНО 2x8) Охос;; ЗНАК. ; ДЕСЯТКИ. ; ОДІНІЦІ. / Десятов.

  129. 12. Ініціалізація DS 1.

  130. INIDS1

  131. Посилаючи імпульси обнулення. ; ПРОПУСК НАДСИЛАЙТЕ НОМЕРА DS. . • ПІШЛИ.

  132. ВПОВНОВАЖУЮ ПЕРЕТВОРЕННЯ. ; П031ЛЕМ.

  133. CALL

  134. MOVLW

  135. CALL

  136. MOVLW

  137. CALL

  138. GOTO

  139. CALL _ MOVLW

  140. ADDLW

  141. BTFSS

  142. GOTO

  143. CALL

  144. MOVLW

  145. ADDLW

  146. BTFSS

  147. HYL1

  148. OxCC

  149. POSIL1

  150. 0x44

  151. POSIL1

  152. PRIEM1

  153. WUX1 .125 -1

  154. STATUS, 2 S-2 WXOl .125 -1

  155. STATUS, 2

  156. HYL1

  157. НА ПРИЙОМ ТЕМПЕРАТУРИ.

  158. ВИХІД НУЛЯ. НУЛЬОВИЙ ІМПУЛЬС • - 500 МКС.

  159. ВИХІД ОДІНІЦІ. ІМПУЛЬС - 500 мкс.

  160. GOTO RETURN

  161. 13. ЗМІНА ВХОДУ НА ПРИЙОМ / ПЕРЕДАЧУ. WUX1

  162. BCF £ SF BCF • BCF _ RETURN

  163. BSF BSF BCF RETURN

  164. WX01

  165. PORTA/DS1 STATUS, 5 TRISAA80H, DS1 STATUS, 5

  166. STATUS, 5 TRISA "80H, DS1 STATUS, 5

  167. КОРОТКИЙ ЗАПИТ. Перекладу в банк 1. НА ВИХІД.

  168. ПЕРЕХОДИМО В БАНК 0.

  169. ПЕРЕХОДИМО В БАНК 1. ; НА ВХІД.

  170. ПЕРЕХОДИМО В БАНК 0.

  171. 14. ПРИЙОМ 9 БІТ З DS 1

  172. PRIEM1

  173. Посилаючи імпульси обнулення. ; ПРОПУСК НОМЕРА. ; Посил.

  174. ЧИТАННЯ ТЕМПЕРАТУРИ З блокнота. ; Посил. ; НА ПРИЙОМ. / Встановити 9 БІТ.; І приймемо його. ; СКІДАННЯІМ ПРАПОР. . ; ЯКЩО ПРІНЯТИЙ.БІТ - 0,; ТО встановив прапор ПЛЮС.

  175. PRIE1

  176. PRI1

  177. Або мінус. . • Пропустивши, ЯКЩО МІНУС. ; Порахуємо. ; Інвертуємо. / Додати 1

  178. І ОТРИМАЄМО; НЕГАТИВНІ ДАНІ. ; НА ПЕРЕРАХУНОК.

  179. Запишіть число БІТ. ; Обнулив Регистр ПРИЙОМУ.

  180. Почуєте короткий НУЛЬ І ЧЕКАЄМО Відгуки. ; НА ПРИЙОМ. ; ЗАТРИМКА; 8 мкс. ; Перепишемо. • ЗНАЧЕННЯ ПОРТУ. ; ЯКЩО ЦЕ 9 БІТ,; ПОВЕРНЕМОСЯ.

  181. 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

  182. COUN LSB

  183. WUX1 WXOl .2 X4

  184. PORTA TEMP FLAG, 1

  185. TEMP, DS1 STATUS, 0 TEMP, DS1

  186. CALL MOVLW CALL MOVLW CALL CALL BSF CALL BCF BTFSS BCF BTFSC BSF BTFSS GOTO COMF ADDLW MOVWF GOTO

  187. MOVLW MOVWF CLRF

  188. CALL CALL MOVLW CALL MOVFW MOVWF BTFSC RETURN BTFSS BCF BTFSC ВСТАНОВИВ БІТ ПРИЙОМУ В НУЛЬ.

  189. АБО ОДИНИЦЮ. Запишемо в Регистр. ПАУЗА 60 мкс.

  190. STATUS, 0 LSB, 1 .15 X4

  191. COUN, 1 PRI1

  192. BSF RRF MOVLW CALL DECFSZ GOTO RETURN

  193. ЗМЕНШИТИ ЛІЧИЛЬНИК. Повторити прийом. ПОВЕРНЕМОСЯ.

  194. 15. ЗАТРИМКА мкс, помноженої на 4.Х4

  195. -1 STATUS, 2

  196. $ -2

  197. ADDLW BTFSS GOTO RETURN

  198. 16. Посил КОМАНДИ В DS 1.

  199. POSIL1  

  200. Перепишемо ВО ТИМЧАСОВЕ. Запишіть число БІТ.

  201. Виштовхни МОЛОДШИЙ БІТ. ЯКЩО ВІН НУЛЬОВИЙ, ПІШЛИ ІМПУЛЬС НУЛЯ. АБО ОДІНІЦІ.

  202. Зменшує лічильник. НА НАСТУПНИЙ БІТ. ПОВЕРНЕННЯ.

  203. ВСТАНОВИВ ВИХІД В НУЛЬ. Утримувати 60 мкс.

  204. НА ВХІД - 1 НА ВИХОДІ. Потім.

  205. КОРОТКИЙ НУЛЬОВИЙ ІМПУЛЬС НА ВХІД - 1 НА ВИХОДІ. Утримувати 60 мкс.

  206. MOVWF MOVLW MOVWF

  207. RRF BTFSS GOTO GOTO

  208. DECFSZ

  209. GOTO

  210. RETURN

  211. CALL MOVLW CALL CALL GOTO

  212. CALL CALL MOVLW CALL GOTO

  213. TEMP .8

  214. COUN

  215. TEMP, 1 STATUS, 0 woi

  216. Wll

  217. COUN, 1 POSIl

  218. POSH

  219. POS1

  220. W01

  221. WUX1

  222. 15

  223. X4

  224. WXOl POS1

  225. WUX1 WXOl .15 X4

  226. POS1

  227. Wll

  228. Потім.

  229. 17. РАХУНОК 1

  230. CXETl

  231. За умовчанням

  232. ЗНАК ПЛЮС.

  233. ЯКЩО 9 РОЗРЯД = 1,

  234. ТО встановити знак МІНУС.

  235. 251 SOT1 FLAG, 0 $ + 3 .253 SOT1 COM PI STATUS, 0

  236. MOVLW

  237. MOVWF

  238. BTFSS

  239. GOTO

  240. MOVLW

  241. MOVWF

  242. CALL

  243. BCF

  244. Порівняти з установкою.

  245. Вимірювати температуру в 1 ІНДИКАЦІЯ ЧЕРЕЗ 68 МС.

  246. DECFS2

  247. GOTO

  248. MOVLW

  249. MOVWF

  250. CALL

  251. GOTO

  252. COU, 1 INIDS1 .6 COU KHOP JEKI

  253. RRF LSB, 1 Ділимо ТЕМПЕРАТУРУ НА 2.

  254. BTFSS STATUS, 0 ЯКЩО МОЛОДШИЙ РОЗРЯД - 1 ",

  255. GOTO $ + 4

  256. MOVLW .5 ТО ДЕСЯТИЙ

  257. MOVWF 4DSTI РІВНІ 5.

  258. GOTO $ +2

  259. CLRF DST1 АБО - 0.

  260. MOVFW 'LSB перекодіруя Поточне значення

  261. MCJVWF TEMP З 2-ГО В 2_10-Е.

  262. CALL '. BIDE. ТІЛЬКИ ДО 99!

  263. MOVWF DES1 Запишемо в ДЕСЯТКИ.

  264. MOVFW TEMP ЗАЛИШОК>

  265. MOVWF EDI1 В ОДІНІЦІ.

  266. GOTO INIDS2 вимірювати температуру в 2.

  267. 18. КОМУТАТОР.

  268. POSLA

  269. ПЕРЕВІРИТИ КНОПКИ .. НА індикації.

  270. 19. ПОРІВНЯННЯ З ВСТАНОВЛЕННЯМ 1

  271. СОМР1

  272. ЯКЩО ЗНАК ПЛЮС,

  273. 251 SOTY1, 0 STATUS, 2 COM IN SOT1 SOTY1, 0 STATUS, 0 COPM TYR1 LSB, 0

  274. COP

  275. PORTA, YPR1

  276. MOVLW

  277. SUBWF

  278. BTFSS

  279. GOTO

  280. MOVFW

  281. SUBWF

  282. BTFSS

  283. GOTO

  284. MOVFW

  285. SUBWF

  286. SKPNC GOTO BSF RETURN

  287. BCF RETURN

  288. ТО пропускати. ІНАКШЕ ЙДЕМО НА МІНУС. ЯКЩО ТЕМПЕРАТУРА мінусова, а УСТАНОВКА плюсовою,

  289. СОРPORTA, YPR1

  290. ТО ВКЛЮЧАЄМ ВИХІД. ПОРІВНЯТИ виміру Значення і встановлення. ЯКЩО БІЛЬШЕ АБО ОДНО, ТО ЙДЕМО ВИМИКАЙТЕ ВИХІД. Або включити його.

  291. ВИМКНУТИ ВИХІД.

  292. сом ™

  293. SOTY1

  294. SOTI, O

  295. STATUS, 0 COP TYR1 LSB, 0

  296. COPM PORTA, YPR1

  297. MOVFW SUBWF BTFSS •. GOTO MOVFW SUBWF SKPNC GOTO BCF

  298. ЯКЩО ТЕМПЕРАТУРА Плюсова,; А УСТАНОВКА мінусової,

  299. ТО ВІМІКАЄМО ВИХІД.

  300. ЯКЩО БІЛЬШЕ АБО ОДНО,; ТО ВКЛЮЧАЄМ ВИХІД. ; ВІМІКАЄМО ВЦХОД.

  301. RETURN

  302. СОРМ

  303. BSF PORTA, YPR1; ВКЛЮЧАЄМ ВИХІД.

RETURN

  1. 20. ПЕРЕВІРКА КНОПОК.

  2. KHOP

  3. BTFSC FLAG, 3; ЯКЩО РАНІШЕ була натиснута кнопка,

  4. CALL Статут; ТО ЙДЕМО НА УСТАНОВКУ розряд.

  5. BTFSS PORTB, УСТ; ЯКЩО кнопка натиснута,

  6. BSF FLAG, 3. • поставили прапор.

  7. BTFSC FLAG, 5; ЯКЩО РАНІШЕ була натиснута кнопка,

  8. CALL КУРСУ; ТО ЙДЕМО НА УСТАНОВКУ курсору.

  9. BTFSS. PORTS, PAZ; ЯКЩО кнопка натиснута,

  10. BSF FLAG, S; поставили прапор.

  11. BTFSS PORTA, PEJ; ЯКЩО кнопка натиснута,

  12. BSF FLAG, 4; поставили прапор.

  13. BTFSS FLAG, 4; ЯКЩО КНОПКА не була натиснута,

  14. GOTO VUBOR; ТО ЙДЕМО НА ВИБІР РЕЖИМУ ІНДИКАЦІЇ.

  15. BTFSS PORTA, PEJ; ЯКЩО кнопка натиснута,

  16. GOTO VUBOR; ТО ЙДЕМО НА ВИБІР РЕЖИМУ ІНДИКАЦІЇ.

  17. BCF FLAG, 4; СКІДАННЯІМ ПРАПОР РЕЖИМУ.

  18. INCF REID, 1. • ЗМІНА РЕЖИМУ ІНДИКАЦІЇ.

  19. MOVLW .5; 5 РЕЖИМУ ІНДИКАЦІЇ.

  20. SUBWF REID, 0; ЯКЩО БІЛЬШЕ,

  21. BTFSS STATUS, 2. ; ТО ПІДЕМО НА Скиданов.

  22. GOTO VUBOR; НА ЗАПИС У РЕГІСТРИ ІНДИКАЦІЇ.

  23. CLRF REID; Скиданов РЕЖИМУ.

  24. BCF • FLAG1, 0; Скиданов УСТАНОВКИ.

  25. GOTO VUBOR; НА ВИБІР РЕЖИМУ ІНДИКАЦІЇ.

  26. 21. Установка курсора (ВИБІР РОЗРЯДУ УСТАНОВКИ).

  27. КУРСУ

УСТАНОВКА МОЖЛИВА, ЯКЩО ІНДИКАЦІЯ УСТАНОВКИ. При натисканні кнопки УСТАНОВКА НЕ ЗМІНЮЄТЬСЯ. Продублюємо СТАН ПРАПОРА.

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 В ЛІЧИЛЬНИК АДРЕСИ.

ПО КОЛУ ДО КІНЦЯ ЗАПИСИ.