Программа контроллера устройства. Курсовая работа (т). Информатика, ВТ, телекоммуникации.

Программа контроллера устройства. Курсовая работа (т). Информатика, ВТ, телекоммуникации.




👉🏻👉🏻👉🏻 ВСЯ ИНФОРМАЦИЯ ДОСТУПНА ЗДЕСЬ ЖМИТЕ 👈🏻👈🏻👈🏻



























































Вы можете узнать стоимость помощи в написании студенческой работы.


Помощь в написании работы, которую точно примут!

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

Скачать Скачать документ
Информация о работе Информация о работе


Скачать Скачать документ
Информация о работе Информация о работе


Скачать Скачать документ
Информация о работе Информация о работе


Скачать Скачать документ
Информация о работе Информация о работе


Скачать Скачать документ
Информация о работе Информация о работе


Скачать Скачать документ
Информация о работе Информация о работе


Скачать Скачать документ
Информация о работе Информация о работе

Нужна качественная работа без плагиата?

Не нашел материал для своей работы?


Поможем написать качественную работу Без плагиата!

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


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


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


















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




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


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




Память
программ (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мкс.


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


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




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




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




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


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


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




































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







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









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


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


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




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




CMD equ
00000000bequ00000001bequ00000010b




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


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







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




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




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


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




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




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




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




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


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


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




Хранящееся в 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, что соответствует группе «брак». Переходим на метку брак.




dec A gruppa7700:A,
DPHgruppa7700:CA, R0sravn8300


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




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




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




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




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




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




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




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




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


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




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


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


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




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




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




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




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




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


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


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




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


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




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


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







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


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


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




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


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


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


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


F6 7803  164 mov R0, # high (1007)


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


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


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


----- ----- -------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)


:10003000758951D2AFD2AB7438317E740F317E7472


:1000400006317ED2A0C28DC28F758C00758A007574


:100050008D00758B009000002092FDC28CC28EC274


:100060008DC28FC290C291758DFF758B9BD28ED23F


:100070008C20D50280FB215DC28CC28E858A828550


:100080008C8379087803C3E5829940025005E583A3


:10009000148004E5838000C398500D40000FD2A166


:1000A000D2A27401317E807279487803C3E58299C7


:1000B00040025005E583148004E5838000C3984026


:1000C00002500B0EC2A1D2A27401317E804C7994F1


:1000D0007803C3E5829940025005E583148004E566


:1000E000838000C3984002500B0DD2A1C2A27401BC


:1000F000317E802679EF7803C3E58299400250056E


:10010000E583148004E5838000C3984002508E0C80


:10011000C2A1C2A27401317E800074313187743A69


:100120003187EC2430318774003187743231877421


:100130003A3187ED24303187740031877433318749


:10014B00318774343187743A3187EF24303187D259


:10015B00D532C2D5C28DC28F758C00758A00758D54


:10016B0000758B00900000C2A0319BD2A03092FD95


:10017B000200437800C290C291F280097801D290BC


:10018B00C291F280007802C290D291E220E7F6226F


:10019B00758CF8758A30D28C308DFDC28CC28D2255


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




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


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






Похожие работы на - Программа контроллера устройства Курсовая работа (т). Информатика, ВТ, телекоммуникации.
Реферат На Тему Методики Профориентационной Работы
Курсовая работа по теме Адаптация и компенсация как различные виды приспособительных реакций организма
Реферат: Macbeth Imagery Essay Research Paper The play
Курсовая работа: Ультразвуковая дефектоскопия электретов теневым методом. Скачать бесплатно и без регистрации
Доклад: Места антидепрессантов в терапии фобий
Учебное пособие: Методические указания к изучению дисциплины и выполнению контрольной работы №1 для студентов заочной формы обучения всех специальностей спбгиэу
Денсаулық Эссе Қазақша
Сколько В День Может Быть Контрольных Работ
Реферат На Тему История Денег
Курсовая работа по теме Экономическая эффективность функционирования предприятия
Реферат: Search For Dark Matters Essay Research Paper
Курсовая работа по теме Основные проблемы законодательной регламентации организации и проведения публичных мероприятий в России
Реферат: История развития камуфляжа. Скачать бесплатно и без регистрации
Учет Финансовые Результаты Курсовая Работа
Методы Нормирования Труда Реферат
Нарытая Информация Для Диссертации
Курсовая работа по теме Рассмотрение дел о несостоятельности (банкротстве) юридического лица
Требования К Отзывам На Диссертацию
Реферат: Экономический кризис и рыночные отношения
Физиотерапия Реферат Заключение
Похожие работы на - Процедуры, применяемые к должникам
Контрольная работа: Микроорганизмы. Отравления немикробного происхождения
Реферат: Византия в V в. Зенон и Теодорих Великий

Report Page