62948 (Разработка светодиодной матрицы), страница 10
Описание файла
Документ из архива "Разработка светодиодной матрицы", который расположен в категории "". Всё это находится в предмете "коммуникации и связь" из , которые можно найти в файловом архиве . Не смотря на прямую связь этого архива с , его также можно найти и в других разделах. Архив можно найти в разделе "остальное", в предмете "коммуникации и связь" в общих файлах.
Онлайн просмотр документа "62948"
Текст 10 страницы из документа "62948"
21.Методичні вказівки до виконання дипломної роботи для учнів спеціальності «Оператор комп’ютерного набору; оператор комп’ютерної верстки»/ Упоряд.: Д.О. Дяченко, К.О. Ізмалкова, О.Г. Меркулова. – Сєверодонецьк: СВПУ, 2007. – 40 с.
22. Заец Н.И. Радиолюбительские конструкции на PIC- микроконтроллерах. Книга 1 – М., Солон-ПРЕСС, 2001- 368с.
23. Заец Н.И. Радиолюбительские конструкции на PIC- микроконтроллерах. Книга 2 – М., Солон-ПРЕСС, 2003- 296 с.
24. Заец Н.И. , Сергеев В.С.Радиолюбительские конструкции на микроконтроллерах. Книга 4 – М., Солон-ПРЕСС, 2009 - 412с.
ПРИЛОЖЕНИЯ
ПРИЛОЖЕНИЕ А
Обзор семейств микроконтроллеров PIC
Из всего набора выпускаемых сегодня микроконтроллеров PIC выделяются две наиболее развитые и популярные серии PIC16 и PIC18.
Серия среднего уровня PIC16. Названия микроконтроллеров этой серии начинаются с префикса PIC16. Различные типы микроконтроллеров PIC16 могут исполняться в корпусах, имеющих 14, 18, 28, 40 и более выводов. Это наиболее типичный ряд для PIC16/PIC18 в DIP корпусах. К серии микроконтроллеров PIC16 можно смело отнести микроконтроллеры PIC12 - это те же PIC16, только исполнены в 8 выводном корпусе.
Семейство PIC16 представляет множество недорогих, высокопроизводительных 8-разрялных микроконтроллеров, выполненных по КМОП технологии с очень малым потреблением энергии и полностью статической архитектурой. Представление о семействе можно получить, рассмотрев основу системы обозначений и примеры обозначений микроконтроллеров.
После префикса PIC16, PIC12 или PIC18 следуют обозначение типа (технологии) памяти программ.
Варианты:
- CR - масочное ПЗУ; программируется один раз при изготовлении МК.
- C - EPROM; программируется электрическим способом. Может быть запрограммирована только один раз.
- F - FLASH ПЗУ (EEPROM); запрограммированная память может быть стерта "электрически" и вновь запрограммирована тысячи раз. FLASH микроконтроллеры обычно имеют также и DATA EEPROM - FLASH память данных (не путать с ОЗУ!) для хранения "неоперативных данных", таких, как настроечные параметры, изменяемые константы, тексты.
- JW - ПЗУ стираемое ультрафиолетовым облучением. Корпус таких МК имеет специальное окошко из кварца (WINDOWED).
- Обозначение типа ПЗУ может начинаться с буквы L, которая означает Low Voltage - расширенный вниз, как правило, до 2В диапазон напряжения питания и, как следствие, пониженная максимальная частота.
- LC или LF - EEPROM или FLASH ПЗУ соответственно, допускающее работу при пониженном (LOW) напряжении питания.
Изучение семейства PIC16 целесообразно начинать с наиболее перспективных его представителей. Если не вдаваться в тонкости, то можно утверждать, что масочные, EPROM и FLASH микроконтроллеры практически полностью совместимы по корпусам и выводам, имеют одинаковую архитектуру, электрические и временные характеристики, набор команд и порядок их исполнения. С началом массового выпуска FLASH микроконтроллеров и снижения цен на них, у однократно программируемых микроконтроллеров стало меньше шансов на популярность среди начинающих специалистов. Учитывая это, есть смысл основное внимание уделить именно FLASH микроконтроллерам.После префикса PIC16, PIC12 или PIC18 и обозначения типа (технологии) памяти программ следует комбинация из трех цифр, она определяет собственно тип МК.
Здесь под типом МК понимается комбинация дополнительных свойств МК, как-то: число портов ввода-вывода, объем памяти программ (ПП), памяти данных (ПД), FLASH ПЗУ данных, а главное набор периферийных функций и, следовательно, дополнительных возможностей микроконтроллера.
Например.
- PIC12F629 8-выводной МК с аналоговым компаратором.
- PIC12F675 8- выводной МК с аналоговым компаратором и 10-разрядным АЦП.
ПРИЛОЖЕНИЕ А (Продолжение)
- PIC16F628 18-выводной МК с аналоговыми компараторами, модулем сравнения/захвата/ШИМ и модулем USART (последовательная передача данных по протоколу RS-232C). Стандартный диапазон напряжения питания 3…5,5В, во всем диапазоне тактовой частоты 0…20МГц.
- PIC16LF628 обратите внимание: тип памяти LF, это значит, что МК имеет расширенный диапазон напряжения питания 2…5,5В, при тактовой частоте не более 4МГц, и стандартный диапазон напряжения питания 3…5,5В, при тактовой частоте более 4МГц.
- PIC16F628A буква в конце обозначения типа микроконтроллера указывает на то, что это вариант PIC16F628 с внесенным незначительным изменением архитектуры или технологии, или устраненным замечанием. Если будет еще изменение, то появится вариант PIC16F628В.
После типа МК в его маркировке следуют код -X/XX, где X - температурный диапазон:
-I - индустриальный -40°С…+85°С;
-E - расширенный -40°С…+125°С.
XX - тип корпуса:
- P - пластиковый DIP;
- SO-пластиковый планарный корпус SOIC;
- SS- пластиковый планарный корпус SSOP;
- JW-DIP корпус с окном для УФ стирания;
- И др.
В виде числа 04 или 20 может указываться частота под которую оптимизирован генератор МК.
Все микроконтроллеры семейства имеют одинаковое ядро, систему команд, организацию памяти программ и памяти данных и порядок взаимодействия ядра с памятью и периферийными устройствами. А отличаются друг от друга микроконтроллеры тем, что каждый из них оптимизирован под выполнение определенного круга задач и может отличаться от собратьев количеством выводов, объемом памяти программ и памяти данных, набором периферийных устройств и ценой.
Все МК имеют
- Диапазон тактовой частоты 0...20МГц.
- Одинаковое ядро.
- 35 простых инструкций.
- Режим энергосбережения SLEEP.
- POR (Power On Reset) - сброс по подаче питания (при достижении Vddmin).
-OST (Oscillator Start-up Timer) - удерживает МК в состоянии сброса на время запуска и стабилизации тактового кварцевого или кристаллического генератора.
- BOD или BOR (Brown-out Detect или Brown-out Reset) - детектор снижения Vdd с настраиваемым порогом.
- WDT (Watchdog Timer) - сторожевой таймер с настраиваемым периодом.
- Микроконтроллеры PIC16F873…877 могут программировать свою память программ в процессе работы.
- Все 8-ми и 14-ти выводные МК, кроме режимов генератора, типичных для всех PIC16, имеют встроенный стабильный (1%) тактовый RC генератор.
ПРИЛОЖЕНИЕ А (Продолжение)
Таблица популярных представителей PIC16
Кол-во выводов/портов | ПП, слов | ОЗУ, Кбайт | FLASH ПД, Байт | Таймеры | Встроенные периферийные модули | |
PIC12F629 | 8/6 | 1К | 64 | 128 | TMR0, TMR1 | аналоговый компаратор |
PIC12F675 | 8/6 | 1К | 64 | 128 | TMR0, TMR1 | аналоговый компаратор, 10-разр. АЦП |
PIC12F683 | 8/6 | 2К | 128 | 256 | TMR0, TMR1, TMR2 | аналоговый компаратор, 10-разр. АЦП, модуль захвата/сравнения/ШИМ |
PIC12F630 | 14/12 | 1К | 64 | 128 | TMR0, TMR1 | аналоговый компаратор |
PIC16F676 | 14/12 | 1К | 64 | 128 | TMR0, TMR1 | аналоговый компаратор, 10-разр. АЦП |
PIC16F684 | 14/12 | 2К | 128 | 256 | TMR0, TMR1, TMR2 | аналоговый компаратор, 10-разр. АЦП, модуль захвата/сравнения/ШИМ |
PIC16F688 | 14/12 | 4К | 256 | 256 | TMR0, TMR1, TMR2 | аналоговый компаратор, 10-разр. АЦП, модуль захвата/сравнения/ШИМ, USART |
PIC16F628A | 18/16 | 4К | 224 | 128 | TMR0, TMR1, TMR2 | аналоговый компаратор, 10-разр. АЦП, модуль захвата/сравнения/ШИМ, USART/SC |
PIC16F648A | 18/16 | 4К | 256 | 256 | TMR0, TMR1, TMR2 | аналоговый компаратор, 10-разр. АЦП, модуль захвата/сравнения/ШИМ, USART/SC |
PIC16F84A | 18/13 | 1К | 68 | 64 | TMR0 | популярный, устарел |
ПРИЛОЖЕНИЕ Б
Программа для «Эффект -1» светодиодной матрицы
;------------------------------------------------------------------------------------------------------------------------------
list p = 16f628a
__config 03F30h ; 11111100110001 - защиты памяти нет, низковольтное программирование запрещено, сброс по питанию запрещен,
; RA5/-MCLR работает как -MCLR, таймер вкл-я питания включен, сторожевой таймер - выключен, генератор - внутренний
;********* Переменные ************************************
CBLOCK 0x20 ;Начальный адрес блока констант
T_ext ;таймер внешнего цикла
T_int ;таймер внутреннего цикла
Strok ;байт строк, младшие 5 бит этого байта - состояния строк (1 - вкл, 0 - выкл)
Stolb ;байт столбцов, младшие 5 бит этого байта - состояния столбцов (1 - вкл, 0 - выкл)
ENDC ;
;******** Константы ***************************************
Cr1 equ .200 ;длительность 1-й задержки 200 мкс
Cr2 equ .150 ;длительность 2-й задержки 150х200 мкс
Status equ 03h ; Регистр выбора банка
TrisA equ 05h ; Регистр выбора направления работы выводов порта А
TrisB equ 06h ; Регистр выбора направления работы выводов порта В
PortA equ 05h ; Регистр управления защелками порта А
PortB equ 06h ; Регистр управления защелками порта В
Cmcon equ 1Fh ; вкл/выкл компараторов
F equ 1 ; Результат направить в регистр.
;********************************************************
; Пусть у нас RA1, RA2, RA3, RA6, RA7 - выходы строки
; RB3, RB4, RB5, RB6, RB7 - выходы столбцы
;********************************************************
;
org 0
;******** Установка направления работы порта A: RA7, RA6 - выходы, RA5, RA4, RA3 - входы, RA2, RA1, RA0 - выходы
;******** Установка направления работы порта B: RB7, RB6, RB5, RB4, RB3, RB2 - выходы, RB1, RB0 - входы ***
start movlw .7 ;
movwf Cmcon ; выключить компараторы и включить эти пины как цифровые входы/выходы
clrf PortA ; инициализация защелок порта А
movlw .248 ; 11111000
movwf PortB ; инициализация защелок порта В
bsf Status,5 ; Перейти в 1-й банк (установить в 1 5-й бит регистра Status).
movlw .49 ; Записать конфигурацию порта A в аккумулятор (W). .49=00110001
movwf TrisA ; Скопировать конфигурацию порта А из W в регистр TrisA
movlw .7 ; Записать конфигурацию порта В в аккумулятор (W). .3=00000111
movwf TrisB ; Скопировать конфигурацию порта B из W в регистр TrisB.
bcf Status,5 ; Перейти в 0-й банк (установить в 0 5-й бит регистра Status)
;******** ЭФФЕКТ 1 ********************************************************************************
eff1 movlw b'00011111' ; включаем все строки
movwf Strok
movlw b'00000001' ; и первый столбец
movwf Stolb
;-------- Включаем светодиоды -----------------
cikl_stolb1 call in_ports
call pause
rlf Stolb,1 ; переходим на следующий столбец
btfss Stolb,5 ; если 5 бит stolb = 1, то следующая команда пропускается
goto cikl_stolb1