Частина тексту файла (без зображень, графіків і формул):
Міністерство освіти і науки України
Національний університет «Львівська політехніка»
Інститут телекомунікацій, радіоелектроніки та електронної техніки
кафедра «Теоретична радіотехніка та радіовимірювання»
Звіт з лабораторних робіт
на тему:
«Розробка проектів у середовищі PSoC® Creator™ з використанням функцій в коді програми»
з дисципліни «Програмування програмно-апаратних засобів»
Підготував:
ст. групи РТ-21
Лоїк.В.А.
Прийняв:
асист. каф. ТРР
Мащак А.В.
Львів 2016р.
Лабораторна робота №2
Розробка проектів у середовищі PSoC® Creator™ з використанням функцій в коді програми
Мета: навчитися застосовувати функції мови С, як основні елементи структурного програмування для створення проектів в інтегрованому середовищі PSoC® Creator™.
Постановка задачі: в інтегрованому середовищі PSoC® Creator™ написати програму з використанням функцій мови С для проекту, який реалізовує передачу перших трьох літер прізвища студента азбукою Морзе світловим та звуковим сигналами програмованою системою на чіпі CY8CKIT-042 PSoC® 4 Pioneer Kit.
Короткі відомості для виконання роботи
Порти вводу/виводу світлодіодів:
P0.2 – зеленого;
P0.3 – синього;
P1.6 – червоного.
Для реалізації поставленої задачі необхідно використати вбудовані функції:
SW_Read() – функція зчитування рівня сигналу з кнопки SW. Якщо функція SW_Read() повертає 0, то це означає, що кнопка була натиснута.
CyDelay() – функція затримки, аргументом, якої є період в мілісекундах.
Buzzer_Write() – функція, яка вмикає/вимикає баззер:
Buzzer_Write(1) – баззер видає звуковий сигнал;
Buzzer_Write(0) – баззер не видає звуковий сигнал.
LED_Write() – функція, яка задає світіння діода:
LED_Write(0) – світлодіод світиться;
LED_Write(1) – світлодіод не світиться;
Start() – функція, яка одночасно вмикає баззер та світіння світлодіода.
Stop() – функція, яка одночасно вимикає баззер та світіння світлодіода.
Порядок виконання роботи
1. Організація програми для відтворення сигналу однієї літери.
/* ======================================== * * Copyright YOUR COMPANY, THE YEAR * All Rights Reserved * UNPUBLISHED, LICENSED SOFTWARE. * * CONFIDENTIAL AND PROPRIETARY INFORMATION * WHICH IS THE PROPERTY OF your company. * * ======================================== */ #include <project.h> #define PAUSE 450 /* gap between letters is three units */ #define DOT 150 /* dot is one unit */ #define LINE 450 /* dash is three units */ #define PAUSE_C 150 /* inter-element gap between the dots and dashes */ void Start(void); /* Function which start lighting a LED blinking and Buzzer sounding */ void Stop (void); /* Function which stop lighting a LED blinking and Buzzer sounding */ int main() { for(;;) { if (SW_Read() == 0) { /* char L - "*-**" */ CyDelay(PAUSE ); Start(); CyDelay(DOT); Stop(); CyDelay(PAUSE_C ); Start(); CyDelay(LINE); Stop(); CyDelay(PAUSE_C ); Start(); CyDelay(DOT); Stop(); CyDelay(PAUSE_C ); Start(); CyDelay(DOT); Stop(); /* char O - "- - -" */ CyDelay(PAUSE ); Start(); CyDelay(LINE); Stop(); CyDelay(PAUSE_C ); Start(); CyDelay(LINE); Stop(); CyDelay(PAUSE_C ); Start(); CyDelay(LINE); Stop(); /* char I - " * *" */ CyDelay(PAUSE ); Start(); CyDelay(DOT); Stop(); CyDelay(PAUSE_C ); Start(); CyDelay(DOT); Stop(); } } } void Start (void) { Buzzer_Write(1); LED_Write(0); } void Stop (void) { Buzzer_Write(0); LED_Write(1); }
2. Організація програми для відтворення сигналу однієї літери окремими функціями.
#include <project.h> #define PAUSE 450 /* gap between letters is three units */ #define DOT 150 /* dot is one unit */ #define LINE 450 /* dash is three units */ #define PAUSE_C 150 /* inter-element gap between the dots and dashes */ void Start(void); /* Function which start lighting a LED blinking and Buzzer sounding */ void Stop (void); /* Function which stop lighting a LED blinking and Buzzer sounding */ void L (void); void O (void); void I (void); int main() { for(;;) { if (SW_Read() == 0) { /* char L - "*-**" */ L (); /* char O - "- - -" */ O (); /* char I - " * *" */ I (); } } } void Start (void) { Buzzer_Write(1); LED_Write(0); } void Stop (void) { Buzzer_Write(0); LED_Write(1); } void L (void) { CyDelay(PAUSE ); Start(); CyDelay(DOT); Stop(); CyDelay(PAUSE_C ); Start(); CyDelay(LINE); Stop(); CyDelay(PAUSE_C ); Start(); CyDelay(DOT); Stop(); CyDelay(PAUSE_C ); Start(); CyDelay(DOT); Stop(); } void O (void) { CyDelay(PAUSE ); Start(); CyDelay(LINE); Stop(); CyDelay(PAUSE_C ); Start(); CyDelay(LINE); Stop(); CyDelay(PAUSE_C ); Start(); CyDelay(LINE); Stop(); } void I (void) { CyDelay(PAUSE ); Start(); CyDelay(DOT); Stop(); CyDelay(PAUSE_C ); Start(); CyDelay(DOT); Stop(); } /* [] END OF FILE */
3. Організація програми для відтворення сигналу однієї літери окремою функцією.
/* ======================================== * * Copyright YOUR COMPANY, THE YEAR * All Rights Reserved * UNPUBLISHED, LICENSED SOFTWARE. * * CONFIDENTIAL AND PROPRIETARY INFORMATION * WHICH IS THE PROPERTY OF your company. * * ======================================== */ #include <project.h> #define PAUSE 450 /* gap between letters is three units */ #define DOT 150 /* dot is one unit */ #define LINE 450 /* dash is three units */ #define PAUSE_C 150 /* inter-element gap between the dots and dashes */ void Start(void); /* Function which start lighting a LED blinking and Buzzer sounding */ void Stop (void); /* Function which stop lighting a LED blinking and Buzzer sounding */ void L (void); void O (void); void I (void); char symbol; void blink (uint8 symbol); int main() { for(;;) { if (SW_Read() == 0) { blink ('L'); blink ('O'); blink ('I'); } } } void Start (void) { Buzzer_Write(1); LED_Write(0); } void Stop (void) { Buzzer_Write(0); LED_Write(1); } void L (void) { CyDelay(PAUSE ); Start(); CyDelay(DOT); Stop(); CyDelay(PAUSE_C ); Start(); CyDelay(LINE); Stop(); CyDelay(PAUSE_C ); Start(); CyDelay(DOT); Stop(); CyDelay(PAUSE_C ); Start(); CyDelay(DOT); Stop(); } void O (void) { CyDelay(PAUSE ); Start(); CyDelay(LINE); Stop(); CyDelay(PAUSE_C ); Start(); CyDelay(LINE); Stop(); CyDelay(PAUSE_C ); Start(); CyDelay(LINE); Stop(); } void I (void) { CyDelay(PAUSE ); Start(); CyDelay(DOT); Stop(); CyDelay(PAUSE_C ); Start(); CyDelay(DOT); Stop(); } void blink (uint8 symbol ) { if(symbol == 'L') { L (); } if(symbol == 'O') { O (); } if(symbol == 'I') { I (); } } /* [] END OF FILE */
Висновок : на цій лабораторній роботі ми навчилися організовувати подання сигналу за допомогою як звичайного способу, так і організовувати це за допомогою функцій, що спрощують сприйняття коду програми. Я написав програму, яка подає сигнал, що відповідає коду перших 3 букв мого прізвища, згідно з азбукою Морзе. Програма була написана звичайним кодом, з використанням функції для кожної бувки і з загальною функцією для всіх букв.
Ви не можете залишити коментар. Для цього, будь ласка, увійдіть
або зареєструйтесь.
Ділись своїми роботами та отримуй миттєві бонуси!
Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!