Курсовая: Микропроцессорная техника. Микроконтроллер в двухпозиционном регуляторе - текст курсовой. Скачать бесплатно.
Банк рефератов, курсовых и дипломных работ. Много и бесплатно. # | Правила оформления работ | Добавить в избранное
 
 
   
Меню Меню Меню Меню Меню
   
Napishem.com Napishem.com Napishem.com

Курсовая

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

Банк рефератов / Программирование

Рубрики  Рубрики реферат банка

закрыть
Категория: Курсовая работа
Язык курсовой: Русский
Дата добавления:   
 
Скачать
Архив Zip, 189 kb, скачать бесплатно
Обойти Антиплагиат
Повысьте уникальность файла до 80-100% здесь.
Промокод referatbank - cкидка 20%!

Узнайте стоимость написания уникальной работы



Московский

ордена Октябрьской Революции и

ордена Трудового Красного Знамени

институт Стали и Сплавов



кафедра электротехники




Курсовая работа


“Микропроцессорная техника. Микроконтроллер в двухпозиционном регуляторе”



Выполнил студент: Денисов А.В.

подпись:

Группа: МПП97-1В



Задание: разработка структурной и электрической схемы микроконтроллера на базе заданных в варианте

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

регулятором по заданному закону регулирования.



Данные варианта №4:


Карта памяти: Адрес таймера и интерфейса:

0000-3FFF

СВОБОДНО

16К


CT

74h,75h,76h,77h

4000-47FF

RAM


4800-F7FF

СВОБОДНО

44К


IO

C8h,C9h,CAh,CBh

F800-FFFF

ROM



ОЗУ 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

  • Микросхемы ПЗУ иностранного производства


Микросхемы ОЗУ и ПЗУ подключены к шине адреса ЦПУ согласно карте памяти, при этом двоичные адреса каждой из

микросхем показаны в таблице 1.

Контроллер ввода-вывода и системный таймер подключены к младшим 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

АДРЕС BIN, БИТЫ

15

14

13

12

11

10

9

8

7

6

5

4

3

2

1

0

RAM 1

4000

41FF

0

1

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

1

0

0

0

0

0

1

1

1

1

1

1

1

1

1

RAM 2

4200

43FF

0

1

0

0

0

0

1

0

0

0

0

0

0

0

0

0

0

1

0

0

0

0

1

1

1

1

1

1

1

1

1

1

RAM 3

4400

45FF

0

1

0

0

0

1

0

0

0

0

0

0

0

0

0

0

0

1

0

0

0

1

0

1

1

1

1

1

1

1

1

1

RAM 4

4600

47FF

0

1

0

0

0

1

1

0

0

0

0

0

0

0

0

0

0

1

0

0

0

1

1

1

1

1

1

1

1

1

1

1

УСТРОЙСТВО НА ШИНЕ

DC1

DC2

RAM

ROM 1

F800

FBFF

1

1

1

1

1

0

0

0

0

0

0

0

0

0

0

0

1

1

1

1

1

0

1

1

1

1

1

1

1

1

1

1

ROM 2

FCFF

FFFF

1

1

1

1

1

1

0

0

0

0

0

0

0

0

0

0

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

УСТРОЙСТВО НА ШИНЕ

DC4

DC3

ROM

IO

C8

C9

CA

CB

0

0

0

0

0

0

0

0

1

1

0

0

1

0

0

0

0

0

0

0

0

0

0

0

1

1

0

0

1

0

0

1

0

0

0

0

0

0

0

0

1

1

0

0

1

0

1

0

0

0

0

0

0

0

0

0

1

1

0

0

1

0

1

1

УСТРОЙСТВО НА ШИНЕ

НЕ ПОДКЛЮЧЕНЫ

DC5

DC6

IO

CT

74

75

76

77

0

0

0

0

0

0

0

0

0

1

1

1

0

1

0

0

0

0

0

0

0

0

0

0

0

1

1

1

0

1

0

1

0

0

0

0

0

0

0

0

0

1

1

1

0

1

1

0

0

0

0

0

0

0

0

0

0

1

1

1

0

1

1

1

УСТРОЙСТВО НА ШИНЕ

табл 1 подключение микросхем к шине адреса в адресном пространстве CPU

НЕ ПОДКЛЮЧЕНЫ

DC5

DC6

CT




































INCLUDE MACROS80.ASM

рис 1 схема контроллера электрическая принципиальная

; ======================================================================

; ----------------------------------------------------------------------

; Константы:

; ----------------------------------------------------------------------

;

; Адреса запуска программ в ОЗУ и ПЗУ


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 ; температура постоянна

call reg


; === Работа на участке 3 (dT=-100C, dt=2сек)

mvi a,150 ; Начальная температура

mvi b,TIMER0_FREQUENCY * 2 SHR 4 ; Время регулировки 2 секунды

mvi c,TIMER0_FREQUENCY * 2 AND 0FFh

mvi d,TIMER0_FREQUENCY * 2 / 100 SHR 4 ; Время изменения температуры

mvi e,TIMER0_FREQUENCY * 2 / 100 AND 0FFh ; на 1 градус

mvi h,-1 ; Уменьшать температуру

call reg


; === Отключение нагревателя

call Off_Heater


; === Завершение программы

hlt



; ----------------------------------------------------------------------

; Подпрограммы для работы с нагревателем

; ----------------------------------------------------------------------

;

; On_Heater и Off_Heater: включить и выключить нагреватель соответственно

; ВХОД: НЕТ

; ВЫХОД: НЕТ

; РЕГИСТРЫ: НЕ ИЗМЕНЯЕТ

; ФЛАГИ: НЕ ИЗМЕНЯЕТ


On_Heater:

push b

mov b,a

mvi a,HEATER_MODE_PORT

out HEATER_ON

mov a,b

pop b

ret


Off_Heater:

push b

mov b,a

mvi a,HEATER_MODE_PORT

out HEATER_OFF

mov a,b

pop b

ret


;

; Heater_Control: подпрограмма поддержки заданной температуры. Если

; температура больше или равна заданной, выключает нагреватель,

; иначе включает.

; ВХОД: a - заданная температура

; ВЫХОД: если нагреватель включен CF=1, иначе CF=0

; РЕГИСТРЫ: НЕ ИЗМЕНЯЕТ

; ФЛАГИ: CF


Heater_Control:

push b

mov b,a

in HEATER_STATE_PORT

cmp b

jnc Temperature_Is_Normal

call On_Heater

jmp Exit_Heater_Control

Temperature_Is_Normal:

call Off_Heater

Exit_Heater_Control:

mov a,b

pop b

ret





; ----------------------------------------------------------------------

; Подпрограммы для работы с таймерами

; ----------------------------------------------------------------------

;

; Restart_Timer - запуск таймера на отсчёт N отрезков.

; ВХОД: a - номер таймера

; b,c - число отрезков для отсчёта для таймеров 1 или 2

; ВЫХОД: НЕТ

; РЕГИСТРЫ: НЕ ИЗМЕНЯЕТ

; ФЛАГИ: НЕ ИЗМЕНЯЕТ


Restart_Timer:

push psw

jnz IsTimer1

mvi a,TIMER0_MODE ; Инициализация таймера 0

out TIMER_MODE_PORT

mvi a,TIMER0_DELAY AND 0FFh ; Ввод младнего байта величины задержки

out CT_TIMER0_PORT

mvi a,TIMER0_DELAY SHR 4 ; Ввод старшего байта

out CT_TIMER0_PORT

jmp Exit_Restart_Timer

IsTimer1:

dcr a

jnz IsTimer2

mvi a,TIMER1_MODE

out TIMER_MODE_PORT

mov a,c

out CT_TIMER1_PORT

mov a,b

out CT_TIMER1_PORT

jmp Exit_Restart_Timer

IsTimer2:

dcr a

jnz Exit_Restart_Timer

mvi a,TIMER2_MODE

out TIMER_MODE_PORT

mov a,c

out CT_TIMER2_PORT

mov a,b

out CT_TIMER2_PORT

Exit_Restart_Timer:

pop psw

ret





; Check_Timers - проверить, не было ли срабатывания таймера

; ВХОД: НЕТ

; ВЫХОД: если сработал таймер 1, установит бит 1 аккумулятора,

; если таймер 2 - бит 2 (т.е. 1 - таймер 1, 2 - таймер 2)

; кроме того, если таймер сработал, установит флаг CF

; РЕГИСТРЫ: a

; ФЛАГИ: CF


Check_Timers:

stc

push b

push psw

in TIMER_STATE_PORT

ani 11000000b

jnz TimeOut

pop psw

pop b

cmc

ret

TimeOut:

rlc ; Rotate bits to positions 0 and 1

rlc

mov b,a

pop psw

mov a,b

pop b

ret




; ----------------------------------------------------------------------

; Подпрограмма регулирования температуры

; ----------------------------------------------------------------------

;

; Reg: регулирование температуры

; ВХОД: a - начальная температура

; b,c - тактов таймера 0 до окончания регулирования

; d,e - тактов таймера 0 до изменения уставки по T

; h - направление изменения T - +1, -1 или 0

; ВЫХОД: НЕТ

; РЕГИСТРЫ: НЕ ИЗМЕНЯЕТ

; ФЛАГИ: НЕ ИЗМЕНЯЕТ


Reg:

push b ; Сохранить все основные регистры

push d

push h

push psw


push psw ; Запустить таймер 2 на счёт времени

mvi a,2 ; регистры b,c уже установлены, см. ВХОД

call Restart_Timer

pop psw


push d ; Регистровую пару (d,e) поместить в (b,c)

pop b

mov d,a ; Store temperature in d


T_Changed:

mvi a,1 ; Таймер 1...

call Restart_Timer ; ... запустить на подсчёт времени до новой уставки


Reg_Next:

mov a,d ; Восстановим уставку T

call Heater_Control ; Подрегулируем температуру

call Check_Timers ; Проверим, не сработал ли таймер

jnc Reg_Next

cpi 1

jnc Exit_Reg ; Если сработал таймер 2 (ВРЕМЯ) - на выход

mov a,d

add h ; Иначе изменим уставку по температуре,

mov d,a ; сохраним её

jmp T_Changed ; и перезапустим подсчёт времени уставки


Exit_Reg:

pop psw ; restore general registers

pop h

pop d

pop b

ret

ENDALL


1Авиация и космонавтика
2Архитектура и строительство
3Астрономия
 
4Безопасность жизнедеятельности
5Биология
 
6Военная кафедра, гражданская оборона
 
7География, экономическая география
8Геология и геодезия
9Государственное регулирование и налоги
 
10Естествознание
 
11Журналистика
 
12Законодательство и право
13Адвокатура
14Административное право
15Арбитражное процессуальное право
16Банковское право
17Государство и право
18Гражданское право и процесс
19Жилищное право
20Законодательство зарубежных стран
21Земельное право
22Конституционное право
23Конституционное право зарубежных стран
24Международное право
25Муниципальное право
26Налоговое право
27Римское право
28Семейное право
29Таможенное право
30Трудовое право
31Уголовное право и процесс
32Финансовое право
33Хозяйственное право
34Экологическое право
35Юриспруденция
36Иностранные языки
37Информатика, информационные технологии
38Базы данных
39Компьютерные сети
40Программирование
41Искусство и культура
42Краеведение
43Культурология
44Музыка
45История
46Биографии
47Историческая личность
 
48Литература
 
49Маркетинг и реклама
50Математика
51Медицина и здоровье
52Менеджмент
53Антикризисное управление
54Делопроизводство и документооборот
55Логистика
 
56Педагогика
57Политология
58Правоохранительные органы
59Криминалистика и криминология
60Прочее
61Психология
62Юридическая психология
 
63Радиоэлектроника
64Религия
 
65Сельское хозяйство и землепользование
66Социология
67Страхование
 
68Технологии
69Материаловедение
70Машиностроение
71Металлургия
72Транспорт
73Туризм
 
74Физика
75Физкультура и спорт
76Философия
 
77Химия
 
78Экология, охрана природы
79Экономика и финансы
80Анализ хозяйственной деятельности
81Банковское дело и кредитование
82Биржевое дело
83Бухгалтерский учет и аудит
84История экономических учений
85Международные отношения
86Предпринимательство, бизнес, микроэкономика
87Финансы
88Ценные бумаги и фондовый рынок
89Экономика предприятия
90Экономико-математическое моделирование
91Экономическая теория

 Анекдоты - это почти как рефераты, только короткие и смешные Следующий
Если бы Всевышний был бы женщиной, у него золото хранилось бы в отдельной шкатулочке, магний и кальций были бы аккуратно сложены на разных полочках, водород в комоде, кислород в шкафу, углерод в баночках на трюмо, и такой замороченной херни как аминокислоты никогда бы не получилось...
Anekdot.ru

Узнайте стоимость курсовой, диплома, реферата на заказ.

Обратите внимание, курсовая по программированию "Микропроцессорная техника. Микроконтроллер в двухпозиционном регуляторе", также как и все другие рефераты, курсовые, дипломные и другие работы вы можете скачать бесплатно.

Смотрите также:


Банк рефератов - РефератБанк.ру
© РефератБанк, 2002 - 2017
Рейтинг@Mail.ru