35.Использование тактового генератора для микроконтроллера pic16f877.
Тактовый сигнал необходим для выполнения команд контроллера и работы периферийных устройств. Режим работы тактового генератора определяется битами в слове конфигурации, расположенными в энергонезависимой памяти. Настроить/изменить биты конфигурации можно толькопри программировании контроллера.
Для контроллеров PIC16F876/876A/877/877A предусмотрено 4 режима тактового генератора: LP — низкочастотный кварцевый резонатор (пониженное энергопотребление); XT — стандартный кварцевый/керамический резонатор; HS — высокочастотный кварцевый резонатор; RC — внешний резистор/конденсатор.
В своей практике я использовал только 2 режима HS и RC, поэтому рассмотрим их поподробнее.
HS — высокочастотный кварцевый резонатор.
Для кварцевого резонатора (например hc49) значения конденсаторов будут следующие:
Для предотвращения возбуждения резонатора на низких частотах последовательно устанавливают резистор Rs. Обычно ставлю резистор 510-560 Ом.
RC — внешний резистор/конденсатор.
Там где не требуется стабильная частота и точные временные задержки в работе устройства можно использовать в качестве генератора RC-цепочку. В этом режиме частота генератора будет зависеть от напряжения питания, сопротивления Rext, емкости Cext, рабочей температуры и технологических разбросов компонентов и контроллера.
Рекомендуемое значение Rext от 3кОм до 100кОм, при других значениях генератор будет нестабильным. Для стабильной работы генератора рекомендуется подключать конденсатор Cext с емкостью более 20пФ. В режиме RC-генератора на выходе OSC2 генерируется тактовый сигнал Fosc/4.
Пример частоты RC-генератора.
Для примерного подбора значений Rext и Cext была собрана тестовая схемка — Rext переменный многооборотный резистор 20кОм, Cext = 30pF. В качестве результата использовался выход OSC2, с которого снималась частота работы контроллера (Fosc/4). Результаты опыта представлены в таблице.
Rext (kOm) | OSC2 (kHz) |
2,07 | 1500 |
2,37 | 1400 |
2,66 | 1300 |
2,98 | 1200 |
3,32 | 1100 |
3,78 | 1000 |
4,34 | 900 |
5,04 | 800 |
5,9 | 700 |
7,01 | 600 |
8,65 | 500 |
11,05 | 400 |
15,13 | 300 |
20 | 230 |
Как видно из графика зависимость частоты от резистора Rext не совсем линейная.
36.
37.
38-39. Количество цифр (символов) применяемых в системе называют ее основанием. Минимальный объем информации, который можно записать на носителе информации называют бит. Восемь носителей информации объединили в одну ячейку памяти, и назвали байт.
Т а б л и ц а Б.1 - Запись чисел в различных системах счислений
Десятичная система | Двоичная система | Двоично-десятичная система | Шестнадцатеричная система |
0 | 0000 | 0000 | 0 |
1 | 0001 | 0001 | 1 |
2 | 0010 | 0010 | 2 |
3 | 0011 | 0011 | 3 |
4 | 0100 | 0100 | 4 |
5 | 0101 | 0101 | 5 |
6 | 0110 | 0110 | 6 |
7 | 0111 | 0111 | 7 |
8 | 1000 | 1000 | 8 |
9 | 1001 | 1001 | 9 |
10 | 1010 | 0001 0000 | A |
11 | 1011 | 0001 0001 | B |
12 | 1100 | 0001 0010 | C |
13 | 1101 | 0001 0011 | D |
14 | 1110 | 0001 0100 | E |
15 | 1111 | 0001 0101 | F |
16 | 00010000 | 0001 0110 | 10 |
17 | 00010001 | 0001 0111 | 11 |
18 | 00010010 | 0001 1000 | 12 |
19 | 00010011 | 0001 1001 | 13 |
20 | 00010100 | 0010 0000 | 14 |
Примеры записи чисел в программе:
- D’07’ – десятичное число;
- B’0111’ – двоичное число;
- H’07’или 0х07 или 07h – шестнадцатеричное число.
Алгоритм перевода чисел из двоичной системы в шестнадцатеричную систему: сначала двоичное число разбиваем на четверки чисел справа налево, затем для каждой четверки записываем его эквивалент из приведенной таблицы А1. П р и м е р. 0101 1011 11012 = 5ВD16.
Обратный перевод чисел очевиден, необходимо только аккуратно писать именно четверки двоичных чисел, дописывая при необходимости нули слева: 116.= 00012, 216 = 00102. П р и м е р. 415С16==0100 0001 0101 11002.
В двоично-десятичной системе каждый десятичный знак отображается четырьмя двоичными числами.
40.
41,42,43
Таблица2. Команды микроконтроллера PIC16F877.
Мнемоника | Операция | Циклы | Код команды | Флажки | Примечание |
команды |
|
|
|
|
|
БАЙТОВЫЕ КОМАНДЫ | |||||
ADDWF f, d | Сложение (W + f->d) | 1 | 00 0111 dfffffff | C.DC.Z | 1,2 |
ANDWF f, d | Логическое "И" (Wandf— >d) | 1 | 00 0101 dfffffff | Z | 1,2 |
CLRF f | Обнулить f | 1 | 00 0001 1fffffff | Z | 2 |
CLRW - | Обнулить W | 1 | 00 0001 0xxx xxxx | Z |
|
COMF f, d | Дополнение f (Логическое "НЕ") | 1 | 00 1001 dfffffff | Z | 1,2 |
DECF f, d | Декремент f | | 1 | 00 0011dfffffff | Z | 1,2 |
DECFSZ f, d | Декремент f, пропуск если "0" | 1(2) | 00 1011 dfffffff |
| 1,2,3 |
INCF f, d | Инкремент f | 1 | 00 1010 dfffffff | Z | 1,2 |
INCFSZ f, d | Инкремент f, пропуск если "0" | 1(2) | 00 1111 dfffffff |
| 1,2,3 |
IORWF f, d | Логическое "ИЛИ" (Worf->d) | 1 | 00 0100 dfffffff | Z | 1,2 |
MOVF f, d | Пересылка (f — >W) | 1 | 00 1000 dfffffff | Z | 1,2 |
MOVWF f | Пересылка (W — >f) | 1 | 00 0000 1fffffff |
|
|
NOP | Пустая операция | 1 | 00 0000 0xx0 0000 |
|
|
RLF f, d | Сдвиг влево через перенос | 1 | 00 1101 dfffffff | С | 1,2 |
RRF f, d | Сдвигвправочерезперенос | 1 | 00 1100 dfffffff | C | 1, 2 |
SUBWF f, d | Вычитание (f- W->d) | 1 | 00 0010 dfffffff | C,DC,Z | 1, 2 |
SWAPFf, d | Обменять полубайты f | 1 | 00 1110 dfffffff |
| 1,2 |
XOFWFf, d | Исключающее "ИЛИ" (Worf->d) | 1 | 00 0110 dfffffff | Z | 1,2 |
БИТОВЫЕ КОМАНДЫ | |||||
BCF f. b | Обнулить бит bв f | 1 | 01 00bb bfffffff |
| 1,2 |
BSF f, b | Установить бит bв f | 1 | 01 0lbb bfffffff |
| 1,2 |
BTFSC f, b | Тест бита bв f, пропуск если "0" | 1(2) | 01 l0bb bfffffff |
| 3 |
BTFSS f, b | Тест бита bв fпропуск если "1" | 1(2) | 01 11bb bfffffff |
| 3 |
КОМАНДЫ С КОНСТАНТАМИ И КОМАНДЫ УПРАВЛЕНИЯ | |||||
ADDLW к | Сложение (k + W — >W) | 1 | 11 111x kkkkkkkk | C,DC,Z |
|
ANDLW к | Логическое "И" (kandW->W) | 1 | 11 1001 kkkkkkkk | Z |
|
CALL k | Вызов подпрограммы k | 2 | 10 0kkk kkkkkkkk |
|
|
CLRWDT - | Обнулить WDT | 1 | 00 0000 0110 0100 | TO,PD |
|
GOTO k | Переход к адресу k | 2 | 10 1kkkkkkkkkkk |
|
|
IORLW k | Логическое "ИЛИ"(К orW ->W) | 1 | 11 1000 kkkkkkkk | Z |
|
MOVLW k | Пересылка (k — >W) | 1 | 11 00xx kkkkkkkk |
|
|
RETFIE - | Возврат из прерывания | 2 | 00 0000 0000 1001 |
|
|
RETLW k | Возврат с константой | 2 | 11 01xx kkkkkkkk |
|
|
RETURN - | Возврат из подпрограммы | 2 | 00 0000 0000 1000 |
|
|
SLEEP - | Останов | 1 | 00 0000 01100011 | TO,PD |
|
SUBLW k | Вычитание (k - W -> W) | 1 | 11 110х kkkkkkkk | C,DC,Z |
|
XORLW k | Исключающее "ИЛИ" (korW->W) | 1 | 11 1010 kkkkkkkk | Z |
|
- 1)Дизъю́нкция
- 2) Конъю́нкция
- 3) Инверсия
- 4) Переместительный закон
- 5)Сочетательный закон
- 6. Распределительный закон
- 7.Законы поглощения
- 8. Правило склеивания
- 9. Правило де Моргана
- 10.Стрелка Пирса
- 13. Транзисторные ключи
- 14. Электронная логическая схема операции не.
- 15. Электронная логическая схема операции или
- 18. 19Схема на логических элементах – мультивибратор.
- 20.Схема на логических элементах – одновибратор.
- 21. Схема на логических элементах – мультивибратор.
- 25. Схема на логических элементах – синхронный rs-триггер
- 26.Схема на логических элементах – d-триггер.
- 27.Схема на логических элементах – синхронный jk-триггер.
- 28.Схема на логических элементах – dv-триггер
- 29.Типовой узел цифровых устройств – регистр.
- 30.Типовой узел цифровых устройств – счетчик импульсов.
- 31.Типовой узел цифровых устройств – сумматор.
- 32.Регистр состояния status микроконтроллера pic16f877
- 33. Организация памяти микроконтроллера pic16f877.
- 35.Использование тактового генератора для микроконтроллера pic16f877.
- 44.Характеристика микроконтроллера pic16f877.
- 45.Отладочные средства микроконтроллера pic16f877
- 47. Флаги регистров специального назначения.