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

KiT_45(1)_web.

qxd 1/26/2005 10:42 AM Page 98

Компоненты и технологии, № 1’2005 Компоненты

Цифровой вольтметр
на базе микроконтроллера HT46R63
В данной статье рассматривается применение микроконтроллера HT46R63 фирмы Holtek
Semiconductor для разработки цифрового вольтметра. Основная идея заключается
в использовании микроконтроллера для преобразования измеряемого напряжения
в соответствующее цифровое значение и отображения на ЖКиндикаторе после
программной обработки. Так как HT46R63 имеет встроенный
аналогоцифровой преобразователь и драйвер ЖКИ, схема вольтметра очень проста.

ВэнЧинь Хуань T46R63 представляет собой восьмиразряд- Рабочее напряжение HT46R63 составляет 2,2–5,5 В,

Перевод:
Николай Ракович
H ный однократно программируемый (ОТР)
микроконтроллер Holtek нового поколения
со встроенным АЦП и драйвером ЖКИ. Внутренняя
что позволяет использовать этот микроконтроллер
для различных устройств потребительского рынка
и промышленности с индикацией на ЖК-панелях,
ОТР-память емкостью 4 К и 32 линии ввода-вывода например, в водонагревателях, печах СВЧ, цифро-
значительно упрощают построение интерфейса вых камерах, автомобильных системах и т. п.
с внешними устройствами, например, с клавиату- Набор программных и аппаратных средств, объе-
рой. Возможность напрямую работать с ЖК-инди- диненных в систему разработки HT-IDE30000, допол-
катором 19*4 обеспечивается встроенным драйве- няет линейку микроконтроллеров Holtek. Эмуляция
ром ЖКИ. С помощью этого микроконтроллера в реальном времени, модификация регистров памя-
можно управлять внешними достаточно мощными ти, аппаратная реализация точек останова, трассиро-
приборами (симисторами или реле). Встроенный вочные анализаторы и т. д. являются стандартными
восьмиканальный АЦП может непосредственно конт- составляющими HT-IDE30000 и предоставляют раз-
ролировать внешние аналоговые сигналы (индика- работчикам средства, необходимые для быстрой и эф-
торы состояния батарей, измерители тока и темпе- фективной разработки и отладки изделия. Дополни-
ратуры), четырехканальным восьмиразрядным ШИМ тельная возможность моделирования ЖК-панели поз-
с цифро-аналоговым преобразователем можно управ- воляет разработчику полностью провести наладку
лять внешними устройствами или оборудованием. без подключения непосредственно к ЖКИ.

Основные характеристики HT46R63


Тактовая частота HT46R63 определяется внешней
RC-цепью или кварцевым резонатором. В качестве
опорного напряжения AVDD используется напряже-
ние питания VDD. Структура микроконтроллера
приведена на рис. 1, варианты конструктивного
оформления — на рис. 2.

Таблица 1. Технические характеристики HT46R63


Характеристика Значение
Рабочее напряжение, В 2,2–5,5
Число линий ввода>вывода 32
Разрядность таймера с прерыванием
16
по переполнению (TMR)
Частота тактового генератора с прерыванием RTC, Гц 32768
Число каналов АЦП с восьмиразрядным разрешением
8
(точность 7 бит)
Число каналов ШИМ 4
ПЗУ программ 4К×15 бит
ОЗУ данных 208×8 бит
Командный цикл, мкс (fТАКТ = 8 МГц и UПИТ = +5 В) ≤0,5
Число уровней стека 8
Число входов внешнего прерывания 2
Число компараторов 1
Рис. 1
Драйвер ЖКИ 20×3 или 19×4

98 www.finestreet.ru
KiT_45(1)_web.qxd 1/26/2005 10:42 AM Page 99

Компоненты и технологии, № 1’2005 Компоненты

Рис. 2 а) б)

В случаях повышенной нагрузки на источ-


ник питания, провалов напряжения питания
и электрических помех точность преобразова-
ния будет ниже, чем определено в технических
характеристиках. Встроенный АЦП имеет в сво-
ем составе три регистра — ADR (21H), ADCR
(22H) и ACSR (23H). В регистр ADR заносятся
результаты аналого-цифрового преобразова-
ния. Его содержимое для получения данных
должно быть считано после завершения рабо-
ты АЦП. Номер канала АЦП, выбор аналого-
вого канала, установка бита запуска преобразо-
вания и флага окончания преобразования зада-
ются регистром управления ADCR. Чтобы
запустить аналого-цифровое преобразование,
надо после выбора аналогового канала, сигнал
с которого необходимо обработать, установить
бит запуска START. По окончании работы АЦП
бит ЕОСВ очищается и устанавливается запрос
на прерывание от АЦП (если оно предваритель-
но установлено). Для выбора источника такти-
рования АЦП предназначен регистр ACSR.
Ввод-вывод данных в микроконтроллере
HT46R63 осуществляется через 32 двунаправ-
ленные линии ввода-вывода, обозначенные
РА-РD и отображаемые в областях памяти
[12Н], [14Н], [16Н] и [18Н] соответственно.
Все эти порты, имеющие собственные реги- Рис. 3
стры управления РАС, РВС, РСС и РDС, мо-
гут использоваться как для операций ввода, ется в цифровом виде. Наличие АЦП в соста- наличием в составе HT46R63 драйвера ЖКИ.
так и операций вывода с каждой линией вво- ве HT46R63 позволяет обойтись без дополни- Более того, фирма Holtek поставляет програм-
да-вывода. тельного преобразователя. му моделирования ЖК-панели, что позволя-
Помимо аналого-цифрового преобразова- ет разработчику полностью отладить систему
теля необходимо программное и аппаратное без «живого» ЖКИ.
Принцип работы
обеспечение для отображения результата Чтобы вывести результат измерения
цифрового вольтметра
на ЖКИ, так как после преобразования сиг- на ЖКИ, необходимо установить ВР (Bank
Основной принцип работы цифрового нал имеет шестнадцатеричный вид, а для ото- pointer) в 1 и выбрать соответствующую таб-
вольтметра прост — преобразование аналого- бражения на ЖК-панели он должен быть в де- лицу из памяти ЖКИ. Отображаемые данные
вого сигнала в цифровой, результат отобража- сятичной форме. Эта проблема снимается будут храниться по адресу 40Н – 53Н.

www.finestreet.ru 99
KiT_45(1)_web.qxd 1/26/2005 10:42 AM Page 100

Компоненты и технологии, № 1’2005 Компоненты


Принципиальная • преобразование результата измерения в де- Таблица 2
схема сятичную форму; ADCS1 ADCS0 Частота АЦП
• отображение результата измерения на ЖК- 0 0 FSYS/2
Принципиальная схема цифрового вольт- панели. 0 1 FSYS/8
метра, состоящая из микроконтроллера, ЖКИ 1 0 FSYS/32
и нескольких внешних элементов, показана 1 1 Не определено
Аналогоцифровое преобразование
на рис. 3. • установить бит ADCR.7 = 0→1→0 для запус-
При разработке устройства и его тестировании Чтобы использовать АЦП микроконтрол- ка преобразования, ЕОС будет находиться
использовались микросхемы TICE46SER0000A лера HT46, необходимо выполнить следующее: в 1, пока будет идти этот процесс;
и HT-IDE3000. • сконфигурировать каналы порта В установ- • ожидать завершения 76 тактов АЦП для
Программа цифрового вольтметра состоит кой PCR2, PCR1 и PRC0; окончания преобразования, после чего ЕОС
из четырех основных блоков: • выбрать канал для АЦП установкой ACS2, устанавливается в 0 (завершение процесса).
• выполнение АЦ-преобразования; ACS1 и ACS0. Выбранный канал должен Если разрешено прерывание от АЦП, то ус-
• чтение регистра ADR; быть сконфигурирован; танавливается флаг запроса на прерывание
от АЦП;
INCLUDE HT46R63.INC DC • считать результат преобразования в регист-
;-------------------------------------------------- 0314H,0316H,0318H,0320H,0322H,0324H,0325H,0327H,0329H,0331H,03
;HT46R63/HT46C63 8 bit A/D with LCD Type MCU 33H,0335H,0337H,0339H,0341H,0343H
ре ADR.
;An MCU-based digital voltage meter ORG 0FB0H Каждое аналого-цифровое преобразование за-
;-------------------------------------------------- DC нимает 76 тактов, длительность которых задает-
DATA. SECTION AT З0Н 'DATA' ;start of data block 0345H,0347H,0349H,0351H,0353H,0355H,0357H,0359H,0361H,0363H,03
CLR_MEM_COUNTER DB ? ; d e c l a r e 65H,0367H,0369H,0371H,0373H,0375H ся установкой битов ADCS1 и ADCS0 (табл. 2).
CLR_MEM_COUNTER register ORG 0FC0H
AD_VALUE DB ? ;declare AD_VALUE register DC
;-------------------------------------------------- 0376H,0378H,0380H,0382H,0384H,0386H,0388H,0390H,0392H,0394H,03 Моделирование ЖКдисплея
CODE. SECTION AT 0 'CODE' ;start of program block 96H,0398H,0400H,0402H,0404H,0406H
ORG 00Н ORG 0FD0H
JMP START DC Как уже упоминалось, на ЖК-дисплей вы-
START: 0408H,0410H,0412H,0414H,0416H,0418H,0420H,0422H,0424H,0425H,04 водится результат измерения напряжения.
MOV A,0FFH-30H 27H,0429H,0431H,0433H,0435H,0437H
MOV CLR_MEM_COUNTER,A ORG 0FF0H Экран компьютера при моделировании этого
MOV A,31H DC ЖКИ приведен на рис. 4, а на рис. 5 дано обо-
MOV MP0,A 0471H,0473H,0475H,0476H,0478H,0480H,0482H,0484H,0486H,0488H,04
CLR_MEM: 90H,0492H,0494H,0496H,0498H,0500H
значение сегментов 7-сегментного знакоместа.
CLR R0 ;-------------------------------------------------------------- Отображение 7-сегментного индикатора в па-
INC MP0 ;Data base for LCD display
DZ CLR_MEM_COUNTER ;--------------------------------------------------------------
мяти ЖКИ приведено на рис. 6.
JMP CLR_MEM FUNC .SECTION 'CODE' Исходный код программы приведен
MAIN: LCD PROC
MOV A,48H MOV A,01H ;set BP to be 1
слева.
MOV ADCR,A ;set AN0 as the only input channel MOV BP,A
SET ADCR.7 MOV A,[36H]
CLR ADCR.7 ;start of A/D transformation MOV [70H],A
LOOP: MOV A,0FH
SZ ADCR.6 ;EOCB = 0, indicating the end of A/D transforma- AND A,[70H]
tion MOV TBLP,A
JMP LOOP ;if EOCB = 1, then go to LOOP TABRDL [50H] ;store the 2nd digit after decimal point into [50H]
CLR РАС ;set PA as OUTPUT SWAPA [70H]
CLR PA ;set PA to be LOW VOLTAGE AND A,0FH
NOP MOV TBLP,A
MOV A,ADR ;read the value of ADR TABRDL [51H] ;store the 1st digit after decimal point into [51H]
MOV TBLP,A MOV A,TBLH
TABRDL [36H] ;read from data base MOV [71H],A
ORG OF00H ;data base for measurement results MOV A,0FH
DC AND A,[71H]
0000H,0002H,0004H,0006H,0008H,0010H,0012H,0014H,0016H,0018H,00 MOV TBLP,A
20H,0022H,0024H,0025H,0027H,0029H TABRDL [52H] ;store the 1st digit before decimal point into [52H]
ORG 0F10H ;--------------------------------------------------------------
DC ;LCD Display part
Рис. 4
0031H,0033H,0035H,0037H,0039H,0041H,0043H,0045H,0047H,0049H,00 ;--------------------------------------------------------------
53H,0053H,0055H,0057H,0059H,0061H MOV A,44H ;display the 2nd digit after decimal point
ORG 0F20H MOV MP1,A
DC MOV A,[50H]
0063H,0065H,0067H,0069H,0071H,0073H,0075H,0076H,0078H,0080H,00 MOV R1,A
82H,0084H,0086H,0088H,0090H,0092H INC MP1
ORG 0F30H SWAPA [50H]
DC MOV R1,A
0094H,0096H,0098H,0100H,0102H,0104H,0106H,0108H,0110H,0112H,01 INC MP1
14H,0116H,0118H,0120H,0122H,0124H MOV A,42H ;display the 1st digit after decimal point
ORG 0F40H MOV MP1,A
DC MOV A,[51H]
0125H,0127H,0129H,0131H,0133H,0135H,0137H,0139H,0141H,0143H,01 MOV R1,A
45H,0147H,0149H,0151H,0153H,0155H INC MP1
ORG 0F50H SWAPA [51H]
DC MOV R1,A Рис. 5
0157H,0159H,0161H,0163H,0165H,0167H,0169H,0171H,0173H,0175H,01 INC MP1
76H,0178H,0180H,0182H,0184H,0186H MOV A,40H ;display the 1st digit before the decimal point
ORG 0F60H MOV MP1,A
DC MOV A,[52H]
0188H,0190H,0192H,0194H,0196H,0198H,0200H,0202H,0204H,0206H,02 MOV R1,A
08H,0210H,0212H,0214H,0216H,0218H INC MP1
ORG OF70H SWAPA [52H]
DC MOV R1,A
0220H,0222H,0224H,0226H,0228H,0230H,0231H,0233H,0235H,0237H,02 INC MP1
39H,0241H,0243H,0245H,0247H,0249H MOV A,46H ;display the decimal point
ORG 0F80H MOV MP1,A
DC MOV A,01H
0251H,0253H,0255H,0257H,0259H,0261H,0263H,0265H,0267H,0269H,02 MOV R1,A
71H,0273H,0275H,0276H,0278H,0280H ORG 0F00H ;data base for LCD display
ORG 0F90H DC 07DH,060H,03EH,07AH,063H
DC ORG 0F05H
0282H,0284H,0286H,0288H,0290H,0292H,0294H,0296H,0298H,0300H,03 DC 05BH,05FH,070H,07FH,07BH
02H,0304H,0306H,0308H,0310H,0312H LCD ENDP
ORG 0FA0H END Рис. 6

100 www.finestreet.ru