Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Ввод-вывод в А51




Mov x4,c

D) Сегмент Битов

Mov a,PSW

mov P1,P2; P2àP1

 

Bit – 128 бит, прямой адрес бита 0-7f h, память совмещена с ячейками 0x20-0x2f в Data, где i-ый бит находим в ячейке Data с адресом 0x20+i/8, номер бита i%8.

 

bseg at 0x10; сегмент битов с 0x10-го бита в поле бит Data

x0: dbit 4; поле из четырех бит в сегменте

В SFR i-ый бит адресуется в i&0xf8 - регистре с номером i%8.

x4 bit ACC.5; битовая переменная, соответствующая 5-ому биту АСС

mov c, 0; Data(20h.0)à С, 20h.0 – нулевой бит ячейки Data

mov ACC.7, c; c à Acc.7,

mov c, x0+2; x0- адрес первого бита поля бит

(тестировать размер и размещение битовой памяти в Data)

e) Stack - в mcs51 используются ячейки памяти Data, а в mcs52- все ячейки Idata с косвенным автоинкрементным доступом через регистр-указатель вершины SP (пре-автоинкремент (+SP) при записи и пост-автодекремент (SP-) при чтении)

К стеку возможно как явное обращение, так и неявное – в прерываниях и переходах к подпрограммам

Явное обращение к стеку:

push ad; запись байта в стек

Например, push Acc обозначает Ram[ Acc]àData[+SP],

pop ad;чтение байта из стека

Например, pop Acc обозначает Data[SP--] à Ram[Acc]

При включении питания и сбросе в MCU устанавливается по умолчанию SP=07.

Можно выбирать размещение стека в А51 в памяти Data mcs51 – количество ячеек четно, если стек используется и для хранения адресов возврата

 

Dseg at 0x10;сегмент стека

Stack: ds 6

 

Cseg at 0x100;сегмент кода

Start:;начало программы

Mov sp,#Stack-1; начальное значение стека с учетом пре-инкремента

…………….

(9. как выполнятся команды Push Sp, Pop Sp?

(10 Ограничения при размещении стека в С51 и А51)

 

f) Сегмент программной памяти Code.

Доступ к данным

mov a,#d; Code[PC+] à a - непосредственная адресация

movc a,@a+pc; Code[PC + a] à a; адресация относительно текущего РС, в АСС размещается индекс

 

cseg at 0; старт при сбросе и включении питания в mcs51

jmp start

 

cseg at 0x40; абсолютныйсегмент памяти Code с адреса 0x40

start: jmp first

yy: db “abcde”; адреспервого байта строки в сегменте

first:

mov dptr,#yy; сохранение адреса

movc a,@a+dptr; Code(dptr + a) à a, базовая адресация- база в DPTR, в АСС смещение

 

g) Сегмент Xdata xseg at 0x100;абсолютный сегмент

mm: ds 50; адрес первого байта массива 50 байт

 

Определение в С51: char xdata mm

 

mov dptr,#mm;адреc

movx a, @dptr;Xdata(dptr) à А

movx @dptr,a

Определение в С51: char pdata xx (страничная организация доступа)

mov r0,#xx

movx a, @r0; Xdata(P2.@r0 ) àА, в P2 адрес страницы,

@r0 –смещение в странице

 

(11. выполнить минимальный обход-тестирование всех типов памяти по графу рис.2.4 Codeà……)

 

Быстрый параллельный ввод-вывод осуществляется прямым обращением портам MCU

Порты содержат регистр данных, входные и выходные буферные схемы, подключаемые к внешним контактам MCU. При вводе (char x=P1) данные

считываются с контактов порта и сохраняются в памяти, обычно интерпретируются в приложениях в положительном кодировании двоичными

кодами (H~1, L~0). При выводе (P2=0x55) данные из памяти записываются в порт и передаются на внешние контакты соответствующими уровни

 

 

 
 

 

 


 

 

Рис. 3.4.. Структура порта.

 

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

Разряды портов P1,P2,P3 могут быть использованы для ввода-вывода, если через них не передаются альтернативные сигналы, формируемые для управления или контроля внешних схем по умолчанию (сигналы Rd, Wr, int0, int1,p…)

На контакте порта Pin выход усилителя и сигнал с внешней цепи c общей нагрузкой Pull-up резистором, поддерживающим порт в нормальном состоянии H после сброса MCU.

 

Vcc

Pull_up

/x v /y

/y v /x

x

 

 
 


Рис.3.5..Схема драйвера квази-двунаправленного порта

 

Короткое замыкание возможно, если на входе H-активный уровень и Pi.j =0 – открытый L-вход/выход схемы с открытым коллектором. В таких схемах для ввода бит регистра устанавливается в единицу.

Втекающий (synk) ток (при низком уровне выходного сигнала) – до 10ма на линию, при максимальном общем потреблении для портов P1-P3 до 100 ма.

 

 

Положительный уровень формируется на нагрузочном Pull-up резисторе, допускает малый ток нагрузки для вытекающего тока(sourse)– менее 1 ма.

б) В квази-двунаправленных портах P1,P2,P3 режим работы порта определяет схема включения порта и тип данных согласуется с типом переменной в С. Но в А51 тип данных не определен:

Команда (RMW) (Чтение(R) с порта) (модификация(M)) (запись(W) в порт

anl P1,#0xAA




Поделиться с друзьями:


Дата добавления: 2014-12-27; Просмотров: 469; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.011 сек.