Функциональность:
|
Верхн и нижн
плеча прям
|
Напряжение
высоковольтной части:
|
600
|
Напряжение
логической части:
|
10…25
|
Макс.
вытекающий ток в/в части:
|
130
|
Макс. втекающий
ток в/в части:
|
270
|
Макс. выходное
напряжение:
|
20
|
Диапазон
рабочих температур:
|
-40…125
|
Корпус:
|
PDIP8
|
Входная логика:
|
TTL/CMOS
|
Дополнительные
особенности:
|
Задержка 50 нс
|
Производитель:
|
International
Rectifier
|
3.6 Выбор стабилизатора
напряжения
Для питания микроконтроллера и остальных элементов схемы
используем стабилизатор фиксированного положительного напряжения 5 вольт типа
КР142ЕН5А. Выполнен в корпусе ТО - 220. Внешний вид и типовое включение
КР142ЕН5А изображены на рисунке 3.5.
а) б)
Внешний вид (а) и типовое включение (б) КР142ЕН5А
На рисунке 3.5. обозначены:
- вход;
- общий;
- выход.
Несмотря на то, что основное назначение этого прибора -
источник фиксированного напряжения, он может быть использован и как источник с
регулированием напряжения и тока путем добавления в схемы его применения
внешних компонентов. Внешние компоненты могут быть использованы для успокоения
переходных процессов. Входной конденсатор необходим только в том случае, если
регулятор находится далеко от фильтрующего конденсатора источника питания.
Основные параметры стабилизатора фиксированного напряжения 5
вольт типа КР142ЕН5А приведены ниже:
- выходное номинальное напряжение - 5В;
- выходное минимальное напряжение -
4,9В;
- выходное максимальное напряжение -
5,1В;
- входное максимальное напряжение - 15В;
- коэффициент нестабильности напряжения,
максимальный - 0,05%/B;
- коэффициент нестабильности тока,
максимальный - 1,33%/A;
- выходное сопротивление - 17мОм;
- ток КЗ - 750мА;
- максимальный выходной ток - 1,5А;
- рабочий диапазон температур кристалла
-45… +125 °С.
4. Разработка программного обеспечения
.1
Алгоритм работы устройства
Для
реализации функции построенной принципиальной схемы необходим алгоритм, с
помощью которого будут реализованы эти функции. На основе этого алгоритма будет
написана программа для микроконтроллера. Первоначально вводим с клавиатуры
заданную скорость вращения двигателя (от 2000 до 3000 об/мин), далее нажимаем
кнопку пуск и начинается процесс запуска двигателя (задаётся предварительная
скважность импульсов для разгона). Сигнал с датчика скорости поступает на вход
внешнего прерывания INT1 микропроцессора. С помощью встроенного
таймера-счетчика происходит определение скорости вращения вала ДПТ. Это
значение сравнивается с заданным и если оно больше, то скважность импульсов
увеличивается и наоборот если меньше. Далее данное значение выводится на вторую
строку ЖКИ. Определение и вывод скорости вращения происходит каждый раз по
приходу сигнала с датчика скорости, т.е. на каждом обороте.
4.2
Блок-схема алгоритма программы
Подпрограмма DEL
Подпрограмма UM
Подпрограмма SUM
Подпрограмма VICH
Подпрограмма обработки прерывания по INT1
4.3
Текст программы на языке ASSEMBLER
$nolist
$include (org.prc)
$include (pic_io.mac)
$include (lcd_io.mac)
$include (kbrd_io.mac)
$include (552asm.inc)
$listSTART; переход на основную программу8003h; подпрограмма
обработки прерывания по INT0; выход из подпрограммы обработки прерывания по
INT08013h; подпрограмма обработки прерывания по INT1A, TL1PSW.0, M11; переход
если поступило прерывание останавливающее таймерTCON.4M12: CLR TCON.4;
остановка таймераIEN0,#00h; блокировка прерыванийTL1,#00h; обнуление счётчика
импульсов: RETI; выход из подпрограммы обработки прерывания по INT1: CALL
I2cinit; проверка связи с сопроцессором
%PicGet (PIC_flg)PROG: %SEND_STR_LCD(ERR1)START: CLR
CY; обнулить бит переносаLCDinit; инициализировать ЖКИACC,
(Scan_8_lines+INTenable+AutoRepeat_en+Beep_enable); (8 линий + прерывание по
INT0)initKBRD; инициализировать клавиатуру: %SEND_CMD_LCD(01h); очистить экран
CALL D; подпрограмма временной задержки
%PICGET (PIC_flg); проверка состояния
сопроцессораACC.KBRDRQU, NEW; переход если клавиша не нажата
%PICGET (KBRD_STS); чтение кода нажатой клавиши
%KBRD_COD; преобразование в коды ЖКИLCDD; вывод на экран
заданного числа тысяч об/минA, R0; преобразование кода нажатой клавиши в число
об/мин
SUBB A,#30hR0, A
MOV R1,#64hUMR6, A; запись числа оборотов в регистры R6 и
R7R7, B; в регистре R7 - старшие разряды, а в R6 - младшие
M1: %PICGET (PIC_flg)ACC.KBRDRQU, M1
%PICGET (KBRD_STS)
%KBRD_CODLCDD; вывод на экран заданного числа сотен об/минA,
R0; преобразование кода нажатой клавиши в число об/мин
SUBB A,#30hR0, AR1,#0AhUMR0, A
MOV R1, R6SUM; операция сложения тысяч и сотен об/мин в
регистах R6 и R7
M2: %PICGET (PIC_flg)ACC.KBRDRQU, M2
%PICGET (KBRD_STS)
%KBRD_CODLCDD; вывод на экран заданного числа десятков об/мин
MOV A, R0A,#30h
ADD A, R6; получение окончательногоR6, A; числа об/мин в
регистрах R6 и R7R0,#00hLCDD; добавка нуля к полученному результату: MOV
R3, R7; определение времени которое должно быть получено на счётчикеR2, R6;
между двумя импульсами от датчика скоростиR0,#02hDEL; деление скорости на 2
(N/2)
MOV R0, R2R3,#27hR2,#10hDEL; 10000/(N/2)R1,
R2R0,#05hUM; 10000*5/(N/2)
MOV R6, A; занесение в регистры R6 и R7 времениR7, B;
скоторым будет сравниваться время полученное на счётчикеPWMP, 7Fh; задание
начальной частоты повторения ШИМTCON,#01h; установка прерывания INT0 по уровню
(переход из 1 в 0)IEN0,#81h; снятие блокировки прерываний и разрешение
прерывания по INT0: JNB TCON.1, M3; ожидание прерывания по INT0 (включение
двигателя)TMOD,#D1h; Разрешение управлять счётчиком 1 от INT1 и выбор 1 - ого
режима счётчика 1 и таймера 0TCON,#44h; запуск счётчика 1 и установка
прерывания INT1 по уровню (переход из 1 в 0)IEN0,#84h; снятие блокировки
прерываний и разрешение прерывания по INT1: JNB TCON.3, M4; ожидание прерывания
по INT1 (с датчика скорости запускающего таймер): JNB TCON.3, M5;
ожидание прерывания по INT1 (с датчика скорости останавливающего таймер): MOV
A, TH0; операция сравнения заданного времени и времени с счётчика
MOV B, TL0CYA, R7UVELA, BA, R6
JC UVEL
JMP UMEN
UVEL: MOV A, PWMP; операция увеличения
скважности импульсов
CJNE A,#01h, M6PWMP M6
UMEN: MOV A, PWMP; операция уменьшения
скважности импульсов
CJNE A,#FFh, M6PWMP: MOV R0,#02hR3, TH0R2,
TL0DELR0, R2R3,#27hR2,#10hDEL R0, R2; преобразование времени счётчика в текущую скорость
MOV R1,#05h; двигателя и отображение её на ЖКИ
LCALL UMR4, AR5, BR0,#64h MOV R3, R5R2,
R4DELA, R2A,#30hR0,#C0h
LCALL LCDC; установка курсора в начало второй строки ЖКИR0,
ALCDD; вывод количества тысяч об/мин
MOV R1, R2R0,#64hUMR3, R5R2, R4VICHB,#0AhA,
R2ABR0, AA,#30h
MOV R0, ALCDD; вывод числа сотен об/мин
MOV A, BA,#30hR0, A
LCALL LCDD; вывод числа десятков об/минR0,#30hLCDD; добавка
нуля к полученному результату
LJMP
: MOV A, R0; операция умножения
MOV B, R1AB
SUM: MOV A, R0; операция сложения
ADD A, R1R0, AA, R2A, R2R1, AR7, R1R6, R0
RET: MOV A, R3; операция деления
MOV B, R0ABR3, AA, BB, R0R1,#08h: CLR CA,
R2AA, R2Adwb4R4,#FFhA, R4ABA, R2R2, AA, R4A, BB, R0: CJNE A, B, dwb1: JC
dwb2A, BR2: DJNZ R1, dwb3
RET: CLR C; операция вычитания
MOV A, R2A, R0R2, AA, R3A, R1R3, A
RET: %DELAY; временная задержка
Заключение
В данном курсовом проекте было разработано микропроцессорное
устройство задания и поддержания, измерения и инициализации скорости вращения
вала двигателя постоянного тока(ДПТ). Оно позволяет измерять и наблюдать за
скоростью двигателя в реальном времени.
Применение микропроцессора позволяет добиться высокой
надёжности и точности устройства.
Список использованной литературы
1. Фрунзе
А.В. Микроконтроллеры? Это же просто! Т.1. - М.: ООО «ИД СКИМЕН», 2009 - 336
с., ил.
2. П.
Хоровиц, У. Хилл. Искусство схемотехники. - 5-е издание, переработанное. - М.:
«Мир», 1998.
. Степаненко
И.П. Основы микроэлектроники: Учеб. пособие для вузов. - 2-е издание,
переработанное и дополненное. - М.: Лаборатория Базовых Знаний, 2008. - 488 с.,
ил.
. У.
Титце, К. Шенк. Полупроводниковая схемотехника. Пер. с нем. - М.: «Мир», 2008 -
512 с., ил.
. Баюков
А.Б. Полупроводниковые приборы: Справочник. - М.: Энергоатомиздат, 1987 г. -
744 с.
. Каспер
Эрни Программирование на языке ассемблера для микроконтроллеров семейства i8051: Москва 2004.
. Интернет
ресурсы www.analog.com
8. Kohonen T. 1984. Self-organization and associative
memory. Series in Information Sciences, vol. 8. Berlin: Springer Verlag
. Hebb D. 1961. Organization of behavior. New York: Science
Edition.
. Rumelhart D.E., Hinton G.E., Williams R.J. 1986. Learning
internal reprentations by error propagation. In Parallel distributed
processing, vol. 1, pp. 318-62. Cambridge, MA: MIT Press.
. Werbos P.J. 1974. Beyond regression: New tools for
prediction and analysis in the behavioral sciences. Masters thesis, Harward
University.
. Wasserman P.D. 1988a. Combined backpropagation/Cauchy
machine. Proceedings of the International Newral Network Society. New York:
Pergamon Press
. Rumelhart D.E., Hinton G.E., Williams R.J. 1986. Learning
internal reprentations by error propagation. In Parallel distributed processing,
vol. 1, pp. 318-62. Cambridge, MA: MIT Press.
. Wasserman P.D. 1988b. Experiments in translating Chinese
characters using backpropagation. Proceedings of the Thirty-Third IEEE Computer
Society International Conference. Washington, D.C.: Computer Society Press of
the IEEE.
. Parker D.B. 1987. Second order back propagation:
Implementing an optimal 0 (n) approximation to Newton's method as an artificial
newral network. Manuscript submitted for publication.
. Stornetta W.S., Huberman B.A. 1987. An improwed
three-layer, backpropagation algorithm. In Proceedings of the IEEE First
International Conference on Newral Networks, eds. M. Caudill and C. Butler. San
Diego, CA: SOS Printing.
. Pineda F.J. 1988. Generalization of backpropagation to
recurrent and higher order networks. In Newral information processing systems,
ed. Dana Z. Anderson, pp. 602-11. New York: American Institute of Phisycs.
. Sejnowski T.J., Rosenberg C.R. 1987. Parallel networks
that learn to pronounce English text. Complex Systems 1:145-68.
19. Burr D.J. 1987. Experiments with a connecnionlist text
reader. In Proceedings of the IEEE First International Conferense on Neural
Networks, eds. M. Caudill and C. Butler, vol. 4, pp. 717-24. San Diego, CA: SOS
Printing.
. Cottrell G.W., Munro P., Zipser D. 1987. Image
compression by backpropagation: An example of extensional programming. ICS
Report 8702, University of California, San Diego.