Студопедия

КАТЕГОРИИ:

АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника


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




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

- после подачи напряжения питания на микроконтроллер, он производит настройку порта, а затем переходит в ожидание команды от ПК;

- после получения команды, микроконтроллер начинает генерацию минимальной частоты колебаний виброподвеса (340 Гц) и измерение амплитуды датчика ускорения (его амплитуда пропорциональна амплитуде колебаний виброподвеса). Затем происходит сохранение во внешней памяти и в ячейке внутренней памяти. Далее увеличивается частота на 0,916 Гц, и измерение напряжения датчика ускорения и сохранение измеренного значения повторяется. Затем определяется какое из значений больше. Большее значение сохраняется в оперативной памяти. Далее цикл повторяется до достижения наибольшей частоты. В результате во внешней памяти записывается зависимость амплитуд

 
 

 

 

 


 
 

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

- затем производится передача сохранённых значений напряжения колебаний из внешней памяти в ПК по беспроводному каналу. Для этого разрешается прерывание от последовательного порта и выключается таймер-счётчик ноль, обеспечивающий синтез частоты. После завершения передачи данных таймер-счетчик включается и продолжается генерация колебаний на резонансной частоте. Одновременно микроконтроллер ожидает команду от ПК.

Блок – схема программы изображена на рис. 3.11

Ниже приведён листинг программы.

 

$mod812

; Программа генерации синусоид с шагом 1 Гц и определения резонансной частоты подвеса

; начальное значение частоты 340 Гц (h)

; конечное значение частоты 460 Гц (h)

 

;***********************************************************

; Распределение ресурсов:

 

; ячейки внутренней памяти данных:

accuml data 20h ;адрес ячейки для младшего байта аккумулятора

; фазы

accumh data 21h ;адрес ячейки для старшего байта аккумулятора

;фазы

dell data 23h ;адрес ячейки младшего байта кода текущей

;частоты

delh data 24h ;адрес ячейки старшего байта кода текущей частоты

;30h - адрес предыдущего значения ДУСа,

;31h - адрес текущего значения ДУСа

;32h - адрес младшего байта кода частоты с большим

;значением ДУСа

;33h - адрес старшего байта кода частоты с большим

;значением ДУСа

 

; Регистры:

;R0 - адрес на странице внешней памяти при записи

;R1 - адрес на странице внешней памяти при чтении

;R3 - для сохранения аккумулятора при переходе к подпрограмме

;прерывания (можно хранить и в ячейке)

;R4 - для сохранения PSW при переходе к подпрограмме

;прерывания (можно хранить и в ячейке)

; R6,R7 - используются для создания программной задержки 142 мс

;ljmp m1

;**************************************************

; подпрограмма прерывания от Т\С0 для выдачи значения sin

org 000bh

mov r3, a ;сохранение значения аккумулятора основной

;программы

mov r4,PSW ;сохранение значения регистра PSW (сохр. бита С)

mov a, accuml

add a,dell ;сложение младших байтов аккумулятора

;и кода частоты

mov accuml, a

mov a, accumh

addc a,delh ;сложение старших байтов аккумулятора и кода

;частоты с учётом переноса

mov accumh, a

movc a,@a+dptr

mov DAC0L,a

mov a,r3 ;возврат значения аккумулятора в основную программу

mov PSW,r4 ;возврат значения регистра PSW в основную

;программу (возврат бита С)

; nop ; для того, чтобы во 2-м режиме таймера повторялось 92

цикла, иначе чередуются 91 и 93!

reti

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

org 0023h

jmp m11

 

;*****************************************

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

ORG 0033H ; (ADC ISR)

mov 31h,adcdatal

mov a,31h

movx @R0, a ;сохранение данных во внешнюю память

inc R0

subb a,30h

jc m4

mov 30h,31h ; загрузка большего значения ДУСа

mov 32h,dell ;Сохранение младшего байта кода частоты с

;большим значением ДУСа

mov 33h,delh ;Сохранение старшего байта кода частоты

;с большим значением ДУСа

m4: reti

;****************************************************************

m1:

;***********Инициализация последовательного порта**********

mov scon,#01010000b

mov tmod,#00100000b

mov th1,#00fdh

setb tr1

mov IE, #10010000b

jmp m5

m8:

clr ti

cjne r1, #131, m12

reti

m12: movx a, @R1 ;отправка данных в ПК

mov sbuf, a

inc R1

reti

m11:

jnb ri, m8 ;проверка запроса прерывания от приемника

clr ri ;очистка бита RI

mov r1,sbuf ;запись в регистр r1 внешней команды

reti

m5: cjne r1, #10, $ ; ожидание команды чтения данных

mov r1, #0

mov P2, #0 ;задание нулевой страницы внешеней памяти

mov DAC0H,#0 ; Обнуление старшего регистра ЦАП0

mov DAC0L,#0 ; Обнуление младшего регистра ЦАП0

mov DACCON, #10101101b ; Включение ЦАП0 (DAC0)

mov TMOD, #10b ; установка 2-го режима работы т\с0

mov TL0,#174 ;Задание интервала 100 мкс для 1-го

;срабатывания таймера (тактовая частота мк 11,059 мГц )

mov TH0,#164 ;Задание интервала 100 мкс для любого

;срабатывания таймера (тактовая частота мк 11,059 мГц)

mov IP,#00000010b ;Задание приоритета прерываний от т\с 0

mov accuml,#0 ;задание начального значения младшего байта

; аккумулятора фазы

mov accumh,#0 ;задание начального значения старшего байта

; аккумулятора фазы

mov dell , #180 ;Задание начальной частоты (340 Гц), младший

; байт

mov delh , #08 ;Задание начальной частоты (340 Гц), старший байт

mov dptr, #0110h ;Начальный адрес таблицы

MOV ADCCON1,#07Ch ; power up ADC, 14.5us conv+acq time

;(задание времени преобразования АЦП)

MOV ADCCON2,#0 ; select channel to convert (Выбор 0-го канала

;мультиплексора)

mov IP,#00000010b ; высший приоритет прерывания от Т\С0

mov IE, #11000010b

setb tr0 ;Пуск таймера интервалов отсчётов ЦАП

DELAY: ; Задержка 142 мс (48 периодов на частоте 340 Гц и

; 65 периодов на 460 Гц)

MOV R7,#255 ; 2550 * 535us = 142ms

DLY1: MOV R6,#255 ; 255 * 2.17us = 535us

DJNZ R6,$ ; sit here for 535us

DJNZ R7,DLY1 ; repeat 255 times (142 ms total)

;RET

 

 

SETB SCONV ; Запуск АЦП

jb SCONV, $ ; Организация задержки на время работы АЦП

*******************************

mov a, dell

add a,#6 ; Изменение частоты на величину 0,916 Гц

mov dell,a

mov a,delh

addc a,#0

mov delh,a

cjne a,#11,DELAY ;Контролируем достижение старшим байтом

;приращения верхнего (11) значения

mov a, #199 ; должно быть 199

subb a,dell ;Контролируем достижение младшим байтом

;приращения верхнего (199) значения

jnc DELAY

;**************************************************************

mov dell, 32h ;Загрузка младшего байта кода резонансной частоты

mov delh,33h ;Загрузка младшего байта кода резонансной частоты

clr TR0 ; остановка генерации синусоиды

mov IE, #10010010b ; снятие запрета прерывания от

;последовательного порта

setb ti ;начало передачи данных в ПК

cjne r1, #131, $ ; определение передачи всех данных

setb TR0 ;запуск генерации синусоиды на резонансной

;частоте

cjne r1, #10, $ ;работа на резонансной частоте пока не

;поступит запрос на передачу

jmp m5 ; возврат к определению резонансной частоты

org 0110h ;Таблица 256 значений round(255/2*(1+sin(?)))

DB 128 DB 131 DB 134 DB 137 DB 140 DB 143 DB 146 DB 149 DB 152 DB 156 DB 159 DB 162 DB 165 DB 168 DB 171 DB 174 DB 176 DB 179 DB 251 DB 252 DB 253 DB 253 DB 254 DB 254 DB 254 DB 255 DB 255 DB 255 DB 255 DB 255 DB 255 DB 255 DB 254 DB 254 DB 253 DB 253 DB 252 DB 252 DB 251 DB 250 DB 249 DB 248 DB 247 DB 246 DB 245 DB 244 DB 242 DB 241 DB 239 DB 238 DB 236 DB 235 DB 233 DB 231 DB 229 DB 227 DB 225 DB 223 DB 221 DB 219 DB 217 DB 215 DB 1 DB 1 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 1 DB 1 DB 1 DB 2 DB 2 DB 3 DB 4 DB 4 DB 5 DB 6 DB 7 DB 8 DB 9 DB 11 DB 12 DB 182 DB 185 DB 188 DB 191 DB 193 DB 196 DB 199 DB 201 DB 204 DB 206 DB 209 DB 211 DB 213 DB 216 DB 218 DB 220 DB 222 DB 224 DB 212 DB 210 DB 207 DB 205 DB 202 DB 200 DB 197 DB 195 DB 192 DB 189 DB 186 DB 184 DB 181 DB 178 DB 175 DB 172 DB 169 DB 166 DB 163 DB 160 DB 157 DB 154 DB 151 DB 148 DB 145 DB 142 DB 138 DB 135 DB 132 DB 129 DB 126 DB 123 DB 120 DB 117 DB 113 DB 110 DB 107 DB 104 DB 101 DB 98 DB 95 DB 92 DB 89 DB 86 DB 13 DB 15 DB 16 DB 18 DB 20 DB 21 DB 23 DB 25 DB 27 DB 29 DB 31 DB 33 DB 35 DB 37 DB 39 DB 42 DB 44 DB 46 DB 49 DB 51 DB 54 DB 56 DB 59 DB 62 DB 226 DB 228 DB 230 DB 232 DB 234 DB 235 DB 237 DB 239 DB 240 DB 242 DB 243 DB 244 DB 246 DB 247 DB 248 DB 249 DB 250 DB 251 DB 83 DB 80 DB 77 DB 74 DB 71 DB 69 DB 66 DB 63 DB 60 DB 58 DB 55 DB 53 DB 50 DB 48 DB 45 DB 43 DB 40 DB 38 DB 36 DB 34 DB 32 DB 30 DB 28 DB 26 DB 24 DB 22 DB 20 DB 19 DB 17 DB 16 DB 14 DB 13 DB 11 DB 10 DB 9 DB 8 DB 7 DB 6 DB 5 DB 4 DB 3 DB 3 DB 2 DB 2 DB 64 DB 67 DB 70 DB 73 DB 76 DB 79 DB 81 DB 84 DB 87 DB 90 DB 93 DB 96 DB 99 DB 103 DB 106 DB 109 DB 112 DB 115 DB 118 DB 121 DB 124 DB 128 DB 0,0 End

 

Моделирование программы в симуляторе ADSIM подтвердило её работоспособность. Ввиду недоступности виброподвеса испытания с применением виброподвеса не проводились.

Заключение

Данная работа направлена на создание беспроводного канала связи между персональным компьютером и микроконтроллером, расположенном на вращающемся стенде. Разрабатывалась схема приёмо-передатчика на основе использования инфракрасного излучения для передачи данных. Проводилось экспериментальное исследование схем приёмопередатчика. В среде программирования Delphi 7 разрабатывалась программа для управления микроконтроллером по беспроводного каналу связи. Была написана тестовая программа для микроконтроллера на ассемблере, которая осуществляла запись 10 байтов в оперативную память, а затем по команде с ПК начинала передачу байтов в компьютер. Отладка этой программы производилась в симуляторе ADSIM. Была проведена экспериментальная проверка канала связи при помощи разработанного устройства приёма-передачи, расположенного на монтажной плате, и управляющих программ для микроконтроллера и ПК, которая показала работоспособность канала связи. Проводилась модернизация программы поиска резонансной частоты виброподвеса. Данная программа обеспечивала обмен, обработку данных и представление данных в виде графика зависимости амплитуды датчика ускорения от частоты колебаний виброподвеса.

 

Основные результаты работы заключаются в следующем:

 

1. Разработан и создан беспроводный (инфракрасный) канал связи для обмена данными между персональным компьютером и микроконтроллером, расположенном на вращающемся стенде.

2. Написана работоспособная программа для персонального компьютера в среде программирования Delphi 7 для управления микроконтроллером и приёмом и обработкой данных.

3. Разработана тестовая программа для микроконтроллера на ассемблере для контроля работы канала связи.

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

 


Поделиться:

Дата добавления: 2015-08-05; просмотров: 66; Мы поможем в написании вашей работы!; Нарушение авторских прав





lektsii.com - Лекции.Ком - 2014-2024 год. (0.005 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав
Главная страница Случайная страница Контакты