Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Разработка схемы электрической принципиальной




 

По имеющемуся набору данных построим электрическую схему светодиодной матрицы в Компас 3D 2013 с набором библиотек ESKB.

Рисунок 2.10 – Схема электрическая принципиальная светодиодной матрицы.

 

 

Расчёт надежности

 

При разработке МП системы согласно заданию необходимо рассчитать надежность данного устройства. Для расчета надежности были взяты исходные данные из справочной литературы.

Задача расчета:

В ходе расчета должны быть определены следующие показатели надежности:

1.Расчет блока на отказ λбл.

2.Средняя наработка на отказ,Τср.

3.Вероятность безотказной работы за 20000 часов наработки, P(Τ).

Условия расчета:

Расчет интенсивности элементов произведен при следующих допусках:

· Отказы элементов,входящих в состав блока,события независимые,случайные.

· Нормальные климатические условия эксплуатации

Исходные данные для расчета:

· Схема электрическая принципиальная

· Перечень элементов

· Средняя статистическая интенсивность отказов элементов в нормальных климатических условиях и при нормальной климатической нагрузке.

Условия эксплуатации блока:

· Наработка блока Τ=20000 часов.

· Средняя наработка на отказ Τср должна быть не менее 20000 часов

Расчет показателей надежности:

Определение показателей надежности при экспоненциальном законе распределения.

 

Обозначения в схеме Наименования ИМС Кол-во n λ10*10-6 1/час λ10*10-6 *N 1/час Поправочные коэффициенты
   
DD1 KP1816BE31   0,013 0,013    
DD2 KP555ИР22   0,013 0,013    
DD3 КР556РТ16   0,013 0,013    
DD4 КР537РУ17   0,013 0,013    
DD5 К155ЛИ5   0,013 0,013    

-Расчет параметра потока отказа блока:

Наименование элемента λi*10-6-1) KH KT Ni λi*Ni*KH*KT*10-6
Микросхема DA1 0,013       0,013
Итого: 0,013*10-6-1)

Расчет вероятности безотказной работы:

P(5000)=0,013-1,619*10-6*5000=0,991=99,1[%]

Временная диаграмма

Заключение

 

В процессе выполнения курсовой работы было разработано устройство светодиодной матрицы на микроконтроллере PIC16F628A. Актуальностью данной темы являлось то, что в процессе проектирования ставилась задача спроектировать устройство, которое не имело бы аналогов и отличалось новизной, простотой и дешевизной.

Было разработано устройство, которое превосходит по выполняемым функциям устройства-аналоги.

В похожих конструкциях наблюдается отсутствие нескольких функций нашего устройства, а главным недостатком нашего устройства является отсутствие внутреннего источника питания, а это в свою очередь вызовет еще повышение стоимости устройства.

В процессе разработки было изучено множество отечественных и зарубежных источников, информация сети Интернет, технические характеристики и принцип действия устройств-аналогов.

В процессе разработки был составлен алгоритм управления, программное обеспечение микроконтроллера, произведен расчет элементов электрической схемы, согласно справочных данных.

Литература

 

1. Н.С. Кувшинов, А.Л. Хейфец, Челябинск 2010. Схемы электрические принципиальные в инженерной графике.

2. А. В. Белов. Создаём устройство на микроконтроллерах. – М: Издательство: Наука и техника, 2007, 307 стр.

3. Конструкторское технологическое проектирование электронной аппаратуры, под ред. В.А. Шахнова, Москва, МГТУ им. Н.Э. Баумана,2010;

4. ГОСТ 14. 301-83 «Общее правило разработки технологического процесса»;

5. ОСТ 3. 050. 014 «Типовые технологические процессы сборки и монтажа»;

6. Общие сведения об автономной системе управления освещением отдельного помещения http://make-smart-room.com/common/2012/05/01/obschie-svedeniya-o-avtonomnoy-sisteme-upravleniya-osvescheniem-otdelnogo-pomescheniya.html (доступ свободный)

 

 

ПРИЛОЖЕНИЕ А

 

Программа для «Эффект -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) ******************************ЭФФЕКТ*********************************

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 - выходы столбцы

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

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,0; Сбросить флаг переноса (С) (после старта он может быть любым)

;******** Загрузка данных для фреймов из EEPROM в ОЗУ *******************************************************

;--------- Сначала прочитаем первый байт - узнаем, сколько фреймов надо считать ------------------

movlw.0; банк менять не надо, мы уже в первом банке

movwf EEADR; установить адрес для чтения из EEPROM

bsf EECON1,0; чтение

movf EEDATA,0; запись прочитанного байта в аккумулятор

bcf Status,5; Перейти в 0-й банк (установить в 0 5-й бит регистра Status)

movwf Fr_kol; сохранение прочитанного байта в Fr_kol

;-------- Fr_kol*5+1 - узнаем сколько байт надо считать --------------------------

rlf Fr_kol,0; умножаем на 2

movwf Temp

rlf Temp,0; еще на 2 (после этой команды в аккумуляторе Fr_kol*4)

addwf Fr_kol,0; после этого в аккумуляторе Fr_kol*5

movwf Temp; сохраняем это значение в Temp

incf Temp,1; теперь Temp=Fr_kol*5+

;---------- Считываем Fr_kol*5+1 байт ----------------------------------------------

movlw 28h; считанные данные сохраняем начиная с этого адреса (первый байт в Fr_cikl_kol и далее...)

movwf FSR; адрес для косвенной адресации

movlw.1; начинаем читать EEPR

movwf Adr; с адреса 1

zagruzka bsf Status,5; перейти в первый банк

movwf EEADR; загружаем из аккумулятора адрес для чтения из EEPROM

bsf EECON1,0; чтение

movf EEDATA,0; запись прочитанного байта в аккумулятор

bcf Status,5; Перейти в 0-й банк (установить в 0 5-й бит регистра Status)

movwf INDF; сохраняем считанный байт по адресу, записанному в FSR

incf FSR,1; увеличиваем адрес ОЗУ

incf Adr,1; увеличиваем адрес EEPROM

movf Adr,0; загружаем адрес EEPROM в аккумулятор

decfsz Temp,1; если считали все байты - следующая команда пропускается

goto zagruzka

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

effect movlw 29h; загружаем адрес начала первого фрейма в ОЗУ (2h) в переменную Adr

movwf Adr;

movf Fr_kol,0; загружаем кол-во фреймов

movwf Fr_sch; в счетчик фреймов

show movf Fr_cikl_kol,0; загружаем кол-во показов одного фрейма

movwf Fr_cikl; в счетчик показов фрейма

povtor call show_frame; показываем один фрейм Fr_cikl кол-во раз

decfsz Fr_cikl,1

goto povtor

movlw.5; переходим к следующему фрейму (сдвигаем Adr на 5)

addwf Adr,1

decfsz Fr_sch,1; уменьшаем счетчик фреймов для показа

goto show; если не все наборы показаны, то переходим к следующему

goto effect; если все, то начинаем сначала

*************************************************************************** Процедура показа одного фрейма *********************************************************************

show_frame movf Adr,0; загружаем в FSR адрес начала фрейма

movwf FSR

movlw b'00000001'; начинаем с первой строки

movwf Strok

show_next movf INDF,0; загружаем набор столбцов для выбранной строки

movwf Stolb; аккумулятор в stolb

call in_ports

call pause

call erase

incf FSR,1; следующий набор строк

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

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

goto show_next

return

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

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 Cr

movwf T_int; загрузить кол-во циклов задержки

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

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

return

;*********************** Гашение всех светодиодов ***********************

erase movf Strok,0

movwf Temp

movlw.0

movwf Stolb

movwf Strok

call in_ports

movf Temp,0

movwf Strok

return

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

org 2100h; EEPROM память

de.6,.40; кол-во фреймов и кол-во показов одного фрейма (скорость)

de b'00000100', b'00000100', b'00011111', b'00000100', b'00000100'; первый фрейм

de b'00001000', b'00000101', b'00001110', b'00010100', b'00000010'; второй фрейм

de b'00001000', b'00001011', b'00000100', b'00011010', b'00000010'; третий фрейм

de b'00010001', b'00001010', b'00000100', b'00001010', b'00010001'; четвертый фрейм

de b'00000010', b'00011010', b'00000100', b'00001011', b'00001000'; пятый фрейм

de b'00000010', b'00010100', b'00001110', b'00000101', b'00001000'; шестой фрейм

 





Поделиться с друзьями:


Дата добавления: 2016-03-27; Мы поможем в написании ваших работ!; просмотров: 726 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Есть только один способ избежать критики: ничего не делайте, ничего не говорите и будьте никем. © Аристотель
==> читать все изречения...

2188 - | 2139 -


© 2015-2024 lektsii.org - Контакты - Последнее добавление

Ген: 0.013 с.