Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЦП_ч.2_Лаб.W07.docx
Скачиваний:
2
Добавлен:
01.07.2025
Размер:
4 Мб
Скачать
☆

3 Компіляція проекту.

3 .1 Якщо це не зроблено, відкрити проект, що підлягає компіляції, піктограмою Open file or project (або з меню File > Open). У діалоговому вікні Open вибрати теку, тип файлів Project files, файл з емблемою програмного пакету і назвою цього проекту та відкрити – розгорнеться вікно джерельного файлу з програмою мовою Сі.

F Примітка. Опрацьовуватися, у т. ч. компілюватися може лише один проект, зазначений у рядку заголовку головного вікна і в навігаційному вікні Code Navigator. Через це в разі відкриття нового проекту поточний проект буде зачинено.

3.2 Виправити помилки синтаксису. Якщо проект опрацьовується вперше, доцільно (але не обов'язково) піктограмою Check syntax (або командою Check Syntax з меню Project) запустити перевірку синтаксису. За наявності помилок відкриється вкладка Errors (помилки) у вікні Messages (повідомлення) з переліком помилок. Для швидкої локалізації помилки достатньо клацнути рядок з повідомленням про неї – виділиться рядок програми, що містить помилку. По виправленні помилок зберегти зміни у файлі та повторити цей пункт. Так само усунути застереження (warnings), якщо їх зміст спеціально не передбачений у програмі.

F Примітки. 1. Якщо Ви створили свою програму з копії зразка, у файлі можуть бути помилки, уведені з навчальною метою (вони бувають практично в кожній програмі).

2. Клавішею F1 можна викликати загальну довідку, але не інформацію про помилку.

3.3 Запустити процес компілювання і транслювання піктогра-мою Build the project – побудова проекту (або командою Build з меню Project) – на передньому плані з'явиться інформаційне вікно Information з двома вкладками: компілятора і транслятора (Compiler, Assembler). Продивитися повідомлення на обох вкладках та натиснути ОК. У разі неуспішного процесу відкриється вікно Messages (повідомлення) з переліком помилок і застережень, які необхідно усунути як у п. 3.2 та повторити п. 3.3.

4 Налагодження проекту.

4.1 Запустити наладчик AVR Studio 4 піктограмою Run the debugger (або командою Debugger з меню Tools) – на передньому плані з'явиться вже знайоме діалогове вікно Welcome to AVR Studio 4 (див. вікно а на ілюстрації вгорі), в якому натиснути Open (відчинити). У наступному вікні, що відчиниться (б), вибрати теку зі своїми проектами і в ній відкрити теку даного проекту, відтак (у вікні в) вибрати тип файлів Project Files та відкрити COFF-файл із побудованим проектом. У наступному вікні, що відчи-ниться (вікно г), зберегти цей COFF-файл як проектний файл в AVR Studio. І, нарешті, в останньому вікні, що відчиниться (на ілюстрації вікно д внизу), вибрати налагоджувальну платформу: програмний імітатор AVR Simulator (цифра 1) і тип мікросхеми: ATmega8515 (2) та натиснути кнопку Finish (3). Тепер на основі нашого COFF-файлу буде створено проект в AVR Studio і автоматично завантажено його до цієї програми, так само, як у п. 3.2 лабораторної роботи 1, ч. 1 – з'явиться головне вікно AVR Studio 4 з нашим програмним файлом мовою Сі.

4.2 Якщо це не зроблено раніше, налаштувати головне вікно AVR Studio 4, після чого налагодити проект та, у разі потреби, виправити помилки алгоритму (див. лабораторна робота 1, ч. 1, п. 3.3, 4, 5). У вікнах робочих регістрів (ілюстрація а), змінних (б) та пам'яті в режимі ОЗП (в, г) спостерігати результати виконання операцій.

▼▼▼

Частина 2 (Зразок D:\CPlabII\2_2CVAci\2_2CVAci.c)

1 Створити новий проект 2_2CVAci N (N – номер варіанту) на основі програми мовою Сі в інтегрованому пакеті розробника CodeVisionAVR згідно зі своїм варіантом завдання (див. ч.1, п.1).

2 Виконати редагування автоматично генерованої програми мовою Сі згідно з варіантом завдання (див. ч.1, п.2).

3 Виконати компіляцію проекту (див. ч.1, п.3).

4 Налагодити проект (див. ч.1, п.4).

5 Оформити звіт (див. лабораторна робота 1, ч.2, п.5).

Мета роботи: дослідження

ДОМАШНЄ ЗАВДАННЯ

! 1) Засвоїти теоретичні відомості щодо

2) Визначити

СТИСЛІ ТЕОРЕТИЧНІ ВІДОМОСТІ

РВВ і паралельні порти введення-виведення, команди з РВВ

Програмний стек

Стартовий набір (апаратний інтерфейс) STK 500

Програмний інтерфейс STK 500

Алгоритми реалізації ЦКП, макрофункції

Розділи програми

Команди програми

РВВ і паралельні порти введення-виведення, команди з РВВ

3.4 Звертання до регістрів вводу-виводу

Рис. 14. Порт вводу-виводу (а) та функції (б) і формат (в) його пристроїв в адресному просторі регістрів вводу-виводу

Рис. 15. Загальна схема звертання до регістрів вводу-виводу

Рис. 16. Пряма адресація до регістрів вводу-виводу

Вправи

; ===============ДИРЕКТИВИ

.nolist

.include "m8515def.inc" ; Файл включення

.list

;***** Регістрові змінні

.def tmp = r16 ; Тимчасові (temporal) дані

.def tmpa = r17 ; Тимчасові додаткові (additional) дані

; ***** Налаштування портів

1) PA[7..0] – входи, R1- вимкнено (ззовні приєднано R2):

; DDRA = 0b0000 0000, PORTA = 0b0000 0000,

; PINA[7..0] = 0b1111 1111 - кнопки SW[7..0] не натиснуто

2) PВ[7..0] – входи, R1- увімкнено (ззовні відсутні R2): DDRВ = 0b0000 0000

ser tmp ; Установлення регістра (Set Register) : tmp <= 0b1111 1111

out PORTB,tmp ; PORTB[7..0] <= 0b1111 1111

; (Out to I/O location - Виведення до РВВ)

3) PС[7..0] – виходи, на всіх виводах – лог. 1;

out DDRС,tmp ; DDRС[7..0] <= 0xFF

out PORTС,tmp ; PORTС[7..0] <= 0xFF

4) PD[7..4] – входи, R1- вимкнено; PD[3..0] – виходи, на виводі PD[0] – лог. 1

ldi tmpa,$0F ; tmpa <= 0b0000 1111

out DDRD,tmpа ; DDRD[7..0] <= 0b0000 1111

sbi PORTD,0 ; (PORTD = 0x00), PORTD[0] <= 1

5) PЕ[1..0] – входи, R1- вимкнено; PЕ[2] – вихід, на виводі PЕ[2] – лог. 1

; DDRЕ[2..0] = 0b000, PORTЕ[2..0] = 0b000

sbi DDRЕ,2 ; DDRЕ[2] <= 1

sbi PORTЕ,2 ; PORTЕ[2] <= 1

; ***** 6) Програма: кнопки – світлодіоди

PA[7..0] – входи, R1- вимкнено (ззовні приєднано R2) – див. (1);

PС[7..0] – виходи, на всіх виводах – лог. 1 – див. (3)

Початок тестування кнопок

Якщо PINA[0] = 0 - кнопку SW[0] натиснуто,

то PORTС[0] <= 0 – засвітити LED[0], інакше:

Якщо PINA[1] = 0 - кнопку SW[1] натиснуто,

то PORTС[1] <= 0 – засвітити LED[1], інакше:

…

Якщо PINA[7] = 0 - кнопку SW[7] натиснуто,

то PORTС[7] <= 0 – засвітити LED[7], інакше:

затримка для візуалізації стану СД

перейти на початок тестування кнопок.

; =============== ДИРЕКТИВИ

.def tmp = r16 ; Тимчасові дані

.def del = r1 ; Затримка

.def del2 = r2 ; Затримка 2

;=============== ІНІЦІАЛІЗАЦІЯ

ser tmp ; Установлення регістра (Set Register) : tmp <= 0b1111 1111

out DDRС,tmp ; DDRС[7..0] <= 0xFF - PС[7..0] – виходи

TEST: ;=========ТЕСТУВАННЯ

out PORTС,tmp ; PORTС[7..0] <= 0xFF – гасіння всіх СД

sbis PIND,0 ; Якщо PIND.0 = 1 – відтиснуто SW[0], то пропустити (Skip if Bit in ; I/O Register is Set - пропустити наступну команду, якщо біт РВВ установлено),

cbi PORTС,0 ; інакше (PIND.0 = 0 – натиснуто SW[0]) PORTС[0] <= 0 – ; засвітити LED[0] (Clear Bit in I/O Register – очистити біт у РВВ)

sbis PIND,1 ; Якщо PIND.1 = 1 – відтиснуто SW[1], то пропустити

cbi PORTС,1 ; інакше (натиснуто SW[1]) PORTС[1] <= 0 – засвітити LED[1]

…

sbis PIND,7 ; Якщо PIND.7 = 1 – відтиснуто SW[7], то пропустити

cbi PORTС,7 ; інакше (натиснуто SW[7]) PORTС[7] <= 0 – засвітити LED[7]

DLY: ; 2562 = 65 536, затримка біля 60 мс

; (вимкнено під час налагодження)

;dec del

;brne DLY

;dec del2

;brne DLY

rjmp TEST ; Повторення циклу