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

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





================

У цьому блоці описується в яких осередках ОЗУ (регістрах загального застосування) будуть зберігається значення наших змінних. Призначення змінних зрозуміло з коментарів наведеної вище частини лістингу програми.

виконує, програма


Даний блок відповідає наведеній нижче частини програми.


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

; виконувана програма

org 0х000; вектор скидання процесора, початковий адресу

clrf PORTA; очистили вихідні засувки порту А

clrf PORTB; і порту У

clrf TMR0; очищення таймера TMR0

bsf STATUS, RP0; включили банк 1

movlw b'00011110 '; налаштували на виведення лінію RA0,

movwf PORTA; інші лінії порту A на уведення

movlw b'00000000 '; налаштували на виведення всі лінії порту B

movwf PORTB; RB0 ... RB7

bcf OPTION_REG, 7; включили підтягують резистори

bcf OPTION_REG, 5; включили режим таймера для TMR0

bcf STATUS, RP0; включили банк 0

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

Вказуємо адресу початку програм, вектор скидання процесора. Обнуляємо значення у вихідних засувках обох портів. Обнуляємо значення таймера. Потім встановивши в 1 біт RP0 регістра STATUS, ми отримуємо доступ до регистровому банку 1. Тепер звертаючись до регістрів PORTA і PORTB, ми звертаємося не до вихідним засувок, а до регістрів стану цих портів, і налаштовуємо частина ліній на введення, а частина ліній на висновок, що відповідає схемі наведеної у додатку. Використовуючи битий 7 RBPU регістра OPTION_REG включаємо вбудовану навантаження порту B, для чого встановлюємо біт в 0. За допомогою біта 5 T0CS вибираємо джерело тактирования для таймера TMR0. Для використання внутрішньої тактової частоти CLKOUT, встановлюємо в 0 цей біт. Наприкінці встановивши в 0 бита RP0 регістра STATUS, ми отримуємо доступ до регистровому банку 0.


Основна програма main


Даний блок відповідає наведеній нижче частини програми.

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

main; основна програма

call initialization; викликаємо підпрограму ініціалізації

main1 call indication; викликаємо підпрограму індикації

goto pressing; викликаємо підпрограму обробки натиснення кнопки

main2 call transfer; викликаємо підпрограму передачі імпульсів

main3 goto waiting; викликаємо підпрограму очікування відбитого сигналу

main4 goto reception; викликаємо підпрограму прийому відбитого сигналу

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

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

У даній частині використовуються лише два оператора переходу: оператор виклику підпрограми call і оператор безумовного переходу goto. Для наочності наведемо блок-схему основний програми main, в яку додано умови і порядок взаємодії розглядаються далі підпрограм. p> Блок-схема наведена на рис. 9. br/>В 

Рис. 9. Блок-схема основної програми main. p> Підпрограма ініціалізації initialization


Даний блок відповідає наведеній нижче частини програми.

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

initialization; підпрограма ініціалізації та початкових умов


Обнуляємо значення використовуваних змінних

clrf PORTA; очистили вихідні засувки порту A

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

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

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

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

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

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

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

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


; встановлюємо значення використовуваних змінних

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

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

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

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

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

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

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

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

return; повернення з підпрограми

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

Тут ми Обнуляємо використовувані змінні, і встановлюємо для них необхідні значення. Кількість переданих імпульсів NUMIMP в сигналі приймаємо рівним 5 (погоджено з викладачем). І т.д.



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





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

  • Реферат на тему: Створення програми для обчислення значення функції
  • Реферат на тему: Клемент Готвальд і його значення у зміні програми Компартії Чехословаччини ...
  • Реферат на тему: Розробка алгоритму програми на мові С + +, яка обчислює значення ємності і ...
  • Реферат на тему: Власний капітал і його значення в діяльності банку
  • Реферат на тему: Обов'язкові резерви кредитних організацій, депоновані в Банку Росії: по ...