Главная Учебники - Разные Лекции (разные) - часть 32
|
ордена Октябрьской
Революции и
ордена Трудового
Красного Знамени
институт Стали
и Сплавов
кафедра электротехники
Курсовая
работа
“Микропроцессорная
техника. Микроконтроллер
в двухпозиционном
регуляторе”
Выполнил
студент: Денисов
А.В.
подпись:
Группа: МПП97-1В
Задание:
разработка
структурной
и электрической
схемы микроконтроллера
на базе заданных
в варианте
микропроцессорных
интегральных
схем и его
программирование
для работы с
двухпозиционным
регулятором
по заданному
закону регулирования. Данные
варианта №4: Карта
памяти: Адрес
таймера и интерфейса: ОЗУ
512х8 ПЗУ
1024х8 Закон
регулирования
Краткое
описание:
контроллер
выполнен на
микропроцессорном
комплекте серии
К580. Микросхемы,
входящие в
состав комплекта,
образуют полный
набор, необходимый
для построения
несложных
программно
управляемых
микроконтроллеров. Набор
микросхем:
КР580ВМ80А
- микропроцессор КР580ВК28
- системный
контроллер КР580ВВ55А
- программируемый
контроллер
ввода-вывода КР580ВИ53
- программируемый
таймер КР580ГФ24
- генератор
тактовых импульсов К555ИД3
- дешифратор
4 в 16 К555ИД7
- дешифратор
3 в 8 К505РЕ3
– динамическое
ОЗУ 512х8 Микросхемы
ПЗУ иностранного
производства Контроллер
ввода-вывода
и системный
таймер подключены
к младшим 8 адресным
линиям (0-7), так
как пространство
ввода-вывода
для процессора
серии 580 допускает
обращение
только к 256 устройствам.
Программное
обеспечение: Контроллер
управляется
программно.
Среднее время
выполнения
команды микропроцессором
составляет
максимально
около 10 тактов
(на самых сложных
участках), что
при частоте
тактирующих
импульсов 2 МГц
даёт около
200000 операций в
секунду. При
частоте опроса
внешних устройств
1000 Гц длина основного
цикла программы
может составлять
до 200 команд. Такое
быстродействие,
а также объём
памяти 2048 байт
позволяют
строить программу
с модульной
архитектурой,
что значительно
облегчает её
отладку и
сопровождение.
Для компиляции
программы
применён Borland
Turbo
Assembler
v4.0,
команды подмножества
Intel
8085 обрабатываются
при помощи
подключаемого
файла макроопределений
MACROS80.ASM.
Подобный подход
позволяет
получать исполняемые
файлы 8085 на машинах
класса IBM
PC,
наиболее доступных
в настоящее
время.
В данном
исполнении
контроллер
может поддерживать
температуру
[0..255] градусов
Цельсия с точностью
до 1 градуса во
временном
интервале
[1..65,53] секунды при
линейном изменении
или неограниченно,
если температура
постоянна.
Точность измерения
температуры
объекта ограничена
разрядностью
АЦП и сопряжённого
с ним порта A
контроллера
ввода-вывода.
Программа
управления
приведена ниже.
ИМС АДРЕС
HEX 4000 41FF 4200 43FF 4400 45FF
4600 47FF F800 FBFF FCFF FFFF C8 C9 CA CB
74
75
76 77 У
табл
1 подключение
микросхем к
шине адреса
в адресном
пространстве
CPU
рис
1 схема
контроллера
электрическая
принципиальная INCLUDE
MACROS80.ASM ;
====================================================================== ;
---------------------------------------------------------------------- ;
Константы: ;
---------------------------------------------------------------------- ; ;
Адреса запуска
программ в ОЗУ
и ПЗУ CONST: RAM_BASE
EQU 04000h ; Адрес
запуска
в ОЗУ ROM_BASE
EQU 0F800h ; Адрес запуска
в ПЗУ IO_BASE
EQU 0C8h ; Адрес
програмируемого
интерфейса CT_BASE
EQU 074h ; Адрес
таймера ;
---------------------------------------------------------------------- ;
Программируемый
интерфейс IO ;
---------------------------------------------------------------------- ;
Режимы работы
программируемого
интерфейса
- биты байта
состояния IOSB_SETMODE
EQU 10000000b ; IO STATUS BITS IOSB_SETCBITS
EQU 00000000b IOSB_AMODE0
EQU 00000000b IOSB_AMODE1
EQU 00100000b IOSB_AMODE2
EQU 01000000b IOSB_A70IN
EQU 00010000b IOSB_A70OUT
EQU 00000000b IOSB_C74IN
EQU 00001000b IOSB_C74OUT
EQU 00000000b IOSB_BMODE0
EQU 00000000b IOSB_BMODE1
EQU 00000100b IOSB_B70IN
EQU 00000010b IOSB_B70OUT
EQU 00000000b IOSB_C30IN
EQU 00000001b IOSB_C30OUT
EQU 00000000b ;
Адреса портов
программируемого
интерфейса
(IO) IO_MODE_PORT
EQU IO_BASE+03h ; Порт программирования
IO IO_C_PORT
EQU IO_BASE+02h ; Порт
C IO_B_PORT
EQU IO_BASE+01h ; Порт
B IO_A_PORT
EQU IO_BASE+00h ; Порт
A ;
Константы для
работы с IO IO_MODE
= IOSB_SETMODE+IOSB_AMODE0+IOSB_A70IN+IOSB_C74IN+IOSB_BMODE0 IO_MODE
= IO_MODE+IOSB_B70OUT+IOSB_C30OUT
;
---------------------------------------------------------------------- ;
Таймер CT: ;
---------------------------------------------------------------------- ;
Режимы работы
таймеров - биты
байта состояния CTSB_TIMER0
EQU 00000000b ; CT STATUS BITS CTSB_TIMER1
EQU 01000000b CTSB_TIMER2
EQU 10000000b CTSB_STOP
EQU 00000000b CTSB_LOWBYTE
EQU 00010000b CTSB_HIGHBYTE
EQU 00100000b CTSB_TWOBYTES
EQU 00110000b CTSB_MODE0
EQU 00000000b CTSB_MODE1
EQU 00000010b CTSB_MODE2
EQU 00000100b CTSB_MODE3
EQU 00000110b CTSB_MODE4
EQU 00001000b CTSB_MODE5
EQU 00001010b CTSB_BINCODE
EQU 00000000b CTSB_BINDECCODE
EQU 00000001b ;
Адреса портов
таймера (CT) CT_MODE_PORT
EQU CT_BASE+03h ; Порт
программирования
CT CT_TIMER2_PORT
EQU CT_BASE+02h ; Таймер
2 CT_TIMER1_PORT
EQU CT_BASE+01h ; Таймер
1 CT_TIMER0_PORT
EQU CT_BASE+00h ; Таймер
0 ;
Константы для
работы с таймерами TIMER_MODE_PORT
EQU CT_MODE_PORT TIMER_STATE_PORT
EQU IO_C_PORT TIMER0_FREQUENCY
EQU 1000 ; Задание
основного
тактирования
по T0, Гц TIMER0_DELAY
EQU 2000000 / TIMER0_FREQUENCY TIMER0_MODE
= CTSB_TIMER0+CTSB_TWOBYTES+CTSB_MODE2+CTSB_BINDECCODE TIMER1_MODE
= CTSB_TIMER1+CTSB_TWOBYTES+CTSB_MODE0+CTSB_BINCODE TIMER2_MODE
= CTSB_TIMER2+CTSB_TWOBYTES+CTSB_MODE0+CTSB_BINCODE
;
---------------------------------------------------------------------- ;
Прочие константы ;
---------------------------------------------------------------------- ;
Константы для
работы с нагревателем HEATER_MODE_PORT
EQU IO_C_PORT HEATER_STATE_PORT
EQU IO_A_PORT HEATER_ON
EQU 1 HEATER_OFF
EQU 0
;
====================================================================== ;
---------------------------------------------------------------------- ;
ОСНОВНАЯ ПРОГРАММА ;
---------------------------------------------------------------------- ;
См. входные
параметры
подпрограмм ORG
RAM_BASE ; Эта программа
находится в
ОЗУ mvi
a,IO_MODE ; Инициализация
контроллера
ввода-вывода out
IO_MODE_PORT xra
a ; Очистка
аккумулятора call
Restart_Timer ; Запуск
таймера
0 ;
=== Работа на участке
1 (dT=-50C, dt=5сек) mvi
a,200 ; Начальная
температура mvi
b,TIMER0_FREQUENCY * 5 SHR 4 ; Время
регулировки
5 секунд mvi
c,TIMER0_FREQUENCY * 5 AND 0FFh mvi
d,TIMER0_FREQUENCY * 5 / 50 SHR 4 ; Время
изменения
T mvi
e,TIMER0_FREQUENCY * 5 / 50 AND 0FFh ; на
1 градус mvi
h,-1 ; Уменьшать
температуру call
reg ;
=== Работа на участке
2 (dT=0, dt=5сек) mvi
a,150 ; Начальная
температура mvi
b,TIMER0_FREQUENCY * 5 SHR 4 ; Время
регулировки
5 секунд mvi
c,TIMER0_FREQUENCY * 5 AND 0FFh mvi
d,0FFh ; Время
изменения
температуры mvi
e,0FFh ; велико
(T = const) mvi
h,0 ; температура
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||