Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

microcontroller01 / Микроконтроллеры фирмы Holtek

.pdf
Источник:
Скачиваний:
7
Добавлен:
06.01.2022
Размер:
68.42 Кб
Скачать

Микроконтроллеры фирмы Holtek

ÌИКРОКОНТРОЛЛЕРЫ ФИРМЫ HOLTEK

8-разрядные микроконтроллеры фирмы Holtek (http://www.holtek.com.tw) базируются на высокоэффективном RISC-подобном ядре. Они ориентированы на использование в удал¸нных контроллерах, контроллерах вентиляторов, светильников, стиральных машин, игрушек и пр. Микроконтроллеры имеют невысокую стоимость, что позволяет им конкурировать в ряде приложений. Следует отметить и эффективность заказа масоч- ного варианта при небольших партиях. Одной из основных отличительных особенностей ряда микроконтроллеров является наличие моделей с встроенными драйверами ЖКИ, что обеспечивает возможность построения оптимальных устройств с дисплейными функциями. Ниже приведен перечень микроконтроллеров и их архитектурные особенности. В таблице используются следующие условные обозначения:

 

 

OTP

 

Однократно программируемый кристалл

 

 

ROM

 

Память программ с масочным ПЗУ

 

 

 

I/O

 

Линии ввода-вывода

 

 

 

I

 

Входы

 

 

 

 

 

O

 

Выходы

 

 

 

 

 

WDT

Сторожевой таймер

 

 

 

RTC

 

Часы реального времени

 

 

 

 

Перечень микроконтроллеров фирмы Holtek

 

 

 

 

 

 

 

 

 

Название

Память

OTP/

RAM

ÌÃö

I/O

Таймер

Особенности

Корпус

прогр.

ROM

8-разрядные микроконтроллеры ввода-вывода

 

 

 

HT48CA0

1024×14

ROM

32

4

10 + 6 I

1 + WDT

 

20SOP-A, 20DIP-A, 24SOP-A

 

 

 

 

 

 

 

 

 

HT48C10

1024×14

ROM

64

4

18

1 + WDT

 

18DIP-F, 20DIP-F, 20SOP-F, 24SDIP-B

HT48C30

2048×14

ROM

96

4

22

1 + WDT

 

18DIP-A, 20DIP-F, 20SOP-F,

 

 

 

 

 

 

 

 

28SDIP-B,

HT48C50

4096×15

ROM

160

4

32

1 + WDT

 

28SDIP-H

 

 

 

 

 

 

 

 

 

HT48C70

8192×16

ROM

224

4

56

1 + WDT

 

64QFP-A

HT48R11

1024×14

OTP

64

4

18

1 + WDT

 

18DIP-F-0, 20DIP-F-0, 24SDIP-B-0,

 

 

 

 

 

 

 

 

28CDIP-A-0

HT48R12

1024×14

OTP

64

4

18

1 + WDT

 

18DIP-F-0, 20DIP-F-0, 24SDIP-B-0,

 

 

 

 

 

 

 

 

28CDIP-A-0

HT48R31

2048×14

OTP

96

4

22

1 + WDT

 

18DIP-A-0, 20DIP-F-0, 28SDIP-B-0,

 

 

 

 

 

 

 

 

32CDIP-A-0

HT48R32

2048×14

OTP

96

4

22

1 + WDT

 

18DIP-A-0, 20DIP-F-0, 28SDIP-B-0,

 

 

 

 

 

 

 

 

32CDIP-A-0

8-разрядные ЖКИ-микроконтроллеры с драйверами ЖКИ

 

HT49100

1024×14

ROM

64

4

8 + 6 I

1+WDT+

Драйв. ЖКИ

48SSOP

 

 

 

 

 

 

RTC

19×3 èëè 18×4

 

 

 

 

 

 

 

 

сег., детектор

 

 

 

 

 

 

 

 

пониж. напр.

 

 

 

 

 

 

 

 

питания

 

HT49300

2048×14

ROM

96

4

8 + 4 I +

1+WDT+

Драйв. ЖКИ

64QFP

 

 

 

 

 

4 O

RTC

28×3 èëè 27×4

 

 

 

 

 

 

 

 

сег. , детектор

 

 

 

 

 

 

 

 

пониж. напр.

 

 

 

 

 

 

 

 

питания

 

Разрабатываемые 8-разрядные ЖКИ-микроконтроллеры с драйверами ЖКИ

HT49500

4096×15

ROM

160

4

 

 

Драйв. ЖКИ

 

 

 

 

 

 

 

 

32×4 ñåã.

 

 

 

 

 

 

 

 

 

 

HT49700

8192×16

ROM

224

4

 

 

Драйв. ЖКИ

 

 

 

 

 

 

 

 

40×4 ñåã.

 

Основные типы микроконтроллеров фирмы Holtek рассматриваются ниже на примерах микроконтроллеров HT48R11 и HT49100.

«Телесистемы» http://ts.aha.ru

Микроконтроллеры фирмы Holtek

Микроконтроллер HT48R11

Микроконтроллер HT48R11 — 8-разрядный высокоэффективный RISC-подобный микроконтроллер. В контроллере предусмотрена возможность перевода в экономич ный режим потребления по питанию.

Основные особенности микроконтроллера:

¾цикл выполнения команд 1 мкс при тактовой частоте 4 МГц и на пряжении питания 5 В

¾все команды выполняются за 1 или 2 цикла

¾63 команды

¾двухуровневый стек подпрограмм

¾1K ´ 14 память программ PROM

¾64 ´ 8 память данных

¾18 двунаправленных линий ввода/вывода

¾втекающий/вытекающий ток выходов — 1,5/1 мА при напряжении питания 3 В и 4/2 мА при напряжении 5 В

¾вход прерывания

¾8-разрядный программируемый таймер/сч¸тчик событий с прер ыванием по переполнению

¾сторожевой таймер

¾функция останова для перевода в экономичный режим

¾диапазон напряжений питания 3,0...5,2 В

Архитектура

Конвейер команд

В микроконтроллере цикл выполнения команды занимает 4 цикла тактового генератора. В свою очередь, в цикле выполнения команды одновременно выполняются две операции: исполнение текущей команды и выборку следующей команды из памяти. Благодаря этому линейные команды выполняются за 1 цикл. Однако команды перехода, изменяющие содержимое сч¸тчика команд, требуют очистки конвейера, и выполняются за 2 цикла.

Сч¸тчик команд PC

Микроконтроллер имеет 10-разрядный сч¸тчик команд, позволяющий адресовать до 1K слов программной памяти. Младший байт сч¸тчика команд (PCL) представлен в памяти данных, как регистр, доступный для чтения и записи, и имеет адрес 06h. После выборки из памяти очередной команды сч¸тчик команд автоматически увеличивает свое значение на единицу и указывает на адрес следующей подлежащей выполнению команды. При выполнении команд перехода, условного пропуска команды, загрузки регистра PCL, вызова подпрограммы, начального сброса, внутреннего, внешнего прерываний или возврата из подпрограммы сч¸тчик команд загружается определяемым соответствующей командой адресом.

В микроконтроллере имеется набор команд условного пропуска. В зависимости от выполнения соответствующего условия эти команды обеспечивают либо выполнение следующей за ними команды, либо холостого цикла.

Пут¸м загрузки значения в младший байт сч¸тчика команд PCL можно осуществить безусловный переход в пределах 256 соответствующих адресов программы.

При любой передаче управления из-за необходимости очистки конвейера команд образуется холостой цикл, в течение которого не выполняется команда.

Память программы

Память программы микроконтроллера может быть адресована сч¸тчиком команд или табличным указателем. Некоторые адреса памяти программы зарезервированы для специальных применений:

000h: с этого адреса начинается выполнение программы после ин ициализации (сброса) микроконтроллера.

004h: адрес зарезервирован для подпрограммы обработки внешнего прерывания. В случае активизации сигнала на выводе INT микроконтроллера, если внешнее прерывание разрешено и стек подпрограмм не полон, управление переда¸тся команде по адресу 004h.

«Телесистемы» http://ts.aha.ru

2

Микроконтроллеры фирмы Holtek

008h: адрес зарезервирован для прерывания таймера/сч¸тчика событий. При наступлении события переполнения, если прерывание от таймера/сч¸тчика разрешено и стек подпрограмм не полон, управление переда¸т- ся команде по адресу 008h.

Загрузка констант в регистры

Любое слово в памяти программ может быть использовано как константа для загрузки в регистры оперативной памяти. Команды TABRDC[m] (текущая страница) и TABRDL[m] (последняя страница) передают содержимое младшего байта кода в указанный регистр m оперативной памяти, а старший байт кода — в регистр TBLH (08H), который доступен только для чтения. Два старших бита в регистре TBLH читаются как 0. Указателем на адрес внутри страницы, из которого будет читаться константа, является регистр TBPL (07H). Все команды загрузки констант выполняются за 2 цикла.

Регистр стека STACK

В регистре стека при передаче управления подпрограммам сохраняется текущее значение сч¸тчика команд PC. Регистр стека имеет два уровня и располагается вне памяти данных. Активный уровень определяется указателем стека (SP). При обращении к подпрограмме содержимое сч¸тчика команд помещается в стек. При завершении подпрограммы содержимое сч¸тчика команд восстанавливается командами возврата RET или RETI. После выполнения сброса микроконтроллера значение SP ук азывает на верхний уровень стека.

Если стек полон и при этом происходит разреш¸нное прерывание, устанавливается флаг запроса прерывания, но подтверждения не происходит. При освобождении стека прерывание будет обслужено. Таким образом предотвращается переполнение стека.

Память данных

Память данных состоит из 81 8-битных регистров. Она разделена на две функциональные группы: регистры специальных функций и универсальную память данных (64 регистра). Большинство регистров доступны для чтения и записи, но некоторые доступны только для чтения.

Регистры специальных функций включают в себя регистр косвенной адресации (00H), регистр таймера/сч¸тчика событий (TMR, 0DH), регистр управления таймера/сч¸тчика (TMRC, 0EH), младший байт сч¸тчика команд (PCL, 06H), регистр указателя памяти (MP, 01H), аккумулятор (ACC, 05H), указатель таблицы (TBLP, 07H), регистр старшего байта указателя таблицы (TBLH, 08H), регистр состояния (STATUS, 0AH), регистр управления прерываниями (INTC, 0BH), регистр установки режимов сторожевого таймера (WDTS, 09H), регистры ввода-вывода (PA, 12H; PB, 14H; PC, 16H), регистры управления вводом-выводом (PAC, 13H; PBC, 15H; PCC, 17H). Остальное пространство до адреса 40H зарезервировано для дальнейших расширений, и читается как 00H. Универсальная память данных адресуется, начиная с адреса 40H, и используется для данных и информации управления.

Исключая некоторые специализированные биты, каждый из битов памяти данных может быть установлен или сброшен командами SET[m].i и CLEAR[m].i соответственно. Косвенный доступ к регистрам памяти данных обеспечивается через регистр указателя памяти (MP, 01H).

Регистр косвенной адресации

Расположенный по адресу (00H) регистр косвенной адресации не имеет физической реализации. Любая операция чтения-записи по отношению к этому регистру обеспечивает доступ к регистру памяти данных, адрес которого указан в регистре указателя памяти (MP, 01H). Чтение регистра 00H при косвенной адресации да¸т результат 00H. Регистр указателя памяти (MP, 01H) является 7-битным. Старший бит регистра всегда читается как 1.

Аккумулятор

Аккумулятор тесно связан с арифметико-логическим устройством (АЛУ). Он представлен по адресу 05H в памяти данных. Обмен данными между двумя регистрами памяти может быть осуществл¸н только через аккумулятор.

Арифметико-логическое устройство (АЛУ)

АЛУ выполняет 8-разрядные арифметические и логические опе рации:

¾арифметические действия (команды ADD, ADC, SUB, SBC, DAA),

¾логические действия (команды AND, OR, XOR, CPL),

«Телесистемы» http://ts.aha.ru

3

Микроконтроллеры фирмы Holtek

¾циклический сдвиг (команды RL, RR, RLC, RRC),

¾приращение и уменьшение (команды INC, DEC),

¾переходы (команды SZ, SNZ, SIZ, SDZ,...).

В необходимых случаях АЛУ не только осуществляет обработку данных, но и изменяет значение регистра состояния.

Регистр состояния STATUS

Регистр состояния (0AH) содержит флаг нуля (Z), флаг переноса (C), вспомогательный флаг переноса (AC), флаг переполнения (OV), флаг экономичного режима (PD), и флаг тайм-аута сторожевого таймера (TO). Флаги индицируют текущее состояние микроконтроллера и влияют последовательностью действий.

За исключением флагов PD и TO биты регистра могут быть изменены командами, равно как и в случае обращения к другим регистрам данных. Значения флагов PD и TO не изменяются при выполнении операций над регистром состояния. Изменение значения флага TO происходит при включении питания, при наступлении тайм-аута сторожевого таймера, или при выполнении команд CLR WDT, HALT. Изменение состояния флага PD происходит при выполнении команд HALT, CLR WDT или при выключении питания.

Флаги Z, OV, AC и C отражают состояние после последней выполненной АЛУ операцией.

 

 

Флаги регистра состояния

Ôëàã

Áèò

Функция

C

0

Устанавливается, когда выполнение операции сложения приводит к переносу или выполнение

 

 

операции вычитания не приводит к за¸му, в противном случае очищается. Изменяется также и

 

 

при выполнении операций циклического сдвига командами RLC и RRC.

AC

1

Устанавливается, когда выполнение операции сложения приводит к переносу в младшем полу-

 

 

байте, или когда операция вычитания не приводит к за¸му в старшем полубайте, в противном слу-

 

 

чае очищается.

Z

2

Устанавливается, когда результатом арифметической или логической операции является 0, в

 

 

противном случае очищается.

OV

3

Устанавливается, когда операция приводит к переносу в самый старший бит, но не переносу из

 

 

старшего бита, и, наоборот, в противном случае очищается.

PD

4

Очищается при включении питания или выполнении команды CLR WDT. Устанавливается при вы-

 

 

полнении команды HALT.

TO

5

Очищается при включении питания или выполнении команд CLR WDT и HALT. Устанавливается

 

 

при наступлении тайм-аута сторожевого таймера.

6, 7

Не определены, читается 0.

Следует иметь в виду, что при обработке прерывания или вызове подпрограммы содержимое регистра состояния не сохраняется автоматически. Поэтому в случае, когда его значение необходимо сохранить, требуется вставить в программу соответствующий код.

Прерывания

Микроконтроллер обеспечивает обработку прерываний от внешнего источника и от таймера/сч¸тчика событий. Регистр управления прерываниями (INTC, 0BH) биты разрешения/запрета прерываний и флаги запроса прерываний. При выполнении подпрограммы обслуживания прерывания, другое прерывание заблокировано (очищается бит EMI). Таким образом, предотвращается возможность получения вложенных прерываний. Запрос на другое прерывание, поступивший в этот период, приводит только к установке флага запроса прерывания. Для того чтобы разрешить обслуживание прерывание в процессе выполнения подпрограммы обслуживания другого прерывания, необходимо установить бит EMI и соответствующий бит разрешения прерывания. Если стек подпрограмм заполнен, запрос на прерывание не будет обработан, даже если вложенное прерывание разрешено, пока не будет закончено выполнение текущей подпрограммы. Поэтому, если есть необходимость в постоянной готовности микроконтроллера к выполнению прерывания, требуется принять меры к предотвращению заполнения стека.

Оба вида прерываний обеспечивают возможность «пробуждения» микроконтроллера из экономичного режима. При переходе к подпрограмме обслуживания прерывание предыдущее значение сч¸тчика команд сохраняется в стеке, после чего управление переда¸тся подпрограмме обработки прерывания. Если содержимое регистров или регистра состояния будет изменяться подпрограммой обработки прерывания и это может при-

«Телесистемы» http://ts.aha.ru

4

Микроконтроллеры фирмы Holtek

вести в дальнейшем к некорректному ходу программы, то в начале подпрограммы необходимо сохранить, а в конце подпрограммы — восстановить их значение.

Внешнее прерывание вызывается переходом от высокого уровня сигнала к низкому на выводе INT микроконтроллера, при этом устанавливается флаг запроса внешнего прерывания EIF регистра управления прерываниями INTC. В этом случае, если прерывание разрешено (установлен бит EEI), а стек подпрограмм не полон, выполняется переход к подпрограмме обслуживания прерывания по адресу 04H. Флаг запроса прерывания EIF и бит EMI регистра очищаются.

Внутреннее прерывание от таймера/сч¸тчика событий вызывается переполнением таймера, при этом устанавливается флаг запроса внутреннего прерывания TF регистра управления прерываниями. Если прерывание разрешено (установлен бит ETI), а стек подпрограмм не полон, выполняется переход к подпрограмме обслуживания прерывания по адресу 08H. Флаг запроса прерывания TF и бит EMI регистра очищаются.

При выполнении подпрограммы обработки прерывания другие запросы на обработку прерываний не выполняются, пока не будет выполнена команда возврата из подпрограммы RETI, или не будут установлены бит EMI регистра управления прерываниями и соответствующий бит разрешения прерывания (если конечно стек подпрограмм не полон). Возврат из подпрограммы обработки прерывания может осуществляться командами RET и RETI. Команда RETI, в отличие от команды RET, устанавливает бит EMI регистра управления прерываниями.

Прерывания, возникающие между двумя фронтами тактовых импульсов фазы T2, будут обрабатываться в период между следующими фазами T2. В случае одновременного поступления запросов на прерывание внешнее прерывание имеет высший приоритет при обработке. Если флаги запроса прерывания установлены, они сбрасываются при выполнении соответствующих подпрограмм обслуживания прерываний, или очищаются командой программы.

Нежелательно осуществлять переход к выполнению подпрограммы командой CALL внутри подпрограммы обработки прерывания, так как обычно нельзя предсказать появление запроса на прерывание и может потребоваться немедленное его обслуживание, требующее свободно го места в стеке.

Сторожевой таймер — WDT

Источником тактовых импульсов сторожевого таймера может быть встроенный RC-генератор или делитель на 4 тактовой частоты микроконтроллера, что определяется при программировании. При программировании можно также заблокировать сторожевой таймер. Внутренний тактовый генератор имеет период повторения импульсов около 78 мкс, который изменяется в зависимости от температуры кристалла и напряжения питания. Сторожевой таймер снабж¸н 8-разрядным фиксированным делителем на 256, увеличивающим минимальное значение периода тайм-аута при тактировании от встроенного RC-генератора до прибизительно 20 мс. Дальнейшее увеличение периода тайм-аута обеспечивается 7-битным программируемым предварительным делителем, значение коэффициента деления которого определяется битами WS0...WS2 регистра управления сторожевым таймером WDTS, и изменяется в пределах от 1:1 до 1:128. Таким образом, максимальное значение периода тайм-аута может составлять около 2,6 с.

Старший полубайт и бит 3 регистра управления WDTS зарезервированы для флагов пользователя, и могут использоваться программистом по своему усмотрению.

Если внутренний генератор сторожевого таймера отключен, то таймер тактируется от тактового генератора микроконтроллера, но следует иметь в виду, что при выполнении команды HALT перехода в экономичный режим тактовый генератор микроконтроллера останавливается, и выполнение функций сторожевого таймера тоже будет остановлено. Поэтому рекомендуется использов ать внутренний тактовый генератор.

Переполнение сторожевого таймера при нормальной работе вызывает сброс микроконтроллера и установку бита TO регистра состояния. Однако при нахождении в экономичном режиме в результате выполнения команды HALT переполнение сторожевого таймера «горячий сброс», когда обнуляется только регистр сч¸тчика команд PC и стек подпрограмм SP. Чтобы очистить содержимое сторожевого таймера, включая предварительный делитель, существуют три метода: внешний сброс при низком уровне на выводе RES микроконтроллера, программные команды и команда HALT. Команды очистки содержимого таймера включают команду CLR WDT и альтернативный набор команд CLR WDT1 и CLR WDT2. При программировании микроконтроллера может быть выбрана одна из этих двух альтернатив, иначе сторожевой таймер сбрасывается только в результате наступления тайм-аута.

«Телесистемы» http://ts.aha.ru

5

Микроконтроллеры фирмы Holtek

Экономичный режим

Переход в экономичный режим инициализируется выполнением команды HALT, в результате чего происходит следующее:

¾тактовый генератор микроконтроллера останавливается, однако тактовый генератор сторожевого таймера (если он выбран) продолжает функционировать;

¾содержание памяти данных и регистров оста¸тся неизменны м;

¾содержимое сторожевого таймера и его предварительного делителя очищается (если он тактируется от встроенного генератора);

¾все порты ввода-вывода сохраняют сво¸ состояние;

¾устанавливается флаг PD и сбрасывается флаг TO регистра сост ояния.

Система может «пробуждаться» из экономичного режима внешним сбросом, внешним прерыванием, срезом импульса на одном из выводов порта A или переполнением сторожевого таймера. Внешний сброс вызывает инициализацию устройства, а переполнение сторожевого таймера — «горячую» инициализацию. После анализа флагов TO и PD определяется причина сброса. Флаг PD сбрасывается при включении питания и выполнении команды CLR WDT и устанавливается при выполнении команды HALT. Флаг TO устанавливается при наступлении переполнения сторожевого таймера. Если флаг TO установлен, то при «пробуждении» очищаются только сч¸тчик команд PC и указатель стека подпрограмм SP.

Каждый вывод порта A может быть независимо запрограммирован для «пробуждения» микроконтроллера из экономичного режима. При «пробуждении» сигналом на выводе порта A микроконтроллер продолжит выполнение программы со следующей команды. Если «пробуждение» вызвано сигналом на выводе внешнего прерывания, возможны два варианта. Если прерывание запрещено, или стек подпрограмм полон, продолжается выполнение программы со следующей команды. Если прерывание разрешено, а стек подпрограмм не полон, выполняется подпрограмма обслуживания прерывания. Если флаг запроса прерывания был установлен до выполнения команды HALT, то функция «пробуждения» от внешнего прерывания будет заблокирована.

При наступлении события пробуждения требуется 1024 тактов тактового генератора микроконтроллера для перехода к нормальному режиму функционирования.

Чтобы минимизировать потребление энергии при переходе в экономичный режим, необходимо соответствующим образом запрограммировать все линии ввода-вывода пер ед выполнением команды HALT.

Сброс

В микроконтроллере предусмотрены четыре режима выполнения сброса:

¾сброс при включении питания,

¾внешний сброс в нормальном режиме,

¾внешний сброс в экономичном режиме,

¾сброс при наступлении тайм-аута сторожевого таймера в нормальном режиме.

«Горячий» сброс при наступлении тайм-аута сторожевого таймера в экономичном режиме не является полноценным сбросом, так как обеспечивает очистку только регистров PC и SP. Некоторые регистры не изменяют своего содержания и в других режимах сброса. Большинство регистров сбрасывается в начальное состояние. Микроконтроллер определяет режим сброса, анализируя состояние флагов PD и TO.

Для обеспечения гарантий стабилизации работы генератора тактовых импульсов стартовый таймер микроконтроллера SST обеспечивает пусковую задержку в 1024 периода тактовой частоты перед началом выполнения программы при включении питания или «пробуждении» из экономичного режима. Однако в том случае, когда сброс происходит от вывода внешнего сброса, задержка от с тартового таймера блокируется.

Таймер/сч¸тчик событий

Встроенный программируемый таймер/сч¸тчик событий может тактироваться от внешнего источника или от делителя на 4 тактовой частоты микроконтроллера.

При использовании тактового генератора микроконтроллера таймер может только формировать временные интервалы. При использовании внешнего источника тактовых импульсов с помощью таймера можно вести под- сч¸т внешних событий, измерять временные интервалы и ширину импульсов или генерировать точные временные интервалы.

С таймером/сч¸тчиком связаны два регистра: TMR (0DH) и TMRC (0EH). С регистром TMR связаны два физиче- ских регистра: при записи в регистр в таймер/сч¸тчик записывается стартовое значение (регистр загрузки),

«Телесистемы» http://ts.aha.ru

6

Микроконтроллеры фирмы Holtek

чтение регистра вызывает считывание текущего состояния таймера/сч¸тчика. Регистр TMRC является регистром управления таймером/сч¸тчиком, с помощью которого зад аются режимы его работы.

Биты TM0 и TM1 регистра TMRC определяют один из тр¸х режимов работы таймера/сч¸тчика:

¾режим подсч¸та внешних событий,

¾режим таймера (тактовый генератор микроконтроллера),

¾режим измерения ширины импульсов (тактовый генератор мик роконтроллера).

Для того чтобы инициализировать сч¸т таймера, бит TON регист ра TMRC должен быть установлен в 1.

Âрежиме подсч¸та событий и режиме таймера при запуске сч¸та таймер начинает подсч¸т от текущего содержания до значения FFH. При возникновении переполнения сч¸тчик загружается значением из регистра загрузки и устанавливается флаг запроса прерывания от таймера TF регистра состояния. Для прекращения сч¸та бит TON должен быть установлен в 0 программным пут¸м.

Âрежиме измерения длительности импульсов в зависимости от значения бита TE того же регистра измерение начинается либо с перехода от низкого уровня к высокому (0), либо наоборот (1). Измерение производится до появления противоположного перепада импульса. При этом бит TON сбрасывается, а в таймере/сч¸тчике сохраняется результат подсч¸та. Для измерения длительности следующего импульса необходимо опять установить бит TON в 1. При наступлении переполнения таймер/сч¸тчик загружается значением из регистра загрузки и выставляется флаг запроса на прерывание.

При подсч¸те внешних событий переполнение таймера/сч¸тчика является одним из событий, приводящих к «пробуждению» микроконтроллера из экономичного режима.

На время считывания значения в таймере/сч¸тчике его тактирование блокируется во избежание ошибок. Так как это может привести к пропускам при подсч¸те, блокирование должно быть учтено при разработке программы.

Порты ввода-вывода

Микроконтроллер имеет 18 двунаправленных линий ввода-вывода, сгруппированных в портах A (12H; PA0...PA7), B (14H; PB0...PB7) и C (16H; PC0, PC1). Все линии ввода-вывода могут быть использованы и как входы с триггерами Шмитта и как выходы с уровнями КМОП. Состояние входов считывается во время фазы T2 цикла выполнения команды, выходы буферизованы регистрами хранения.

Регистры управления вводом-выводом PAC (13H), PBC (15H) и PCC (17H) управляют конфигурацией линий ввода-вывода. Регистры управления позволяют изменять назначение линий ввода-вывода программным пут¸м. Для того чтобы использовать вывод регистра как вход, соответствующий бит регистра управления должен быть установлен в 1. При сбросе все линии ввода-вывода прогр аммируются как входы.

Каждая из линий ввода-вывода порта A обладает возможностью «пробуждения» микроконтроллера из экономичного режима. Разрешение или запрет этой функции для каждой из линий в отдельности зада¸тся при программировании.

Микроконтроллер HT49100 с функциями управления ЖКИ

Этот микроконтроллер предназначен для устройств с малым потреблением по питанию, использующих жидкокристаллические индикаторы (ЖКИ), таких, как калькуляторы, таймеры, игры, индикаторы, игрушки, другие карманные изделия в частности с батарейным питанием. Все 8-разрядные микроконтроллеры фирмы Holtek имеют одинаковую архитектуру, рассмотренную на примере микроконтроллера HT48R11, поэтому здесь будут рассмотрены только архитектурные особенности данного микроконтроллера, к которым относятся: часы реального времени, особенности работы в экономичном режиме, подсистема управления жидкокристалличе- ским индикатором, детектор понижения напряжения питания и выход зуммера.

Основные особенности микроконтроллера:

¾диапазон напряжений 2,2...5,2 В

¾8 двунаправленных линий ввода-вывода

¾6 линий ввода

¾два входа внешних прерываний

¾8-разрядный программируемый таймер/сч¸тчик событий с прерыванием по переполнению и программируемым делителем частоты

¾кварцевый или RC тактовый генератор

«Телесистемы» http://ts.aha.ru

7

Микроконтроллеры фирмы Holtek

¾сторожевой таймер

¾1K ´ 14 память программ ROM

¾64 ´ 8 память данных

¾часы реального времени с 8-разрядным предварительным дели телем

¾вывод зуммера

¾детектор понижения напряжения питания

¾функция останова для перевода в экономичный режим

¾цикл выполнения команд 1 мкс при тактовой частоте 4 МГц и на пряжении питания 5 В

¾все команды выполняются за 1 или 2 цикла

¾63 команды, включающие команды манипуляции битами

¾схема управления ЖКИ с 19 ´ 3 или 18 ´ 4 сегментами

¾4 уровня вложения подпрограмм

Часы реального времени (RTC)

Часы реального времени предназначены для организации событий прерывания через регулярные интервалы времени. Тактирование часов реального времени обеспечивается от отдельного кварцевого генератора. Период тайм-аута часов может программироваться коэффициентом деления предварительного делителя от 1/28 до 1/215 тактовой частоты микроконтроллера. Коэффициент деления зада¸тся битами RT0...RT2 регистра управления часами реального времени RTCC (09H). При наступлении тайм-аута часов реального времени в регистре управления прерываниями INTC1 (1EH) устанавливается флаг запроса прерывания RTF. Если прерывание разрешено и стек подпрограмм не полон, управление переда¸тся подпрограмме обработки запроса на прерывание, расположенной по адресу 14H.

Особенности работы в экономичном режиме

При переходе в экономичный режим подсистема управления ЖКИ продолжает функционировать (если работает тактовый генератор часов реального времени или стор ожевого таймера).

Память дисплея ЖКИ

Для организации управления индикацией на жидкокристаллическом индикаторе, его сегменты представлены в памяти данных (банк 1) в диапазоне адресов 40H...52H. Регистр указателя банка BP, расположенный в памяти данных по адресу 04H обеспечивает переключение между памятью данных и памятью дисплея ЖКИ. При зна- чении 1 регистра BP запись в регистры с адресом 40H...52H приводит к изменению состояния сегментов ЖКИ, при значении 0 производится обращение к универсальной памяти данных. Память дисплея ЖКИ допускает чтение и запись только с использованием косвенного метода адресации через регистр косвенной адресации MP1 (02H). Данные памяти дисплея ЖКИ автоматически считывается подсистемой управления ЖКИ, которая генерирует соответствующие сигналы для подачи на выводы ЖКИ. Для включения сегмента в соответствующий бит памяти дисплея необходимо записать 1, для выключен ия — 0.

Выходы подсистемы управления ЖКИ

Режим работы подсистемы управления ЖКИ при программировании может быть выбран из 19 ´ 2, 19 ´ 3 или 18 ´ 4 (то есть 1/2, 1/3 или 1/4). Тип смещения для индикатора может быть «R» или «C». Если выбран тип смещения «R», то не требуется никаких внешних конденсаторов. Для типа смещения «C», необходимо подключить конденсатор между выводами C1 и C2 микроконтроллера. Напряжение смещения схемы управления ЖКИ может быть выбрано при программировании из значений 1/2 и 1/3. Если выбрано значение смещения 1/2, то требуется подключение конденсатора между выводом V2 микроконтроллера и общей цепью. Для смещения 1/3 требуется ещ¸ подключение дополнительного конденсатора между выводом V1 микроконтроллера и общей цепью.

Детектор понижения напряжения питания

Для систем с батарейным питанием в микроконтроллере предусмотрен детектор понижения напряжения питания. Если напряжение питания опускается ниже установленного значения, устанавливается флаг разряда батареи BLF (бит 5 регистра управления часами реального времени RTCC). Значение порогового напряжения составляет 3,3...3,6 В или 2,2...2,4 В в зависимости от выбранного значения смещения 1/3 или 1/2 соответственно. Детектор пониженного напряжения питания может включаться/выключаться записью 1/0 в бит BON регистра управления часами реального времени RTCC. Достоверное значение флага BLF можно считывать че- рез 100 мс после включения детектора.

«Телесистемы» http://ts.aha.ru

8

Микроконтроллеры фирмы Holtek

Зуммер

В микроконтроллере предусмотрен парафазный выход для подключения зуммера, совмещенный с выводами порта A PA0 и PA1. Использование этих выводов для зуммера определяется при программировании микроконтроллер. Также при программировании выбирается частота сигнала зуммера. Когда выбрана функция зуммера, выводы PA0 и PA1 надо установить в 1 для включения зуммера и в 0 для его выключения.

Из книги:

Современные микроконтроллеры: Архитектура, средства проектирования, примеры применения, ресурсы сети Интернет. © «Телесистемы». Под ред. Коршуна И. В.; Составление, пер. с англ. и литературная обработка Горбунова Б. Б.— М: Издательство «Аким», 1998. — 272 с., ил.

«Телесистемы» http://ts.aha.ru

9