Мегаобучалка Главная | О нас | Обратная связь


Распределение памяти ОЗУ (ВЕ31)



2015-11-11 534 Обсуждений (0)
Распределение памяти ОЗУ (ВЕ31) 0.00 из 5.00 0 оценок




 

70h – 7Fh – стек;

30h, 31h, 32h – хранение отсчётов xn, xn-1, xn-2 ;

40h, 41h, 42h – хранение отсчётов yn, yn-1, yn-2 ;

50h, 51h – хранение отсчётов p1n, p2n.

 

;Программа "Цифровой фильтр (фазовое звено)"

 

;Автор

;Дата

;Разностное уравнение Yn = 0,81 Xn + Xn-2 - 0,81 Yn-2

 

;Определение символических имён операндов

 

B0: .EQU 90h ;линия P1.0 для вывода импульса

;запуска АЦП

PA: .EQU 7001h ;порт PA РУ55

PB: .EQU 7002h ;порт PB РУ55

RGRU: .EQU 7000h ;регистр управляющего слова РУ55

SRU: .EQU 02h ;управляющее слово для настройки

;портов РУ55

TMOD: .EQU 89h ;регистр управления режимами

;таймеров-счётчиков

STMOD: .EQU 02h ;управляющее слово для настройки

;таймера-счётчика

TH0: .EQU 8Ch ;старший байт Т/С0

STH0: .EQU 9Ch ;управляющее слово для задания

;частоты переполнения T/C0

TR0: .EQU 8Ch ;управляющий бит пуска T/C0

IE: .EQU A8h ;регистр разрешения прерываний

SIE: .EQU 83h ;слово разрешения прерываний

;от T/C0 и входа INT0

B: .EQU F0h ;регистр В

K: .EQU CFh ;коэффициент разностного уравнения

KM: .EQU 61h ;коэффициент масштабирования

X: .EQU 30h ;ячейка хранения отсчёта Xn

X1: .EQU 31h ;ячейка хранения отсчёта Xn-1

X2: .EQU 32h ;ячейка хранения отсчёта Xn-2

Y: .EQU 40h ;ячейка хранения отсчёта Yn

Y1: .EQU 41h ;ячейка хранения отсчёта Yn-1

Y2: .EQU 42h ;ячейка хранения отсчёта Yn-2

PR1: .EQU 50h ;ячейка хранения произведения PR1n

PR2: .EQU 51h ;ячейка хранения произведения PR2n

 

;Инициализация по сигналу RST

 

.ORG 0000h

LJMP INIT ;переход к программе

;инициализации

 

.ORG 00A0h

INIT: MOV TMOD, #STMOD ;настройка режима Т/С0

MOV TH0, #STH0 ;задание частоты дискре-

;тизации

SETB TR0 ;пуск Т/С0

 

MOV A, #SRU ;настройка порта PA РУ55

MOV DPTR, #RGRU ;на ввод, порта PB РУ55 -

MOVX @DPTR, A ;на вывод

 

MOV IE, #SIE ;разрешение прерываний

;от Т/С0 и входа INT0

 

STOP: SJMP STOP ;останов программы

 

;Формирование импульса пуска АЦП по внутреннему прерыва-

;нию от Т/С0

 

.ORG 000Bh

LJMP START ;переход к программе

;формирования импульса

;пуска АЦП

.ORG 00D0h

START: CLR B0 ;сброс бита Р1.0

SETB B0 ;установка бита Р1.0

RETI ;возврат из подпрограм-

;мы обработки прерыва-

;ния

 

;Вычисление выходного отсчёта по сигналу внешнего прерыва-

;ния от входа INT0, рабочий цикл фильтра

 

.ORG 0003h

LJMP XYOUT ;переход к программе

;рабочего цикла фильтра

.ORG 0100h

XYOUT: MOV DPTR, #PA ;ввод отсчёта Xn из АЦП

MOVX A, @DPTR ;через порт РА РУ55

 

;программный модуль масштабирования:

;вычисление произведения Xn := KмXn

;входной отсчёт - в аккумуляторе, масштаби-

;рованный отсчёт записать в ячейку ОЗУ

 

RLC A ;анализ знака Xn

JC M1 ;переход к программе ум-

;ножения отрицательного

;отсчёта Xn на Kм

RRC A ;восстановление положи-

;тельного отсчёта Xn

;в аккумуляторе

 

MOV B, #KM ;вычисление произведе-

MUL AB ;ния KмXn

 

MOV X, B ;запоминание масштаби-

;рованного отсчёта Xn

;в памяти

 

SJMP M2 ;переход к продолжению

M1: RRC A ;восстановление отрица-

;тельного отсчёта Xn

;в аккумуляторе

 

CPL A ;получение положительно-

INC A ;го отсчёта Xn (смена зна-

;ка)

MOV B, #KM ;вычисление произведе-

MUL AB ;ния KмXn и пересылка

MOV A, B ;в аккумулятор

 

CPL A ;получение отрицательно-

INC A ;го произведения KмXn

;(смена знака)

MOV X, A ;запоминание масштаби-

;рованного отсчёта Xn

;в памяти

;программный модуль вычисления

;произведения PR1n := KXn

;Xn хранится в ячейке ОЗУ с адресом X

;PR1n записать в ячейку ОЗУ с адресом PR1

 

M2: MOV A, X ;копирование Xn в аккуму-

RLC A ;лятор и анализ знака

JC M3 ;переход к программе ум-

;ножения отрицательного

;отсчёта Xn на K

RRC A ;восстановление положи-

;тельного отсчёта Xn

;в аккумуляторе

MOV B, #K ;вычисление произведе-

MUL AB ;ния KXn

MOV PR1, B ;запоминание K Xn

;в памяти

SJMP M4 ;переход к продолжению

M3: RRC A ;восстановление отрица-

;тельного отсчёта Xn

;в аккумуляторе

CPL A ;получение положительно-

INC A ;го отсчёта Xn (смена зна-

;ка)

MOV B, #K ;вычисление произведе-

MUL AB ;ния KXn и пересылка

MOV A, B ;в аккумулятор

CPL A ;получение отрицательно-

INC A ;го произведения KXn

;(смена знака)

MOV PR1, A ;запоминание KXn в па-

;мяти

 

;программный модуль вычисления

;произведения PR2n := KYn-2

;Yn-2 хранится в ячейке ОЗУ с адресом Y2

;PR2n записать в ячейку ОЗУ с адресом PR2

 

M4: MOV A, Y2 ;копирование Yn-2 в акку-

RLC A ;мулятор и анализ знака

JC M5 ;переход к программе ум-

;ножения отрицательного

;отсчёта Yn-2 на K

RRC A ;восстановление положи-

;тельного отсчёта Yn-2

;в аккумуляторе

MOV B, #K ;вычисление произведе-

MUL AB ;ния KYn-2

MOV PR2, B ;запоминание KYn-2

;в памяти

 

SJMP M6 ;переход к продолжению

M5: RRC A ;восстановление отрица-

;тельного отсчёта Yn-2

;в аккумуляторе

CPL A ;получение положительно-

INC A ;го отсчёта Yn-2 (смена

;знака)

MOV B, #K ;вычисление произведе-

MUL AB ;ния KYn-2 и пересылка

MOV A, B ;в аккумулятор

 

CPL A ;получение отрицательно-

INC A ;го произведения KYn-2

;(смена знака)

MOV PR2, A ;запоминание KYn-2 в па-

;мяти

 

;программный модуль вычисления выходного

;отсчёта Yn = PR1n + Xn-2 - PR2n, слагаемые

;хранятся в ячейках ОЗУ, результат записать

;в ячейку ОЗУ и вывести на ЦАП

 

M6: MOV A, PR1 ;вычисление отсчёта Yn

ADD A, X2 ;и сохранение в памяти

CLR C ;

SUBB A, PR2 ;

MOV Y, A ;

 

ADD A, #80h ;получение смещённого

;кода Yn для ЦАП

 

MOV DPTR, #PB ;вывод смещённого кода

MOVX @DPTR, A ;Yn на ЦАП через порт

;РВ РУ55

 

;программный модуль сдвига отсчётов

;в памяти, подготовка следующего рабочего

;цикла

 

MOV X2, X1 ;

MOV X1, X ;

MOV Y2, Y1 ;

MOV Y1, Y ;

RETI ;возврат из подпрограммы

;обслуживания прерыва-

;по входу INT0

.END

Отладка программы

 

Отладка программы имеет целью установление правильности или неправильности работы программы, устранение ошибок в программе, получение правильных результатов работы программы. Технология разработки и отладки программы достаточно подробно рассмотрена в [ 2 ] и [ 7 ].

Отладка программы состоит из двух этапов. На первом этапе устраняются ошибки в исходном тексте программы и в конструкциях языка, на котором она написана (в нашем случае – в конструкциях языка ассемблера). Для этого выполняется ассемблирование исходного текста программы с использованием специальной программы-транслятора (ассемблера). При ассемблировании выявляются синтаксические и семантические ошибки. Текст программы с внесёнными исправлениями снова подвергается ассемблированию с целью получения объектного модуля программы, который необходим для выполнения второго этапа – собственно отладки программы.

Второй этап – отладка с помощью программного отладчика (эмулятора) позволяет выявить логические, алгоритмические, принципиальные ошибки в программе. Эмулятор способен идентично выполнять (интерпретировать) все команды МК и путём пошагового или пофрагментного исполнения программы позволяет получать результаты её выполнения вместо реального МК. Сопоставление этих результатов с ожидаемыми (полученными расчётным, аналитическим путём) позволяет установить работоспособность программы.

 



2015-11-11 534 Обсуждений (0)
Распределение памяти ОЗУ (ВЕ31) 0.00 из 5.00 0 оценок









Обсуждение в статье: Распределение памяти ОЗУ (ВЕ31)

Обсуждений еще не было, будьте первым... ↓↓↓

Отправить сообщение

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



©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (534)

Почему 1285321 студент выбрали МегаОбучалку...

Система поиска информации

Мобильная версия сайта

Удобная навигация

Нет шокирующей рекламы



(0.01 сек.)