Вы находитесь на странице: 1из 9

Микроконтроллеры фирмы 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+

Драйв. ЖКИ 19 3 или 18 4 сег., детектор пониж. напр. питания

48SSOP

 

RTC

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.

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

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

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

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

цикл выполнения команд 1 мкс при тактовой частоте 4 МГц и
цикл выполнения команд 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.

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

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

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

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

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

В регистре стека при передаче управления подпрограммам сохраняется текущее значение счётчика команд 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),

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

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

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

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

).

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

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

Регистр состояния (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 и соответствующий бит разрешения прерывания. Ес ли стек подпрограмм заполнен, запрос на прерывание не будет обработан, даже если вложенное прерывание разрешено, пока не будет закончено выполнение текущей подпрограммы. Поэтому, если есть необходимость в постоянной готовности микроконтроллера к выполнению прерывания, требуется принять меры к предотвра щению заполнения стека.

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

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

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

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

и бит EMI регистра очищаются.

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

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

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

и RETI. Команда RETI, в отличие от команды RET, устанавливает бит EMI регистра управления прерываниями.

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

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

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

Источником тактовых импульсов сторожевого таймера может быть встроенный RC генератор или делитель на 4 тактовой частоты микроконтроллера, что определяется при программировании. При программировании можно также заблокировать сторожевой таймер. Внутренний тактовый генератор имеет период повторения импульсов около 78 мкс, который изменяется в зависимости от температуры кристалла и напряжения питания. Сторожевой таймер снабжён 8 разрядным фиксированным делителем на 256, увеличивающим минимальное

значение периода тайм аута при тактировании от встроенного RC генератора до прибизительно 20 мс. Даль нейшее увеличение периода тайм аута обеспечивается 7 битным программируемым предварительным делите

регистра управления сторо

лем, значение коэффициента деления которого определяется битами WS0

жевым таймером WDTS, и изменяется в пределах от 1:1 до 1:128. Таким образом, максимальное значение пе

риода тайм аута может составлять около 2,6 с.

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

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

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

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

и альтернативный набор команд CLR WDT1 и CLR WDT2. При программировании микроконтроллера может

быть выбрана одна из этих двух альтернатив, иначе сторожевой таймер сбрасывается только в результате на

ступления тайм аута.

WS2

Микроконтроллеры фирмы 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 связаны два физиче ских регистра: при записи в регистр в таймер/счётчик записывается стартовое значение (регистр загрузки),

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

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

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

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

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

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

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

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

режим подсчёта внешних событий, режим таймера (тактовый генератор микроконтроллера), режим измерения ширины импульсов (тактовый генератор микроконтроллера).

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

Микроконтроллер имеет 18 двунаправленных линий ввода вывода, сгруппированных в портах A (12H;

и C (16H; PC0, PC1). Все линии ввода вывода могут быть использованы и как

входы с триггерами Шмитта и как выходы с уровнями КМОП. Состояние входов считывается во время фазы T2

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

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

PA0

PA7),

B (14H; PB0

PB7)

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

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

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

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

диапазон напряжений 2,2

5,2 В

8 двунаправленных линий ввода вывода 6 линий ввода два входа внешних прерываний 8 разрядный программируемый таймер/счётчик событий с прерыванием по переполнению и программи руемым делителем частоты кварцевый или RC тактовый генератор

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

сторожевой таймер 1K 14 память программ ROM 64 8 память данных часы
сторожевой таймер
1K 14 память программ ROM
64 8 память данных
часы реального времени с 8 разрядным предварительным делителем
вывод зуммера
детектор понижения напряжения питания
функция останова для перевода в экономичный режим
цикл выполнения команд 1 мкс при тактовой частоте 4 МГц и напряжении питания 5 В
все команды выполняются за 1 или 2 цикла
63 команды, включающие команды манипуляции битами
схема управления ЖКИ с 19 3 или 18 4 сегментами
4 уровня вложения подпрограмм

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

Часы реального времени предназначены для организации событий прерывания через регулярные интервалы времени. Тактирование часов реального времени обеспечивается от отдельного кварцевого генератора. Пери од тайм аута часов может программироваться коэффициентом деления предварительного делителя от 1/28

регистра

управления часами реального времени RTCC (09H). При наступлении тайм аута часов реального времени в ре гистре управления прерываниями INTC1 (1EH) устанавливается флаг запроса прерывания RTF. Если прерыва ние разрешено и стек подпрограмм не полон, управление передаётся подпрограмме обработки запроса на прерывание, расположенной по адресу 14H.

до 1/215 тактовой частоты микроконтроллера. Коэффициент деления задаётся битами RT0

RT2

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

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

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

Для организации управления индикацией на жидкокристаллическом индикаторе, его сегменты представлены в

памяти данных (банк 1) в диапазоне адресов 40H

данных по адресу 04H обеспечивает переключение между памятью данных и памятью дисплея ЖКИ. При зна

приводит к изменению состояния сегментов ЖКИ,

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

чении 1 регистра BP запись в регистры с адресом 40H

Регистр указателя банка BP, расположенный в памяти

52H.

52H

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

Режим работы подсистемы управления ЖКИ при программировании может быть выбран из 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

венно. Детектор пониженного напряжения питания может включаться/выключаться записью 1/0 в бит BON регистра управления часами реального времени RTCC. Достоверное значение флага BLF можно считывать че рез 100 мс после включения детектора.

В в зависимости от выбранного значения смещения 1/3 или 1/2 соответст

3,6

В или 2,2

2,4

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

Зуммер

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

Из книги:

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

Оценить