Понеділок, 24.06.2019, 18:53

Вітаю Вас Гість

Купити машину


Статистика

Онлайн всього: 1
Гостей: 1
Користувачів: 0
Головна » 2013 » Квітень » 14 » Асемблювання
19:56
Асемблювання

Асемблювання

Для асемблювання використовується макpоассемблеp MPASM, він содеpжит всі необхідні нам можливості. MPASM входить в пакет програм Microchip MPLAB фірми Microchip Technology.
У результату АДВОКАТУРИ ассемблеpа створюються файли з наступними pасшиpения: * HEX - об'єктний файл * LST - файл лістингу * ERR - файл помилок і пpедупpеждение * COD Об'єктний файл створюється в 16-pічном фоpмат та містить код, якому повинен бути записаний у микpосхему. Файл лістингу содеpжит повний лістинг пpогpамму разом з завантажувальний кодом. У файл помилок і пpедупpеждение записуються всі помилки і пpедупpеждение, що виникають у пpоцессе ассембліpованія. Вони також пpисутствует і у файлі лістингу. Після обpаботки нашої пpогpамму ассемблеp повинен був видати повідомлення "Assembly Successful", що означає, що помилок обнаpужено не було. Файл помилок не повинна створюватись.
Лістинг програми і об'єктний файл наведено у Додатку.

 
5. Розробка алгоритму роботи пристрою

Алгоритм роботи програми показаний на рис. 4. Після запуску і ініціалізації мікроконтролера програма переходить до розподільника, в якому кожну секунду послідовно вимірюється напруга, перевіряються кнопки, і виконується вивід на індикацію. Переривання від цієї послідовності відбувається кожну секунду для підрахунку часом у годинах і таймері, якщо він включений.
Після установки прапора "Одна секунда" перевіряється бортове напруга. Якщо присутній його відхилення від встановленого, то вмикається звуковий сигнал. Якщо відхилення немає, то виміряні значення перекодуються для індикації в двійковій-десятковий код.
Далі програма переходить до перевірки кнопок. Оскільки кнопки - багатофункціональні, то і їх перевірка кілька ускладнена. Спочатку перевіряється прапор індикації годин. Якщо індикація годин відсутній, то кнопка встановлення курсору "Розряд" не перевіряється, а відразу перевіряється кнопка "Режим". Якщо індикація годин включена і натиснута кнопка "Розряд", то до регістру курсору додається одиниця.
Якщо кнопка "Режим" натиснута, то на одиницю збільшується регістр режиму. За значенням регістра режиму з таблиці вибирається режим індикації (рис. 5).
При індикації напруги раніше перекодіруемие значення напруги переписуються в регістри індикації.
При індикації годин перевіряється, чи був раніше введений курсор в полі індикатора. Якщо значення регістра курсора - ненульове, то виконується установка годин. Якщо при цьому натиснута кнопка "Установка", то до вибраного розряду додається одиниця, а регістри індикації заповнюються новими значеннями. Якщо установка відсутня, то регістри індикації заповнюються значеннями поточного часу.

 
 
Рис. 4. Алгоритм роботи автомобільних годин (початок)
 
 
Рис. 5. Алгоритм роботи автомобільних годин (продовження)

Однак заповнені регістри індикації ще не готові до виведення на індикацію - в них необхідно записати значення курсору. Якщо значення курсора - ненульове (тобто він знаходиться в полі індикатора), то він вводиться в молодший розряд регістра індикації відповідного знакоместа.
Якщо курсор в полі індикатора відсутній, то обнуляється лічильник циклу запису, і першим імпульсом виводиться значення коми для N-го розряду. В принципі, кома в цьому пристрої необхідна тільки одна: для виділення десятих часток напруги, - однак підпрограма виведення на індикацію універсальна, і тому немає сенсу її змінювати. Значення ком заздалегідь записуються в позиційному коді в регістр коми (тобто якщо необхідно висвітити кому в п'ятому розряді індикатора, то записують одиницю в п'ятий розряд регістра). При цьому необхідно пам'ятати, що першими в імпульсної послідовності йдуть значення крайнього праворуч розряду.
Після виведення коми послідовно виводиться значення N-ro регістра, починаючи з молодшого розряду. Потім додається одиниця до лічильника циклів і, якщо його значення не дорівнює дев'яти, цикл виведення даних на індикатор повторюється з наступним регістром. Після виведення значення останнього регістра програма повертається до очікування установки прапора "Одна секунда" під час переривання.
Переривання організовано звичайним чином: по переповнення таймера TMR0. При частоті кварцового резонатора 32 768 Гц коефіцієнт ділення предделітеля становить 32, що разом з коефіцієнтом розподілу таймера, рівним 256, і циклом, рівним 4, дає одну секунду (4x32x256 = 32 768).




[Renault]
2007’ RENAULT SCENIC 95 916 грн. (0)
[Audi]
2001’ AUDI A6 QUATTRO 29 965 грн. (0)
[Автомобіль]
Технічне обслуговування приладів системи живлення (0)

[BMW]


Категорія: Автомобіль | Переглядів: 378 | Додав: FreeDOM | Рейтинг: 0.0/0
Всього коментарів: 0
Ім`я *:
Email *:
Код *:
Copyright //kupyty-mashynu.at.ua © 2019 | Конструктор сайтів - uCoz