Вход на сайт Навигация по сайту Любить и уважать Бонус-счастливчики
|
Содержимое файла "5 .doc" (без форматирования) ВСТУП Розроблювальний пристрій представляє собою світлодіодний дімер з клавіатурою, який має синхронізацію з рідкокристалічним дисплеєм. Курсорними кнопками можна змінювати швидкість перемикання і номер ефекту. Усього в наявності 10 ефектів з 16 градаціями яскравості в кожному кроці. До переваг пристрою належить той факт, що зайнято всього 52% пам'яті. Кожен ефект займає 2%. Можна додати ще 22 ефекти і отримати непоганий автомат з 32 програмами або можна надалі задіяти ще 3 кнопки, які будуть відповідати за автоматичну зміну програм, автоматичної зміни швидкості і т. д. Можна організувати це все у вигляді меню. Використання недорогого широке розповсюдженого мікроконтролера АТmega 8 фірми Atmel, що має у своєму складі внутрішній генератор та внутрішні підтягуючи резистори, дозволяє створити простий та зручний дімер, що керується за допомогою клавіатури. Основна мета курсового проекту – отримання практичних навичок в розробці апаратних та програмних засобів мікропроцесорної системи. У даному курсовому проекті потрібно було розробити світлодіодний дімер на базі мікроконтролера АТmega 8. 1 РОЗРОБКА ФУНКЦІОНАЛЬНОЇ СХЕМИ СИСТЕМИ Функціональна схема реалізованого формувача включає наступні пристрої: 1. Мікроконтролер ATmega 8 фірми Atmel з тактовою частотою 4 МГц застосовується для генерування різноманітних режимів світломузики. Піни 1,3,4,5 порту С налаштовані на зовнішнє переривання, при спрацьовуванні якого стартує алгоритм прийому команди з клавіатури . 2. Мікроконтролер відображає сформовані ефекти на 8 каналах. К цим каналам підключаються гірлянди, в яких світлодіоди підключені паралельно. У наукових цілях, для наглядності, були встановлено по 1 світлодіоду на виході кожного каналу. 3. Світлоефекти відображаються також на рідкокристалічному дисплеї (алфавітно-цифровий РК модуль, який містить 16 символів на 2 рядки) у режимі динамічної індикації . Опис функціональної схеми дімера: після подачі живлення на мікроконтролер (МК) він налаштовує порти D (світлодіоди) і B (РК) на вихід, а всі інші на вхід. Далі виводиться привітання на РК дисплей і через кілька секунд на дисплей висвічується основне меню програми (Еff - номер ефекту, Tmp - його швидкість). Спочатку дімер працює в першому режимі на восьмій швидкості. Усього програма підтримує 10 ефектів і 15 швидкостей на кожному ефекті. Отже пристрій підтримує 150 різних режимів роботи. Піни 1 і 3 порту С запрограмовані під зміну ефекту, а піни 4 і 5 - зміну швидкості. При натисканні однієї з кнопок клавіатури, відбувається переривання по INT0, в наслідок чого МК включає інший ефект або швидкість. Крім усього вищеописаного пристрій підтримує індикацію ефектів на РК дисплей в режимі реального часу. Функціональна схема приведена на рис. 1.1. Рисунок 1.1 – Функціональна схема дімера 2 РОЗРОБКА ПРИНЦИПОВОЇ СХЕМИ МІКРОПРОЦЕСОРНОЇ СИСТЕМИ 2.1 Мікроконтролер ATmega 8 фірми Atmel Як і всі мікроконтроллери AVR фірми Atmel, мікроконтроллери сімейства Mega є 8 розрядними мікроконтроллерами, призначеними для вбудовуваних застосувань. Вони виготовляються за малоспоживаючою КМОП технологією, яка у поєднанні з вдосконаленою архітектурою RISC дозволяє досягти найкращого співвідношення швидкодія/енергоспоживання. Мікроконтроллери описуваного сімейства є найбільш розвиненими представниками мікроконтроллерів AVR. Мікроконтроллери AVR сімейства Mega є 8 розрядними мікроконтроллерами з RISC архітектурою. Вони мають електрично стирану пам'ять програм (FLASH) і даних (EEPROM), а також всілякі периферійні пристрої. [1] Слід зазначити, що мікроконтроллери сімейства Mega мають найбагатший набір периферійних пристроїв в порівнянні з мікроконтроллерами інших сімейств. Більш того, склад цих пристроїв від моделі до моделі практично не міняється (міняються лише їх функціональні можливості). До пристроїв, присутніх не у всіх моделях сімейства, відносяться АЦП, модуль двопровідного інтерфейсу TWI (Two Wire Interface, аналог шини I2S), а також модуль інтерфейсу JTAG. Структурна схема мікроконтроллерів сімейства Mega приведена на рис. 2.1. Відмітимо, що на цьому малюнку змальована структурна схема найбільш досконалого на сьогоднішній день представника сімейства, Atmega128x. При розгляді інших моделей, необхідно брати до уваги властиві ним обмеження, такі як наявність тих або інших периферійних пристроїв і використання контактів введення/виводу цими пристроями. [2] Рисунок 2.1 — Структурна схема мікроконтролера ATmega8 [3] Відмінні особливості До особливостей мікроконтроллерів AVR сімейства Mega належать: • Flash память програм об'ємом 8......128 кбайт (число циклів стирання/запису не менше 1000); • оперативна пам'ять (статичне ОЗУ) об'ємом 1......4 кбайт; • пам'ять даних на основі ЕСППЗУ (EEPROM) об'ємом 512байт......4кбайт (число циклів стирання/запису не менше 100000); • можливість захисту від читання і модифікації пам'яті програм і даних; • можливість програмування безпосередньо в системі через послідовні інтерфейси SPI і JTAG; • можливість внутрішньосхемної відладки відповідно до стандарту IEEE 1149.1 (JTAG); • різні способи синхронізації: вбудований генератор RC з внутрішнім або зовнішнім часозадаючим ланцюжком RC або із зовнішнім резонатором (пьезокерамічеським або кварцевим); зовнішній сигнал синхронізації; • наявність декількох режимів зниженого енергоспоживання; • наявність детектора зниження напруги живлення (brown out detector, BOD); • можливість програмного зниження частоти тактового генератора. Характеристики процесора. Переважна більшість основних характеристик процесора мікроконтролерів сімейства Mega такі ж, що і в мікроконтроллерів інших сімейств — Classic і Tiny: • повністю статична архітектура; мінімальна тактова частота дорівнює нулю; • АЛП підключений безпосередньо до регістрів загального призначення; • більшість команд виконуються за один машинний цикл; • багаторівнева система переривань; підтримка черги переривань. В той же час процесор мікроконтролерів сімейства Mega має ряд характеристик, властивих саме цьому сімейству: • найбільше число джерел переривань (до 27 джерел, з них до 8 зовнішніх); • наявність програмного стека у всіх моделях сімейства; Ядро мікроконтролерів AVR сімейства Mega, як і ядро мікроконтролерів сімейств Classic і Tiny, виконане по вдосконаленій RISC архітектурі (enhanced RISC). Аріфметікологічний пристрій (АЛУ), що виконує всі обчислення, підключений безпосередньо до 32-х робочих регістрів, об'єднаних в регістровий файл. Завдяки цьому АЛУ виконує одну операцію за один машинний цикл. Практично кожна з команд займає один елемент пам'яті програм. AТmega 8 підтримується різними програмними засобами та інтегрованими засобами розробки, такими як компілятори C, макроасемблери, програмні відладчики, симулятори, внутрисхемні емулятори й ознайомлювальні набори. 2.2 Рідкокристалічний дисплей ACM1602N виробництва фірми AZ Displays. Контролер ACM1602N фірми AZ Displays фактично є промисловим стандартом і широко застосовується при виробництві алфавітно-цифрових РК модулів. Аналоги цього контролера чи сумісні з ним по інтерфейсу і командної мови мікросхеми, випускають безліч фірм, серед яких: Epson, Toshiba, Sanyo, Samsung, Philips. Ще більша кількість фірм роблять РК модулі на базі даних контролерів. Ці модулі можна зустріти в найрізноманітніших пристроях: вимірювальних приладах, медичному обладнанні, промисловому та технологічному обладнанні, офісної техніки - принтерах, телефонах, факсимільних і копіювальних апаратах. Контролер ACM1602N потенційно може управляти 2-ма рядками по 16 символів в кожній (для модулів з 4-ма рядками по 16 символів використовуються два однотипних контролера), при матриці символу 5 х 7 точок. Алфавітно-цифрові РК модулі є недороге і зручне рішення, що дозволяє заощадити час і ресурси при розробці нових виробів, при цьому забезпечують відображення великого обсягу інформації при гарній розрізнення і низькому енергоспоживанні. [5] Назви ліній шини є стандартними, але існує безліч різних варіантів розташування контактів у кожного конкретного конструктів РК модуля. Насправді, єдиним реально стандартним варіантом розташування контактів є дворядне 14-ти контактне поле, розташоване вертикально в лівій частині модуля. Підключення РК дисплея здійснюється за таблицею 2.2.1. Таблиця 2.1 – Підключення РК модуля Номер Піна Символьне позначення Функція 1 Vdd +5V 2 Vss Ground 3 Vo LCD contrast adjust 4 RS Register select 5 R/W Read / write 6 E Enable 7 DB0 Data bit 0 8 DB1 Data bit 1 9 DB2 Data bit 2 10 DB3 Data bit 3 11 DB4 Data bit 4 12 DB5 Data bit 5 13 DB6 Data bit 6 14 DB7 Data bit 7 У таблиці 2.2 і 2.3 відповідно наводиться послідовність дій, яка була застосована для управління системою при здійсненні операцій запису і зчитування для 4-х розрядної шини. Таблиця 2.2 – Операція запису для 4-х розрядної шини Встановити значення лінії RS Вивести значення старшої тетради байта даних на лінії шини DB4 ... DB7 Встановити лінію Е = 1 Встановити лінію Е = 0 Вивести значення молодшої тетради байта даних на лінії шини DB4 ... DB7 Встановити лінію Е = 1 Встановити лінію Е = 0 Встановити лінії шини DB4 ... DB7 = HI Таблиця 2.3 – Операція зчитування для 4-х розрядної шини Встановити значення лінії RS Встановити лінію R / W = 1 Встановити лінію Е = 1 Вважати значення старшої тетради байта даних з ліній шини DB4 ... DB7 Встановити лінію Е = 0 Встановити лінію Е = 1 Вважати значення молодшої тетради байта даних з ліній шини DB4 ... DB7 становити лінію Е = 0 Встановити лінію R / W = 0 Зовнішній вигляд РК модуля зображений на рис. 2.2. Рисунок 2.2 — Зовнішній вигляд РК модуля. Внутрішня структурна схема РК модулю зображена на рис. 2.3. Рисунок 2.3 – Внутрішня структурна схема РК дисплею. [5] Для з'єднання РК модуля з керуючою системою використовується паралельна синхронна шина, що налічує 8 чи 4 (вибирається програмно) ліній даних DB0 ... DB7, лінію вибору операції R / W, лінію вибору регістру RS і лінію стробування / синхронізації Е. Крім ліній керуючої шини є дві лінії для подачі напруги живлення +5В, GND і VCC, і лінія для подачі напруги живлення драйвера РК V0. 2.3 Опис принципової схеми Як видно зі схеми на рис. 2.4, мікроконтролер AТmega 8 є центральним управляючим елементом. До 7-го піна підводиться живлення 5В. Щоб відфільтрувати скачки напруги використовуємо конденсатори ємністю 100нФ. До 20-го піна також підводимо напругу в 5В, але через більш ємнісний конденсатор з номіналом в 100мкФ. Рисунок 2.4 – Принципова схема дімера Клавіатуру підключаємо до пінів PC1, PC3, PC4, PC5 завдяки резистору з номінальним опором 470 Ом. Висновок Reset підтягуємо до джерела живлення за допомогою резистора з ємністю 10 кОм. До висновків портів PD0…PD7 підключені світлодіоди через підтягуючи резистори з номіналом 100 Ом. РК дисплей HG1 підключен до живлення 5В через реостат з ємністю в 4 кОм, а також до PB0, PB2, PB4, PB6, PB7 пінів МК. Також на схемі присутній світлодіод VD1, який відповідає за живлення пристрою. 3 РОЗРОБКА ПРОГРАМНОГО ЗАБЕЗПЕЧЕННЯ Розглянемо роботу алгоритму, яка зображена на рис. 3.1 Спочатку роботи ми визначаємо контролер. Далі включаємо внутрішній генератор і підключаємо бібліотеку РКІ і бібліотеку функцій. Налаштовуємо порти виходячи з функціональної схеми і включаємо внутрішні підтягуючи резистори. Після того, як провели ініціалізацію параметрів МК проводимо настройка РКІ (задаємо такі параметри, як: змінна швидкості, лічильник тиків таймера, лічильник кроків ефекту, лічильник ефектів, номер каналу, додаткова змінна, значення каналів з таблиці ефектів, яскравість каналів з таблиці градацій яскравості , швидкість повторів, змінна для відтворення графіки, початкову клітинку таблиці ефектів в залежності від обраного ефекту, лічильник кроків в головному циклі, таймер і нарешті лінію 1 і 2 для псевдографіки 8 знаків) і виводимо на нього тест-привітання. Далі очищаємо екран і завантажуємо задані умови роботи (стандартно обраний перший ефект і восьма швидкість). Потім обчислюємо початкову клітинку таблиці ефектів. Це враховано для того, щоб надалі змінювати початковий режим роботи безпосередньо у програмі. Основна програма працює наступним чином: спочатку відбувається перебір кроків ефекту, далі йде опитування кнопок, побудова ефектів згідно таблиці ефектів, читання значень яскравості для всіх 8 каналів, читання значень констант для ШІМ, перехід на виведення інформації на екран. Після чого слідує затримка для регулювання швидкості. Після цього йдуть підпрограми, які відповідають за: зміну швидкості та ефектів; роботу по таймеру (організація ШІМ); виведення інформації на екран (з включення псевдографіки і тексту). Рисунок 3.1 – Блок-схема програми В кінці програми прописані так звані саморобні бібліотеки, які містять таблицю побудови сходинок - рівнів яскравості каналів для двох рядків екрана, 16 градацій яскравості, затримку в мілісекундах для регулювання швидкості ефектів і безпосередньо саму таблицю ефектів. На основі сформованої блок-схеми, пишемо програму, що забезпечує функціонування формувача постійної напруги. Код програми, що забезпечує роботу мікроконтролера, наведений у Додатку А. ВИСНОВОК В результаті виконання курсового проекту був розроблен світлодіодний дімер з цифровою індикацією на основі мікроконтролеру AТmega 8. Пристрій може використатися для прикраси новорічної ялинки або в якості інтер'єрного освітлення. Була розроблена функціональна та принципова схеми пристрою, а також програмний алгоритм функціювання системи. Пристрій функціонує без ускладнень і помилок. ПЕРЕЛІК ВИКОРИСТАНИХ ДЖЕРЕЛ 1. Мортон Джон – Микроконтроллеры AVR. Вводный курс, Додэка-ХХI, 2006. 2. www.atmel.com. 3. http://www.gaw.ru/html.cgi/txt/ic/Atmel/micros/avr/ATmega169P_PV.htm 4. HYPER15 5. http://www.azdisplays.com/ ДОДАТОК А $regfile = "m8def.dat" 'определяем контроллер $crystal = 8000000 'внутренний генератор $lib "lcd4.lbx" 'подключаем библиотеку ЖКИ $lib "mcsbyte.lbx" 'подключаем библиотеку функций Config Portd = Output 'настройка порта d на выход (LED 1-8) Config Pinc.0 = Input 'настройка пина c0 на вход (S1) Config Pinc.1 = Input 'настройка пина c1 на вход (S2) Config Pinc.2 = Input 'настройка пина c2 на вход (S3) Config Pinc.3 = Input 'настройка пина c3 на вход (S4) Config Pinc.4 = Input 'настройка пина c4 на вход (S2) Config Pinc.5 = Input 'настройка пина c5 на вход (S3) Config Pinb.3 = Input 'настройка пина b3 на вход (S4) Set Portc.0 ' включить внутренний подтягивающий резистор Set Portc.1 ' включить внутренний подтягивающий резистор Set Portc.2 ' включить внутренний подтягивающий резистор Set Portc.3 ' включить внутренний подтягивающий резистор Set Portc.4 ' включить внутренний подтягивающий резистор Set Portc.5 ' включить внутренний подтягивающий резистор Set Portb.1 ' включить внутренний подтягивающий резистор Config Lcdpin = Pin , Rs = Portb.0 , E = Portb.2 , Db4 = Portb.4 , Db5 = Portb.5 , Db6 = Portb.6 , Db7 = Portb.7 Config Lcd = 16 * 2 'настраиваем ЖКИ Dim S As Byte 'переменная скорости Dim Tik As Byte 'счётчик тиков таймера Dim Shag As Byte 'счётчик шагов эффекта Dim Effect As Byte 'счётчик эффектов Dim Channel As Byte 'номер канала Dim Lamda As Word 'дополнительная переменная Dim X(8) As Byte 'значения каналов из таблицы эффектов Dim Y(8) As Byte 'яркость каналов из таблицы градаций яркости Dim Temp As Byte 'скорость повторов Dim Kl As Byte 'переменная для отрисовки графики Dim N As Byte 'начальная ячейка таблицы эффектов в зависимости от выбранного эффекта Dim Takt As Byte 'счётчик шагов в главном цикле Dim Line1 As String * 8 , Line1d(8) As Byte At Line1 Overlay 'линия 1 для псевдографики 8 знакомест Dim Line2 As String * 8 , Line2d(8) As Byte At Line2 Overlay 'линия 2 для псевдографики 8 знакомест Config Timer0 = Timer , Prescale = 1 'настраиваем таймер Enable Timer0 'разрешаем работу таймера 0 Enable Interrupts 'Разрешаем прерывания On Timer0 Pwms 'работа по таймеру 0 Start Timer0 'старт таймера 0 Cursor Off 'Выключить курсор Y(1) = 255 Y(2) = 255 Y(3) = 255 Y(4) = 255 Y(5) = 255 Y(6) = 255 Y(7) = 255 Y(8) = 255 'Логотип загрузки Cls Deflcdchar 0 , 32 , 31 , 31 , 12 , 6 , 3 , 1 , 32 ' 1.1 Deflcdchar 1 , 32 , 31 , 31 , 7 , 2 , 6 , 30 , 31 ' 1.2 Deflcdchar 2 , 7 , 31 , 31 , 3 , 1 , 25 , 12 , 28 ' 1.3 Deflcdchar 3 , 16 , 31 , 31 , 17 , 32 , 7 , 11 , 15 ' 1.4 Deflcdchar 4 , 32 , 1 , 15 , 17 , 32 , 10 , 32 , 32 ' 2.1 Deflcdchar 5 , 16 , 16 , 24 , 28 , 31 , 31 , 32 , 32 ' 2.2 Deflcdchar 6 , 31 , 7 , 18 , 15 , 16 , 31 , 32 , 32 ' 2.3 Deflcdchar 7 , 14 , 32 , 8 , 16 , 3 , 31 , 32 , 32 ' 2.4 Waitms 100 Locate 1 , 1 Lcd "B" Waitms 100 Locate 1 , 2 Lcd "a" Waitms 100 Locate 1 , 3 Lcd "r" Waitms 100 Locate 1 , 4 Lcd "b" Waitms 100 Locate 1 , 5 Lcd "i" Waitms 100 Locate 1 , 6 Lcd "n" Waitms 100 Locate 1 , 7 Lcd "y" Waitms 100 Locate 1 , 8 Lcd "a" Waitms 100 Locate 1 , 9 Lcd "g" Waitms 100 Locate 1 , 10 Lcd "r" Waitms 100 Locate 1 , 11 Lcd "a" Waitms 100 Locate 2 , 1 Lcd "A" Waitms 100 Locate 2 , 2 Lcd "n" Waitms 100 Locate 2 , 3 Lcd "d" Waitms 100 Locate 2 , 4 Lcd "r" Waitms 100 Locate 2 , 5 Lcd "e" Waitms 100 Locate 2 , 6 Lcd "w" Waitms 100 Locate 2 , 7 Lcd " " Waitms 100 Locate 2 , 8 Lcd "2" Waitms 100 Locate 2 , 9 Lcd "0" Waitms 100 Locate 2 , 10 Lcd "1" Waitms 100 Locate 2 , 11 Lcd "1" Waitms 300 Locate 1 , 16 Lcd Chr(0) Locate 2 , 16 Lcd Chr(4) Waitms 250 Locate 1 , 15 Lcd Chr(0) ; Chr(1) Locate 2 , 15 Lcd Chr(4) ; Chr(5) Waitms 250 Locate 1 , 14 Lcd Chr(0) ; Chr(1) ; Chr(2) Locate 2 , 14 Lcd Chr(4) ; Chr(5) ; Chr(6) Waitms 250 Locate 1 , 13 Lcd Chr(0) ; Chr(1) ; Chr(2) ; Chr(3) Locate 2 , 13 Lcd Chr(4) ; Chr(5) ; Chr(6) ; Chr(7) Waitms 300 'устанавливаем символы пользователя для графического отображения яркости каналов Deflcdchar 1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 31 Deflcdchar 2 , 0 , 0 , 0 , 0 , 0 , 0 , 31 , 31 Deflcdchar 3 , 0 , 0 , 0 , 0 , 0 , 31 , 31 , 31 Deflcdchar 4 , 0 , 0 , 0 , 0 , 31 , 31 , 31 , 31 Deflcdchar 5 , 0 , 0 , 0 , 31 , 31 , 31 , 31 , 31 Deflcdchar 6 , 0 , 0 , 31 , 31 , 31 , 31 , 31 , 31 Deflcdchar 7 , 0 , 31 , 31 , 31 , 31 , 31 , 31 , 31 '******************************************************************************* Cls 'Очистить экран S = 8 'скорость повтора при старте (МОЖНО ИЗМЕНЯТЬ ОТ 1 ДО 15) Temp = Lookup(s , Speders) 'Задержка в миллисекундах для выбранной скорости повтора Effect = 1 'выбор эффекта при старте (МОЖНО ИЗМЕНЯТЬ) N = Effect * 16 'вычисление начальной ячейки таблицы эффектов N = N - 16 '############################################################################### '############################################################################### Do 'основной цикл For Takt = 0 To 15 'перебор шагов эффекта Shag = N + Takt 'опрос кнопок Debounce Pinc.3 , 0 , Plus_speed , Sub Debounce Pinc.1 , 0 , Minus_speed , Sub Debounce Pinc.5 , 0 , Plus_effect , Sub Debounce Pinc.4 , 0 , Minus_effect , Sub 'построение эффектов согласно таблицы эффектов For Channel = 1 To 8 Lamda = Shag * 8 Lamda = Lamda + Channel Decr Lamda X(channel) = Lookup(lamda , Pwm_led) 'чтение значения яркости для всех 8 каналов Lamda = X(channel) Decr Lamda Y(channel) = Lookup(lamda , Pwm_data) 'чтение значений констант для ШИМ Next Gosub Lcd_disp 'переход на вывод информации на экран Waitms Temp 'задержка для регулировки скорости Next Loop 'конец основного цикла '############################################################################### '############################################################################### Plus_speed: 'увеличить скорость Incr S If S > 15 Then S = 15 Temp = Lookup(s , Speders) Return ' Minus_speed: 'уменьшить скорость Decr S If S < 1 Then S = 1 Temp = Lookup(s , Speders) Return ' Plus_effect: 'следующий эффект Incr Effect 'НУЖНО ИЗМЕНИТЬ В ЗАВИСИМОСТИ ОТ КОЛИЧЕСТВА ЭФФЕКТОВ В ТАБЛИЦЕ! If Effect > 10 Then Effect = 10 N = Effect * 16 N = N - 16 Return ' Minus_effect: 'предыдущий эффект Decr Effect If Effect < 1 Then Effect = 1 N = Effect * 16 N = N - 16 Return '******************************************************************************* 'работа по таймеру - Организация ШИМ Pwms: Incr Tik If Tik = 255 Then Tik = 0 Portd = 0 End If If Tik > Y(1) Then Portd.7 = 1 If Tik > Y(2) Then Portd.6 = 1 If Tik > Y(3) Then Portd.5 = 1 If Tik > Y(4) Then Portd.4 = 1 If Tik > Y(5) Then Portd.3 = 1 If Tik > Y(6) Then Portd.2 = 1 If Tik > Y(7) Then Portd.1 = 1 If Tik > Y(8) Then Portd.0 = 1 Return '******************************************************************************* 'Вывод информации на экран Lcd_disp: 'псевдографика For Kl = 1 To 8 Line1d(kl) = Lookup(x(kl) , L1) Line2d(kl) = Lookup(x(kl) , L2) Next Locate 1 , 1 Lcd Line1; Locate 2 , 1 Lcd Line2; 'текст Locate 1 , 9 If Effect < 10 Then Lcd " Eff: " ; Effect If Effect >= 10 Then Lcd " Eff:" ; Effect Locate 2 , 9 If S < 10 Then Lcd " Tmp: " ; S If S >= 10 Then Lcd " Tmp:" ; S Return '******************************************************************************* 'таблица построения ступенек - уровней яркости каналов для двух строк экрана 'из символов пользователя и пустого и заполненного знакомест (32 и 255) L1: Data 32 , 32 , 32 , 32 , 32 , 32 , 32 , 32 , 32 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 255 L2: Data 32 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 '******************************************************************************* '16 градаций яркости: 255 - минимальная яркость, 0 - максимальная.Логарифмическая шкала Pwm_data: Data 255 , 253 , 252 , 251 , 249 , 246 , 243 , 238 , 231 , 221 , 208 , 189 , 162 , 125 , 73 , 0 '******************************************************************************* 'Задержки в миллисекундах для регулировки скорости эффектов - логарифмическая шкала Speders: Data 140 , 100 , 70 , 50 , 39 , 31 , 24 , 18 , 13 , 9 , 6 , 4 , 3 , 2 , 1 , 0 '******************************************************************************* 'Таблица эффектов Pwm_led: 'Эффект 1 - Data 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 Data 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 Data 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 Data 4 , 5 , 6 , 7 , 8 , 9 , 10 , 11 Data 5 , 6 , 7 , 8 , 9 , 10 , 11 , 12 Data 6 , 7 , 8 , 9 , 10 , 11 , 12 , 13 Data 7 , 8 , 9 , 10 , 11 , 12 , 13 , 14 Data 8 , 9 , 10 , 11 , 12 , 13 , 14 , 15 Data 9 , 10 , 11 , 12 , 13 , 14 , 15 , 16 Data 10 , 11 , 12 , 13 , 14 , 15 , 16 , 1 Data 11 , 12 , 13 , 14 , 15 , 16 , 1 , 2 Data 12 , 13 , 14 , 15 , 16 , 1 , 2 , 3 Data 13 , 14 , 15 , 16 , 1 , 2 , 3 , 4 Data 14 , 15 , 16 , 1 , 2 , 3 , 4 , 5 Data 15 , 16 , 1 , 2 , 3 , 4 , 5 , 6 Data 16 , 1 , 2 , 3 , 4 , 5 , 6 , 7 'Эффект 2 - Data 16 , 15 , 14 , 13 , 12 , 11 , 10 , 9 Data 15 , 14 , 13 , 12 , 11 , 10 , 9 , 8 Data 14 , 13 , 12 , 11 , 10 , 9 , 8 , 7 Data 13 , 12 , 11 , 10 , 9 , 8 , 7 , 6 Data 12 , 11 , 10 , 9 , 8 , 7 , 6 , 5 Data 11 , 10 , 9 , 8 , 7 , 6 , 5 , 4 Data 10 , 9 , 8 , 7 , 6 , 5 , 4 , 3 Data 9 , 8 , 7 , 6 , 5 , 4 , 3 , 2 Data 8 , 7 , 6 , 5 , 4 , 3 , 2 , 1 Data 7 , 6 , 5 , 4 , 3 , 2 , 1 , 16 Data 6 , 5 , 4 , 3 , 2 , 1 , 16 , 15 Data 5 , 4 , 3 , 2 , 1 , 16 , 15 , 14 Data 4 , 3 , 2 , 1 , 16 , 15 , 14 , 13 Data 3 , 2 , 1 , 16 , 15 , 14 , 13 , 12 Data 2 , 1 , 16 , 15 , 14 , 13 , 12 , 11 Data 1 , 16 , 15 , 14 , 13 , 12 , 11 , 10 'Эффект 3 - Data 16 , 1 , 2 , 3 , 4 , 5 , 6 , 7 Data 15 , 16 , 1 , 2 , 3 , 4 , 5 , 6 Data 14 , 15 , 16 , 1 , 2 , 3 , 4 , 5 Data 13 , 14 , 15 , 16 , 1 , 2 , 3 , 4 Data 12 , 13 , 14 , 15 , 16 , 1 , 2 , 3 Data 11 , 12 , 13 , 14 , 15 , 16 , 1 , 2 Data 10 , 11 , 12 , 13 , 14 , 15 , 16 , 1 Data 9 , 10 , 11 , 12 , 13 , 14 , 15 , 16 Data 8 , 9 , 10 , 11 , 12 , 13 , 14 , 15 Data 7 , 8 , 9 , 10 , 11 , 12 , 13 , 14 Data 6 , 7 , 8 , 9 , 10 , 11 , 12 , 13 Data 5 , 6 , 7 , 8 , 9 , 10 , 11 , 12 Data 4 , 5 , 6 , 7 , 8 , 9 , 10 , 11 Data 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 Data 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 Data 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 'Эффект 4 - Data 1 , 16 , 15 , 14 , 13 , 12 , 11 , 10 Data 2 , 1 , 16 , 15 , 14 , 13 , 12 , 11 Data 3 , 2 , 1 , 16 , 15 , 14 , 13 , 12 Data 4 , 3 , 2 , 1 , 16 , 15 , 14 , 13 Data 5 , 4 , 3 , 2 , 1 , 16 , 15 , 14 Data 6 , 5 , 4 , 3 , 2 , 1 , 16 , 15 Data 7 , 6 , 5 , 4 , 3 , 2 , 1 , 16 Data 8 , 7 , 6 , 5 , 4 , 3 , 2 , 1 Data 9 , 8 , 7 , 6 , 5 , 4 , 3 , 2 Data 10 , 9 , 8 , 7 , 6 , 5 , 4 , 3 Data 11 , 10 , 9 , 8 , 7 , 6 , 5 , 4 Data 12 , 11 , 10 , 9 , 8 , 7 , 6 , 5 Data 13 , 12 , 11 , 10 , 9 , 8 , 7 , 6 Data 14 , 13 , 12 , 11 , 10 , 9 , 8 , 7 Data 15 , 14 , 13 , 12 , 11 , 10 , 9 , 8 Data 16 , 15 , 14 , 13 , 12 , 11 , 10 , 9 'Эффект 5 - Data 1 , 16 , 1 , 16 , 1 , 16 , 1 , 16 Data 2 , 15 , 2 , 15 , 2 , 15 , 2 , 15 Data 3 , 14 , 3 , 14 , 3 , 14 , 3 , 14 Data 4 , 13 , 4 , 13 , 4 , 13 , 4 , 13 Data 5 , 12 , 5 , 12 , 5 , 12 , 5 , 12 Data 6 , 11 , 6 , 11 , 6 , 11 , 6 , 11 Data 7 , 10 , 7 , 10 , 7 , 10 , 7 , 10 Data 8 , 9 , 8 , 9 , 8 , 9 , 8 , 9 Data 9 , 8 , 9 , 8 , 9 , 8 , 9 , 8 Data 10 , 7 , 10 , 7 , 10 , 7 , 10 , 7 Data 11 , 6 , 11 , 6 , 11 , 6 , 11 , 6 Data 12 , 5 , 12 , 5 , 12 , 5 , 12 , 5 Data 13 , 4 , 13 , 4 , 13 , 4 , 13 , 4 Data 14 , 3 , 14 , 3 , 14 , 3 , 14 , 3 Data 15 , 2 , 15 , 2 , 15 , 2 , 15 , 2 Data 16 , 1 , 16 , 1 , 16 , 1 , 16 , 1 'Эффект 6 - Data 16 , 1 , 16 , 1 , 16 , 1 , 16 , 1 Data 15 , 2 , 15 , 2 , 15 , 2 , 15 , 2 Data 14 , 3 , 14 , 3 , 14 , 3 , 14 , 3 Data 13 , 4 , 13 , 4 , 13 , 4 , 13 , 4 Data 12 , 5 , 12 , 5 , 12 , 5 , 12 , 5 Data 11 , 6 , 11 , 6 , 11 , 6 , 11 , 6 Data 10 , 7 , 10 , 7 , 10 , 7 , 10 , 7 Data 9 , 8 , 9 , 8 , 9 , 8 , 9 , 8 Data 8 , 9 , 8 , 9 , 8 , 9 , 8 , 9 Data 7 , 10 , 7 , 10 , 7 , 10 , 7 , 10 Data 6 , 11 , 6 , 11 , 6 , 11 , 6 , 11 Data 5 , 12 , 5 , 12 , 5 , 12 , 5 , 12 Data 4 , 13 , 4 , 13 , 4 , 13 , 4 , 13 Data 3 , 14 , 3 , 14 , 3 , 14 , 3 , 14 Data 2 , 15 , 2 , 15 , 2 , 15 , 2 , 15 Data 1 , 16 , 1 , 16 , 1 , 16 , 1 , 16 'Эффект 7 - Data 1 , 3 , 5 , 7 , 7 , 5 , 3 , 1 Data 3 , 5 , 7 , 9 , 9 , 7 , 5 , 3 Data 5 , 7 , 9 , 11 , 11 , 9 , 7 , 5 Data 7 , 9 , 11 , 13 , 13 , 11 , 9 , 7 Data 9 , 11 , 13 , 15 , 15 , 13 , 11 , 9 Data 11 , 13 , 15 , 15 , 15 , 15 , 13 , 11 Data 13 , 15 , 15 , 15 , 15 , 15 , 15 , 13 Data 15 , 15 , 15 , 15 , 15 , 15 , 15 , 15 Data 15 , 15 , 15 , 13 , 13 , 15 , 15 , 15 Data 15 , 15 , 13 , 11 , 11 , 13 , 15 , 15 Data 15 , 13 , 11 , 9 , 9 , 11 , 13 , 15 Data 13 , 11 , 9 , 7 , 7 , 9 , 11 , 13 Data 11 , 9 , 7 , 5 , 5 , 7 , 9 , 11 Data 9 , 7 , 5 , 3 , 3 , 5 , 7 , 9 Data 7 , 5 , 3 , 1 , 1 , 3 , 5 , 7 Data 5 , 3 , 1 , 1 , 1 , 1 , 3 , 5 'Эффект 8 - Data 1 , 5 , 9 , 13 , 1 , 5 , 9 , 13 Data 2 , 6 , 10 , 14 , 2 , 6 , 10 , 14 Data 3 , 7 , 11 , 15 , 3 , 7 , 11 , 15 Data 4 , 8 , 12 , 16 , 4 , 8 , 12 , 16 Data 5 , 9 , 13 , 16 , 5 , 9 , 13 , 16 Data 6 , 10 , 14 , 15 , 6 , 10 , 14 , 15 Data 7 , 11 , 15 , 14 , 7 , 11 , 15 , 14 Data 8 , 12 , 16 , 13 , 8 , 12 , 16 , 13 Data 9 , 13 , 16 , 12 , 9 , 13 , 16 , 12 Data 10 , 14 , 15 , 11 , 10 , 14 , 15 , 11 Data 11 , 15 , 14 , 10 , 11 , 15 , 14 , 10 Data 12 , 16 , 13 , 9 , 12 , 16 , 13 , 9 Data 13 , 16 , 12 , 8 , 13 , 16 , 12 , 8 Data 14 , 15 , 11 , 7 , 14 , 15 , 11 , 7 Data 15 , 14 , 10 , 6 , 15 , 14 , 10 , 6 Data 16 , 13 , 9 , 5 , 16 , 13 , 9 , 5 'Эффект 9 - Data 16 , 14 , 12 , 10 , 8 , 6 , 4 , 2 Data 14 , 12 , 10 , 8 , 6 , 4 , 2 , 16 Data 12 , 10 , 8 , 6 , 4 , 2 , 16 , 14 Data 10 , 8 , 6 , 4 , 2 , 16 , 14 , 12 Data 8 , 6 , 4 , 2 , 16 , 14 , 12 , 10 Data 6 , 4 , 2 , 16 , 14 , 12 , 10 , 8 Data 4 , 2 , 16 , 14 , 12 , 10 , 8 , 6 Data 2 , 16 , 14 , 12 , 10 , 8 , 6 , 4 Data 16 , 14 , 12 , 10 , 8 , 6 , 4 , 2 Data 14 , 12 , 10 , 8 , 6 , 4 , 2 , 16 Data 12 , 10 , 8 , 6 , 4 , 2 , 16 , 14 Data 10 , 8 , 6 , 4 , 2 , 16 , 14 , 12 Data 8 , 6 , 4 , 2 , 16 , 14 , 12 , 10 Data 6 , 4 , 2 , 16 , 14 , 12 , 10 , 8 Data 4 , 2 , 16 , 14 , 12 , 10 , 8 , 6 Data 2 , 16 , 14 , 12 , 10 , 8 , 6 , 4 'Эффект 10 - Data 16 , 16 , 16 , 16 , 16 , 16 , 16 , 16 Data 14 , 14 , 14 , 14 , 14 , 14 , 14 , 14 Data 12 , 12 , 12 , 12 , 12 , 12 , 12 , 12 Data 10 , 10 , 10 , 10 , 10 , 10 , 10 , 10 Data 8 , 8 , 8 , 8 , 8 , 8 , 8 , 8 Data 6 , 6 , 6 , 6 , 6 , 6 , 6 , 6 Data 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 Data 2 , 2 , 2 , 2 , 2 , 2 , 2 , 2 Data 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 Data 2 , 2 , 2 , 2 , 2 , 2 , 2 , 2 Data 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 Data 6 , 6 , 6 , 6 , 6 , 6 , 6 , 6 Data 8 , 8 , 8 , 8 , 8 , 8 , 8 , 8 Data 10 , 10 , 10 , 10 , 10 , 10 , 10 , 10 Data 12 , 12 , 12 , 12 , 12 , 12 , 12 , 12 Data 14 , 14 , 14 , 14 , 14 , 14 , 14 , 14 РТС 3.081.001 ПЗ |
Посетителей: 0, из них зарегестрированных: 0, гостей: 0 Зарегистрированные пользователи: Подробно | Страница сгенерирована за 0.0894 сек. |