- •А.В. Шарапов
- •1. Основные этапы выполнения курсового проекта по проектированию микропроцессорных систем
- •1.1 Конкретизация технического задания
- •1.2. Разработка функциональной схемы устройства,
- •1.3. Разработка схемы алгоритма прикладной программы
- •1.4. Разработка принципиальной электрической схемы
- •1.5. Разработка прикладной программы
- •1.6. Оформление и защита проекта
- •2. Варианты заданий на курсовое проектирование
- •3. Средства разработки программы на языке си, компиляторы и симуляторы
- •4. Язык си для микроконтроллеров
- •Структура программы на языке Си
- •Пункт 4. Объявление переменных
- •5. Загрузка программы в микроконтроллер
- •6. Моделирование работы микроконтроллера avrс помощью симулятораvmlab
- •Программа работы
- •Xdisp lcd(16 2 250k) pa0 pa1 pa2 pa7 pa6 pa5 pa4 nc3 nc2 nc1 nc0
- •Void main(void){
- •If(pind.6){
- •Контрольные вопросы
- •8. Пример выполнения курсового проекта измеритель частоты сети
- •Обоснование алгоритма решения задачи
- •Разработка прикладной программы
- •Version : от 17 до 120 Гц
- •0X41,0xA0,0x42,0xA1,0xE0,0x45,0xA3,0xA4,
- •Моделирование работы устройства с помощью proteus
- •Приложение а
- •2009 Приложение б
- •Приложение в
- •Приложение г
- •Приложение д
- •Приложение ж
- •Приложение и
- •Приложение к
- •Литература
Приложение ж
(справочное)
Пример оформления перечня элементов для схем электрических принципиальных

Приложение и
(справочное)
Пример оформления текстовой части пояснительной
записки с рисунками принципиальных схем
Схема, изображенная на рис. 4, предназначена для работы индикаторов в режиме динамической индикации.
Выводы одноименных сегментов всех разрядов индикатора объединены вместе и подключены к порту Р1 микроконтроллера. При этом линия Р1.0 управляет сегментом «а» каждого индикатора, линия Р1.1 — сегментом «b». И так далее.

Рисунок 4 – Схема включения четырех семисегментных индикаторов
с динамической индикацией
Возможность поочередного выбора сегментов обеспечивается при помощи дешифратора DD2 и четырех транзисторных ключей VT1...VT4. На вход дешифратора поступает управляющие сигналы с выводов Р3.0 и P3.1. Подавая на эти выходы код номера разряда (от 00В до 11В), микроконтроллер может включать соответствующий разряд. При этом все остальные разряды будут выключены.
Как известно, недостатком электромагнитных реле является их недолговечность, связанная с подгоранием и быстрым изнашиванием его контактов. А также акустические шумы в процессе его работы. На рис.5 показана схема исполнительного устройства без использования электромагнитных реле. Здесь в качестве управляющего элемента используется симистор VS1. Для обеспечения гальванической развязки между силовой и управляющей цепями используется оптодинистор U1. Светодиод VD1 служит для индикации срабатывания ключа. Симистор ТС106-10 рассчитан на ток до 10 А. Промышленность выпускает несколько классов таких симисторов. Они различаются по максимально допустимому рабочему напряжению. Для работы в цепях с напряжением до 220 В рекомендуется применять симисторы 4-го класса.


Рисунок 5 – Схема модуля управления сильноточной нагрузкой
Выбираем транзистор КТ361Б со следующими параметрами:
Iк мах=50 мА;
Uкэ мах=35 В;
h21э=50;
Pk мах=150 мВт;
Uкэ нас=0,6 В.
В качестве диода VD1 выбираем АЛ307Б с параметрами:
Iпр = 10 мА.
В качестве оптодинистора U1 выбираем АОУ103В с параметрами:
Iвх мах=20 мА;
I откр мах =0,1 А.
Выбираем диодный мост КЦ407 с параметрами:
I пр мах = 0,5 А;
Uобр мах = 400 В.
Приложение к
(обязательное)
Пример оформления управляющей программы на ассемблере
;--------------------------------------------------------
; Электронный таймер
;--------------------------------------------------------
.include "m163def.inc" ; Включить файл m163def.inc
.cseg
;Рабочие переменные
.def min =R16 ;минуты
.def des_min =R17 ;десятки минут
.def sec1 =R18 ;секунды
.def des_sec1 =R19 ;десятки секунд
;--------------------------------------------------------
; вектора прерываний
;--------------------------------------------------------
rjmp RESET
reti
reti
reti
;--------------------------------------------------------
; rjmp T2; прерывание по переполнению (1 секунда)
;--------------------------------------------------------
T2:
tst sec1
brne met4 ; если не 0
ldi sec1,9
tst des_sec1
brne met5 ; если не 0
ldi des_sec1,5
tst min
brne met6 ; если не 0
ldi min,9
dec des_min ; декремент десятков минут
rjmp displey
met6:
dec min ; декремент минут
rjmp displey
met5:
dec des_sec1 ; декремент десятков секунд
rjmp displey
met4:
dec sec1 ; декремент секунд
displey:
mov r22,des_sec1 ; вывод на дисплей
swap r22
add r22,sec1
out PortA,r22 ; секунды
mov r22,des_min
swap r22
add r22,min
out PortB,r22 ; минуты
reti ; Выход из прерывания
;--------------------------------------------------------
RESET:
ldi R16,LOW(RAMEND) ; Установка Стека
out SPL,R16
;--------------------------------------------------------
; Настройка портов ввода вывода
;--------------------------------------------------------
ser R16 ; Настройка портов
out DDRA,R16 ; порт А на передачу
out DDRB,R16 ; порт В на передачу
ldi R16,0b00010000 ; Настройка PС0-PС1 на прием
out DDRB,R16 ; а PС5 на передачу
;--------------------------------------------------------
; Обнуление регистров
;--------------------------------------------------------
clr min
clr des_min
clr sec1
clr des_sec1
;--------------------------------------------------------
; Вывод на дисплей 0.00 0.00
;--------------------------------------------------------
clr r22
out PortA,r22
out PortB,r22
;--------------------------------------------------------
; Настройка таймера Т2
;--------------------------------------------------------
ldi R22,0b00010110
out TCCR2,r22
;--------------------------------------------------------
MAIN:
SBIC PortC,1 ; Пропустить, если кнопка нажата
rjmp main
inc min ; увеличение значения минут на 1
opros:
mov r22,des_min
swap r22
add r22,min
out PortB,r22 ; вывод на дисплей минут
SBIS PortC,0 ; Пропустить, если кнопка не нажата
rjmp zapusk
SBIS PortC,1 ; Пропустить, если кнопка не нажата
inc min ; увеличение значения минут на 1
cpi min,10 ; сравниваем, значение минут = 10
brne opros ; если не равно, то переходим на опрос
clr min ; если равно, то обнуляем
inc des_min ; инкремент десятков минут
rjmp opros
;--------------------------------------------------------
zapusk:
tst min ; проверка, кончилось ли время
brmi konec ; если да, то конец
rjmp zapusk
;--------------------------------------------------------
konec: ; если время вышло
ldi R22,0b00010110 ;
out TCCR2,r22 ; остановка таймера Т2
sbi PortC,5 ; включить нагреватель
rjmp konec ; зацикливаем программу
;--------------------------------------------------------
