Перейти к содержанию

Pic18F452 Программа - Помогите Разобраться


BATCOH

Рекомендуемые сообщения

у меня в инсте ввели дисциплину по изучению PIC18F452.

лабы проводятся на тестовых стендах. это выглядит так:

стоит комп, к нему через com подключена чёрная коробочка в которой находится

схема с МК, у коробочки имеется LCD для вывода инфы.

сначала мы пишем код в блокноте, потом сохраняем в txt.

затем открываем прогу компилятор и компилируем код из txt в hex.

потом открываем ещё какую-то прогу и с помощью неё засылаем hex в коробочку.

коробочка думает и выдает результаты на LCD.

Лаба №2.

Нам надо сложить два числа (в качестве чисел берём номер варианта=19,

и дату рождения=15), затем провести операции логического "и" и "или".

Теперь сам код:

LIST P=18F452, F=INHX32 ;ПАРАМЕТРЫ ОБЯЗАТЕЛЬНЫЕ ДЛЯ

#include <P18F452S.INC> ; КАЖДОГО ПРОГРАМНОГО МОДУЛЯ

var equ 100h ; номер варианта

dr equ 101h ; дата рождения

add equ 102h ; сумма

and equ 103h ; логическое и

or equ 104h ; логическое или

org 100h

movlb 0x01 ; BSR=01h

movlw 0x13 ; пусть номер варианта

movwf var,1 ; равен 19 (dec)

movlw 0xF ; пусть дата рождения

movwf dr,1 ; равна 15(dec)

movf var,w ; поместить номер варианта во WREG

addwf dr,0,1 ; WREG + dr, результат -> WREG

movwf add,1 ; результат -> add

movf dr,w ; поместить дату рождения во WREG

andwf var,0,1 ; WREG 'и' var, результат -> WREG

movwf and,1 ; результат -> and

movf var,w ; поместить номер варианта во WREG

iorwf dr,0,1 ; WREG 'или' dr, результат -> WREG

movwf or,1 ; результат -> or

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

lcd movlw 0

call LCD_SET

movlw 'a'

call LCD_DATA

movlw 'd'

call LCD_DATA

movlw 'd'

call LCD_DATA

movlw '='

call LCD_DATA

movf add,w

call LCD_HEX

call RX_KEY

movlw 0

call LCD_SET

movlw 'a'

call LCD_DATA

movlw 'n'

call LCD_DATA

movlw 'd'

call LCD_DATA

movlw '='

call LCD_DATA

movf and,w

call LCD_HEX

call RX_KEY

movlw 0

call LCD_SET

movlw 'o'

call LCD_DATA

movlw 'r'

call LCD_DATA

movlw '='

call LCD_DATA

movf or,w

call LCD_HEX

movlw ' '

call LCD_DATA

call RX_KEY

goto lcd

end

Прошу вас подробно объяснить следующие строки (покоммандно):

var equ 100h

org 100h

movlb 0x01

movlw 0x13

movwf var,1

movf var,w

addwf dr,0,1

movwf add,1

Просто очень срочно надо, а т.к. я в основном кодю на плюсах, то ассемблер для меня ещё в новинку.

Ссылка на комментарий
Поделиться на другие сайты

Реклама: ООО ТД Промэлектроника, ИНН: 6659197470, Тел: 8 (800) 1000-321

var equ 100h

если встретится эта переменная в программе, то действие будет производиться с ячейкой памяти данных находящегося по 100h адресу (определение переменной)

org 100h

это команда компилятору распологать все последующие команды в памяти программ с 100h адреса

movlb 0x01

поместить константу в BSR , через BSR мы определяем каким банком памяти данных мы будем пользоваться, в данном случае первым 100h-1ffh.

movlw 0x13

записать число 13h в регистр W

movwf var,1

поместить содержимое регистра W в ячейку памяти по 100h адресу (это понятно из 1 ответа)

movf var,w

произвести обратную процедуру

addwf dr,0,1

сложить содержимое регистра W и dr (101h),ноль означает что результат направляется в регисть W, а 1 то что обращение к памяти через регистр BSR

movwf add,1

содержимое регистра W перемещаем в ячейку памяти данных ADD(102h) c использованием BSR

читайте документацию, там все подробно описано.

_http://www.microchip.ru/files/d-sheets-rus/PIC18FXX2_manual.pdf

Изменено пользователем Станислав
Ссылка на комментарий
Поделиться на другие сайты

20% скидка на весь каталог электронных компонентов в ТМ Электроникс!

Акция "Лето ближе - цены ниже", успей сделать выгодные покупки!

Плюс весь апрель действует скидка 10% по промокоду APREL24 + 15% кэшбэк и бесплатная доставка!

Перейти на страницу акции

Реклама: ООО ТМ ЭЛЕКТРОНИКС, ИНН: 7806548420, info@tmelectronics.ru, +7(812)4094849

Выбираем схему BMS для корректной работы литий-железофосфатных (LiFePO4) аккумуляторов

 Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ, также как и для других, очень важен контроль процесса заряда и разряда, а специализированных микросхем для этого вида аккумуляторов не так много. Инженеры КОМПЭЛ подготовили список имеющихся микросхем и возможных решений от разных производителей. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...