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

 

По имеющемуся набору данных построим электрическую схему светодиодной матрицы в Компас 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' ; шестой фрейм