7380
Изучение модуля процессора событий TIM08, и модуля таймера базового времени TMB08
Лабораторная работа
Коммуникация, связь, радиоэлектроника и цифровые приборы
Изучение модуля процессора событий TIM08, и модуля таймера базового времени TMB08 Цель работы: Изучить подсистему реального времени микропроцессора. Освоить методику выбора тактирующей последовательности и порядок программирования синт...
Русский
2013-01-23
251.5 KB
4 чел.
PAGE 26
Цель работы: Изучить подсистему реального времени микропроцессора. Освоить методику выбора тактирующей последовательности и порядок программирования синтезатора частоты. Получить навыки по инициализации модулей TMB08 и TIM08.
Данный модуль генерирует две импульсные последовательности:
На Рис. 2.22 приведена структурная схема модуля CGM08. Модуль включает три функциональных блока:
Сигнал с выхода CGMOUT поступает на один из входов модуля системной интеграции SIM08, который формирует на ее основе четырехфазную последовательность с частотой для тактирования центрального процессора, внутренних магистралей и периферийных модулей. Таким образом, разработчику предоставляется возможность выбрать один из источников синхронизации МК:
Рис. 2.22 Структурная схема модуля CGM08
Максимальное значение составляет 8,2 МГц для напряжения питания 5,0 В и 4,1 МГц для напряжения питания 3,0 В. Следовательно, для достижения максимального быстродействия МК при тактировании от генератора на кварцевом резонаторе потребуется использовать кварцевый резонатор на частоту 32,8 МГц. Однако при использовании высокочастотного резонатора возрастает интенсивность генерации помех. Кроме того, многие встраиваемые системы должны обладать функцией часов реального времени и календаря, которые требуют введения в систему так называемого «часового» кварцевого резонатора (f=32.768 кГц). Поэтому разработчики семейства HC08 предусмотрели возможность тактирования МК с использованием кварцевого резонатора на частоты . Операцию умножения частоты в этом случае выполняет синтезатор G2, используя в качестве опорного сигнал с выхода генератора на кварцевом резонаторе G1.
Следует иметь в виду, что генератор G2 производит операцию умножения частоты с использованием системы ИФАПЧ (Импульсно Фазовая Авто Подстройка Частоты), которая позволяет гарантировать стабильность формирования с точностью 0,9% при работе в номинальном режиме. Если этот генератор выбран в качестве образующего для , то точность формирования временной базы в модулях процессора событий TIM08 будет также составлять 0,9%. Это обстоятельство следует обязательно учитывать на начальной стадии проекта при выборе источника тактирования МК и частоты кварцевого резонатора.
Для правильной работы синтезатора частоты, необходимо проинициализировать пять целочисленных коэффициентов: R,N, P, L и Е. Ниже приводится методика расчета этих коэффициентов.
Частота кварцевого резонатора должна быть выбрана из указанного в справочных данных диапазона. При выборе следует принять во внимание то, что время переходных процессов в системе ИФАПЧ определяется . Если частота должна быть выбрана точно (из соображений тактирования периферийных модулей), то необходимо выбрать R=1, определите в соответствии с 4) и 5) коэффициенты N и P, а затем вычислите реальную частоту , используя формулу 2).
Если требования к выбору кварцевого резонатора не столь жесткие, то выберите из любых других соображений. Коэффициент R рассчитайте по формуле:
,
где:
round(x) функция округления;
integer(x) функция наименьшего целого.
Выберите коэффициент деления N делителя частоты FD2:
.
Таблица 2.14 Правило выбора коэффициента P
N |
P |
0 |
|
1 |
|
2 |
|
3 |
.
;
.
Частота не должна превышать максимально допустимого значения 8,2 МГц.
Таблица 2.15 Правило выбора коэффициента Е
[Гц] |
E |
0 |
|
1 |
|
2 |
|
Опция запрещена! |
3 |
, где - номинальная частота модуля.
.
Для устойчивой работы синтезатора частот необходимо, чтобы находилась в области полосы удержания:
.
В таблице 2.16 приведены несколько примеров инициализации модуля при работе с «часовым» кварцевым резонатором.
Таблица 2.16 Примеры инициализации модуля CGM08
[МГц] |
[кГц] |
R |
N |
P |
E |
L |
2.0 |
32.768 |
1 |
F5 |
0 |
0 |
D1 |
4.0 |
32.768 |
1 |
1E9 |
0 |
1 |
D1 |
5.0 |
32.768 |
1 |
263 |
0 |
2 |
82 |
8.0 |
32.768 |
1 |
3D1 |
0 |
2 |
D0 |
Шесть регистров специальных функций используются для задания режима работы модуля формирования тактовой частоты в МК:
Формат перечисленных выше регистров приведен в таблицах 2.17-2.22
Таблица 2.17 Формат регистра PCTL
PCTL |
Регистр управления синтезатором частоты |
|
Адрес регистра: $0036 |
||
Состояние при сбросе: $20 |
||
№ |
Имя |
Описание |
7 |
PLLE |
Бит разрешения прерывания от модуля CGM Этот бит разрешает генерацию сигнала запроса на прерывание в модуль системной интеграции, если флаг PLLF установлен: 1 - прерывания от модуля CGM разрешены; 0 запрещены. Если система ИФАПЧ находится в ручном режиме управления ( бит AUTO = 0), то бит PLLE недоступен для записи, а при чтении возвращает 0. В режиме автоматического управления (бит AUTO=1) бит PLLE доступен как для чтения так и для записи. При сбросе прерывания от модуля запрещены. |
6 |
PLLF |
Флаг запроса прерывания от модуля CGM Флаг устанавливается, если система ИФАПЧ работает в автоматическом режиме и бит LOCK изменил свое значение. Иными словами частота перешла из полосы удержания в полосу точного установления, или наоборот, выпала за пределы полосы точного установления по причине дестабилизирующих возмущений: 1- бит LOCK изменил значение после последнего сброса флага PLLF. 0 бит LOCK не изменял значения после последнего сброса флага PLLF. Бит доступен только для чтения. Бит сбрасывается автоматически при чтении регистра PTCL с установленным битом PLLF. |
5 |
PLLON |
Бит разрешения работы синтезатора частоты 1 формирование последовательности импульсов CGMVCLK синтезатором разрешено. 0 работа синтезатора частоты запрещена. Бит PLLON не может быть сброшен под управлением программы, если выходной сигнал синтезатора частоты CGMVCLK выбран в качестве базового для формирования выходного сигнала модуля CGMOUT (бит BCS = 1). Бит доступен для записи и для чтения. |
4 |
BCS |
Бит выбора базового сигнала для формирования сигнала CGMOUT Этот бит управляет мультиплексором MS модуля, см. Рис. 2.22. : 1 сигнал CGMOUT формируется путем деления на 2 выходного сигнала синтезатора частоты CGMVCLK. 0 сигнал CGMOUT формируется путем деления на 2 выходного сигнала генератора на кварцевом резонаторе CGMXCLK. Бит BCS не может быть программно установлен, если PLLON сброшен. Процесс переключения мультиплексора MS занимает 3 периода частоты источника сигнала который будет использоваться в качестве образующего для CGMOUT. В течении этого времени на выходе CGMOUT удерживается постоянный уровень. Бит BCS доступен для записи и чтения. |
3:2 |
PRE1:PRE0 |
Биты задания коэффициента P Эти биты следует установить по результатам выбора коэффициентов настройки модуля CGM. PRE1 PRE0 коэффициент P 2P 0 0 0 1 0 1 1 2 1 0 2 4 1 1 3 8 Биты PRE1:PRE0 не могут быть изменены, если PLLON сброшен, т.е. синтезатор частот не работает. Биты доступны для записи и для чтения |
1:2 |
VPR1:VPR0 |
Бит задания коэффициента Е Эти биты следует установить по результатам выбора коэффициентов настройки модуля CGM. ЗКУ1 ЗКУ0 коэффициент E 2E 0 0 0 1 0 1 1 2 1 0 2 4 1 1 Запрещенная комбинация |
Таблица 2.18 Формат регистра PBWC
PBWC |
Регистр управления системой ИФАПЧ |
|
Адрес регистра: $0037 |
||
Состояние при сбросе: $00 |
||
№ |
Имя |
Описание |
7 |
AUTO |
Бит выбора режима управления системой ИФАПЧ Этот бит назначает режим автоматического или ручного управления системой ИФАПЧ: 1 режим автоматического управления; 0 режим ручного управления. Бит доступен для записи и для чтения. Перед назначением ручного режима управления следует сбросить бит . Тогда система ИФАПЧ перейдет в режим захвата, при котором возможные отклонения частоты по причине изменения режима должны быть минимальными. |
6 |
LOCK |
Бит режима точного установления частоты Если система ИФАПЧ работает в режиме автоматического управления, то бит LOCK принимает значение 1, когда частота генератора VCO достигает полосы точного установления: 1 частота находится в полосе точного установления; 0 частота находится за пределами полосы точного установления. Если система ИФАПЧ работает в ручном режиме, то бит LOCK не соотносится с частотой , а при чтении всегда возвращает 0. |
5 |
Бит режима удержания/захвата Если система ИФАПЧ работает в режиме автоматического управления, то бит доступен только для чтения. Если система ИФАПЧ работает в режиме в ручном режиме, то бит доступен как для чтения, так и для записи. Бит назначает работу системы ИФАПЧ в режиме удержания или захвата. 1 режим удержания; 0 режим захвата. |
|
4 |
0 |
|
3 |
0 |
|
2 |
0 |
|
1 |
0 |
|
0 |
R |
Таблица 2.19 Формат регистра PMSH
PMSH |
Регистр коэффициента N (старший байт) |
|
Адрес регистра: $0038 |
||
Состояние при сбросе: $00 |
||
№ |
Имя |
Описание |
7 |
0 |
|
6 |
0 |
|
5 |
0 |
|
4 |
0 |
|
3 |
MUL3 |
Старшие биты коэффициента N Биты доступны как для чтения, так и для записи. При попытке установить N=$0000, реальное значение коэффициента будет N=$0001. |
2 |
MUL2 |
|
1 |
MUL1 |
|
0 |
MUL0 |
Таблица 2.20 Формат регистра PMSH
PMSL |
Регистр коэффициента N (младший байт) |
|
Адрес регистра: $0039 |
||
Состояние при сбросе: $40 |
||
№ |
Имя |
Описание |
7 |
MUL7 |
Младшие биты коэффициента N Биты доступны как для чтения, так и для записи. При попытке установить N=$0000, реальное значение коэффициента будет N=$0001. |
6 |
MUL6 |
|
5 |
MUL5 |
|
4 |
MUL4 |
|
3 |
MUL3 |
|
2 |
MUL2 |
|
1 |
MUL1 |
|
0 |
MUL0 |
Таблица 2.21 Формат регистра PMRS
PMRS |
Регистр коэффициента L |
|
Адрес регистра: $003A |
||
Состояние при сбросе: $40 |
||
№ |
Имя |
Описание |
7 |
VRS7 |
Биты коэффициента L Биты доступны как для чтения, так и для записи. При попытке установить L=$00, синтезатор частоты переходит в нерабочее состояние, бит BCS устанавливается в 0, назначая формирование выходного сигнала CGMOUT на основе выходного сигнала генератора на кварцевом генераторе CGMXCLK |
6 |
VRS6 |
|
5 |
VRS5 |
|
4 |
VRS4 |
|
3 |
VRS3 |
|
2 |
VRS2 |
|
1 |
VRS1 |
|
0 |
VRS0 |
Таблица 2.22 Формат регистра PMDS
PMDS |
Регистр коэффициента R |
|
Адрес регистра: $003A |
||
Состояние при сбросе: $01 |
||
№ |
Имя |
Описание |
7 |
0 |
Биты коэффициента R Биты доступны как для чтения, так и для записи. При попытке установить R=$00, реальное значение R=$01. Биты RDS3…RDS0 не могут быть изменены, если синтезатор находится в рабочем состоянии. |
6 |
0 |
|
5 |
0 |
|
4 |
0 |
|
3 |
PDS3 |
|
2 |
PDS2 |
|
1 |
PDS1 |
|
0 |
PDS0 |
Модуль TIM08 хотя и носит дословное название "модуль таймерного интерфейса", по сути, реализует все режимы, которые свойственны модулям процессоров событий 16-разрядных МК Intel MCS-196 и модулям программируемых счетных массивов РСА МК Intel VCS-51/251. Поэтому далее этот модуль будем именовать "процессором событий TIM08".
Модуль TIM08 состоит из 16-разрядного таймера-счетчика и некоторого количества полностью идентичных модулей захвата/сравнения. Эти модули в процессе инициализации могут быть настроены на один из пяти режимов работы:
Каждый модуль захвата/сравнения связан с одним из выводов МК. Функция входного или выходного сигнала модуля захвата/сравнения процессора событий является альтернативной функцией линии порта D. В составе рассматриваемого МК имеется два модуля TIM08, именуемых TIM1 и TIM2. В составе каждого из модулей имеется два модуля захвата/сравнения, однако стоит отметить, что из-за ограниченного количества выводов МК, каналы захвата/сравнения модуля TIM2 не имеют связи с внешним миром, но несмотря на это модуль нормально функционирует и может запрашивать прерывания.
Таймер-счетчик процессора событий
В состав модуля TIM08 входит 16-разрядный счетчик, который служит временной базой для каналов захвата/сравнения. Он подсчитывает импульсы тактовой частоты, поступающие на его вход. Все интервалы времени, которые генерируются или измеряются МК, исчисляются числом периодов этой тактовой частоты. Таймер-счетчик имеет два источника тактирования:
Но учитывая что в нашем случае вывод TxCLK отсутствует, то источник тактирования остается только один. Коэффициент деления генератора может принимать семь различных значений: 1, 2, 4, 8, 16, 32, 64. Максимальная частота сигнала подключаемого ко входу счетчика не должна превышать 4 МГц. Таймер-счетчик временной базы допускает программную установку периода работы. Если не предпринимать специальных действий при инициализации процессора событий, то коэффициент счета счетчика временной базы будет равен 216, т.е. счетчик проходит полный цикл от начального состояния кода $0000 до конечного состояния кода $FFFF
Для управления таймером-счетчиком модуля TIM08 предусмотрены пять регистров специальных функций:
TxSC регистр управления таймером-счетчиком "x", где "x" имя модуля процессора событий
TxMODH регистр периода счетчика (старший байт)
TxMODL регистр периода счетчика (младший байт)
TxCNTH регистр текущего значения счетчика (старший байт)
TxCNTL регистр текущего значения счетчика (младший байт)
Формат регистра управления таймером представлен в таблице 2.23, абсолютные адреса регистров приведены в таблице 2.25
Таблица 2.23 Формат регистра управления таймером-счетчиком
TxSC |
Регистр управления таймером-счетчиком |
|
Состояние при сбросе: $20 |
||
№ |
Имя |
Описание |
7 |
TOF |
Флаг переполнения таймера-счетчика Бит переполнения устанавливается в 1, если текущий код таймера достиг максимального значения, которое записано в регистрах периода, и при поступлении следующего импульса сбросится в 0. |
6 |
TOIE |
Бит разрешения прерывания по переполнению таймера 1 прерывания разрешены; 0 прерывания запрещены. Бит доступен для чтения и записи. |
5 |
TSTOP |
Бит разрешения работы таймера-счетика 1 таймер остановлен, текущий код таймера не изменяется 0 работа таймера разрешена |
4 |
TRST |
Бит сброса таймера Установка этого бит в 1 вызывает сброс таймера и сброс битов управления делителем частоты. Текущий код становится равным $000 |
3 |
0 |
|
2 |
PS2 |
Биты выбора коэффициента деления PS2 PS1 PS0 Частота тактирования 0 0 0 FBUS/1 0 0 1 FBUS/2 0 1 0 FBUS/4 0 1 1 FBUS/8 1 0 0 FBUS/16 1 0 1 FBUS/32 1 1 0 FBUS/64 |
1 |
PS1 |
|
0 |
PS0 |
Модули захвата/сравнения
Каждый модуль захвата/сравнения в составе процессора событий связан с одним выводом МК. Вывод обозначают TxCHi, где "i" порядковый номер канала захвата/сравнения в составе процессора событий "x", например T1CH0 канал захвата/сравнения 0 в процессоре событий 1. В режиме захвата модуль захвата/сравнения фиксирует моменты времени, когда логический сигнал на входе TxCHi изменяет свое состояние. В режимах выходного сравнения ШИМ-модуль захвата/сравнения формирует импульсный сигнал с заданными временными параметрами на выходе TxCHi. Направление передачи сигнала по линии TxCHi определяется инициализацией того или иного режима. Каждый модуль захвата сравнения может обеспечивать следующие режимы :
Режим входного захвата
В режиме входного захвата аппаратные средства модуля следят за уровнем сигнала на входе TxCHi МК. Модуль аппаратно может отслеживать следующие изменения сигнала:
При работе в режиме захвата входы модулей могут использовать встроенные "подтягивающие" резисторы.
При изменении логического сигнала вырабатывается строб записи и текущее состояние таймера временной базы копируется в 16-разрядный регистр данных TxCHi канала захвата/сравнения
Режим небуферированного выходного сравнения
В режиме выходного сравнения аппаратные средства модуля непрерывно сравнивают изменяющийся во времени код таймера с кодом, который записан в 16-разрядный регистр данных TxCHi. В момент равенства кодов аппаратные средства модуля изменяют логический уровень на выходе TxCHi. Модуль позволяет аппаратно выполнять следующие изменения сигнала:
Каждый модуль захвата/сравнения обслуживается следующими регистрами специальных функций:
TxSCi Регистр управления модулем захвата сравнения;
TxCHi регистр данных канала захвата/сравнения.
Формат регистра управления модулем захвата/сравнения представлен в таблице 2.24, абсолютные адреса регистров специальных функций обслуживающих модули захвата/сравнения представлены в таблице 2.25
Таблица 2.24 Формат регистра управления модулем "i" захвата/сравнения
TxSCi |
Регистр управления модулем "i" захвата/сравнения |
|
Состояние при сбросе: $00 |
||
№ |
Имя |
Описание |
7 |
ChiF |
Флаг наступления события в модуле захвата/сравнения Бит устанавливается в 1 если: Модуль установлен в режим захвата внешнего события, и соответствующее изменение произошло. Модуль установлен в режим выходного сравнения и момент равенства кодов наступил |
6 |
ChiIE |
Бит разрешения прерывания по событию в канале "i" 1 прерывания разрешены; 0 прерывания запрещены. Бит доступен для чтения и записи. |
5 |
MsiB |
Бит разрешения буферированного режима сравнения/ШИМ 1 режим буферированного сравнения/ШИМ 0 режим небуферированного сравнения/ШИМ |
4 |
MsiA |
Бит выбора режима модуля "i" Если значение битов ELSiB и ELSiA не равно 00, то бит MSiA определяет режим работы модуля: 1 режим сравнения/ШИМ; 0 режим входного захвата. Если значение битов ELSiB и ELSiA равно 00, то бит MSiA определяет начальный логический уровень на ходе TxCHi: 1 начальный логический уровень равен 0; 0 начальный логический уровень равен 1; |
3 |
ELSiB |
Биты активного перепада в режиме захвата Если канал "i" установлен в режим захвата, то эти биты определяют активный перепад сигнала на входе TCHi, при котором устанавливается бит ChiF: 01 перепад из 0 в 1 10 перепад из 1 в 0 11 любое изменение сигнала Если канал "i" работает в режиме сравнения/ШИМ, то эти биты определяю алгоритм изменения сигнала при наступлении события равенства кодов: 01 инвертирует сигнал на выходе; 10 устанавливает на выходе 0 при сравнении; 11 устанавливает на выходе 1 при равнении. |
2 |
ELSiA |
|
1 |
TOVi |
Бит разрешения переключения выхода при переполнении таймера-счетчика/ШИМ Бит TOVi определяет способ изменения сигнала на выходе TCHi при переполнении счетчика таймера, когда модуль работает в режиме сравнения/ШИМ 1 выход изменяет состояние на противоположное 0 выход не изменяет состояния |
0 |
ChiMAX |
Бит максимального коэффициента заполнения в режиме ШИМ Этот бит оказывает влияние на работу модуля захвата/сравнения только в режиме ШИМ. 1 коэффициент заполнения равен 1 0 коэффициент заполнения определяется кодом регистра данных канала |
Таблица 2.25 Абсолютные адреса регистров модулей процессора событий
Модуль TIM1 |
Модуль TIM2 |
||
Обозначение |
Адрес |
Обозначение |
Адрес |
Таймер временной базы 1 |
Таймер временной базы 2 |
||
T1SC |
$0020 |
T1SC |
$002B |
T1CNTH |
$0021 |
T1CNTH |
$002C |
T1CNTL |
$0022 |
T1CNTL |
$002D |
T1MODH |
$0023 |
T1MODH |
$002E |
T1MODL |
$0024 |
T1MODL |
$002F |
Канал захвата/сравнения 0 |
Канал захвата/сравнения 0 |
||
T1SC0 |
$0025 |
T2SC0 |
$0030 |
T1CH0H |
$0026 |
T2CH0H |
$0031 |
T1CH0L |
$0027 |
T2CH0L |
$0032 |
Канал захвата/сравнения 1 |
Канал захвата/сравнения 1 |
||
T1SC1 |
$0028 |
T2SC1 |
$0033 |
T1CH1H |
$0029 |
T2CH1H |
$0034 |
T1CH1L |
$002A |
T2CH1L |
$0035 |
Модуль базового таймера отсчитывает интервалы времени, равные периоду следования сигналов заданной частоты, создавая таким образом метки реального времени для МП системы. Набор частот, которые может генерировать модуль базового таймера, ограничен рядом: 1, 4, 16, 256, 512, 1024, 2048 и 4096 Гц.
Модуль базового таймера спроектирован в составе МК, которые тактируются с использованием только "часового" кварцевого резонатора (f=32.768 кГц). Поэтому если МК тактируется от высокочастотного кварцевого резонатора то инициализировать модуль не следует.
Модуль обслуживается одним регистром специальных функций, формат которого приведен в таблице 2.26
Таблица 2.26 Формат регистра управления базовым таймером
TBCR |
Регистр управления базовым таймером |
|
Адрес: $001C |
||
Состояние при сбросе: $00 |
||
№ |
Имя |
Описание |
7 |
TBIF |
Флаг запроса на прерывание по переполнению базового таймера Флаг устанавливается в 1 по сигналу программируемого делителя частоты и свидетельствует об окончании отсчета периода заданной длительности. 1 очередной период сигнала заданной частоты отсчитан 0 очередной период заданной частоты еще не закончился |
6 |
TBR2 |
Биты выбора коэффициента деления Эти биты определяют коэффициент деления программируемого делителя частоты: TBR2 TBR1 TBR0 Частота, Гц 0 0 0 1 0 0 1 4 0 1 0 16 0 1 1 256 1 0 0 512 1 0 1 1024 1 1 0 2048 1 1 1 4096 |
5 |
TBR1 |
|
4 |
TBR0 |
|
3 |
TASK |
Бит подтверждения запроса на прерывание по переполнению базового таймера Установка этого бита в 1 под управлением программы вызывает очистку флага на прерывание. |
2 |
TBIE |
Бит разрешения прерывания по переполнению базового таймера 1 прерывания разрешены 0 прерывания запрещены |
1 |
TBON |
Бит разрешения работы счетчика базового таймера 1 Работа счетчика разрешена 0 счет запрещен и все разряды счетчика сброшены в 0 |
0 |
0 |
Матричная клавиатура представляет собой сканируемую матрицу кнопок. Рассмотрим организацию некодирующей (матричной) клавиатуры размером 44. Горизонтальные линии Х0-Х3 (ряды или строки) являются выходными, а вертикальные Y0-Y3 (колонки) являются входными (Рис. 2.23). В неактивном состоянии на выходах Х0-Х3 присутствует уровень логической единицы, а входы Y0-Y3 обычно подтянуты к питанию резисторами. При сканировании на горизонтальных линиях матрицы формируется сигнал "бегущего" нуля. На остальных выходах сохраняется уровень логической единицы. Для каждой фазы "бегущего" нуля производиться считывание и анализ кода Y0-Y3. При замыкании какой-либо из клавиш матрицы, программно устанавливается код данной клавиши.
Рис. 2.23 Принципиальная схема матричной клавиатуры
В составе модуля имеется такая клавиатура рассмотрим программу выполняющую динамический опрос матрицы клавиш. Информация о нажатой клавише выводиться на ЖКИ в форме ХУ, где Х номер строки нажатой клавиши, а Y номер столбца нажатой клавиши. Отжатое состояние клавиш индицируется кодом NO.
ORG $8000
include 'gpregs.inc'
buff1: equ $50
buff2: equ $51
;Инициализация порта А на ввод/вывод информации
begin: lda %11110000
sta DDRA
;Инициализация модуля TMB08
lda %00111110
sta TBCR
;Инициализация портов
bset 1,DDRB
lda #$FF
sta DDRD
;Инициализация ЖКИ
lda #%000010;Выбираем четырёх разрядный интерфейс
jsr write; Передача информации на ЖКИ
lda #%000010;Выбираем четырёх разрядный интерфейс
jsr write; Передача информации на ЖКИ
lda #%001000;Двухстрочный индикатор
jsr write; Передача информации на ЖКИ
; Display on/off
clra
jsr write; Передача информации на ЖКИ
lda #%001100;Дисплей включен, курсор скрыт
jsr write; Передача информации на ЖКИ
cli
lda #%10001000
sta buff1
; Ожидание запроса на прерывание
COPRES: clra
sta $FFFF; Сброс счетчика сторожевого таймера
jmp COPRES
;Подпрограмма обслуживания прерывания от модуля TMB08
INTTMB: lda buff1
rola
and %11110000
sta portA
sta buff1
nop
nop
nop
nop
lda portA
and %00001111
cmp #%00001111
sta buff2
beq nokey
clra; очистка дисплея
jsr write; Передача информации на ЖКИ
lda #%000001;
jsr write;
clra
jsr write
lda #%000110
jsr write
;Выод номера строки нажатой клавиши (Х)
lda #$03
ora #%00100000
jsr write
lda buff2
ora #%00100000
jsr write
;Выод номера столбца нажатой клавиши (Y)
lda #$03
ora #%00100000
jsr write
lda buff1
ora #%00100000
jsr write
rti
nokey: lda #$04
ora #%00100000
jsr write
lda #$0E
ora #%00100000
jsr write
lda #$06
ora #%00100000
jsr write
lda #$0F
ora #%00100000
jsr write
rti
write: sta PTD ; Вывод информации
bclr 1,PTB; установка сигнала готовности
; Программная задержка
lda #$1
write1: deca
nop
bne write1
bset 1,PTB; сброс сигнала готовности
rts ; выход из подпрограммы
;Инициализация векторов прерываний
ORG $FFDC
dw INTTMB
ORG $FFFE
dw begin
Субмодуль позволяет генерировать прямоугольные импульсы с различной длительностью, а также подключать ко входу микроконтроллера внешний источник импульсов через устройство гальванической развязки. Структурная схема модуля показана на Рис. 2.24
Рис. 2.24 Структурная схема субмодуля задания временных интервалов
Внешний вид субмодуля показан на Рис. 2.25. На рисунке цифрами обозначено:
Рис. 2.25 Внешний вид субмодуля задания временных интервалов
Частоту встроенного генератора прямоугольных импульсов можно плавно менять в диапазоне от 370 Гц до 25 кГц. Встроенный делитель позволяет выбирать один из коэффициентов деления частоты: 1, 2, 4, 8, 16.
Вариант 1. Организовать ввод десятичного числа с матричной клавиатуры, контроль за вводом осуществлять с помощью ЖКИ.
Вариант 2. Разработать программу измеряющую длительность импульсов генератора модуля задания временных интервалов, информацию о длительности импульсов выводить на ЖКИ в с.
А также другие работы, которые могут Вас заинтересовать | |||
61978. | Я – гражданин Республики Беларусь | 21.94 KB | |
Ход учебного занятия Сообщение темы и цели учебного занятия. Тема нашего сегодняшнего урока Я гражданин Республики Беларусь. Мы носим имя гражданин Республики Беларусь. Беседа Наша Родина Беларусь. | |||
61979. | British Traditions and Customs | 22.04 KB | |
British nation is considered to be the most conservative in Europe. It is not a secret that every nation and every country has its own customs and traditions. In Great Britain people attach greater importance... | |||
61982. | А. Гайдар «Тимур и его команда» | 19.58 KB | |
Цели: познакомить учащихся с жизнью и творчеством Гайдара его повестью Тимур и его команда продолжить работу над совершенствованием качеств полноценного навыка чтения и умения работать с текстом произведения. | |||
61983. | Совершенствование прыжка в длину с места | 74.73 KB | |
Воспитание волевых качеств целеустремлённости Место проведения: спортивный зал Оборудование: свисток скакалки Содержание Дозировка Организационно-методические указания Вводная часть Построение приветствие сообщение темы и задач урока... | |||
61984. | Наложение повязок на конечности | 101.24 KB | |
Применение теоретических знаний в практической деятельности умение накладывать повязки. В зависимости от цели накладывания повязок различают: защитные повязки защищающие раны от высыхания и механического раздражения... | |||
61985. | Сталинградская битва | 21.13 KB | |
Предполагалось сначала изморить противника оборонительными боями сорвать его летнее наступление и подготовить условия для последующего наступления Красной Армии. Положение войск Приморской армии с каждым днём становилось всё тяжелее. | |||