Студопедия

КАТЕГОРИИ:

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


Разработка программы для МК




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

 

Нет
Нет
Нет

 
 

 


 

Данная программа выполняет следующие действия:

- инициализация порта;

- запись 10 символов во внутреннюю память;

- переход в ожидание команды от ПК;

- проверка кода команды;

- передача данных в ПК;

 

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

 

$mod812 ; определение типа микроконтроллера

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

;Регистры: r1 - текущий адрес ячейки,

;r2 - текущее число обработанных ячеек

;r3 - регистр хранения внешней команды

; РПД: 21h - 0Bh - обрабатываемые данные

 

;***********Подпрограмма установки порта и начальных значений

;пересылаемых данных******

mov scon,#01010000b

mov tmod,#00100000b

mov th1,#00fdh

mov ie,#10010000b ;разрешение прерываний от

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

mov r1,#20h ;начальный адрес пересылаемого кода

mov r2,#10 ;число ячеек

mov a,#21h ;начальное значение пересылаемого кода в

;начальную ячейку памяти

 

setb tr1 ;включение таймера, работающего

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

;***************конец подпрограммы установки**************

 

;***************подпрограмма записи данных в оперативную память***

 

m1:

mov @r1,a ; запись в текущую ячейку

inc r1

inc a

inc a

djnz r2,m1 ;проверка числа загруженных ячеек памяти

jmp m5 ; обход подпрограммы обработки прерывания

;*******конец подпрограммы записи данных в оперативную память*****

 

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

org 23h

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

;приемника

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

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

cjne r3,#0ah,m4 ;сравнение внешней команды с кодом

;команды чтения данных

 

setb ti ; запрос прерывания передатчика для

; обеспечения начала передачи

mov r1, #20h

mov r2, #0bh ; увеличение числа ячеек на 1, в

;противном случае данные

; передадутся не полностью

jmp m4 ; переход к передаче даннных

m3: clr ti ; начало передачи данных

djnz r2, m6 ; определение заданного числа

; переданных данных

 

jmp m4

m6: mov sbuf, @r1

inc r1 ; увеличение текущего адреса ячейки

m4: reti

;***********Конец подпрограммы обработки прерыванитй от

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

 

;***********Основная подпрограмма*****************

m5: jmp m5 ; ожидание команды передачи данных

 

end

При подаче напряжения питания на микроконтроллер производилась настройка последовательного порта. Задавалась скорость передачи данных (9.6 кб/с), число бит в посылке (10 бит), контроль чётности (отсутствует). Далее производилась запись десяти байт во внутреннюю оперативную память микроконтроллера, после чего он переходил в режим ожидания. После прихода кодового символа (команды на передачу данных в ПК), происходила передача байтов данных из внутренней памяти МК в последовательный порт, откуда они автоматически передавались в ПК.

Проверка работоспособности программы производилось в среде симулятора ADSIM. Для этого текст программы создавался текстовом редакторе и сохранялся в файле с расширением *.asm, после чего происходила компиляция программы с помощью ассемблера asm51.exe. После компиляции образовывались два файла, один с расширением *.Lst, второй с расширением *.HEX. Далее эти два файла загружались в симулятор ADSIM, где происходила проверка программы. Отладка программы могла производиться в пошаговом режиме. Для исправления программы надо изменить её код, и затем снова скомпилировать и загрузить в программу- симулятор ADSIM. Для проверки работы программы в симуляторе существуют окна Program Disassembly (окно, в котором отображается команда программы), Internal Data Memory (IRAM) (окно внутреннего ОЗУ), External Data Memory (XRAM) (окно внешнего ОЗУ), UART Terminal Window(окно последовательного порта). На рис. 3.5 приведено изображение рабочего окна симулятора. Во время отладки программы, с помощью окна UART Terminal Window, вводился кодовый символ, при котором производилась запись 10 байт из оперативной памяти микроконтроллера в буфер порта. Записанные в буфер порта символы выводились в окне UART Terminal Window в виде кода ASCII (Рис. 3.6)

Рис. 3.5. Рабочее окно симулятора ADSIM

 

Рис. 3.6. Результаты работы в симуляторе ADSIM

 

После проверки в симуляторе ADSIM, производилось программирование микроконтроллера ADUC812. Для этого файл с расширением *.hex загружался в резидентную память программ микроконтроллера с помощью программы download.exe. Микроконтроллер располагался на отладочной плате Kit ADuC812 (рис. 3.7) Соединение отладочной платы с ПК осуществлялось с помощью нуль-модемного кабеля.

Рис. 3.7. Отладочная плата Kit ADuC812

 

В состав Kit ADuC812 входят:

- микроконтроллер ADuC812;

- микросхема статического ОЗУ ёмкостью 128кБ;

- 2 микросхемы регистров-защёлок для организации 16- и 24- битной адресации внешней памяти;

- разъём интерфейса RS232;

- микросхема ADM202, служащая для согласования уровней сигналов КМОП и RS232;

- посадочные места или панели для операционных усилителей, включённых повторителями входных аналоговых сигналов;

- микросхемы 74НС00 и 74НС14, с помощью которых организован процесс программирования;

- разъём питания;

- разъём интерфейса i2c;

- макетное поле, на котором пользователь может собрать специфическую для своей задачи часть устройства;

- кабель для подключения к ПК по интерфейсу RS232;

- блок питания.

 

На макетном поле присутствуют:

- выводы земли, питания, аналоговой земли, аналогового питания;

- выводы микросхемы ADuC812;

аналоговые входы, подключённые к порту 1 микроконтроллера через буферные повторители и RC-фильтры. ОУ в комплект платы не входят. Пользователю предлагается выбрать их в соответствии с решаемой задачей.


Поделиться:

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





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