- •Введение
- •Теоретическая часть
- •Общая характеристика 32-разрядных arm-микроконтроллеров
- •Архитектура, принцип работы и возможности 32-разрядных arm-микроконтроллеров серии stm 32 f100 c4
- •Порты общего назначения gpio
- •Организация памяти в микроконтроллерах stm32
- •Универсальный последовательный порт usart
- •Микропроцессорная система на базе 32-разрядного avr-микроконтроллера серии stm32
- •Рекомендации по включению микроконтроллера pic16f84a
- •Расчетная часть
- •Расчет принципиальной схемы устройства на базе микроконтроллера pic16f84a
- •Разработка блок схемы алгоритма работы микроконтроллера
- •Разработка программы и hex-файла программы
- •Разработка печатной платы устройства
- •Заключение
- •Список используемых источников
Расчет принципиальной схемы устройства на базе микроконтроллера pic16f84a
В расчетной части необходимо произвести расчет и обоснование электронных компонентов, подключенных к микроконтроллеру.
Для работы МК необходимо подать напряжение в диапазоне 9-12В на стабилизатор КР142ЕН5А, который понижает напряжение до фиксированного значения 5В. Конденсатор С1 емкостью 470мкФ сглаживает пульсации напряжения, а С4 - конденсатор развязки емкостью 0.1 мкФ между шинами питания Vdd и земли GND, так как при переключении больших выходных токов в схеме могут возникать значительные импульсные помехи. Схема питания PICMicro представлена на рисунке 2.2.1.
Рисунок 2.2.1 – Схема питания PICMicro
Светодиод надо подключать через резистор. Прямое сопротивление светодиода очень мало, если не ограничивать ток через него, то он просто может сгореть. Либо, что вероятней, пожечь вывод микроконтроллера. А для нормального свечения обычному светодиоду надо около 3…15мА.
Напряжение на выводе МК около 5 вольт, падение напряжения на светодиоде около 2 вольт.
Для подключения к МК будут использоваться 3 светодиода красного цвета АЛ112А с параметрами:
Uпр= 2В Iпр = 10mA
Таким образом, напряжение которое должен взять на себя ограничительный резистор будет 5-2= 3В.
Ток 10мА
По закону Ома рассчитаем номинал ограничительного резистора:
R=U/I= 3/10 = 300Ом.
R1=R2=R3 = 300Ом
Исходя из расчетов для резисторов R1-8 должны быть по 300 Ом.
Разработанная схема с номиналами компонентов приведена на рисунке 2.2.2.
Рисунок 2.2.2 – Принципиальная схема устройства
Разработка блок схемы алгоритма работы микроконтроллера
Прежде чем разрабатывать программу на языке Assembler, составим блок схему алгоритма работы микроконтроллера. Вначале мы произведем настройку нашего микроконтроллера, затем настройку подпрограммы прерывания по переполнению таймера. После чего будет запрос прерываний. Если ответ положительный, то мы переключаем Д1, затем производим опрос кнопки, если же нет, то производим опрос кнопки. Если во время опроса кнопки она нажата, то Д2 будет гореть, если же нет, то Д2 не будет гореть. После чего цикл повторяется снова, пока программа не будет отключена пользователем. В соответствии с высказанным блок схема алгоритма работы МК будет иметь следующий вид, представленный на рисунке 2.3.1.
Рисунок 2.3.1 – блок схема алгоритма работы МК
Разработка программы и hex-файла программы
-
LIST
P=16F84A;
INCLUDE
<P16F84A.INC>;
__CONFIG _WDT_OFF & _CP_OFF & _XT_OSC & _PWRTE_ON; XT кварц осцилятор, WDT выключен, PWRTE выключен, защита кода отключена
CBLOCK
0CH;
_W
_STATUS
ENDC
ORG
0;
GOTO
START;
С первой команды подпрограммы START
OUH
NOP
NOP
ORG
4;
GOTO
INT;
Безусловный переход
START
BSF
STATUS,5;
Заносим 1 в разряд 5 регистра STATUS
MOVLW
B’11110111’;
8-ми разрядную константу заносим в регистр W
MOVWF
TRISB;
TRISBзаписываем в регистр F
MOVLW
B’11100111’;
MOVWF
OPTION_REG;
BCF
STATUS,5;
Заносим 0 в разряд 5 регистра STATUS
BCF
PORTB,0;
CLRF
TMRO;
Заноси 0 во все рязряды регистра F
MOVLW
B’10100000’;
MOVWF
INTCON;
LOOP
BTFSC
PORTB,5;
Если значение разряда 5, то выполняется NOP
GOTO
SETBIT;
Переход по адресу SETBIT
BCF
PORTB,8;
GOTO
LOOP;
SETBIT
BSF
PORTB,8;
GOTO
LOOP;
INT
MOVWF
_W;
MOVF
STATUS,W;
MOVWF
_STATUS;
BCF
INTCON,2;
MOVLW
.1;
XORWF
PORTB;
MOVF
_STATUS,W;
MOVWF
STATUS;
SWAPF
_W;
Все разряды _W заносятся в W
SWAPF
_W,W;
RETFIE;
Возврат из прерывания
END
