Оглавление Предисловие |
1 |
1. Обзор микроконтроллеров |
3 |
1.1. Сравнительные характеристики микроконтроллеров |
6 |
1.2. Структура и принцип работы PIC16F876A |
6 |
1.2.1. Блок-схема |
6 |
1.2.2. Флэш-память программ |
8 |
1.2.3. Обработка данных в АЛУ |
9 |
1.2.4. Регистр состояния |
10 |
1.2.5. Адресация оперативной памяти или регистров ОЗУ |
10 |
1.2.6. Вызов подпрограмм |
12 |
1.2.7. Косвенная адресация |
14 |
1.2.8. Чтение и запись внутренней EEPROM-памяти |
16 |
2. Команды ассемблера PIC16F876A |
21 |
2.1. Обзор команд |
22 |
2.2. Подробное описание команд ассемблера |
24 |
2.2.1. Общее |
25 |
2.2.2. Форматы чисел |
26 |
2.2.2.1. Двоичный формат |
26 |
2.2.2.2. Восьмеричный формат |
27 |
2.2.2.3. Шестнадцатеричный формат |
27 |
2.2.2.4. Десятичный формат |
27 |
2.2.2.5. ASCII-формат |
28 |
2.2.2.6. Подведение итогов |
29 |
2.2.3. Логические операции |
30 |
2.2.4. Команды сдвига |
38 |
2.2.5. Арифметические команды |
43 |
2.2.6. Команды передачи управления |
47 |
2.2.7. Прочие команды |
58 |
3. Программирование с помощью MPLAB |
63 |
3.1. Установка MPLAB |
64 |
3.2. Настройка каталога проекта |
64 |
3.3. Создание проекта |
65 |
3.4. Рабочий стол MPLAB |
69 |
3.5. Меню View |
74 |
3.5.1. Аппаратный стек |
75 |
3.5.2. Окно наблюдения |
75 |
3.5.3. Листинг дизассемблера |
76 |
3.5.4. EEPROM-память |
77 |
3.6. Точки останова |
77 |
3.7. Симулятор |
78 |
3.7.1. Основные настройки |
79 |
3.7.2. Асинхронный стимул |
79 |
3.7.3. Циклический синхронный стимул |
80 |
3.7.4. Другие вкладки окна Stimulus |
82 |
3.8. Логический анализатор |
82 |
3.9. Внутрисхемный отладчик ICD 2 |
84 |
3.10. Программирование |
91 |
3.11. Текстовый редактор |
92 |
4. Программный интерфейс |
95 |
4.1. Программирование с помощью ICD 2 |
95 |
4.2. Процесс программирования |
98 |
4.3. Биты конфигурации |
99 |
4.3.1. Генератор |
100 |
4.3.2. Сторожевой таймер |
101 |
4.3.3. Таймер включения питания |
102 |
4.3.4. Обнаружение провала напряжения |
102 |
4.3.5. Низковольтное программирование |
103 |
4.3.6. Защита чтения данных из EEPROM-памяти |
103 |
4.3.7. Запись Flash-памяти программы |
103 |
4.3.8. Защита кода |
104 |
4.3.9. Обзор битов конфигурации |
104 |
4.4. Микроконтроллеры OTP-типа |
105 |
5. Монтажная плата |
107 |
5.1. Описание схемы аппаратных средств |
107 |
5.1.1. Блок питания |
108 |
5.1.2. Интерфейс программирования |
108 |
5.1.3. Генерация тактовых импульсов |
109 |
5.1.4. Задание аналоговых напряжений |
109 |
5.1.5. Кнопки |
110 |
5.1.6. Индикация выходных сигналов на светодиодах |
111 |
5.1.7. Приемник инфракрасного излучения |
112 |
5.1.8. EEPROM-память |
112 |
5.1.9. Интерфейс RS-232 |
113 |
5.1.10. Жидкокристаллический индикатор |
113 |
5.1.11. Разъем для расширения |
114 |
5.2. Программное обеспечение |
115 |
5.2.1. Подключение внешних файлов |
115 |
5.2.2. Биты конфигурации |
116 |
5.2.3. Определения |
116 |
5.2.4. Переменные |
117 |
5.2.5. Макрокоманды |
117 |
5.2.6. Начало программы |
118 |
5.2.7. Инициализация |
119 |
6. Входы и выходы |
121 |
6.1. Расположение выводов PIC16F876A |
121 |
6.2. Обзор функций выводов |
123 |
6.3. Цифровые входы и выходы |
126 |
6.4. Пример программы "Управление светодиодами" |
130 |
7. Таймер |
133 |
7.1. 8-разрядный таймер (Timer0) |
134 |
7.2. 16-разрядный таймер (Timer1) |
135 |
7.3. Модуль таймера Timer2 |
141 |
8. Обработка аналоговых сигналов |
145 |
8.1. Аналого-цифровое преобразование |
145 |
8.1.1. АЦП-преобразование методом поразрядного уравновешивания |
147 |
8.1.2. Передаточная функция АЦП |
150 |
8.1.3. Вычисление значения напряжения |
151 |
8.1.4. Выравнивание оцифрованного значения |
152 |
8.2. Пример программы "Вольтметр" |
153 |
8.3. 16-битное сложение |
156 |
8.4. 16-битное вычитание |
157 |
8.5. Анализ оцифрованного значения |
157 |
9. Отображение данных на индикаторе |
163 |
9.1. Контроллер индикатора |
163 |
9.1.1. Набор символов |
164 |
9.1.2. Способы управления индикатором |
166 |
9.2. Инициализация индикатора |
168 |
9.3. Интерфейс аппаратных средств |
170 |
9.3.1. Подпрограмма для передачи команды |
171 |
9.3.2. Подпрограмма для передачи символа |
173 |
9.3.3. Макрокоманда для инициализации индикатора |
174 |
9.4. Пример программы "Hello World" |
175 |
10. Отображение на индикаторе аналогового напряжения |
179 |
10.1. Вычисление напряжения |
179 |
10.2. Подпрограмма "AD_konvertieren" |
181 |
10.3. Преобразование двоичного числа в десятичное число |
184 |
10.4. Основная программа |
187 |
11. Измерение мощности и сопротивления |
191 |
11.1. Измерение тока |
191 |
11.2. Двоичное умножение |
192 |
11.3. Двоичное деление |
196 |
11.4. Отображение расчетной мощности |
201 |
11.5. Отображение рассчитанного сопротивления |
205 |
12. Передача данных посредством последовательного интерфейса |
213 |
12.1. Последовательный интерфейс RS-232 |
214 |
12.1.1. Подключение через последовательный интерфейс |
214 |
12.1.2. Протокол интерфейса RS-232 |
215 |
12.2. Программное обеспечение для передачи данных |
217 |
12.3. Применение интерфейса USART |
218 |
12.3.1. Установка скорости в бодах |
219 |
12.3.2. Установка регистров TXSTA и RCSTA |
220 |
12.4. Пример программы "Управление с помощью компьютера" |
221 |
13. Передача данных по шине I?C |
227 |
13.1. Принцип работы интерфейса I?C |
227 |
13.2. Управление памятью EEPROM |
229 |
13.3. Пример программы "Сохранение измеренных значений в EEPROM-памяти" |
232 |
13.3.1. Подпрограмма Schreibe_EEPROM |
236 |
13.3.2. Подпрограмма Lese_EEPROM |
238 |
14. Переключение с помощью инфракрасного
дистанционного управления |
245 |
14.1. Протокол RC5 |
246 |
14.2. Пример программы "Инфракрасный переключатель" |
250 |
Приложение |
259 |
Распределение в памяти регистров микроконтроллера PIC16F876A |
259 |
Обзор регистров управления и состояния |
260 |
Регистр состояния — STATUS |
261 |
Регистр опций — OPTION_REG |
262 |
Регистр контроля прерываний — INTCON |
263 |
Первый регистр прерывания от периферии — PIR1 |
264 |
Второй регистр прерывания от периферии — PIR2 |
265 |
Регистр разрешения периферийных прерываний — PIE1 |
266 |
Регистр разрешения периферийных прерываний — PIE2 |
267 |
Регистр контроля питания — PCON |
268 |
Регистр управления модулем таймера 1 — T1CON |
269 |
Регистр управления модулем таймера 2 — T2CON |
270 |
Регистр состояния модуля MSSP — SSPSTAT (режим SPI) |
271 |
Регистр состояния модуля MSSP — SSPSTAT (в режим I?C) |
272 |
Регистр управления модулем MSSP — SSPCON (режим SPI) |
274 |
Регистр управления модуля MSSP — SSPCON (режим I?C) |
275 |
Второй регистр управления модулем MSSP — SSPCON2 (режим I?C) |
276 |
Регистр управления модулем Сравнения/Захвата/ШИМ — CCPxCON |
277 |
Регистр состояния и управления приемника модуля USART — RCSTA |
278 |
Регистр состояния и управления передатчика модуля USART — TXSTA |
280 |
Регистр управления модулем АЦП — ADCON0 |
281 |
Регистр управления модулем АЦП — ADCON1 |
282 |
Регистр управления модулем компаратора — CMCON |
283 |
Регистр управления опорным напряжением компаратора — CVRCON |
284 |
Регистр управления косвенной записи/чтения EEPROM-памяти данных
и Flash-памяти программ — EECON1 |
285 |
Список источников информации |
286 |
Описание компакт-диска |
287 |
Предметный указатель |
291 |
X Оглавление
Оглавление IX
|