Программа контроллера устройства

Определение перечня устройств и элементов, которые будут входить в аппаратную часть. Выбор компонентов: микроконтроллера AT89C51RC2 фирмы Atmel, ЖК-индикатора LM020L. Алгоритм функционирования программы, разбраковывающей микросхемы по частоте в диапазоне.

Рубрика Коммуникации, связь, цифровые приборы и радиоэлектроника
Вид курсовая работа
Язык русский
Дата добавления 19.06.2014
Размер файла 1,5 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru

Содержание

1. Аппаратная часть

2. Выбор компонентов

3. Принципиальная электрическая схема

4. Алгоритм функционирования программы

5. Описание программы

6. Листинг

Литература

1. Аппаратная часть

Описание.

Необходимо определить перечень устройств и элементов, которые будут входить в аппаратную часть. Схематичное изображение необходимых компонентов приведено на рисунке 1.

Рисунок 1

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

2. Выбор компонентов

а) Выбираем микроконтроллер AT89C51RC2 фирмы Atmel.

Микроконтроллер семейства АТ89 фирмы Atmel представляет собой восьмиразрядную однокристальную микроЭВМ с системой команд MCS-51 фирмы Intel. Микроконтроллеры изготавливаются по КМОП (CMOS) технологии.

Технические данные AT89C51RC2:

Память программ (Flash)………………………………….……….32 Кб

Внутрисхемное программирование………………...…………….SPI

ОЗУ…………………………………………………………………128 байт

Таймер-счетчик…………………………………………………....3

Напряжение питания………………………………………………2,7-5,5 В

Максимальная тактовая частота…………………………………..60 МГц

Источников прерывания сигнала…………………………….…....6

Дополнительно: встроенный аналоговый компаратор

Предельные допустимые параметры:

Рабочая температура ............................................................... -40°C +85°C

Напряжение на любом выводе относительно земли ............. -1.0В +7.0В

Максимальное напряжение питания ....................................... 6.6В

Выходной ток (лог 0) ..................................................................25.0 мА

б) Для индикации используем ЖК-индикатор LM020L.

Это 16-разрядный однострочный индикатор с контроллером HD44780.

Предельные допустимые параметры LM020L:

Рабочая температура ............................................................... 0°C +50°C

Температура хранения ............................................................ -20°C +60°C

Максимальное напряжение питания .......................................7.0В

в) Для автоматического управления стробовыми импульсами записи индикатора, используем логический элемент 2И-НЕ 74LS26

Предельные допустимые параметры 74LS26:

Рабочая температура ............................................................... -55°C +125°C

Максимальное напряжение питания ....................................... 5.5В

Для определении заданной частоты записываем значение (1/f)*100, что соответствует 100 периодам выбранной частоты в микросекундах. Так же делаем поправку на время выполнения команд. Для процессора с частотой 12 МГц время одного машинного цикла составляет 2мкс.

Следовательно групп будут соответствовать следующие значения:

1-я группа - 1007 мкс;

2-я группа - 916 мкс;

3-я группа - 840 мкс;

4 - группа - 776 мкс;

3. Схема электрическая принципиальная

На рисунке 2 приведена принципиальная схема, подходящая для решения поставленной задачи и использующая выбранные компоненты

Рисунок 2

Программа контроллера устройства

4. Алгоритм функционирования программы

Разрабатываемая система позволяет разбраковать микросхемы по частоте в диапазоне 100…130 кГц по четырем группам:

100..110 - группа 1;

110..120 - группа 2;

120…130 - группа 3;

Выход за пределы - брак (группа 4);

Алгоритм функционирования программы приведен на рисунке 3.

Рисунок 3

контроллер устройство программа

Более подробной алгоритм функционирования программы приведен на рисунке 4.

Рисунок 4.

В соответствии с этим алгоритмом была разработана программа, обеспечивающая выполнение микроконтроллером заданной функции.

5. Описание программы

По адресу в ПЗУ 00h размещаем команду перехода на метку init (т.е. инициализация дисплея и начало программы).

1Bh- адрес подпрограммы обработки прерывания от таймера при его переполнении, то есть от появления флага TF.

Присвоим символьные имена используемым портам МК. Управляющие входы LCD-дисплея соединены с первыми портами:

RS bit P1.0

RW bit P1.1

Так же присвоим символьные имена внутренним регистрам LCD-дисплея, в дальнейшем будем обращаться к ним как к внешней ОЗУ:

CMD equ 00000000b

DAT equ00000001b

BUS equ00000010b

Вызываем подпрограмму настройки режимов таймеров и настройки дисплея. Настраиваем специальный регистр управления таймерами TMOD

mov tmod, #01010001b;16-битные таймеры Т0 и Т1 и включение счётчика от внешних сигналов.

setb EA; все прерывания разрешены

setb ET1; разрешено прерывание от таймера 1.

Производим настройку индикатора. Запишем в аккумулятор и впоследствии в командный регистр LCD команду x040h. Эта команда устанавливает 8-битную шину обмена данных LCD с МК, символьную матрицу 5х8 точек и одну используемую строку дисплея.

mov A,#040h

call LSDSetup.

Запишем в аккумулятор и впоследствии в командный регистр LCD команду x0Fh. Эта команда непосредственно включает дисплей, выбирает тип курсора. Вызываем подпрограмму, которая передает эту настройку в LCD:

mov A,#0Fh

call LSDSetup.

Запишем в аккумулятор и впоследствии в командный регистр LCD команду x06h. Эта команда включает автоинкремент позиции и сдвиг курсора вправо. Вызываем подпрограмму, которая передает эту настройку в LCD:

mov A,#06h

call LSDSetup.

Переходим на метку Start

setb P2.0; Устанавливаем единичное значение стробового порта.

Опустошаем регистры таймеров и сбрасываем флаги переполнения

mov TH0,#0

mov TL0,#0

mov TH1,#0

mov TL1,#0

mov DPTR,#0000h

clr tr0

clr tr1

clr tf0

clr tf1

Ждём нажатия кнопки: jb p1.2,$;

Записываем в регистры счётчика число «-100»

mov TH1, # 0FFh

mov TL1, #9bh

Далее включаем таймер и счётчик

setb TR1

setb TR0

Метка gr и условный переход не позволяют программе пройти дальше, пока не установлен флаг F0. Этот флаг устанавливается после однократной обработки прерывания.

gr:

jb F0,gotovo1

jmp gr

По переполнению счётчика (т.е. после отсчета 100 импульсов) выставится флаг TF1, и программа перейдёт по адресу обработки прерывания. По данному адресу размещена команда перехода на метку check.

Выключаем таймер и счётчик

clr TR0

clr TR1

В регистрах таймера TH0 и TL0 хранится значение времени 100 импульсов.

Пересылаем значение из регистров таймера в DPTR

mov dpl, TL0

mov dph, TH0

Хранящееся в DPTR число необходимо проверить и отнести в определенную группу в соответствии с условием курсовой работы.

В регистры R1 и R2 записываем значение (1/f)*100, что соответствует 100 периодам выбранной частоты в микросекундах. Так же делаем поправку на время выполнения команд. Для процессора с частотой 12 МГц время одного машинного цикла составляет 2мкс.

Переносим младший бит DPTR в аккумулятор, вычитаем из числа, записанного в R1, значение зафиксированного времени 100 импульсов, предварительно сбросив флаг переноса:

mov R1, # low(776)

mov R0, # high (776)

clr C

mov A, DPL

subb A, R1

Если после выполнения вычитания установится флаг переноса. В этом случае, сработает условный переход «jc», который переведет программу на метку Perenos 7700. Если же флаг переноса не установится, что говорит о том, что данное число больше, то сработает условный переход «jnc», который переведет программу по метке neperenos 7700.

При переходе по метке Perenos 7700 записываем в аккумулятор старший бит DPTR, и уменьшаем аккумулятор на 1 и переходим на метку gruppa7700 где из старшего байта записанного в R0 вычитаем число, хранящееся в аккумуляторе. Если флаг переноса не установится, это значит, что наше число больше 776. Переходим на метку sravn8300, где продолжим сравнивать получено значение. Если же флаг переноса установился, это значит, что наше число меньше 776, что соответствует группе «брак». Переходим на метку брак.

jc perenos7700

jnc neperenos7700

perenos7700:

mov A, DPH

dec A

jmp gruppa7700

neperenos7700:

mov A, DPH

jmp gruppa7700

gruppa7700:

clr C

subb A, R0

jnc sravn8300

jc brak

Посредством условных переходов попадает на метку brak, и увеличивает значение регистра R7 на единицу, а так же выводит код группы в параллельном инверсном коде.

Brak:

Inc R7

Для вывода кода групп используем выводы P2.1 и P2.2. Группе «Брак» будет соответствовать код «11»:

setb P2.1

setb P2.2

Запишем в аккумулятор и впоследствии в командный регистр LCD команду x01h. Эта команда очищает дисплей. Вызываем подпрограмму, которая передает эту настройку в LCD:

mov A,#01h

call LSDSetup.

после чего перейдем на индикацию:

jmp indic

Аналогичным образом сравниваем число полученное в DPTR, с пороговыми значениями периодов остальных групп. Такие же действия будут происходить при переходе программы на метки gruppa3, gruppa2 и gruppa1. Различия составляют лишь коды групп и регистры, отвечающие за каждую группу:

gruppa3:

Inc R6

Для третьей группы будет установлен код «01»:

setb P2.1

setb P2.2

jmp indic

gruppa2:

Inc R5

Для группы 2 код «10»:

setb P2.1

clr P2.2

jmp indic

gruppa1:

Inc R4

Группе 1 будет соответствовать код «00»:

clr P2.1

clr P2.2

jmp indic

Теперь приступим к индикации.

indic:

mov A,#31h

call symbol

Запишем в аккумулятор код символа «:»и вызовем подпрограмму индикации:

mov A,#3Ah

call symbol

Запишем в аккумулятор число микросхем, относящихся к первой группе, добавляем старшую тетраду и вызовем подпрограмму индикации:

mov A,R4

Add A,#30h

call symbol

Выведем на индикацию пробел:

mov A,# 00h

call symbol

Повторяем тоже самое для группы 2, 3 и группы «Брак»:

mov A,#32h

call symbol

mov A,#3Ah

call symbol

mov A,R5

add A,#30h

call symbol

mov A,#00h

call symbol

mov A,#33h

call symbol

mov A,#3Ah

call symbol

mov A,R6

add A,#30h

call symbol

mov A,#00h

call symbol

mov A,#34h

call symbol

mov A,#3Ah

call symbol

mov A,R7

add A,#30h

call symbol

По окончании обработки прерывания выставляется флаг F0.

setb F0

reti

Теперь, так как флаг F0 установлен, перейдем на метку gotovo.

gotovo:

clr F0

Сбрасываем флаги и очищаем регистры таймера и счётчика

clr TF0

clr TF1

mov TH0,#0

mov TL0,#0

mov TH1,#0

mov TL1,#0

Сбрасываем порт P2.0, вызываем подпрограмму задержки и снова устанавливаем порт P2.0, чем формируем отрицательный строб.

clr P2.0

call twosecdelay

setb P2.0

Ожидаем, пока не будет отжата кнопка. В противном случае, контроллер не начнет выполнять программу сначала. Когда кнопка отжата, процесс зацикливается.

jnb P1.2,$

ljmp start

Рассмотрим используемые подпрограммы.

1. Подпрограмма передачи команды в LCD-дисплей.

В R0 помещаем адрес внутреннего командного регистра LCD. Затем на линиях RS и RW устанавливаем низкие потенциалы, что соответствует командному режиму LCD. И, затем, используя команду записи во внешнее ОЗУ, передаем команду из аккумулятора во внутренний командный регистр. При этом автоматически генерируется импульс на выходе WR микроконтроллера, что по вышеуказанной схеме соединения соответствует подаче стробового импульса E на LCD-индикатор. Т.к. LCD-дисплеи сравнительно медленные, после подачи команды, перейдем на метку ожидания занятости LCD.

LSDSetup:

mov R0,#CMD

clr RS

clr RW

movx @R0,A

jmp Busy

2. Подпрограмма индикации символа на LCD-дисплее.

В R0 помещаем адрес внутреннего регистра данных LCD. Затем на линии RS устанавливаем высокий потенциал, а на линии RW - низкий, что соответствует режиму индикации LCD. И, затем, используя команду записи во внешнее ОЗУ, передаем данные из аккумулятора во внутренний регистр данных LCD. При этом автоматически генерируется импульс на выходе WR микроконтроллера, что по вышеуказанной схеме соединения соответствует подаче стробового импульса E на LCD-индикатор. Т.к. LCD-дисплеи сравнительно медленные, после передачи данных, перейдем на метку ожидания занятости LCD.

Symbol:

mov R0,#DAT

setb RS

clr RW

movx @R0,A

jmp Busy

3. Метка ожидания «занятости» LCD дисплея.

В R1 помещаем адрес busy-регистра LCD. Затем на линии RW устанавливаем высокий потенциал, а на линии RS - низкий, что соответствует флаговому режиму занятости LCD. И, затем, используя команду чтения из внешнего ОЗУ, передаем данные из busy-регистра LCD в аккумулятор. При этом автоматически генерируется импульс на выходе RD микроконтроллера, что по вышеуказанной схеме соединения соответствует подаче стробового импульса E на LCD-индикатор. LCD обозначает свою занятость, наличием старшего бита в busy-регистре, поэтому подпрограмма зациклена командой “jb” так, что выход из неё возможен только, когда исчезнет старший бит в busy-регистре в аккумуляторе, что соответствует окончанию выполнения операции LCD-дисплеем.

Busy:

mov R0,#BUS

clr RS

setb RW

movx A,@R0

jb ACC.7,Busy

ret

6. Подпрограмма, реализующая задержку.

Задержку реализуем, основываясь на том свойстве МК, что выполнение им операций занимает определенное время.

В таймер загружаем числа, соответствующие заданной задержке. И ждем, пока таймер отсчитает заданное время.

twosecdelay:

mov TH0,#high(-2000)

mov TL0,#low(-2000)

setb TR0

jnb TF0,$

clr TR0

clr TF0

ret

end

6. Листинг программы

A51 MACRO ASSEMBLER KURS 05/15/2014 19:45:29 PAGE 1

MACRO ASSEMBLER A51 V8.02b

OBJECT MODULE PLACED IN kurs.OBJ

ASSEMBLER INVOKED BY: C:\Keil\C51\BIN\A51.EXE kurs.a51 SET(SMALL) DEBUG EP

LOC OBJ LINE SOURCE

0000 1 org 00h

0000 802E 2 jmp init

001B 3 org 1Bh

001B 805B 4 jmp check

5

0000 6 CMD equ 00000000b

0001 7 DAT equ 00000001b

0002 8 BUS equ 00000010b

001D 7C00 9 mov R4, #00h

0090 10 RS bit P1.0

0091 11 RW bit P1.1

0030 12 org 30h

0030 13 init:

0030 758951 14 mov tmod, #01010001b

0033 D2AF 15 setb EA

0035 D2AB 16 setb ET1

17

0037 7440 18 mov A, #040h

0039 3197 19 call LSDsetup

003B 740F 20 mov A, #0Fh

003D 3197 21 call LSDsetup

003F 7406 22 mov A, #06h

0041 3197 23 call LSDsetup

24

0043 25 start:

0043 D2A0 26 setb P2.0

27

0045 C28D 28 clr TF0

0047 C28F 29 clr TF1

0049 758C00 30 mov TH0, #0

004C 758A00 31 mov TL0, #0

004F 758D00 32 mov TH1, #0

0052 758B00 33 mov TL1, #0

0055 900000 34 mov DPTR, #0000h

0058 2092FD 35 jb P1.2, $

36

005B C28C 37 clr tr0

005D C28E 38 clr tr1

005F C28D 39 clr tf0

0061 C28F 40 clr tf1

41

0063 C290 42 clr RS

0065 C291 43 clr RW

0067 758DFF 44 mov TH1, #0FFh

006A 758B9B 45 mov TL1, #9bh

46

47

48

49

50

51

006D D28E 52 setb TR1

006F D28C 53 setb TR0

0071 20D502 54 gr:jb F0, gotovo1

0074 80FB 55 jmp gr

56

0076 57 gotovo1:

0076 215D 58 jmp gotovo

A51 MACRO ASSEMBLER KURS 05/15/2014 19:45:29 PAGE 2

59

0078 60 check:

0078 C28C 61 clr TR0

007A C28E 62 clr TR1

63

007C 858A82 64 mov dpl, TL0

007F 858C83 65 mov dph, TH0

66

0082 67 sravn7700:

0082 790A 68 mov R1, # low(778)

0084 7803 69 mov R0, # high(778)

0086 C3 70 clr C

0087 E582 71 mov A, DPL

0089 99 72 subb A, R1

008A 4002 73 jc perenos7700

008C 5005 74 jnc neperenos7700

008E 75 perenos7700:

008E E583 76 mov A, DPH

0090 14 77 dec A

0091 8004 78 jmp gruppa7700

0093 79 neperenos7700:

0093 E583 80 mov A, DPH

0095 8000 81 jmp gruppa7700

0097 82 gruppa7700:

0097 C3 83 clr C

0098 98 84 subb A, R0

0099 500D 85 jnc sravn8300

009B 4000 86 jc brak

87

88

009D 89 brak:

90

009D 0F 91 inc R7

009E D2A1 92 setb P2.1

00A0 D2A2 93 setb P2.2

94

00A2 7401 95 mov A, #01h

00A4 3197 96 call LSDsetup

00A6 8072 97 jmp indic

98

00A8 99 sravn8300:

00A8 7948 100 mov R1, # low(840)

00AA 7803 101 mov R0, # high(840)

00AC C3 102 clr C

00AD E582 103 mov A, DPL

00AF 99 104 subb A, R1

00B0 4002 105 jc perenos8300

00B2 5005 106 jnc neperenos8300

00B4 107 perenos8300:

00B4 E583 108 mov A, DPH

00B6 14 109 dec A

00B7 8004 110 jmp gruppa8300

00B9 111 neperenos8300:

00B9 E583 112 mov A, DPH

00BB 8000 113 jmp gruppa8300

00BD 114 gruppa8300:

00BD C3 115 clr C

00BE 98 116 subb A, R0

00BF 4002 117 jc gruppa3

118

00C1 500B 119 jnc sravn9100

120

00C3 121 gruppa3:

122

00C3 0E 123 inc R6

00C4 C2A1 124 clr P2.1

51 MACRO ASSEMBLER KURS 05/15/2014 19:45:29 PAGE 3

00C6 D2A2 125 setb P2.2

126

00C8 7401 127 mov A, #1

00CA 3197 128 call LSDsetup

00CC 804C 129 jmp indic

130

00CE 131 sravn9100:

00CE 7994 132 mov R1, # low(916)

00D0 7803 133 mov R0, # high(916)

00D2 C3 134 clr C

00D3 E582 135 mov A, DPL

00D5 99 136 subb A, R1

00D6 4002 137 jc perenos9100

00D8 5005 138 jnc neperenos9100

00DA 139 perenos9100:

00DA E583 140 mov A, DPH

00DC 14 141 dec A

00DD 8004 142 jmp gruppa9100

00DF 143 neperenos9100:

00DF E583 144 mov A, DPH

00E1 8000 145 jmp gruppa9100

00E3 146 gruppa9100:

00E3 C3 147 clr C

00E4 98 148 subb A, R0

00E5 4002 149 jc gruppa2

00E7 500B 150 jnc sravn10000

00E9 151 gruppa2:

152

00E9 0D 154 inc R5

00EA D2A1 155 setb P2.1

00EC C2A2 156 clr P2.2

157

00EE 7401 158 mov A,#1

00F0 3197 159 call LSDsetup

00F2 8026 160 jmp indic

161

00F4 162 sravn10000:

00F4 79EF 163 mov R1, # low(1007)

00F6 7803 164 mov R0, # high (1007)

00F8 C3 165 clr C

00F9 E582 166 mov A, DPL

00FB 99 167 subb A, R1

00FC 4002 168 jc perenos10000

00FE 5005 169 jnc neperenos10000

0100 170 perenos10000:

0100 E583 171 mov A, DPH

0102 14 172 dec A

0103 8004 173 jmp gruppa10000

0105 174 neperenos10000:

0105 E583 175 mov A, DPH

0107 8000 176 jmp gruppa10000

0109 177 gruppa10000:

0109 C3 178 clr C

010A 98 179 subb A, R0

010B 4002 180 jc gruppa1

010D 508E 181 jnc brak

010F 182 gruppa1:

010F 0C 184 inc R4

0110 C2A1 185 clr P2.1

0112 C2A2 186 clr P2.2

0114 7401 187 mov A,#1

0116 3197 188 call LSDsetup

0118 8000 189 jmp indic

011A 190 indic:

011A 7431 191 mov A,#31h

011C 31A0 192 call symbol

193

194

011E 743A 195 mov A,#3Ah

0120 31A0 196 call symbol

197

198

0122 EC 199 mov A,R4

0123 2430 200 add A,#30h

0125 31A0 201 call symbol

202

203

0127 7400 204 mov A,#00h

0129 31A0 205 call symbol

206

207

012B 7432 208 mov A,#32h

012D 31A0 209 call symbol

210

211

012F 743A 212 mov A,#3Ah

0131 31A0 213 call symbol

214

215

0133 ED 216 mov A,R5

217

0134 2430 218 add A,#30h

0136 31A0 219 call symbol

220

0138 7400 221 mov A,#00h

013A 31A0 222 call symbol

223

013C 7433 224 mov A,#33h

013E 31A0 225 call symbol

226

227

0140 743A 228 mov A,#3Ah

0142 31A0 229 call symbol

230

0144 EE 231 mov A,R6

232

0145 2430 233 add A,#30h

0147 31A0 234 call symbol

235

0149 7400 236 mov A,#00h

014B 31A0 237 call symbol

238

014D 7434 239 mov A,#34h

014F 31A0 240 call symbol

241

0151 743A 242 mov A,#3Ah

0153 31A0 243 call symbol

244

245

0155 EF 246 mov A,R7

247

0156 2430 248 add A,#30h

0158 31A0 249 call symbol

250

015A D2D5 251 setb F0

015C 32 252 reti

253

015D 254 gotovo:

015D C2D5 255 clr F0

256

015F C28D 257 clr TF0

0161 C28F 258 clr TF1

0163 758C00 259 mov TH0,#0

0166 758A00 260 mov TL0,#0

0169 758D00 261 mov TH1,#0

016C 758B00 262 mov TL1,#0

016F 900000 263 mov DPTR,#0000h

0172 C2A0 264 clr P2.0

0174 31B4 265 call twosecdelay

0176 D2A0 266 setb P2.0

0178 C28D 267 clr TF0

017A C28F 268 clr TF1

017C 758C00 269 mov TH0,#0

017F 758A00 270 mov TL0,#0

0182 758D00 271 mov TH1,#0

0185 758B00 272 mov TL1,#0

0188 900000 273 mov DPTR,#0000h

018B C2A0 274 clr P2.0

018D 31B4 275 call twosecdelay

018F D2A0 276 setb P2.0

0191 3092FD 277 jnb P1.2,$

0194 020043 278 ljmp start

279

0197 280 LSDsetup:

0197 7800 281 mov R0,#CMD

0199 C290 282 clr RS

019B C291 283 clr RW

019D F2 284 movx @R0,A

019E 8009 285 jmp Busy

286

01A0 287 symbol:

01A0 7801 288 mov R0, #DAT

01A2 D290 289 setb RS

01A4 C291 290 clr RW

01A6 F2 291 movx @R0, A

01A7 8000 292 jmp Busy

293

01A9 294 Busy:

01A9 7802 295 mov R0, #BUS

01AB C290 296 clr RS

01AD D291 297 setb RW

01AF E2 298 movx A,@R0

01B0 20E7F6 299 jb ACC.7,Busy

01B3 22 300 ret

301

01B4 302 twosecdelay:

01B4 758CF8 303 mov TH0,#high(-2000)

01B7 758A30 304 mov TL0,#low(-2000)

01BA D28C 305 setb TR0

01BC 308DFD 306 jnb TF0,$

01BF C28C 307 clr TR0

01C1 C28D 308 clr TF0

01C3 22 309 ret

310

311 end

A51 MACRO ASSEMBLER KURS 05/15/2014 19:45:29 PAGE 6

SYMBOL TABLE LISTING

------ ----- -------

N A M E T Y P E V A L U E ATTRIBUTES

ACC. . . . . . . . D ADDR 00E0H A

BRAK . . . . . . . C ADDR 009DH A

BUS. . . . . . . . N NUMB 0002H A

BUSY . . . . . . . C ADDR 01A9H A

CHECK. . . . . . . C ADDR 0078H A

CMD. . . . . . . . N NUMB 0000H A

DAT. . . . . . . . N NUMB 0001H A

DPH. . . . . . . . D ADDR 0083H A

DPL. . . . . . . . D ADDR 0082H A

EA . . . . . . . . B ADDR 00A8H.7 A

ET1. . . . . . . . B ADDR 00A8H.3 A

F0 . . . . . . . . B ADDR 00D0H.5 A

GOTOVO . . . . . . C ADDR 015DH A

GOTOVO1. . . . . . C ADDR 0076H A

GR . . . . . . . . C ADDR 0071H A

GRUPPA1. . . . . . C ADDR 010FH A

GRUPPA10000. . . . C ADDR 0109H A

GRUPPA2. . . . . . C ADDR 00E9H A

GRUPPA3. . . . . . C ADDR 00C3H A

GRUPPA7700 . . . . C ADDR 0097H A

GRUPPA8300 . . . . C ADDR 00BDH A

GRUPPA9100 . . . . C ADDR 00E3H A

INDIC. . . . . . . C ADDR 011AH A

INIT . . . . . . . C ADDR 0030H A

LSDSETUP . . . . . C ADDR 0197H A

NEPERENOS10000 . . C ADDR 0105H A

NEPERENOS7700. . . C ADDR 0093H A

NEPERENOS8300. . . C ADDR 00B9H A

NEPERENOS9100. . . C ADDR 00DFH A

P1 . . . . . . . . D ADDR 0090H A

P2 . . . . . . . . D ADDR 00A0H A

PERENOS10000 . . . C ADDR 0100H A

PERENOS7700. . . . C ADDR 008EH A

PERENOS8300. . . . C ADDR 00B4H A

PERENOS9100. . . . C ADDR 00DAH A

RS . . . . . . . . B ADDR 0090H.0 A

RW . . . . . . . . B ADDR 0090H.1 A

SRAVN10000 . . . . C ADDR 00F4H A

SRAVN7700. . . . . C ADDR 0082H A

SRAVN8300. . . . . C ADDR 00A8H A

SRAVN9100. . . . . C ADDR 00CEH A

START. . . . . . . C ADDR 0043H A

SYMBOL . . . . . . C ADDR 01A0H A

TF0. . . . . . . . B ADDR 0088H.5 A

TF1. . . . . . . . B ADDR 0088H.7 A

TH0. . . . . . . . D ADDR 008CH A

TH1. . . . . . . . D ADDR 008DH A

TL0. . . . . . . . D ADDR 008AH A

TL1. . . . . . . . D ADDR 008BH A

TMOD . . . . . . . D ADDR 0089H A

TR0. . . . . . . . B ADDR 0088H.4 A

TR1. . . . . . . . B ADDR 0088H.6 A

TWOSECDELAY. . . . C ADDR 01B4H A

REGISTER BANK(S) USED: 0

ASSEMBLY COMPLETE. 0 WARNING(S), 0 ERROR(S)

2.4 Hex файл

:02000000802E50

:04001B00805B7C008A

:10003000758951D2AFD2AB7438317E740F317E7472

:1000400006317ED2A0C28DC28F758C00758A007574

:100050008D00758B009000002092FDC28CC28EC274

:100060008DC28FC290C291758DFF758B9BD28ED23F

:100070008C20D50280FB215DC28CC28E858A828550

:100080008C8379087803C3E5829940025005E583A3

:10009000148004E5838000C398500D40000FD2A166

:1000A000D2A27401317E807279487803C3E58299C7

:1000B00040025005E583148004E5838000C3984026

:1000C00002500B0EC2A1D2A27401317E804C7994F1

:1000D0007803C3E5829940025005E583148004E566

:1000E000838000C3984002500B0DD2A1C2A27401BC

:1000F000317E802679EF7803C3E58299400250056E

:10010000E583148004E5838000C3984002508E0C80

:10011000C2A1C2A27401317E800074313187743A69

:100120003187EC2430318774003187743231877421

:100130003A3187ED24303187740031877433318749

:0B014000743A3187EE243031877400E0

:10014B00318774343187743A3187EF24303187D259

:10015B00D532C2D5C28DC28F758C00758A00758D54

:10016B0000758B00900000C2A0319BD2A03092FD95

:10017B000200437800C290C291F280097801D290BC

:10018B00C291F280007802C290D291E220E7F6226F

:10019B00758CF8758A30D28C308DFDC28CC28D2255

:00000001FF

Моделирование

Для проверки работоспособности микропроцессорной системы в среде Proteus 8 Professional была разработана модель (Рисунок 5).

Рисунок 5

Литература

Фрунзе А.В. Микроконтроллеры? Это же просто! Т.1. -- М.: ООО "ИД СКИМЕН", 2002, -- 336 с., ил.

Белов А.В. Самоучитель по микропроцессорной технике. -- СПб.: Наука и Техника, 2003. -- 224 с.: ил

Размещено на Allbest.ru


Подобные документы

  • Структурная схема устройства управления. Алгоритм работы микроконтроллера в его составе. Строение центрального процессорного элемента – микроконтроллера AVR семейства Classic. Принципиальная схема устройства, расчет временных параметров ее работы.

    курсовая работа [636,5 K], добавлен 03.12.2013

  • Особенности микроконтроллера ATTINY семейства AVR. Описание ресурсов микроконтроллера ATTINY12: описание процессора, порты ввода/вывода, периферийные устройства, архитектура ядра. Разработка устройства со световыми эффектами на базе микроконтроллера.

    курсовая работа [2,1 M], добавлен 24.06.2013

  • Техническая характеристика микроконтроллера ADuC812 – интегральной 12-разрядной системы сбора информации, включающей в себя прецизионный многоканальный АЦП с самокалибровкой, два 12-разрядных ЦАП. Описание алгоритма работы устройства и листинг программы.

    курсовая работа [442,3 K], добавлен 25.12.2012

  • Обоснование выбора датчика. Выбор микросхемы AD594, микроконтроллера. Блок–схема для программирования МК АТmega8. Подключение микросхемы к термопарам. Подключение одиночного и двойного питания. Схема соединения, обеспечивающая равенство температур.

    курсовая работа [962,4 K], добавлен 23.12.2015

  • Особенности проектирования микропроцессорного устройства "Цифровой осциллограф". Выбор микроконтроллера, описание периферийных устройств. Разработка принципиальной схемы устройства и программы для микроконтроллера, осуществляющей все функции устройства.

    курсовая работа [923,5 K], добавлен 24.12.2012

  • Проектирование контроллера опорно-поворотного устройства антенны. Структура микроконтроллера. Функциональная и принципиальная схема устройства. Выбор транзисторной сборки, двигателя, дисплея, источника питания. Алгоритм работы устройства, моделирование.

    курсовая работа [1,6 M], добавлен 08.06.2012

  • Методика проектирования, разработки, практической апробации цифрового регулятора температуры на базе микросхемы-термометра DS1620, который совмещает температурный датчик, схему управления и АЦП в одном кристалле, и микроконтроллера фирмы Atmel AT90S2313.

    курсовая работа [755,6 K], добавлен 19.06.2010

  • Микроконтроллер ATtiny2313/V фирмы Atmel: структура, основные характеристики, возможности. Центральное ядро процессора. Системная перепрограммируемая Flash-память программ. Порты ввода-вывода микроконтроллера. Блок-схема восьмиразрядного таймера/счётчика.

    курсовая работа [2,2 M], добавлен 11.01.2011

  • Структурная схема микропроцессорного устройства для определения частоты сигнала. Выбор микроконтроллера, описание алгоритма нахождения частоты. Алгоритм работы программы управления микропроцессорным устройством. Программа работы микропроцессора.

    курсовая работа [605,7 K], добавлен 24.11.2014

  • Разработка контроллера прибора, обеспечивающего реализацию функций оцифровки аналоговых данных с выводом результата в виде графического вида сигнала. Выбор контроллера и элементов схемы, их описание. Общий алгоритм работы и листинг программы управления.

    курсовая работа [1,1 M], добавлен 26.12.2012

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.