курсовой проект / СИНТЕЗАТОР ЧАСТОТЫ / Курсовик
.pdfПри организации двунаправленных портов необходимо учитывать особенности организации ввода/вывода данных МК. Любая команда, которая осуществляет запись, выполняет ее как «чтение-модификация-запись».
Необходимо выдерживать определенную последовательность обращения к портам ввода/вывода. Запись в порт вывода происходит в конце командного цикла. Но при чтении данные должны быть стабильны в начале командного цикла.
Порт С микроконтроллера PIC16F876 имеет аналогичные характеристики с портом В.
Рисунок 11 - Схема линий RB <7:4> порта B
Рисунок 12 - Схема линий RB <3:0> порта B
|
|
|
|
|
УИТС.421413.104 ПЗ |
Лист |
|
|
|
|
|
|
|
|
|
|
|
|
23 |
|
Изм. |
Лист |
№ документа |
Подпись |
Дата |
||
|
|
|
|
|
|
|
4.4 Организация памяти микроконтроллера PIC16F876. Регистры.
Организация памяти данных и программ. В микроконтроллерах PIC16F87X имеется три вида памяти. Память программ и память данных имеют раздельные шины данных и адреса, что позволяет выполнять параллельный доступ.
Микроконтроллеры PIC16F87X имеет тринадцати разрядный счетчик команд, способность реализовать 8К×14 слов памяти программ. Физически реализовано FLASH памяти программ 8К×14. Обращение к физически не реализованной памяти программ приведет к адресации реализованной памяти.
Память данных разделена на четыре банка, которые содержат регистры общего и специального (SFR) назначения. Биты RP1 (STATUS<6>) и RPO (STATUS<5>) предназначены для управления банками данных. В таблице 4 показано состояние управляющих битов при обращении к банкам памяти данных.
Объем банков памяти данных до 128 байт (7Fh).
В начале банка размещаются регистры специального назначения, затем регистры общего назначения выполненные как статическое ОЗУ. Все реализованные банки содержат регистры специального назначения. Некоторые, часто ис
пользуемые регистры специального назначения могут отображаться и в других банках памяти.
Таблица 4 – Значения битов управления доступом к банкам памяти данных
|
|
|
|
|
Rp1,Rp0 |
|
Банк |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
00 |
|
0 |
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
01 |
|
1 |
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
10 |
|
2 |
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
11 |
|
3 |
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
УИТС.421413.104 ПЗ |
Лист |
||
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
24 |
||||
Изм. |
Лист |
№ документа |
Подпись |
Дата |
|
|||||
|
|
|
|
|
|
|
|
|
|
|
Память данных в РПЗУ (EEPROM). Микроконтроллеры подгруппы PIC6F8X имеют энергонезависимую память данных 64х8 бит EEPROM, которая допускает запись и чтение во время нормальной работы. Эта память не принадлежит области регистровой памяти ОЗУ. Доступ к ней осуществляется посредством косвенной адресации через регистры специальных функций: EEDATA <08h>, который содержит 8-битовые данные для чтения/записи и EEADR <09h>, включающий адрес ячейки, к которой идет обращение. Для управления процессом чтения/записи используются два регистра: EECON1 <88h> и EECON2 <89h>.
При записи байта автоматически стирается предыдущее значение, и записываются новые данные (стирание перед записью). Все эти операции производит встроенный автомат записи EEPROM. Содержимое ячеек этой памяти при выключении питания сохраняется.
PC<12:0>
Стек, уровень 1
Стек, уровень 2
Вектор сброса
|
|
• |
|
|
|
• |
|
|
|
Вектор прерыва- |
|
|
|
|
|
|
|
ний |
|
Внутренняя па- |
|
||
|
|
||
мять программ |
|
|
|
Страница 0 |
|||
|
|
||
|
|
|
|
|
|
Страница 1 |
|
|
|
Рисунок 14 – Организация памяти программ микроконтроллера PIC16F876
|
|
|
|
|
УИТС.421413.104 ПЗ |
Лист |
|
|
|
|
|
|
|
|
|
|
|
|
25 |
|
Изм. |
Лист |
№ документа |
Подпись |
Дата |
||
|
|
|
|
|
|
|
Регистры общего назначения. Обратиться к регистрам общего назначения можно прямой или косвенной адресацией, через регистр FSR.
Регистр STATUS. В регистре STATUS содержатся флаги состояния АЛУ, флаги причины сброса микроконтроллера и биты управления банками памяти данных.
Регистр STATUS может быть адресован любой командой, как и любой другой регистр памяти данных. Если обращение к регистру STATUS выполняется командой, которая воздействует на флаги Z, DC и С, то изменение этих трех битов командой заблокирована. Эти биты сбрасываются или устанавливаются согласно логике ядра микроконтроллера. Команды изменения регистра STATUS также не воздействуют на биты ТО и PD.
Рисунок 11 - Карта памяти данных микроконтроллеров PIC16F877/876
|
|
|
|
|
УИТС.421413.104 ПЗ |
Лист |
|
|
|
|
|
|
|
|
|
|
|
|
26 |
|
Изм. |
Лист |
№ документа |
Подпись |
Дата |
||
|
|
|
|
|
|
|
Например, команда CLRF STATUS сбросит три старших бита и установит бит Z. Флаги С и DC используются как биты заёма и десятичного заёма соответственно, например, при выполнении команд вычитания SUBLW и SUBWF.
R-чтение бита; W – запись бита; U – не реализовано; n – значение после POR; x – неизвестное значение после POR.
Рисунок 15 – Регистр STATUS
Таблица 5 - Назначение битов регистра STATUS
|
|
№ |
Обозна- |
|
|
Назначение |
|
Значения |
|
|
|||
|
|
|
|
чение |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0 |
C |
Флаг перенос/заема |
1- был перенос; 0- не было пе- |
|
|
||||||
|
|
реноса из старшего бита; |
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
1 |
DC |
Флаг десятичного пере- |
1- был перенос; 0- не было пе- |
|
|
||||||
|
|
носа/заема |
реноса из младшего полубайта; |
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
Z |
Флаг нулевого результата |
1 |
- нулевой результат; 0 - нену- |
|
|
|||||
|
|
|
|
|
|
|
|
|
|
левой результат; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3 |
-PD |
Флаг включения питания |
1 |
- после POR; 0 - после выпол- |
|
|
|||||
|
|
нения команды SLEEP; |
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4 |
-TO |
Флаг переполнения сто- |
1 |
– после POR или CLRWDT; 0 |
|
|
|||||
|
|
|
|
|
|
рожевого таймера |
– после переполненияWDT; |
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5,6 |
RP |
Биты выбора банка |
11 - банк 3; 10 - банк 2; 01 - банк |
|
|
||||||
|
|
1; 00 - банк 0 |
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
7 |
IRP |
Бит выбора банка при |
1 |
- банк 2, 3 (100h-1FFh); |
|
|
|||||
|
|
косвенной адресации |
0 |
- банк 0,1(000h-0FFh); |
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
УИТС.421413.104 ПЗ |
Лист |
|||
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
27 |
|||||||
Изм. |
Лист |
№ документа |
Подпись |
Дата |
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Регистр OPTION REG. Регистр OPTION доступен для чтения и записи, содержит биты управления:
-предварительным делителем TMR0/WDT;
-активным фронтом внешнего прерывания RB0/INT;
-подтягивающими резисторами на входах PORTB.
R – чтение бита; W – запись бита; U – не реализовано; n – значение после POR; x – неизвестное значение после POR.
Рисунок 16 – Регистр OPTION REG
Таблица 6 – Назначение битов регистра OPTION REG
|
№ |
|
Обозначение |
|
Назначение |
|
|
Значения |
|
|
|||||
|
|
|
|
|
|
|
|
|
000 |
– 1/2; |
|
|
|||
|
0 |
|
PS0 |
Установка коэффициен- |
|
|
|||||||||
|
|
|
|
|
|
та деления предделителя |
001 |
– 1/4; |
|
|
|||||
|
1 |
|
PS1 |
|
|
||||||||||
|
|
|
|
|
|
010 |
– 1/8; |
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
011 |
– 1/16; |
|
|
||
|
2 |
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
100 |
– 1/32; |
|
|
||
|
|
|
|
PS2 |
|
|
|
|
101 |
– 1/64; |
|
|
|||
|
|
|
|
|
|
|
|
|
|
110 |
– 1/128; |
|
|
||
|
|
|
|
|
|
|
|
|
|
111 |
– 1/256; |
|
|
||
|
|
|
|
|
|
|
|
|
1 |
– перед WDT; |
|
|
|||
|
3 |
|
PSA |
Выбор включения пред- |
|
|
|||||||||
|
|
|
|
делителя |
|
0 |
– перед TMPR0; |
|
|
||||||
|
|
|
|
|
|
|
|
|
|||||||
|
4 |
|
TOSE |
Выбор тактового сигна- |
1 |
– приращение по заднему фрон- |
|
|
|||||||
|
|
|
|
ла для TMR0 |
|
ту; 0 - приращение по переднему |
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
фронту; |
|
|
|||
|
5 |
|
T0CS |
Выборка тактового сиг- |
1 |
– внешний тактовый сигнал с |
|
|
|||||||
|
|
|
|
нала для TMR0 |
|
вывода RA4; 0 – внутренний так- |
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
товый сигнал CLKOUT; |
|
|
|||
|
6 |
|
INTEDG |
Выборка активного |
1 |
– прерывание по переднему |
|
|
|||||||
|
|
|
|
фронта сигнала на входе |
фронту сигнала;0 – прерывание по |
|
|||||||||
|
|
|
|
|
|
внешнего прерывания |
заднему фронту сигнала; |
|
|
||||||
|
7 |
|
-RBPU |
Включение подтяги- |
1 |
– подтягивание резисторов от- |
|
|
|||||||
|
|
|
|
вающих резисторов на |
ключено;0 – подтягивание рези- |
|
|
||||||||
|
|
|
|
|
|
входах PORTB |
|
сторов включено; |
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
УИТС.421413.104 ПЗ |
|
Лист |
||||
|
|
|
|
|
|
|
|
||||||||
|
|
|
|
|
|
|
28 |
||||||||
Изм. |
Лист |
№ документа |
Подпись |
Дата |
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4.5 Описание связей микроконтроллера в устройстве Связи микроконтроллера в устройстве обусловлены его функциями. Мик-
роконтроллер выполняет следующие функции:
-опрос клавиатуры и прием управляющих сигналов с нее;
-управление цифровой индикацией в различных режимах работы;
-управление синтезатором частоты;
На резисторах R7...R10 собрана схема преобразования уровней сигналов портов RA1, RA2 подаваемых на ЖКИ. Через линии SCL, SDA организованна шина I2C по которой происходит обмен информацией между контроллером PIC16F876 и микросхемой синтезатора TSA6060 для управления ее работой.
Одновременно с обновлением данных для индикатора осуществляется сканирование клавиатуры. Выводы контактов кнопок клавиатуры подключены к выводам микроконтроллера RB1..RB4. При нажатии кнопки на один из этих входов подается сигнал логического нуля, тем самым определяется код кнопки.
Синхронизирующий сигнал от кварцевого резонатора ZQ2 подается на выводы микроконтроллера OSC1, OSC2.
Напряжение питания продается на вывод Ucc, общие выводы для внутренней логики AGND, GND.
|
|
|
|
|
УИТС.421413.104 ПЗ |
Лист |
|
|
|
|
|
|
|
|
|
|
|
|
29 |
|
Изм. |
Лист |
№ документа |
Подпись |
Дата |
||
|
|
|
|
|
|
|
5 РАЗРАБОТКА УПРАВЛЯЮЩЕЙ ПРОГРАММЫ
Управляющая программа для устройства синтезатор частоты имеет достаточно сложную структуру. Это обусловлено разнообразностью выполняемых функций.
Структура программы основана на ряде подпрограмм:
-подпрограмма вычисления частоты;
-подпрограмма преобразования частоты в код для выдачи на индикатор;
-подпрограмма преобразования частоты в код для синтезатора частоты;
-программа опроса кнопок управления.
В начальном состоянии устройство находится в режиме часов. При включении питания активизируется микроконтроллер с синтезатором частоты. Упрощенная блок-схема программы приведена на рисунке 17.
При нажатии кнопки «+» («-») микроконтроллер прибавляет (вычитает) к текущему значению частоты величину шага настройки. Затем следует сравнение полученной частоты с границей диапазона.
Вычисленное значение кода частоты выводится посредством шины I2C на синтезатор частоты.
Далее к частоте прибавляется (вычитается) значение промежуточной частоты для вывода истинного значения частоты на дисплей.
|
|
|
|
|
УИТС.421413.104 ПЗ |
Лист |
|
|
|
|
|
|
|
|
|
|
|
|
30 |
|
Изм. |
Лист |
№ документа |
Подпись |
Дата |
||
|
|
|
|
|
|
|
|
|
|
|
НАЧАЛО |
|
|
|
|
|
|
Начальная частота |
|
|
|
|
|
|
Анализ состояния |
Нет |
|
|
|
|
|
|
|
|
|
|
|
|
кнопки «+» |
|
|
|
|
|
|
Да |
|
|
|
|
|
Прибавление к частоте вели- |
|
|
|
|
|
|
|
чины шага настройки |
|
|
|
|
|
|
Анализ верхней |
Да |
|
|
|
|
|
|
|
|
|
|
|
|
границы диапазона |
|
|
|
|
|
|
Нет |
|
|
|
|
|
|
Анализ состояния |
Нет |
|
|
|
|
|
кнопки «-» |
|
|
|
|
|
|
Да |
|
|
|
|
|
Уменьшение частоты на ве- |
|
|
|
|
|
|
|
личину шага настройки |
|
|
|
|
|
|
Анализ верхней |
Да |
|
|
|
|
|
|
|
|
|
|
|
|
границы диапазона |
|
|
|
|
|
|
Нет |
|
|
|
|
|
Подпрограмма выдачи кода |
|
|
|
|
|
|
на синтезатор частоты |
|
|
|
|
|
|
Вычисление частоты для ин- |
|
|
|
|
|
|
|
дикатора |
|
|
|
|
|
Подпрограмма преобразова- |
|
|
|
|
|
|
ния кода для индикатора |
|
|
|
|
Рисунок 17 – Блок-схема программы синтезатора частоты |
|
||||
|
|
|
|
УИТС.421413.104 ПЗ |
Лист |
|
Изм. Лист |
№ документа |
Подпись |
Дата |
31 |
ЗАКЛЮЧЕНИЕ
В ходе выполнения курсового проекта рассмотрено устройство микроконтроллерный синтезатор частоты с цифровым управлением. В ходе проведенной работы произведен анализ электрической схемы устройства, обоснование выбора микроконтроллера, в ходе которого наиболее предпочтительным по техническим и экономическим параметрам оказался микроконтроллер PIC16F876. После более подробного изучения структуры и возможностей микроконтроллера разработана управляющая программа.
|
|
|
|
|
УИТС.421413.104 ПЗ |
Лист |
|
|
|
|
|
|
|
|
|
|
|
|
32 |
|
Изм. |
Лист |
№ документа |
Подпись |
Дата |
||
|
|
|
|
|
|
|