рефераты рефераты
Главная страница > Дипломная работа: Разработка светодиодной матрицы  
Дипломная работа: Разработка светодиодной матрицы
Главная страница
Банковское дело
Безопасность жизнедеятельности
Биология
Биржевое дело
Ботаника и сельское хоз-во
Бухгалтерский учет и аудит
География экономическая география
Геодезия
Геология
Госслужба
Гражданский процесс
Гражданское право
Иностранные языки лингвистика
Искусство
Историческая личность
История
История государства и права
История отечественного государства и права
История политичиских учений
История техники
История экономических учений
Биографии
Биология и химия
Издательское дело и полиграфия
Исторические личности
Краткое содержание произведений
Новейшая история политология
Остальные рефераты
Промышленность производство
психология педагогика
Коммуникации связь цифровые приборы и радиоэлектроника
Краеведение и этнография
Кулинария и продукты питания
Культура и искусство
Литература
Маркетинг реклама и торговля
Математика
Медицина
Реклама
Физика
Финансы
Химия
Экономическая теория
Юриспруденция
Юридическая наука
Компьютерные науки
Финансовые науки
Управленческие науки
Информатика программирование
Экономика
Архитектура
Банковское дело
Биржевое дело
Бухгалтерский учет и аудит
Валютные отношения
География
Кредитование
Инвестиции
Информатика
Кибернетика
Косметология
Наука и техника
Маркетинг
Культура и искусство
Менеджмент
Металлургия
Налогообложение
Предпринимательство
Радиоэлектроника
Страхование
Строительство
Схемотехника
Таможенная система
Сочинения по литературе и русскому языку
Теория организация
Теплотехника
Туризм
Управление
Форма поиска
Авторизация




 
Статистика
рефераты
Последние новости

Дипломная работа: Разработка светодиодной матрицы

Программа для «Эффект -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

;----------------------------------------------

 movlw b'00000001' ; включаем первую строку

 movwf Strok

 movlw b'00011111' ; и все столбцы

 movwf Stolb

;-------- Включаем светодиоды -----------------

cikl_strok1 call in_ports

 call pause

 rlf Strok,1 ; переходим на следующую строку

 btfss Strok,5 ; если 5 бит stolb = 1, то следующая команда пропускается

 goto cikl_strok1

 goto eff1

;******************************************************************************************************

;******** Процедура включения строк и столбцов

in_ports btfsc Stolb,0 ; если 0-й бит stolb = 0, то следующая команда пропускается

 bcf PortB,3 ; RB3=0 - вкл.1 столбец

 btfss Stolb,0 ; если 0-й бит stolb =1, то следующая команда пропускается

 bsf PortB,3 ; RB3=1 - выкл. 1 столбец

;--------------------------------------

 btfsc Stolb,1 ; если 1-й бит stolb = 0, то следующая команда пропускается

 bcf PortB,4 ; RB4=0 - вкл. 2 столбец

 btfss Stolb,1 ; если 1-й бит stolb =1, то следующая команда пропускается

 bsf PortB,4 ; RB4=1 - выкл. 2 столбец

;-------------------------------------

 btfsc Stolb,2 ; если 2-й бит stolb = 0, то следующая команда пропускается

 bcf PortB,5 ; RB5=0 - вкл. 3 столбец

 btfss Stolb,2 ; если 2-й бит stolb =1, то следующая команда пропускается

 bsf PortB,5 ; RB5=1 - выкл. 3 столбец

;--------------------------------------

 btfsc Stolb,3 ; если 3-й бит stolb = 0, то следующая команда пропускается

 bcf PortB,6 ; RB6=0 - вкл. 4 столбец

 btfss Stolb,3 ; если 3-й бит stolb =1, то следующая команда пропускается

 bsf PortB,6 ; RB6=1 - выкл. 4 столбец

;--------------------------------------

 btfsc Stolb,4 ; если 4-й бит stolb = 0, то следующая команда пропускается

 bcf PortB,7 ; RB7=0 - вкл. 5 столбец

 btfss Stolb,4 ; если 4-й бит stolb =1, то следующая команда пропускается

 bsf PortB,7 ; RB7=1 - выкл. 5 столбец

;-------- Строки -----------------------------------------------------------

 btfsc Strok,0 ; если 0-й бит strok = 0, то следующая команда пропускается

 bsf PortA,2 ; RA2=1 - вкл.1 строку

 btfss Strok,0 ; если 0-й бит strok =1, то следующая команда пропускается

 bcf PortA,2 ; RA2=0 - выкл.1 строку

;--------------------------------------

 btfsc Strok,1 ; если 1-й бит strok = 0, то следующая команда пропускается

 bsf PortA,3 ; RA3=1 - вкл.2 строку

 btfss Strok,1 ; если 1-й бит strok =1, то следующая команда пропускается

 bcf PortA,3 ; RA3=0 - выкл.2 строку

;--------------------------------------

 btfsc Strok,2 ; если 2-й бит strok = 0, то следующая команда пропускается

 bsf PortA,1 ; RA1=1 - вкл.3 строку

 btfss Strok,2 ; если 2-й бит strok =1, то следующая команда пропускается

bcf PortA,1 ; RA1=0 - выкл.3 строку

;--------------------------------------

 btfsc Strok,3 ; если 3-й бит strok = 0, то следующая команда пропускается

 bsf PortA,7 ; RA7=1 - вкл.4 строку

 btfss Strok,3 ; если 3-й бит strok =1, то следующая команда пропускается

 bcf PortA,7 ; RA7=0 - выкл.4 столбец

;--------------------------------------

 btfsc Strok,4 ; если 4-й бит strok = 0, то следующая команда пропускается

 bsf PortA,6 ; RA6=1 - вкл.5 строку

 btfss Strok,4 ; если 4-й бит strok =1, то следующая команда пропускается

 bcf PortA,6 ; RA6=0 - выкл.5 строку

 return

;****************************************************************************************************

;******** Процедура Паузы ****************************************************************************

pause movlw Cr2

 movwf T_ext ; загрузить значение для внешнего цикла

cikl2 movlw Cr1

 movwf T_int ; загрузить значение для внутреннего цикла

cikl3 decfsz T_int,1 ; если T_int = 0, следующая команда пропускается

 goto cikl3 ; внутренний цикл

 decfsz T_ext,1 ; если T_ext = 0, следующая команда пропускается

 goto cikl2 ; внешний цикл

 return

 end


ПРИЛОЖЕНИЕ В

Программа для создания эффекта «Вращающийся крест»

;--------------------------------------------------------------------------------------------------------------------------

 list p = 16f628a

 __config 03F30h ; 11111100110001 - защиты памяти нет, низковольтное программирование запрещено,

 ; сброс по питанию запрещен, RA5/-MCLR работает как -MCLR, таймер вкл-я питания включен,

 ; сторожевой таймер - выключен, генератор - внутренний

;********* Переменные ************************************

 CBLOCK 0x20 ; Начальный адрес блока

 Temp ; обменник , 20h

 Adr ; адрес фрейма в EEPROM или ОЗУ , 21h

 T_int ; счетчик для паузы , 22h

 Strok ; байт текущего состояния строк , 23h

 Stolb ; байт текущего состояния столбцов , 24h

 Fr_sch ; счетчик фреймов , 25h

 Fr_cikl ; счетчик показов одного фрейма , 26h

 Fr_kol ; количество фреймов , 27h

 Fr_cikl_kol ; количество показов одного фрейма , 28h

;----- Свободная память ОЗУ в нулевом банке от 29h до 7Fh ---------------------------------

;----- Из этих 86 своб-х байт в первые 30 мы будем грузить наши фреймы ------------------

 ENDC ;

;******** Константы ***************************************

Status equ 03h ; Регистр выбора банка

TrisA equ 05h ; Регистр выбора направления работы выводов порта А

TrisB equ 06h ; Регистр выбора направления работы выводов порта В

PortA equ 05h ; Регистр управления защелками порта А

PortB equ 06h ; Регистр управления защелками порта В

Cmcon equ 1Fh ; вкл/выкл компараторов

F equ 1 ; Результат направить в регистр.

FSR equ 04h ; регистр адреса при косвенной адресации

INDF equ 0h ; регистр косвенной адресации

Cr equ .50 ; значение счетчика для паузы

EEADR equ 1Bh ; адрес EEPROM

EECON1 equ 1Ch ; управляющий регистр для работы c EEPROM

EEDATA equ 1Ah ; регистр данных из/в EEPROM

;********************************************************

; Пусть у нас RA1, RA2, RA3, RA6, RA7 - выход строки

; RB3, RB4, RB5, RB6, RB7 - выходы столбцы

;********************************************************

Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21

рефераты
Новости