Реферат по предмету "Коммуникации и связь"


Микропроцессорная система дрессировочного стана

Министерствообразования и науки Российской Федерации
Федеральноеагентство по образованию
ГОУ ВПО
Череповецкийгосударственный университет
Институтинформационных технологий
Кафедраавтоматизации и систем управления
Расчетно-пояснительная записка к курсовой работе
Микропроцессорная система дрессировочного стана
по дисциплине
Проектирование микропроцессорных систем
Выполнили: студентки группы 1АП-41
Новожилова Е.В., Лушкина Н.С.
Научный руководитель: к. т. н. ХарахнинК.А.
Череповец 2010 г.

Содержание
Введение
1. Технологическая часть
2. Аппаратные средствамикропроцессорной системы
3. Описание технических средств дляреализации проекта
4. Описание программных средств дляреализации проекта
5. Программа для работымикропроцессорного контроллера на языке ассемблер
6. Программа для персональногокомпьютера на языке с++ в среде Borland C++Builder 6
7. Графическая часть:
А. Электрическая принципиальная схемамикропроцессорной системы
Б. Алгоритмы работы системы
В. Окно программы для персонального компьютера
Заключение
Список литературы

Введение
В ходе курсового проектаразрабатывается микропроцессорная система для измерения относительной деформации полосы надрессировочном стане.
Дрессировочный стан —прокатный стан, служащий для отделки (дрессировки) тонких металлических листови ленты посредством холодиной прокатки с малыми обжатиями (около 2—3%).Характерной особенностью дрессировочных станов является их несколькооблегчённая конструкция и меньшая, по сравнению с другими станами холоднойпрокатки, мощность привода. Дрессировочные станы конструируются большей частьюкак одноклетьевые, двухвалковые или четырёхвалковые. Станы последнего типаотличаются лучшими условиями работы подшипников валков и меньшим расходомэнергии. По обеим сторонам станов для дрессировки ленты устанавливаются моталкидля намотки ленты. Для дрессировки листов часто строятся многоклетьевыедрессировочные станы линейного типа. Такой стан представляет, по существу,несколько станов, установленных рядом и работающих на одном приводе; каждый изэтих станов — одноклетьевой или многоклетьевой. В последнем случае клетирасположены последовательно, одна за другой. Процесс дрессировки аналогиченпроцессу холодной прокатки, его осуществляют в один пропуск с меньшимиобжатиями и без подачи эмульсии или технологической смазки. При этом валкипрофилируют подогревом с помощью специальных горелок.
При дрессировке, однако,практически нельзя применять обжатия больших степеней, так как в противномслучае пластические свойства материала из-за упрочнения падают. При дрессировкеповышается твердость и снижается вязкость металла. Излишняя дрессировкавызывает после деформирования склонность стали к старению, а это приводит кухудшению физико-механических свойств металла. При дрессировке предел прочностистали повышается очень незначительно, твердость несколько возрастает, а относительноеудлинение уменьшается. Что касается условного предела текучести, то его изменениепри дрессировке носит сложный характер. Так, для малоуглеродистых сталей пределтекучести при степени деформации от 05 до 12 % уменьшается, а при дальнейшемувеличении степени деформации начинает возрастать. При дрессировке с обжатиемпорядка 0% в поверхностных слоях полосы происходит отрыв дислокаций, благодарячему предел текучести при растяжении соответственно уменьшается. Придрессировке электротехнических сталей подача смазки позволяет увеличить обжатиедо 14% (вместо 5 — 6% при отсутствии смазки) без перегрузки стана и осуществитьпромышленное производство этих сталей с однократной дрессировкой. Станы длядрессировки стали имеют одну или две клети: кварто-кварто или кварто-дуо. Придрессировке на двухклетевых непрерывных станах суммарная деформация делится надва обжатия. Обжатие в первой клети всегда больше, а с помощью второго (меньшегопо величине) обжатия осуществляется правка полосы и уменьшается ее разнотолщинность.

1. Технологическая часть
Схема процессадрессировки представленна на рис.1.
/>
Рис.1. Схематехнологического процесса
Дрессировку металлапроизводят после его термической обработки. Отожженный лист поступает надрессировочный стан, на котором производится прокатка с малым обжатием, порядка0,5-3%. Дрессировка необходима для того, чтобы получить стальной лист, относительномягкий внутри и твёрдый на поверхности, пригодный для глубокой штамповки, и,кроме того, произвести окончательную отделку поверхности холоднокатаного отожженноголиста. Для дрессировки служат специальные дрессировочные станы, нереверсивные,мало отличающиеся в конструктивном отношении от обычных станов холоднойпрокатки.
Цель дрессировки являетсяулучшение поверхности стали, имеющей после горячей прокатки и травления многонеровностей, а также для создания поверхностного упрочнения (наклепа), чтоимеет существенное значение для листов, подвергаемых в дальнейшем холоднойштамповке, так как при недостаточно жесткой поверхности металла на ней могутпоявиться линии сдвига (следы от пересечения плоскостей сдвигов с внешней поверхностьюлиста).
В процессе дрессировкидеформация листа должна быть незначительной, и необходимо проводить четкийконтроль относительной деформации полосы на дрессировочном стане. Расчет этогопараметра можно провести следующим образом:
/>,
где /> - количество импульсов на выходеклети, полученных от импульсного датчика, полученных с импульсного датчика, /> - количествоимпульсов, полученных с импульсного датчика на входе.
Для измерения толщиныиспользуется радиоизотопный толщинометр, формирующий на своем выходе аналоговоенапряжение в диапазоне 0-2,5В. Сигналы с датчиков подаются на соответствующиевходы микропроцессорной системы (SDK),которая обрабатывает полученные данные и отправляет их по последовательному портув управляющий компьютер, который производит необходимые расчеты.
2. Аппаратные средствамикропроцессорной системы
В качествемикропроцессорной системы для проведения проектных работ используется учебныйстенд SDK1.1 на базе микроконтроллера ADuC842 с 12-разрядными АЦП и ЦАП,встроенным высокоскоростным МК с ЭРПЗУ (FLASH) на 62 кб. Структурная схема стенда представлена нарис. 2.
Учебный лабораторный комплекс SDK-1.1 предназначен для освоения архитектуры и методовпроектирования:
• Систем на базе микропроцессоров и однокристальных микроЭВМ:
• Встраиваемых контроллеров и систем сбора данных:
• Периферийных блоков вычислительных систем:
• Подсистем ввода-вывода встраиваемых систем.
/>
Рис 2. Структурная схемастенда
Описание архитектурыстенда
Основу лабораторного комплексамикропроцессорный стенд SDK-1.1на базе процессора ADuC812 или ADuC842.
Аппаратные блокистенда:
— вычислительное ядро на основе8-разрядного процессора ADuC812 (ADuC842),FLASH-памяти и внешнего ОЗУ объемом до 512Кб. Процессорное ядро является клономядра Intel MCS51.
— COM-порт для связи с ПК (интерфейсRS232C);
— жидкокристаллический индикатор для выводатекста с поддержкой русского алфавита (2 строки по 16 символов);
— программируемая логическаяинтегральная схема (ПЛИС) семейства MAX3000A фирмы Altera. В очень упрощенномвиде ПЛИС представляет собой набор макроячеек и механизм для организации связимежду ними. Микросхема EPM3064A содержит 64 макроячейки. В стенде SDK-1.1MAX3064A используется как расширитель портов ввода-вывода. Микросхема MAX3064Aподключена к внешней шине ADuC812
— порт дискретного ввода-вывода,предназначенный для ввода и вывода информации, представленной в двоичном виде.Сигнал на входе или выходе дискретного порта может принимать значениелогического нуля или единицы. В SDK-1.1 дискретные порты выведены на разъем J3.Эти порты можно использовать для подключения модулей SDX или каких- либо другихвнешних устройств. Кроме этого, к дискретным входам-выходам подключены DIPпереключатели, позволяющие задавать фиксированные значения сигналов на входах.
— аналоговый порт ввода на базе8-миканального 12-тиразрядного АЦП;
— аналоговый порт вывода на основе двух12-тиразрядных ЦАП;
— EEPROM-память емкостью 640 байт;
— второй блок EEPROM-памяти емкостью до32 Кб, подключенный к вычислителю через интерфейс I2C;
— три 16-тиразрядных таймера-счетчика свнешними счетными входами (возможностью подачи сигналов через переключатели стенда)и блоком захвата/сравнения для измерения параметров и/или формированиядискретных сигналов;
— сторожевой таймер;
— линейку из 8 сигнальных светодиодов;
— акустический пьезокерамическийизлучатель;
— матричная клавиатура на 16 клавишорганизована в виде матрицы 4x4. Доступ к колонкам и рядам организован какчтение/запись определенного байта внешней памяти (4 бита соответствуют 4колонкам, другие 4 бита — рядам). При нажатии на кнопку, происходит изменениезначения сигнала на входе соответствующего ряда с единицы на ноль
— часы/календарь с возможностьюподключения внешней батареи питания.
Распределение памяти
Стандартная для архитектуры8051 структура внутренней памяти представлена четырьмя банками по 8 регистров общегоназначения (диапазоны адресов 00h-07h, 08h-0Fh, 10h-17h, 18h-1Fh), битовым сегментом(20h-2Fh), свободным участком 30h-7Fh, областью размещения SFR (регистровспециального назначения) 80h-FFh, доступной при прямой адресации, и свободнойобластью 80h-FFh, доступной при косвенной адресации.
Внешняя память SDK-1.1 разбитана следующие области: AduC812 Flash/EE, SRAM,MAX.
Flash/EE. Это область, в которой располагаетсятаблица векторов прерываний и резидентный загрузчик файлов в формате HEX впамять SRAM.
SRAM. Статическая память SRAM в SDK-1.1 имеетстраничную организацию (максимум 8 страниц по 64 К) и условно разделяется на двеобласти. Первая занимает младшие 64 Кбайт (страница 0) и доступна для выборки командмикроконтроллером ADuC812. Таким образом, программы могут располагаться тольков этих младших 64 К адресного пространства. Остальные страницы доступны толькодля размещения данных. Для адресации ячейки памяти определенной страницы необходимозаписать номер страницы в регистр специального назначения DPP ADuC812 (адрес84h).
MAX. В младших адресах восьмой страницы адресногопространства (080000h- 080007h) располагается 8 ячеек-регистров ПЛИС MAX8064 (MAX8128).Эта область предназначена для взаимодействия с периферийными устройствами стенда.
Сопряжение с ПК
Сопряжение стенда скомпьютером, необходимое для программирования микроконтроллера стенда ипередачи данных между ПК и SDK,осуществляется с помощью последовательного порта (RS-232).
Требования к ПК:
· IBM-совместимый компьютер с наличиемпоследовательного СОМ-порта.
· Операционная система: Windows 95/98/ME/2000/XP/Vista.
3. Описание техническихсредств для реализации проекта
Следует отметить, чтоосновное внимание в данном курсовом проекте уделено разработке программногообеспечения для микропроцессорного учебного стенда SDK и ПК, а технологический процесс моделируетсяупрощенно с помощью имеющихся на стенде устройств.
Так, например, в качестведатчика толщинометра использован цифро-аналоговый преобразователь, замкнутый нааналого-цифровом преобразователе. На выходе ЦАП формируется напряжение ≈1.1В, после преобразований в АЦП и передаче значения через последовательный порт врасчетах в программе на С++ используется значение ≈1, котороеиспользовано в качестве толщины на входе клети. Для моделирования обоихимпульсных датчиков угловой скорости используется клавиатура SDK: кнопка «1» прибавляет один импульс,кнопка «2» — десять импульсов, кнопка «3» — сто импульсов. Превышение заданногозначения относительной деформации сигнализируется зажиганием нечетныхсветодиодов (через один), звуковым сигналом и выводом необходимой информации надисплей, при этом выводится значение разности между текущим и заданнымзначением деформации. Передача данных между SDK и ПК осуществляется по последовательному COM-порту (RS-232). В качестве ПК используется IBM-совместимый компьютер с наличием последовательногоСОМ-порта и операционной системой семейства Windows.
микропроцессорныйконтроллер деформация дрессировочный

4. Описание программныхсредств для реализации проекта
Для создания программы наязыке C++ использовалась среда разработки Borland C++Builder 6, а такженабор программ для компиляции и загрузки кода на языке Ассемблера в стенд SDK.
Для взаимодействия стендас ПК и работы с интерфейсом RS-232использована библиотека ComPortLirary 3.10.
Для создания, компиляциии загрузки в стенд кода используется следующий набор программ:
Ассемблер А51 преобразовывает исходныйассемблерный код в перемещаемый объектный модуль. Ассемблер А51 полностьюподдерживает исходный код на языке Intel ASM-51. АссемблерА51 поддерживает все микроконтроллеры семейства 8051. Набор регистровспециального назначения (SFR)является стандартным. Вызов:
А51 sourcefile[directives] А51 @ commandfile
sourcefileИмя исходного файла на ассемблере.
commandfileИмя файла, содержащего команднуюстроку ассемблера, включающую sourcefile и directives. Вы можете использовать командныйфайл для более простой компоновки исходного файла или в том случае, когда вседирективы не помещаются в командной строке.
directivesПараметры.
Загрузчик/компоновщик BL51 объединяет один или несколько объектных модулей водин исполняемый файл. Компоновщик также разрешает внешние и глобальные ссылкии назначает абсолютные адреса перемещаемым сегментам программ. Компоновщикавтоматически выбирает подходящие библиотеки рабочих программ и связываеттолько нужные модули библиотек. Вызов:
BL51inputlist [TO outputfile] [directives]
L51inputlist [TO outputfile] [directives] BL51 @commandfile
L51 @commandfiIe
sourcefileИмя исходного объектного файла,созданного компилятором А51 или С.
commandfileИмя файла, содержащего команднуюстроку компилятора, включая sourcefile и directives. Можно использовать командный файлдля более простой компоновки исходного файла или в том случае, когда все директивыне помещаются в командной строке.
directivesПараметры элементов управления.
Шестнадцатеричный конвертер ОН51 конвертируетобъектные модули в абсолютных адресах в шестнадцатеричные файлы в формате Intel. Модули перед этим создаются с помощьюкомпоновщика BL51 или конвертера ОС51.
ОН51 absfile|HEXFILE(hexfile)
absfileИмя объектного модуля, построенного вабсолютных адресах.
hexfileИмя шестнадцатеричного файла вформате Intel, который должен быть создан.
Для загрузки программы вМК используется загрузчик T2.
5. Программа для работымикропроцессорного контроллера на языке ассемблер
DPPDATA84h; адресуказателя страницы данных (data; page ponter)
ADCCON1 DATA0EFH; региструправления АЦП
ADCCON2 DATA 0D8H;регистр управления АЦП
ADCCON3 DATA 0F5H;регистр управления АЦП
ADCDATALDATA 0xD9;регистр младшего байта оцифрованных; данных АЦП
ADCDATAH DATA0xDA;регистр старшего байта оцифрованных данных; АЦП
DACCON DATA0xFD; региструправления ЦАП
DAC0L DATA0xF9; младшийрегистр данных ЦАП содержат
DAC0H DATA0xFA; старшийрегистр данных ЦАП содержат
PLLCONDATA0D7H; региструправления частотой контроллера
TIMECONDATA0A1H; адрессчетчика временных интервалов
T3FD DATA0x9D; регистрынастройки Таймера 3
T3CON DATA0x9E; региструправления таймером 3
ORG0000h; начало области,в которой будет располагаться код
JMPSTART; переход наинициализацию системы
ORG0023H; векторпрерывания от последовательного порта (UART)
JMPPOSL_PORT; переход наподпрограмму обработки прерывания
START:
MOVPLLCON,#3; настраиваемчастоту ядра
MOVTMOD,#00H; T/C0 -таймер,режим0
MOVT3CON,#83H;устанавливаем скорость
MOVT3FD,#2DH; передачи –9600 бод
MOVSCON,#50H; настройкапоследовательного порта; 0101 0000 (01 — 8-битный режим, 01 — режим 0, приемразрешен, 00 — биты используемые в режимах 1 и 2, 0 — флаг передачи; последов.порта, устанавливается; аппаратно после передачи 8-го бита, д.б. сброшенпрограммно, 0 — флаг приема; последов порта, установливается аппаратно послеприема 8-го бита, д.б. сброшен; программно)
MOVIE,#00010000B;разрешение прерывания от UART
SETBEA; разрешениепрерываний
MAIN:; основная программа
CLRF0;
MOVR3,#0;
SCAN:; сканирование ипроверка регистра R3;
K0:
CJNER3, #2,K1; если R3=2,то
CALLDAC_ADC; перейти наподпрограмму ЦАП-АЦП,
MOVR3,#0; затем записатьв R3 0; иначе перейти на метку К1
K1:
CJNER3,#1, SCAN; еслиR3=1, то дальше сканировать клавиши 1,2 и 3, в портивном случае перейти наметку SCAN;
MOV R5,#0FEH;
MOV R7,#00H; нам нужен0-й байт 8-й страницы 08«00»00«Н
MOV R6,#00H;08»00«00
CALLWRITE;
CALLCHECK123;
CJNE A,#00H,K2; есликлавиша 1 не нажата, сканировать клавишу 2
CALLWAIT_CHECK1; проверкана „залипание“ клавиши 1
MOVSBUF,#01111000b;записываем в буфер значение символа;»x", бит TI устанавливается в 1,;инициируя прерывание по посл. порту
CALL DELAY; задержка
K2:; проверка нажатия клавиши2
MOVR5,#0FDH;
MOV R7,#00H; нам нужен0-й байт 8-й страницы 08«00»00«Н
MOV R6,#00H;08»00«00
CALLWRITE;
CALLCHECK123;
CJNE A,#00H,K3; есликлавиша 2 не нажата, сканировать клавишу 3
CALLWAIT_CHECK2; проверкана „залипание“ клавиши 2
MOVSBUF,#01111001b;записываем в буфер значение символа; „y“, бит TI устанавливается в1,; инициируя прерывание по посл. порту
CALL DELAY; задержка
K3:; проверка нажатияклавиши 3
MOVR5,#0FBH;
MOV R7,#00H; нам нужен0-й байт 8-й страницы 08»00«00»Н
MOV R6,#00H;08«00»00
CALLWRITE;
CALLCHECK123;
CJNE A,#00H,SCAN; есликлавиша 3 не нажата, перейти на; метку SCAN
CALLWAIT_CHECK3; проверкана «залипание» клавиши 2
MOVSBUF,#01111010b;записываем в буфер значение символа; «z», бит TI устанавливается в1,; инициируя прерывание по посл. порту
CALLDELAY; задержка
JMP SCAN; переход наметку SCAN
CHECK123:; функцияопределения, нажата ли клавиша (1,2 или 3)
CALL READ; читаем байт поадресу 080000Н
ANLA,#10H
RET
WAIT_CHECK1:
CALL READ;
CJNEA,#0FEH,WAIT_CHECK1; ждать, если клавиша1 зажата
RET
WAIT_CHECK2:
CALL READ;
CJNEA,#0FDH,WAIT_CHECK2; ждать, если клавиша2 зажата
RET
WAIT_CHECK3:
CALL READ;
CJNEA,#0FBH,WAIT_CHECK3; ждать, если клавиша3 зажата
RET
BUZZ:; Для управлениядинамиком в процедуре использованы таймер и регистр ПЛИС ENA (адрес;080004h).;2-4биты регистр ENA управляют величиной напряжения на динамике, т.е. позволяют; задаватьгромкость звука.; Для формирования звука генерируются прямоугольные импульсы сзаданным периодом.
MOVPLLCON,#5;
MOVR1,#255; задаемпродолжительность сигнала
MOVR2,#5;
AGAIN:
CLRTR0; выключаем таймер
MOVTH0,#00H; инициализациятаймера
MOVTL0,#00H;
SETBTR0; включаем таймер
MOVR5,#010H; записываемоечисло в регистр DPTR,
; соответствует высокомууровню напряжения
MOVR7,#04H; нам нужен 4-йбайт 8-й страницы 0800«04»Н
MOVR6,#00H; 08«00»04
REP1:
CALLWRITE; включаем сигнал
JNBTF0,REP1; удерживаемзначение в течение полупериода
CLRTR0; выключаем таймер
MOVTH0,#00H;инициализация таймера
MOVTL0,#00H;
SETBTR0; включаем таймер
MOVR5,#08H; записываемоечисло в регистр DPTR,; соответствует низкому уровню напряжения
MOVR7,#04H; нам нужен 4-йбайт 8-й страницы 08«00»04«Н
MOVR6,#00H;08»00«04
REP2:
CALLWRITE; Выключаемсигнал, 0-е напряжение
JNBTF0,REP2; удерживаемзначение в течение полупериода
CLRTR0; выключаем таймер
DJNZR1,AGAIN;
DJNZR2,AGAIN;
MOVPLLCON,#3;
RET;
LCD_Putch:; вывод символана дисплей, код которого
; передается через регистрR5
MOVR7,#01H; DATA_IND (080001H)
MOVR6,#00H;
CALLWRITE; устанавливаемданные на шине данных ЖКИ
MOVR5,#05H; 0-й бит C_INDотвечает за строб, 1-й бит –
; запись/чтение, 2-й битза данные/команды, 05H=0000 0101B — запись данных и; установка строба
CALLSTROBE; строб
RET;
STROBE:; подача сигнала Еинтерфеса ПЛИС ЖКИ на; время не менее 500 нс, одновременно подается;сигнал R/W=0 запись, RS=1 — данные
MOVR7,#06H;C_IND ( 080006H)
MOVR6,#00H;
CALLWRITE; установка строба
MOVR5,#0FEH
MOVR7,#06H;C_IND ( 080006H)
MOVR6,#00H;
CALLWRITE; сброс строба
CALLDELAY; задержка навремя исполнения команды
RET;
DELAY:; процедуразадержки
MOVR0,#100;
L1:
MOVR1,#100;
L2:
DJNZR1,L2;
DJNZR0,L1;
RET;
CLEAR:; очистка дисплея
MOVR5,#01H;
MOVR7,#01H;DATA_IND ( 080001H)
MOVR6,#00H;
CALLWRITE; устанавливаемданные на шине данных ЖКИ
MOVR5,#01H; командаочистки дисплея
CALLSTROBE; строб
MOVR7,#07H; нам нужен 7-йбайт 8-й страницы 0800»07«Н
MOVR6,#00H;08»00«07
MOVR5,#00000000B;инициализация светодиодов через один
CALLWRITE;
CLRF0;
RET;
POSL_PORT:; наступилопрерывание, бит TI или RI равен 1
JBRI,WAIT_IN; если бит RI- принимаем данные
JBTI,WAIT_OUT; если битTI — пересылаем данные
WAIT_IN:
CLRRI; сбрасываем флаг
MOVR5,SBUF; записываем вбуфер значение R5
CJNER5,#61H,E1; еслипришел символ 'a', то
MOVR3,#1; записать в R3 1
JMPE; переход на метку Е
E1:
CJNER5,#70H,E2; еслипришел символ 'р', то
MOVR3,#2; записать в R3 2
JMPE; переход на метку Е
E2:
CJNER5,#73H,E3; еслипришел символ 's', то
CALLCLEAR; очиститьдисплей и погасить светодиоды
JMPE; переход на метку Е
E3:; если не пришел нисимвол 'a', ни 'p', ни 's', то
MOVA,R5; это означает,что последовательно начали передаваться
MOVR4,A; значения,составляющие разность между текущим и заданным значениями деформаций
JBF0,E3a; если бит F0=0,тогда однократный
CALLSTOP; выводинформации: „Деформация Превышение: %“
E3a:
SETBF0;
CALLLCD_NA; выводсимволов, определяющих отклонение от; заданной деформации
E:
RETI;
WAIT_OUT:; подпрограммапересылки значения в послед. порт
CLR TI;
RETI;
DAC_ADC:
CALLDELAY;
MOVDACCON,#01101101B;настройка регистра ЦАП; 0-12 битный режим,; 11-бит выбора диапазона, 0-Vdd(в);01-выход ЦАП1=0 в, выход ЦАП0-; соответствует коду; 1-выходы ЦАПов изменяютсясразу, как; только данные попадают в регистры; 01-ЦАП1 выключен, ЦАП0 включен
MOVADCCON1,#10101100B;10-дежурныйрежим, если не выполняется; преобразование; 10-коэф. деления тактовой частотына 4; 11-число тактов задержки=4; 0-Бит запуска преобразования от Таймера 2; 0-битразрешения внешнего запуска АЦП
MOVDAC0H,#00000011B; переслатьзначение в старший байт ЦАП
MOVDAC0L,#10000100B; переслатьзначение в мл. байт; (т.е. 1.1/5*4095 = 909, т.е. 00000011 10000100)
MOVADCCON2,#00010000B;SCONV=1-Битоднократного преобразования; После того, как цикл завершился, бит;автоматически сбрасывается в 0
ADC_WAIT:
MOVA,ADCCON3;
JBACC.7,ADC_WAIT; Флагзанятости ЦАП (только для чтения).; Устанавливается аппаратно на; время цикла преобразованияили; калибровки. Автоматически сбрасывается; ядром в конце преобразования или;калибровки.
MOV A, ADCDATAH; записатьданные из старшего регистра АЦП в А
ANL A,#00001111B; стеретькод канала АЦП, хранящегося; в старшем байте
MOV SBUF, A; переслатьзначение
CALL DELAY; задержка
MOV A,ADCDATAL; записатьданные из младшего регистра АЦП в А
MOV SBUF, A; переслатьзначение
CALL DELAY; задержка
RET;
STOP:; подпрограммаокончания процесса
MOV R5,#11100000B; Д
CALLLCD_Putch;
MOV R5,#01100101B;е
CALLLCD_Putch;
MOVR5,#11100100B; ф
CALLLCD_Putch;
MOVR5,#01101111B; о
CALLLCD_Putch;
MOVR5,#01110000B; р
CALLLCD_Putch;
MOVR5,#10111100B; м
CALLLCD_Putch;
MOVR5,#01100001B; а
CALLLCD_Putch;
MOVR5,#11100101B;ц
CALLLCD_Putch;
MOVR5,#10111000B;и
CALLLCD_Putch;
MOVR5,#11000111B; я
CALLLCD_Putch;
MOVR5,#0C0H; сдвигкурсора на следующую строку
MOVR7,#01H;DATA_IND ( 080001H)
MOVR6,#00H;
CALLWRITE; устанавливаемданные на шине данных ЖКИ
MOVR5,#01H; командаочистки дисплея
CALLSTROBE; строб
MOVR5,#10101000B;П
CALLLCD_Putch;
MOVR5,#01110000B;р
CALLLCD_Putch;
MOVR5,#01100101B;е
CALLLCD_Putch;
MOVR5,#10110011B;в
CALLLCD_Putch;
MOVR5,#11000011B;ы
CALLLCD_Putch;
MOVR5,#11000001B;ш
CALLLCD_Putch;
MOVR5,#01100101B;е
CALLLCD_Putch;
MOVR5,#10111101B;н
CALLLCD_Putch;
MOVR5,#10111000B;и
CALLLCD_Putch;
MOVR5,#01100101B;е
CALLLCD_Putch;
MOVR5,#00111010B;:
CALLLCD_Putch;
MOVR5,#0CFH;; установкакрайнего правого положения во второй строке ЖКИ
MOVR7,#01H;DATA_IND ( 080001H)
MOVR6,#00H;
CALLWRITE; устанавливаемданные на шине данных ЖКИ
MOVR5,#01H; командаочистки дисплея
CALLSTROBE; строб
MOVR5,#00100101B; %
CALLLCD_Putch;
MOVR5,#0CBH; установкаположения после ':' во второй строке ЖКИ
MOVR7,#01H;DATA_IND ( 080001H)
MOVR6,#00H;
CALLWRITE; устанавливаемданные на шине данных ЖКИ
MOVR5,#01H; командаочистки дисплея
CALLSTROBE; строб
MOVR7,#07H; нам нужен 7-йбайт 8-й страницы 0800»07«Н
MOVR6,#00H;08»00«07
MOVR5,#10101010B;инициализация светодиодов через один
CALLWRITE;
CALL BUZZ; звуковой сигнал
RET;
LCD_NA:; вывод символов на дисплей, составляющий отклонение текущейдеформации от заданного значения
MOVR7,#01H;DATA_IND ( 080001H)
MOVR6,#00H;
MOVA,R4;
MOVR5,A;
CALLWRITE; устанавливаемданные на шине данных ЖКИ
MOVR5,#05H; 0-й бит C_INDотвечает за строб, 1-й бит –; запись/чтение, 2-й бит за данные/команды,;05H=0000 0101B — запись данных и;; установка строба
CALLSTROBE; строб
RET;
WRITE:; запись значенияпо адресу передаваемому в;R6 и R7, записываемое значение находится в R5
MOV DPL,R7; загружаемадрес в младший байт DPTR
MOV DPH,R6; загружаемадрес в старший байт DPTR
MOV R7,DPP; временносохраним содержимое dpp в R7
MOV DPP,#08H;переключаемся на 8-ю страницу — 080007Н
MOV A,R5;
MOVX@DPTR,A; записываемзначение
MOV DPP,R7; возвращаемстраницу
RET;
READ:; чтение значения поадресу передаваемому в; регистрах R6 и R7, прочитанное значение записываем в А
MOV DPL,R7; загружаемадрес в младший байт DPTR
MOV DPH,R6; загружаемадрес в старший байт DPTR
MOV R7,DPP; временносохраним содержимое dpp в R7
MOV DPP,#08H;переключаемся на 8-ю страницу — 080007Н
MOVX A,@DPTR; пересылаемв аккумулятор значение ячейки
MOV DPP,R7; возвращаемстраницу
RET;
END.

6. Программа для персонального компьютерана языке с++ в среде Borland C++Builder 6
//--------------------------------------------------------------
#include
#pragma hdrstop
#include
#include „Kursovik.h“
//--------------------------------------------------------------
#pragma package(smart_init)
#pragma link „CPort“
#pragma link „CPortCtl“
#pragma resource „*.dfm“
TForm1 *Form1;
int connect=0, N_vhod=0, N_vyhod=0, vhod=0, vyhod=0, process=0, ADC_H=0,ADC_L=0, v_vhod=15, P=50;
float ADC, e, h2, delta_e, zad_e=3, v_vyhod=0;
AnsiString Str,delta_es;
//--------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//--------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
if (connect==1)
{
zad_e=StrToFloat(Edit6->Text);//считывание заданного значения деформации
process=1;//переменная, отвечающая за начало процесса подсчтеа и анализа параметров
vhod=0;//переменная, отвечающая за формирование входных импульсов
vyhod=0;//переменная, отвечающая за формирование выходных импульсов
ComPort1->WriteStr('p'); //отправляем символ 'p'
ComPort1->ClearBuffer(true,true); //очистка буфера
}
}
//--------------------------------------------------------------
void __fastcall TForm1::ComPort1RxChar(TObject *Sender, int Count)
{
ComPort1->ReadStr(Str,1);//читаем полученные данные
ComPort1->ClearBuffer(true,true); // записываем в Str
if (vhod==1)
{
if (Str == 'x') {N_vhod=N_vhod+1; Edit1->Text=N_vhod;}
else if (Str == 'y') {N_vhod=N_vhod+10; Edit1->Text=N_vhod;}
else if (Str == 'z') {N_vhod=N_vhod+100; Edit1->Text=N_vhod;}
}
else if (vyhod==1)
{
if (Str == 'x') {N_vyhod=N_vyhod+1; Edit2->Text=N_vyhod;}
else if (Str == 'y') {N_vyhod=N_vyhod+10; Edit2->Text=N_vyhod;}
else if (Str == 'z') {N_vyhod=N_vyhod+100; Edit2->Text=N_vyhod;}
}
if (process == 1)
{
if (ADC_H == 0) ADC_H = Str[1];
else
{
ADC_L = Str[1];
if (ADC_L
ADC=(float)(ADC_H
if(N_vhod!=0 && N_vyhod>=N_vhod) //Проверка корректности данных поимпульсам (количество импульсов на входе
{
Edit3->Text=ADC;//Выводим толщину на входе
e=(float)(N_vyhod-N_vhod)/N_vhod*100;//Расчет текущего значения относительной деформации
Edit5->Text=e;//Выводим текущее значение относительной деформации
h2=ADC-e*ADC/100;//Расчет толщины на выходе
Edit4->Text=h2;//Выводим толщину на выходе
Edit7->Text=v_vhod;//Выводим скорость на входе
v_vyhod=(float)v_vhod*ADC/h2;//Расчет скорости на выходе
Edit8->Text=v_vyhod;//Выводим скорость на выходе
Edit9->Text=P;//Выводим усилие обжатия
ADC_H = 0;
ADC_L = 0;
process=0;
}
elseLabel5->Visible=true; //Если данные некорректны, вывод необходимойинформацию
}
}
if(e>zad_e) //Если текущее значение деформации больше заданного, то
{
delta_e=e-zad_e;//вычисляем разность между текущим значением и заданным
delta_es=(AnsiString)delta_e;//Преобразуем данную разность в строку
ComPort1->WriteStr(delta_es[1]);ComPort1->ClearBuffer(true,true); //и отправляем первыйбайт разности
Sleep(1000);
ComPort1->WriteStr(delta_es[2]);ComPort1->ClearBuffer(true,true); //отправляем второйбайт разности
Sleep(500);
ComPort1->WriteStr(delta_es[3]);ComPort1->ClearBuffer(true,true);//отправляем третийбайт разности
Sleep(500);
ComPort1->WriteStr(delta_es[4]);ComPort1->ClearBuffer(true,true);//отправляем четвертый байт разности
e=0;
}
}
//--------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
if (connect==1)
{
ComPort1->WriteStr('s');
ComPort1->ClearBuffer(true,true); //Очистка буфера
ComPort1->Connected=false; //Завершение соединения
ComPort1->Close(); //Закрытие порта
connect=0;
Edit1->Text=0;
Edit2->Text=0;
Edit3->Text=0;
Edit4->Text=0;
Edit5->Text=0;
Edit6->Text=0;
Edit7->Text=0;
Edit8->Text=0;
Edit9->Text=0;
N_vhod=0;
N_vyhod=0;
vhod=0;
vyhod=0;
process=0;
v_vyhod=0;
ADC_H=0;
ADC_L=0;
Edit6->Text=zad_e;
}
}
//--------------------------------------------------------------
void __fastcall TForm1::Button4Click(TObject *Sender)
{
Edit6->Text=zad_e;//Вывод заданного значения деформации
ComPort1->Open(); //Открытие порта
ComPort1->Connected=true; //Установление соединения
connect=1;
}
//--------------------------------------------------------------
void __fastcall TForm1::Button5Click(TObject *Sender)
{
if (connect==1)
{
process=0;
vhod=1;
vyhod=0;
Label5->Visible=false;
ComPort1->WriteStr('a');
ComPort1->ClearBuffer(true,true);
}
}
//--------------------------------------------------------------
void __fastcall TForm1::Button7Click(TObject *Sender)
{
if (connect==1)
{
process=0;
vyhod=1;
vhod=0;
Label5->Visible=false;
ComPort1->WriteStr('a');
ComPort1->ClearBuffer(true,true);
}
}
//--------------------------------------------------------------

7. Графическаячасть
А. Электрическаяпринципиальная схема микропроцессорной системы
 
/>

Б. Алгоритмыработы системы
/>

/>

В. Окнопрограммы для персонального компьютера
/>
Вокне программы имеются поля для вывода рассчитанных и необходимых для расчетовпараметров, имеется поле для ввода необходимого значения относительной деформации.Кнопка “ЗАПУСК” открывает COM-порт,моделируя, таким образом, начало технологического процесса. После нажатия накнопку “Начать счет” какой-либо панели (“Импульсы на входе” или “Импульсы навыходе”) можно моделировать кнопками стенда SDK количество импульсов, пришедших с импульсных датчиков(кнопка 1 – 1 импульс, кнопка 2 – 10 импульсов, кнопка 3 – 100 импульсов). Принажатии на “ПРОЦЕСС” приходят данные со стенда после преобразования ЦАП-АЦП,рассчитываются все имеющиеся параметры и выводятся в соответствующие поля.Кнопка “СТОП” моделирует окончание процесса (закрывается последовательныйпорт), при ее нажатии обнуляются переменные и поля для вывода.

Заключение
Задача на курсовой проектсостояла в проектировании микропроцессорной системы, обеспечивающей измерениеотносительной деформации полосы на дрессировочном стане. Для моделированияусловий технологического процесса был использован стенд SDK, для которого была написана изагружена в него программа на языке Ассемблера. Взаимодействие с ПКорганизовано посредством COM-порта,через который передаются необходимые данные для анализа параметров процесса, атакже управляющие сигналы. Расчет необходимых параметров, а толщина, скоростьполосы на выходе, относительная деформация полосы проводится при использованиипрограммы, написанной на языке С++.
Такимобразом, по полученным результатам работы можно сделать вывод об успешномвыполнении задания курсового проекта.

СПИСОК литературЫ
1.  Джонсон Б., Скибо К., ЯнгМ. Основы Visual studio.NET 2003 / пер. с англ. – Издательско-торговый дом»Русская редакция", 2003 – 464 с: ил.
2.  Павловская Т.А. С/С++.Программирование на языке высокого уровня – СПб.: Питер, 2003 – 461 с: ил.
3.  Павловская Т.А., Щупак Ю.А. C++. Объектно-ориентированное программирование: Практикум. – СПб.: Питер, 2006. – 265 с: ил.
4.  Харахнин К.А. Основы проектирования микропроцессорныхустройств автоматики на однокристальных микроконтроллерах: Учебное пособие. –Череповец: ЧГУ, 2007. – 234 с.
5.  Техническая документация на SDK1.


Не сдавайте скачаную работу преподавателю!
Данный реферат Вы можете использовать для подготовки курсовых проектов.

Поделись с друзьями, за репост + 100 мильонов к студенческой карме :

Пишем реферат самостоятельно:
! Как писать рефераты
Практические рекомендации по написанию студенческих рефератов.
! План реферата Краткий список разделов, отражающий структура и порядок работы над будующим рефератом.
! Введение реферата Вводная часть работы, в которой отражается цель и обозначается список задач.
! Заключение реферата В заключении подводятся итоги, описывается была ли достигнута поставленная цель, каковы результаты.
! Оформление рефератов Методические рекомендации по грамотному оформлению работы по ГОСТ.

Читайте также:
Виды рефератов Какими бывают рефераты по своему назначению и структуре.

Сейчас смотрят :

Реферат Алтайский краевой краеведческий музей
Реферат «Проблемы подготовки кадров по приоритетным направлениям науки, техники, сервиса и других сфер, относящихся к национальным интересам России»
Реферат Брачный договор в семейном праве
Реферат Профилактика травматизма у бегунов на средние и длинные дистанции
Реферат Конфликтное поведение в подростковой среде как фактор развития личности
Реферат Анализ состояния дебиторской и кредиторской задолженности
Реферат Разработка оболочки экспертной системы
Реферат Анализ состояния расчётов и платёжеспособности торгового предприятия
Реферат Бухгалтерский учет расчетов с бюджетом
Реферат Землетрясения. Вулканы
Реферат Нормативы образования отходов и лимиты их размещения для ОАО "Судоремонтный Судостроительный Завод "Мидель"
Реферат А. С. Пушкин «Маленькие трагедии.  «Гений и злодейство две вещи несовместные» ( Трагедия «Моцарт и Сальери») Цель урок
Реферат Високотемпературні надпровідні схеми інтегральних мікросхем
Реферат Государственная инновационная политика в развитых экономических сиcтемах
Реферат Золотая и медная минерализация: геохимические и физические процессы