Теми рефератів
> Реферати > Курсові роботи > Звіти з практики > Курсові проекти > Питання та відповіді > Ессе > Доклади > Учбові матеріали > Контрольні роботи > Методички > Лекції > Твори > Підручники > Статті Контакти
Реферати, твори, дипломи, практика » Курсовые проекты » Пристрій ультразвукового вимірювання дальності

Реферат Пристрій ультразвукового вимірювання дальності





внений і немає

goto recp1; сигналу-йдемо на мітку recp1

; ---------------------------------------------- ------- перевіряємо прапор переповнення таймера

recp2 btfss INTCON, TOIF; якщо таймер не був переповнений-

goto recp3; сигнал не наш-йдемо на мітку recp3

p> movlw d'252 '; поміщаємо значення "252" для таймера в акумулятор

movwf TMR0 поміщаємо значення з акумулятора в таймер

bcf INTCON, TOIF; встановлюємо в 0 прапор переривання по переповнення таймера

recp4 btfss INTCON, TOIF; перевіряємо прапор переповнення таймера якщо таймер не був переповнений-

btfss PORTA, 1; перевіряємо наявність сигналу на лінії RA1 порту А

якщо таймер переповнений чи ні

goto recp5; сигналу-йдемо на мітку recp5

; якщо таймер НЕ переповнений і є

goto recp4; сигнал-йдемо на мітку recp4

; ---------------------------------------------- ------- перевіряємо прапор переповнення таймера

recp5 btfss INTCON, TOIF; якщо таймер не був переповнений-

goto recp3 сигнал не наш-йдемо на мітку recp3

p> decfsz NUMIMP, 1; зменшуємо значення NUMIMP на "1"

goto recp6; якщо NUMIMP НЕ дорівнює "0"-продовжуємо перевірку

goto main5; якщо NUMIMP дорівнює "0"-повернення з підпрограми

recp3 goto main3; продовження очікування сигналу

; ============================================== ================

calculation; підпрограма обчислення відстані

; інвертуємо значення TIMER1 і

; ---------------------------------------------- ------- TIMER2

movf TIMER1, 0; записуємо значення змінної TIMER1 в акумулятор

clrf TIMER1; Обнуляємо значення TIMER1

sublw d'100 '; з числа 100 віднімаємо значення акумулятора

movwf TIMER1; записуємо отримане значення в змінну TIMER1

movf TIMER2, 0; записуємо значення змінної TIMER2 в акумулятор

clrf TIMER2; Обнуляємо значення TIMER2

sublw d'100 '; з числа 100 віднімаємо значення акумулятора

movwf TIMER2; записуємо отримане значення в змінну TIMER2

; ---------------------------------------------- ------- встановлюємо значення для LAPSE і DIGIT1 .. 3

clrf LAPSE; Обнуляємо значення LAPSE

movlw d'57 '; записуємо в акумулятор значення "57"

movwf LAPSE; записуємо значення акумулятора в змінну LAPSE

clrf DIGIT1 Обнуляємо значення DIGIT1

clrf DIGIT2; Обнуляємо значення DIGIT2

clrf DIGIT3; Обнуляємо значення DIGIT3

; ---------------------------------------------- ------- записуємо в акумулятор від'ємник

calc3 movlw d'6 '; "6"

subwf TIMER1, 1; віднімаємо з змінної TIMER1 значення акумулятора

перевіряємо прапори регістра STATUS

btfss STATUS, C; прапор Z-нульового результату

btfsc STATUS, Z; і прапор C-перенесення

goto calc4; якщо прапори Z і C не рівні 0

goto calc1; якщо Z = 0 і C = 0 означає результат негативний

; ---------------------------------------------- ------- міняємо значення DIGIT1 ... 3 та LAPSE

calc4 incf DIGIT1, 1; збільшуємо змінну DIGIT1 на "1"

movlw d'10 '; записуємо в акумулятор значення "10"

subwf DIGIT1, 0; віднімаємо значення акумулятора з змінної DIGIT1

btfss STATUS, Z; перевіряємо результат на "0"

goto calc2; якщо результат не "0" йдемо на мітку

; ---------------------------------------------- ------- calc2

decf DIGIT1, 1; якщо результат дорівнює "0" зменшуємо змінну DIGIT1 на "1"

incf DIGIT2, 1; збільшуємо змінну DIGIT2 на "1" (переносимо розряд)

movlw d'10 '; записуємо в акумулятор значення "10"

subwf DIGIT2, 0; віднімаємо значення акумулятора з змінної DIGIT2

btfss STATUS, Z; перевіряємо результат на "0"

goto calc2; якщо результат не "0" йдемо на мітку

; ---------------------------------------------- ------- calc2

decf DIGIT2, 1; якщо результат дорівнює "0" зменшуємо змінну DIGIT2 на "1"

incf DIGIT3, 1; збільшуємо змінну DIGIT3 на "1" (переносимо розряд)

movlw d'10 '; записуємо в акумулятор значення "10"

subwf DIGIT3, 0; віднімаємо значення акумулятора з змінної DIGIT3

btfss STATUS, Z; перевіряємо результат на "0"

goto calc2; якщо результат не "0" йдемо на мітку calc2

decf DIGIT3, 1; якщо результат дорівнює "0" зменшуємо змінну DIGIT3 на "1"

goto calc5 виходимо з підпрограми тому досягнуто значення 99,9

; ---------------------------------------------- ------- коригуємо похибка перекладу

calc2 decfz LAPSE, 1; зменшуємо значення LAPSE на 1

goto calc3; якщо мінлива LAPSE не дорівнює "0"-йдемо на мітку calc3

movlw d'57 '; записуємо в акумулятор значення "57"

movwf LAPSE; записуємо значення акумулятора в змінну LAPSE <...


Назад | сторінка 13 з 14 | Наступна сторінка





Схожі реферати:

  • Реферат на тему: Пам'ять та її значення
  • Реферат на тему: Поняття алгоритму. Обчислення значення функції
  • Реферат на тему: Створення програми для обчислення значення функції
  • Реферат на тему: Значення історія
  • Реферат на тему: Значення Fe2 + і Fe3 + в організмі