
- •А.В. Шарапов
- •Оглавление
- •Предисловие
- •1 Общая характеристика микроконтроллеров avr, программная модель и система команд
- •2 Директивы ассемблера
- •Include — Вложить другой файл
- •Форматы представления чисел
- •3 Программный пакет avrStudio
- •4 Микроконтроллер aTtiny15l(лабораторная работа №1)
- •Таймеры aTtiny15l
- •Энергонезависимая память данных еeprom
- •Аналоговый компаратор
- •Аналого-цифровой преобразователь
- •Программа работы
- •Контрольные вопросы
- •Содержание отчета
- •Перечень команд микроконтроллера aTtiny15l
- •5 Микроконтроллер aTmega8 (лабораторная работа № 2)
- •Порты ввода-вывода
- •16-Разрядный таймер-счетчик т1
- •Регистры таймера т1
- •Режимы работы таймера т1
- •Нормальный режим работы (Normal)
- •Режим сброса таймера при совпадении (стс)
- •Режим быстрой шим (Fast pwm)
- •Режим шим с фазовой коррекцией (Phase Correct pwm)
- •Режим шим с фазовой и частотной коррекцией
- •Прерывания от таймеров /счетчиков
- •Программа работы
- •Контрольные вопросы
- •Содержание отчета
- •6 Средства разработки программы на языке си, компиляторы и симуляторы
- •7 Язык си для микроконтроллеров
- •Структура программы на языке Си
- •Пункт 4. Объявление переменных
- •8 Загрузка программы в микроконтроллер
- •9 Моделирование работы микроконтроллера avrс помощью симулятораvmlab (лабораторная работа №3)
- •Программа работы
- •Содержание отчета
- •10 Моделирование работы микроконтроллера avr с помощью симулятора proteus vsm
- •11 Основные этапы выполнения курсового проекта по проектированию микропроцессорных систем
- •1. Конкретизация технического задания
- •2. Разработка функциональной схемы устройства, распределение функций между аппаратными и программными средствами
- •3. Разработка схемы алгоритма прикладной программы
- •4. Разработка принципиальной электрической схемы устройства с перечнем элементов
- •5. Разработка прикладной программы
- •6. Оформление и защита проекта
- •7. Варианты заданий на курсовое проектирование
- •Приложение а
- •2007 Приложение б
- •Приложение в
- •Приложение г
- •Приложение д
- •Приложение ж
- •Приложение и
- •Приложение к
- •12 Пример выполнения курсового проекта измеритель частоты сети
- •Обоснование алгоритма решения задачи
- •Разработка прикладной программы
- •Моделирование работы устройства с помощью vmlab
- •Моделирование работы устройства с помощью симулятора proteus vsm
- •Литература
Приложение г
(справочное)
Пример оформления разделов пояснительной записки
4 1
ВВЕДЕНИЕ
Применение микропроцессорных средств
позволяет строить универсальные
устройства управления светофором,
легко перестраиваемые на различные
режимы его работы.
Анализ технического задания показывает,
что проектируемое устройство должно
выполнять три основные задачи:
а) содержать часы реального времени;
б) формировать требуемый набор циклически
повторяющихся временных задержек для
управления лампами светофора в дневное
и ночное время, причем желательно иметь
возможность перестраивать время
задержек;
в) в ночное время должно постоянно
тестировать кнопку СТОП и при ее нажатии
реализовать один цикл работы ламп
светофоров, обеспечивающий возможность
пешеходу перейти главную улицу.
2 КОНКРЕТИЗАЦИЯ
ТЕХНИЧЕСКОГО ЗАДАНИЯ
Одновременное выполнение поставленных
задач облегчается при использовании
таймера и режима прерывания программы
по его переполнению. Таймер синхронизирует
работу различных счетчиков (секунд,
минут, часов, формирователей задержек).
При использовании микропроцессорного
комплекта серии К580 устройство управления
светофором кроме центрального процессора
(пять микросхем) должно включать в себя
параллельный интерфейс, программируемый
таймер, ПЗУ для хранения прикладной
программы и ОЗУ для организации стека.
Предпочтительнее использование
однокристальных микроконтроллеров,
где все перечисленные устройства
реализованы в одной микросхеме и
требуется лишь один источник питания.
Наиболее оптимальное решение получается
при применении микроконтроллеров
семейства МК51 [7] с более гибкой и развитой
системой команд и многофункциональным
таймером. Самый экономичный вариант
реализуется при использовании микросхем
серии К1830, выполненных по КМОП технологии.
5
Конкретизируем алгоритм работы светофора
(таблица 2.1). С шести часов утра до 24
часов циклически повторяются шесть
верхних состояний, приведенных в таблице
2.1, с полуночи до шести часов утра - два
нижних (режим нерегулируемого
перекрестка). Днем на светофоре главного
направления в течение 30 с горит зеленый
свет (З1), затем на секунду все гаснут
и на 5 с загорается желтый (Ж1). Затем
20 с горит красный (К1), на секунду гаснет
и загорается еще на 5 с, когда на
второстепенном направлении горит
желтый свет (Ж2), после чего цикл
повторяется. Ночью через секунду
загораются и гаснут лампы желтого
света.
Таблица 2.1 –
Алгоритм переключения ламп светофора
З1 Ж1
К1 З2
Ж2 К2
Время, с 1
0 0
0
0 0
0
1 0
0
0 1
0
0 0
0
0 1 0
0 1
0
0 0
0
0 1
1
0 0
0
0 0
0
1 0
30
1 5
20
1 5 0
0 0
0
1 0
0
0 0
0
1 0
1
1
3
РАЗРАБОТКА ФУНКЦИОНАЛЬНОЙ СХЕМЫ
На рисунке
3.1 приведена функциональная схема
устройства управления светофором,
выполненного на однокристальном
микроконтроллере К1830ВЕ31. Фиксация
адреса очередной ячейки памяти программ
(ПЗУ на микросхеме К573РФ5) производится
с помощью регистра К580ИР82. Управляющие
сигналы на светофоры подаются через
линии порта Р1. Через порт Р2 и дешифраторы
(К514ИД1) подключаются цифровые индикаторы
часов текущего времени (АЛС324А). Линии
T0, T1 и INT1 порта Р3 используются как
тестируемые входы, линия INT0 - как выход
сигнала управления запятой цифрового
индикатора (программа ежесекундно
реализует инверсию этого бита). Для
безопасного перехода улицы ночью
предусмотрена кнопка S3 ( СТОП ), при
нажатии которой в течение 20 с горит
красный свет на главном направлении.
6
T0 SMC PME
P0
T1
INT1 ALE
RST
P1
VPP
BQ1
BQ2
P2
OV
E
INT0
OE ROM
D
A
A8 A9 A10 CS
мин
S1
ч
8
S2
D RG OE STB
стоп 8
S3
10.0
+5 В
3
8.2 к
3
30 пФ
DC
30 пФ
4 7
DC
4 7
+5 В
Рисунок 3.1 – Функциональная схема контроллера
7
Так как программа реализации конкретного
режима работы светофора легко размещается
в одной странице памяти программ (256
байт), в микросхеме ПЗУ зашито восемь
независимых программ, выбор которых
осуществляется распайкой перемычек
на адресных входах A8, A9 и A10. В некоторых
программах старшие две линии порта Р1
используются для управления стрелками
дополнительных указателей светофора.
13
6
РАЗРАБОТКА УПРАВЛЯЮЩЕЙ ПРОГРАММЫ
Листинг управляющей программы приведен
в приложении А. После подачи сигнала
сброса RST производится начальная
загрузка регистров, с помощью которых
реализуется секундная задержка, а
также счетчиков секунд, минут и часов.
Таймер/счетчик Т/С1 настраивается на
работу в режиме 2, когда TL1 работает
как 8-битный автоперезагружаемый таймер,
а TH1 хранит значение, которое перезагружается
в TL1 каждый раз по переполнению.
Разрешаются прерывания от Т/С1 и после
его запус-ка они происходят через
каждые 100 машинных циклов (100 мкс при
частоте кварца 12 МГц), вызывая выполнение
подпрограммы обслуживания с начальным
адресом 1ВН. Через 10000 прерываний,
которые подсчитывают счетчики на
регистрах R0 и R1, т.е. ежесекундно,
выполняются команды, размещенные в 26,
27 и 28 строках листинга программы, а
затем с 45 по 51. Ежесекундно реализуется
инверсия бита INT0, декремент счетчика
R6, проверяется значение счетчика часов
R3 и устанавливается флаг пользователя
F0=1 для дневного режима работы и F0=0 -
для ночного.
..............
8
Сброс
Инициализация
да Значение времени нет
от 6 до 24 ч?
Программа
ДЕНЬ
Дневной режим
работы светофора Программа
НОЧЬ
Ночной режим
работы
светофора
п/п прерывания
да Кнопка нет
ЧАСЫ
СТОП
Возврат нажата?
цикл
СТОП
Рисунок 4.1 – Схема алгоритма прикладной программы
14 Двоично-десятичный
счетчик минут реализован на регистре
R5 и аккумуляторе, аналогичный счетчик
часов – на регистрах R3 и A. При включении
контроллера сбрасывается счетчик
минут, а в счетчик часов и на цифровые
индикаторы заносится число 06. Установка
реального времени производится в
следующей последовательности. Сначала
нажимают кнопку S1 до тех пор, пока
индикаторы покажут требуемое число
минут. Затем нажимают кнопку S2 и держат
до тех пор, пока не высветятся нужные
цифры часов. Коррекция осуществляется
подачей секундных импульсов на счетчики
минут и часов. Время
выполнения подпрограммы обслуживания
прерываний меняется от 4 до 43 мкс. На
такое время через каждые 100 мкс процессор
отвлекается от выполнения основных
программ DAY и NIGHT, управляющих работой
светофора в дневном и ночном режиме.
Необходимые управляющие сигналы
последовательно записываются в порт
Р1, а время их продолжения задается
счетчиком на регистре R6, который
ежесекундно декрементируется при
обслуживании прерываний.
7
ЗАКЛЮЧЕНИЕ
В контроллере
можно использовать любые микросхемы
семейства МК51. Схема упрощается, если
применяются микросхемы с резидентной
памятью программ (К1816ВЕ51, К1830ВЕ51). В
этом случае исключаются регистр и
внешнее ПЗУ, а освободившиеся линии
порта Р0 можно задействовать для выбора
программ или постоянной индикации
минут текущего времени (в пояснительную
записку вложена принципиальная схема
именно такого варианта реализации
устройства). Можно применить кварц на
6 МГц, в два раза уменьшив число,
загружаемое в регистр R0 командами,
расположенными в восьмой и 23 строках
программы.
П
15
(обязательное)
ЛИСТИНГ УПРАВЛЯЮЩЕЙ ПРОГРАММЫ
1 ; Начальная установка и запуск часов в 6.00
3 0000 ORG 00H
4 0000 7B06 MOV R3,#6 ; Начальная загрузка
5 0002 8BA0 MOV P2,R3 ; счетчика часов
6 0004 7D00 MOV R5,#0 ; Начальная загрузка
7 ; счетчика минут
8 0006 7864 MOV R0,#100 ; Начальная загрузка
9 0008 7964 MOV R1,#100 ; счетчиков генератора
10 000A 7A3C MOV R2,#60 ; минутных импульсов
11 000C 758D9C MOV TH1,#156 ;
12 000F 758920 MOV TMOD,#20H ; Т/С1 в режиме 2
13 0012 75A888 MOV IE,#88H ; Разрешение
14 ; прерываний от Т/С1
15 0015 D28E SETB TR1 ; Старт таймера Т/С1
16 0017 803C SJMP DAY ; Переход к основной
17 ; программе
19 ; Подпрограмма обслуживания прерываний
21 001B ORG 1BH ; Вектор прерывания
22 001B D837 JNZ R0,EXIT ; Задержка в одну
23 001D 7864 MOV R0,#100 ; секунду
24 001F D933 DJNZ R1,EXIT
25 0021 7964 MOV R1,#100
26 0023 30B407 JNB T0,M1 ; Коррекция минут
27 0026 30B50E JNB T1,M2 ; Коррекция часов
28 0029 DA1D DJNZ R2,M5 ; Счетчик секунд
29 002B 7A3C MOV R2,#60
30 002D ED M1: MOV A,R5 ; Счетчик минут
31 002E 2401 ADD A,#1
32 0030 D4 DA A
33 0031 FD MOV R5,A
34 0032 BD600E CJNE R5,#60H,M4
35 0035 7D00 MOV R5,#0
36 0037 EB M2: MOV A,R3 ; Счетчик часов
37 0038 2401 ADD A,#1
38 003A D4 DA A
39 003B FB MOV R3,A
40 003C BB2402 CJNE R3,#24H,M3
41 003F 7B00 MOV R3,#0
42 0041 8BA0 M3: MOV P2,R3 ; +1 час
43 0043 20B402 M4: JB T0,M5
44 0046 8DA0 MOV P2,R5 ; +1 минута
45 0048 C2D5 M5: CLR F0 ; F0=0,
16
46 004A BB0600 CJNE R3,#6,$+3 ; если меньше
47 004D 4002 JC M6 ; 6 часов,
48 004F D2D5 SETB F0 ; иначе F0=1
49 0051 1E M6: DEC R6 ; -1 секунда
50 0052 B2B2 CPL INT0 ; Инверсия бита
51 0054 32 EXIT: RETI ; Возврат из п/п
52 ; Дневной режим работы светофора
53
54 0055 30D532 DAY: JNB F0,NIGHT ; Программа ДЕНЬ
55 0058 759021 MOV P1,#100001B
56 005B 7E1E MOV R6,#30
57 005D BE00FD CJNE R6,#0,$
58 0060 759000 MOV P1,#000000B
59 0063 7E01 MOV R6,#1
60 0065 BE00FD CJNE R6,#0,$
61 0068 759011 MOV P1,#010001B
62 006B 7E05 MOV R6,#5
63 006D BE00FD CJNE R6,#0,$
64 0070 75900C MOV P1,#001100B
65 0073 7E14 MOV R6,#20
66 0075 BE00FD CJNE R6,#0,$
67 0078 759000 MOV P1,#000000B
68 007B 7E01 MOV R6,#1
69 007D BE00FD CJNE R6,#0,$
70 0080 75900A MOV P1,#001010B
71 0083 7E05 MOV R6,#5
72 0085 BE00FD CJNE R6,#0,$
73 0088 80CB SJMP DAY
74
75 ; Ночной режим работы светофора
76
77 008A 20D5C8 NIGHT: JB F0,DAY ; Программа НОЧЬ
78 008D 30B30D JNB INT1,STOP ; Проверка кнопки
79 0090 20B205 JB INT0,M7
80 0093 759000 MOV P1,#000000B
81 0096 80F2 SJMP NIGHT
82 0098 759012 M7: MOV P1,#010010B
83 009B 80ED SJMP NIGHT
84 009D 75900C STOP: MOV P1,#001100B ; Программа СТОП
85 00A0 7E14 MOV R6,#20
86 00A2 BE00FD CJNE R6,#0,$
87 00A5 80E3 SJMP NIGHT
Контрольная сумма: 2F1E