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

  • Вид работы:
    Курсовая работа (т)
  • Предмет:
    Информатика, ВТ, телекоммуникации
  • Язык:
    Русский
    ,
    Формат файла:
    MS Word
    931,08 Кб
  • Опубликовано:
    2014-12-17
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

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

Содержание

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

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

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

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

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

. Листинг

Литература

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

Описание.

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







Рисунок 1

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

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

а) Выбираем микроконтроллер 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мкс.

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

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

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

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

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

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

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

Рисунок 2

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

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

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

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

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

…130 - группа 3;

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

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
















Рисунок 3

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

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

Рисунок 4.

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

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

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

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

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

RS bit P1.0bit P1.1

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

CMD equ 00000000bequ00000001bequ00000010b

 Вызываем подпрограмму настройки режимов таймеров и настройки дисплея. Настраиваем специальный регистр управления таймерами TMOD tmod, #01010001b;16-битные таймеры Т0 и Т1 и включение счётчика от внешних сигналов.EA; все прерывания разрешены ET1; разрешено прерывание от таймера 1.

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

mov A,#040h LSDSetup.

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

mov A,#0Fh LSDSetup.

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

mov A,#06hLSDSetup.

Переходим на метку StartP2.0; Устанавливаем единичное значение стробового порта.

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

mov TH0,#0TL0,#0TH1,#0TL1,#0DPTR,#0000htr0tr1tf0tf1

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

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

mov TH1, # 0FFhTL1, #9bh

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

setb TR1TR0

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

gr:

jb F0,gotovo1gr

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

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

clr TR0TR1

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

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

mov dpl, TL0dph, TH0

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

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

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

mov R1, # low(776)R0, # high (776)CA, DPLA, R1

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

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

jc perenos7700neperenos7700:A, DPH

dec A gruppa7700:A, DPHgruppa7700:CA, R0sravn8300

jc  brak

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

Brak:R7

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

setb P2.1P2.2

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

mov A,#01hLSDSetup.

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

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

gruppa3:R6

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

setb P2.1P2.2indic

gruppa2:R5

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

setb P2.1P2.2indic

gruppa1:R4

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

clr P2.1P2.2indic

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

indic:

mov A,#31h

call symbol

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

mov A,#3Ahsymbol

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

mov A,R4A,#30hsymbol

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

mov A,# 00hsymbol

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

mov A,#32hsymbol

mov A,#3AhsymbolA,R5A,#30hsymbolA,#00hsymbolA,#33hsymbolA,#3AhsymbolA,R6A,#30hsymbol

mov A,#00hsymbol A,#34hsymbolA,#3Ahsymbol

mov A,R7A,#30h symbol

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

setb F0

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

gotovo:F0

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

clr TF0TF1TH0,#0TL0,#0TH1,#0TL1,#0

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

clr P2.0twosecdelayP2.0

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

jnb P1.2,$start

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

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

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

LSDSetup:R0,#CMDRSRW@R0,ABusy

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

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

Symbol:R0,#DATRSRW@R0,ABusy

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

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

Busy:R0,#BUSRSRWA,@R0ACC.7,Busy

ret

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

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

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

twosecdelay:TH0,#high(-2000)TL0,#low(-2000)TR0TF0,$TR0 TF0

ret

end

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

A51 MACRO ASSEMBLER KURS 05/15/2014 19:45:29 PAGE  1ASSEMBLER A51 V8.02bMODULE PLACED IN kurs.OBJINVOKED BY: C:\Keil\C51\BIN\A51.EXE kurs.a51 SET(SMALL) DEBUG EPOBJ   LINE  SOURCE

    1  org 00h

802E    2  jmp init

B     3  org 1Bh

B 805B    4  jmp check

 

0000     6  CMD equ 00000000b

0001     7  DAT equ 00000001b

0002     8  BUS equ 00000010b

D 7C00    9  mov R4, #00h

0090    10  RS bit P1.0

0091    11  RW bit P1.1

    12  org 30h

    13  init:

758951   14  mov tmod, #01010001b

D2AF    15  setb EA

D2AB    16  setb ET1

 

7440    18  mov A, #040h

3197    19  call LSDsetup

B 740F    20  mov A, #0Fh

D 3197    21  call LSDsetup

F 7406    22  mov A, #06h

3197    23  call LSDsetup

 

    25  start:

D2A0    26  setb P2.0

 

C28D    28  clr TF0

C28F    29  clr TF1

758C00   30  mov TH0, #0

C 758A00   31  mov TL0, #0

F 758D00   32  mov TH1, #0

758B00   33  mov TL1, #0

900000   34  mov DPTR, #0000h

2092FD   35  jb P1.2, $

 

B C28C    37  clr tr0

D C28E    38  clr tr1

F C28D    39  clr tf0

C28F    40  clr tf1

 

C290    42  clr RS

C291    43  clr RW

758DFF   44  mov TH1, #0FFh

A 758B9B   45  mov TL1, #9bh

 

 

 

 

 

 

D D28E    52  setb TR1

F D28C    53  setb TR0

20D502   54  gr:jb F0, gotovo1

80FB    55  jmp gr

 

    57  gotovo1:

215D    58  jmp gotovoMACRO ASSEMBLER KURS                 05/15/2014 19:45:29 PAGE  2

 

    60  check:

C28C    61  clr TR0

A C28E    62  clr TR1

 

C 858A82   64  mov dpl, TL0

F 858C83   65  mov dph, TH0

 

    67  sravn7700:

790A    68  mov R1, # low(778)

7803    69  mov R0, # high(778)

C3    70  clr C

E582    71  mov A, DPL

99    72  subb A, R1

A 4002    73  jc perenos7700

C 5005    74  jnc neperenos7700

E     75  perenos7700:

E E583    76  mov A, DPH

14    77  dec A

8004    78  jmp gruppa7700

    79  neperenos7700:

E583    80  mov A, DPH

8000    81  jmp gruppa7700

    82  gruppa7700:

C3    83  clr C

98    84  subb A, R0

500D    85  jnc sravn8300

B 4000    86  jc brak

 

 

D     89  brak:

 

D 0F    91  inc R7

E D2A1    92  setb P2.1

A0 D2A2    93  setb P2.2

 

A2 7401    95  mov A, #01h

A4 3197    96  call LSDsetup

A6 8072    97  jmp indic

 

A8     99  sravn8300:

A8 7948   100  mov R1, # low(840)

AA 7803   101  mov R0, # high(840)

AC C3    102  clr C

AD E582   103  mov A, DPL

AF 99    104  subb A, R1

B0 4002   105  jc perenos8300

B2 5005   106  jnc neperenos8300

B4     107  perenos8300:

B4 E583   108  mov A, DPH

B6 14    109  dec A

B7 8004   110  jmp gruppa8300

B9     111  neperenos8300:

B9 E583   112  mov A, DPH

BB 8000   113  jmp gruppa8300

BD     114  gruppa8300:

BD C3    115  clr C

BE 98    116  subb A, R0

BF 4002   117  jc gruppa3

 

C1 500B   119  jnc sravn9100

 

C3     121  gruppa3:

 

C3 0E    123  inc R6

C4 C2A1   124  clr P2.1

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

C6 D2A2   125  setb P2.2

 

C8 7401   127  mov A, #1

CA 3197   128  call LSDsetup

CC 804C   129  jmp indic

 

CE     131  sravn9100:

CE 7994   132  mov R1, # low(916)

D0 7803   133  mov R0, # high(916)

D2 C3    134  clr C

D3 E582   135  mov A, DPL

D5 99    136  subb A, R1

D6 4002   137  jc perenos9100

D8 5005   138  jnc neperenos9100

DA     139  perenos9100:

DA E583   140  mov A, DPH

DC 14    141  dec A

DD 8004   142  jmp gruppa9100

DF     143  neperenos9100:

DF E583   144  mov A, DPH

E1 8000   145  jmp gruppa9100

E3     146  gruppa9100:

E3 C3    147  clr C

E4 98    148  subb A, R0

E5 4002   149  jc gruppa2

E7 500B   150  jnc sravn10000

E9     151  gruppa2:

 

E9 0D    154  inc R5

EA D2A1   155  setb P2.1

EC C2A2   156  clr P2.2

 

EE 7401   158  mov A,#1

F0 3197   159  call LSDsetup

F2 8026   160  jmp indic

 

F4     162  sravn10000:

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

F6 7803   164  mov R0, # high (1007)

F8 C3    165  clr C

F9 E582   166  mov A, DPL

FB 99    167  subb A, R1

FC 4002   168  jc perenos10000

FE 5005   169  jnc neperenos10000

    170  perenos10000:

E583   171  mov A, DPH

14    172  dec A

8004   173  jmp  gruppa10000

    174  neperenos10000:

E583   175  mov A, DPH

8000   176  jmp gruppa10000

    177  gruppa10000:

C3    178  clr C

A 98    179  subb A, R0

B 4002   180  jc gruppa1

D 508E   181  jnc brak

F     182  gruppa1:

     010F 0C    184  inc R4

C2A1   185  clr P2.1

C2A2   186  clr P2.2

3197   188  call LSDsetup

8000   189  jmp indic

A     190  indic:

A 7431   191  mov A,#31h

C 31A0   192  call symbol

 

 

E 743A   195  mov A,#3Ah

31A0   196  call symbol

 

 

EC    199  mov A,R4

2430   200  add A,#30h

31A0   201  call symbol

202 

 

7400   204  mov A,#00h

31A0   205  call symbol

 

 

B 7432   208  mov A,#32h

D 31A0   209  call symbol

 

 

F 743A   212  mov A,#3Ah

31A0   213  call symbol

 

 

ED    216  mov A,R5

 

2430   218  add A,#30h

31A0   219  call symbol

 

7400   221  mov A,#00h

A 31A0   222  call symbol

 

C 7433   224  mov A,#33h

E 31A0   225  call symbol

 

 

743A   228  mov A,#3Ah

31A0   229  call symbol

 

EE    231  mov A,R6

 

2430   233  add A,#30h

31A0   234  call symbol

 

7400   236  mov A,#00h

B 31A0   237  call symbol

 

D 7434   239  mov A,#34h

F 31A0   240  call symbol

 

743A   242  mov A,#3Ah

31A0   243  call symbol

 

 

EF    246  mov A,R7

 

2430   248  add A,#30h

31A0   249  call symbol

 

A D2D5   251  setb F0

C 32    252  reti

 

D     254  gotovo:

D C2D5   255  clr F0

 

F C28D   257  clr TF0

C28F   258  clr TF1

758C00   259  mov TH0,#0

758A00   260  mov TL0,#0

758D00   261  mov TH1,#0

C 758B00   262  mov TL1,#0

F 900000   263  mov DPTR,#0000h

C2A0   264  clr P2.0

31B4   265  call twosecdelay

D2A0   266  setb P2.0

C28D   267  clr TF0

A C28F   268  clr TF1

C 758C00   269  mov TH0,#0

F 758A00   270  mov TL0,#0

758D00   271  mov TH1,#0

758B00   272  mov TL1,#0

900000   273  mov DPTR,#0000h

B C2A0   274  clr P2.0

D 31B4   275  call twosecdelay

F D2A0   276  setb P2.0

3092FD   277  jnb P1.2,$

020043   278  ljmp start

 

    280  LSDsetup:

7800   281  mov R0,#CMD

C290   282  clr RS

B C291   283  clr RW

D F2    284  movx @R0,A

E 8009   285  jmp Busy

 

A0     287  symbol:

A0 7801   288  mov R0, #DAT

A2 D290   289  setb RS

A4 C291   290  clr RW

A6 F2    291  movx @R0, A

A7 8000   292  jmp Busy

 

A9     294  Busy:

A9 7802   295  mov R0, #BUS

AB C290   296  clr RS

AD D291   297  setb RW

AF E2    298  movx A,@R0

B0 20E7F6   299  jb ACC.7,Busy

B3 22    300  ret

 

B4     302  twosecdelay:

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

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

BA D28C   305  setb TR0

BC 308DFD   306  jnb TF0,$

BF C28C   307  clr TR0

C1 C28D   308  clr TF0

C3 22    309  ret

 

 end

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

SYMBOL TABLE LISTING

----- ----- -------A M E    T Y P E V A L U E ATTRIBUTES. . . . . . . . D ADDR 00E0H A . . . . . . . C ADDR 009DH A . . . . . . . . N NUMB 0002H A . . . . . . . C ADDR 01A9H A . . . . . . . C ADDR 0078H A . . . . . . . . N NUMB 0000H A . . . . . . . . N NUMB 0001H A . . . . . . . . D ADDR 0083H A . . . . . . . . D ADDR 0082H A . . . . . . . . B ADDR 00A8H.7 A . . . . . . . . B ADDR 00A8H.3 A . . . . . . . . B ADDR 00D0H.5 A . . . . . . C ADDR 015DH A . . . . . . C ADDR 0076H A . . . . . . . . C ADDR 0071H A . . . . . . C ADDR 010FH A . . . . C ADDR 0109H A . . . . . . C ADDR 00E9H A . . . . . . C ADDR 00C3H A . . . . C ADDR 0097H A . . . . C ADDR 00BDH A . . . . C ADDR 00E3H A . . . . . . . C ADDR 011AH A . . . . . . . C ADDR 0030H A . . . . . C ADDR 0197H A . . C ADDR 0105H A . . . C ADDR 0093H A . . . C ADDR 00B9H A . . . C ADDR 00DFH A . . . . . . . . D ADDR 0090H A . . . . . . . . D ADDR 00A0H A . . . C ADDR 0100H A . . . . C ADDR 008EH A . . . . C ADDR 00B4H A . . . . C ADDR 00DAH A . . . . . . . . B ADDR 0090H.0 A . . . . . . . . B ADDR 0090H.1 A . . . . C ADDR 00F4H A . . . . . C ADDR 0082H A . . . . . C ADDR 00A8H A . . . . . C ADDR 00CEH A . . . . . . . C ADDR 0043H A . . . . . . C ADDR 01A0H A . . . . . . . . B ADDR 0088H.5 A . . . . . . . . B ADDR 0088H.7 A . . . . . . . . D ADDR 008CH A . . . . . . . . D ADDR 008DH A . . . . . . . . D ADDR 008AH A . . . . . . . . D ADDR 008BH A . . . . . . . D ADDR 0089H A . . . . . . . . B ADDR 0088H.4 A . . . . . . . . B ADDR 0088H.6 A . . . . C ADDR 01B4H A BANK(S) USED: 0 COMPLETE. 0 WARNING(S), 0 ERROR(S)

.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 с.: ил

Похожие работы на - Программа контроллера устройства

 

Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!