Помогите с программированием микроконтроллера MC51

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
CCCPTARAN
Родился
Сообщения: 5
Зарегистрирован: Пн апр 12, 2010 10:28:15

Помогите с программированием микроконтроллера MC51

Сообщение CCCPTARAN »

Помогите с задачей:
Составить структурную и принципиальную схему модуля внешней памяти ХSEG объемом 64 кбайт, используя микросхемы RAM объемом 8 кбайт и его подключения к микроконтроллеру семейства МС51.
Написать программу пересылки массива из 10 чисел, размещенных в ХSEG в DSEG на языке Ассемблер.

Если кто может подскажите как схему начертить ато литературы толковой нет.

Поделитесь хотяб литературкой для построения схем и решения этой задачи
Последний раз редактировалось CCCPTARAN Ср апр 14, 2010 22:48:18, всего редактировалось 2 раза.
Реклама
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15575
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Помогите с программированием микроконтроллера MC51

Сообщение BOB51 »

быррр... :shock:
может легче книжки достать и почитать?
и зачем из такого мелкого старья (8, 16килобайт), если можно из старой материнки 32 или 64 К*8 высмыкнуть в неограниченном количестве? :roll:
книжки:

Бородин В.Б, Шагурин И.И.
Микроконтроллеры. Архитектура, программирование, интерфейс.
М.:ИздательствоЭКОМ,1999.
ну и в инете их ... :)
Реклама
CCCPTARAN
Родился
Сообщения: 5
Зарегистрирован: Пн апр 12, 2010 10:28:15

Re: Помогите с программированием микроконтроллера MC51

Сообщение CCCPTARAN »

Спс за название книг шяс читаю с програмй получатся начало а вот с построением схем неочень Есть более подробная литература для построения схем и выбоа нужного микроконторлера по моему вопросу?
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15575
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Помогите с программированием микроконтроллера MC51

Сообщение BOB51 »

посмотри на сайте у atmel ( раздел 8051 Architecture - Other Documents - User Guide )
"atmel 8051 microcontrollers hardware manual" (4216E-8051-01/07)
и прочее, что заинтересует 8)
или книжки от Фрунзе... :roll:
Реклама
Эиком - электронные компоненты и радиодетали
CCCPTARAN
Родился
Сообщения: 5
Зарегистрирован: Пн апр 12, 2010 10:28:15

Re: Помогите с программированием микроконтроллера MC51

Сообщение CCCPTARAN »

проверти пожалуста правильно ли у меня схема вышла
Вложения
Схемы.doc
Схема которую сделал
(135.5 КБ) 318 скачиваний
Реклама
Digikey
Встал на лапы
Сообщения: 90
Зарегистрирован: Пн мар 08, 2010 02:59:04

Re: Помогите с программированием микроконтроллера MC51

Сообщение Digikey »

правильно ли у меня схема вышла
Если в общем, то да.

Здесь практически все, что нужно: INTERFACING AN EXTERNAL SRAM TO THE C8051F000
(на рис.1 для Вашего случая должно быть A[15:8], а не A[16:8])
Вместо того ОЗУ, что там,- рисуете свои 8шт + дешифратор.
На чертеже стоит показать явно, что линии A[15:13] подключены к дешифратору.
Так же стоит к дополнительному входу "разрешение" дешифратора подключить сигнал CS от МК.
Покажите подключение сигналов ALE, /WR, /RD.
Думаю, стоит нанести имена сигнальных линий шин и портов/линий ИС.
Последний раз редактировалось Digikey Чт апр 15, 2010 15:23:39, всего редактировалось 1 раз.
Реклама
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15575
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Помогите с программированием микроконтроллера MC51

Сообщение BOB51 »

CCCPTARAN писал(а):проверти пожалуста правильно ли у меня схема вышла
схема верна для ПЗУ (внешняя память программ\таблиц данных)
для ОЗУсигналы управления wr и rd (внешняя память данных)
возможно также применить режим "совмещения" области памяти программ/данных - объединение линий psen и rd (схема И) :)
Аватара пользователя
YS
Друг Кота
Сообщения: 7518
Зарегистрирован: Вс мар 29, 2009 22:09:05
Контактная информация:

Re: Помогите с программированием микроконтроллера MC51

Сообщение YS »

Схема вроде похожа на правду...

[offtopic] А просто по-человечески две картинки в формате GIF выложить, вместо того, чтобы против естесства запихивать в убогий (и не предназанченный непосредственно для хранения картинок!) Word - не? Изображение Не ставить же человеку M$ office только для того, чтобы посмотреть Ваше вложение? А GIF любой браузер смотреть умеет. [/offtopic]
Разница между теорией и практикой на практике гораздо больше, чем в теории.
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15575
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Помогите с программированием микроконтроллера MC51

Сообщение BOB51 »

YS писал(а): [offtopic] А просто по-человечески две картинки в формате GIF выложить, вместо того, чтобы против естесства запихивать в убогий (и не предназанченный непосредственно для хранения картинок!) Word - не? Изображение Не ставить же человеку M$ office только для того, чтобы посмотреть Ваше вложение? А GIF любой браузер смотреть умеет. [/offtopic]
тогда уже поставить у себя open offise и конвертировать с его помощью свои схемы и документы в *.pdf - все и всегда смогут просмотреть :lol:
Аватара пользователя
YS
Друг Кота
Сообщения: 7518
Зарегистрирован: Вс мар 29, 2009 22:09:05
Контактная информация:

Re: Помогите с программированием микроконтроллера MC51

Сообщение YS »

тогда уже поставить у себя open office и конвертировать с его помощью свои схемы и документы в *.pdf
Ну, если так охота выкладывать картинки в текстовых форматах - можно и так. Но в разделе "сотрудничество" пишут:
...

Рисунки

Рисунки бывают трех видов:
Схемы и чертежи - их пакуем в формат GIF, PNG или на худой конец - BMP. Причем, если в схеме используется всего 2 цвета, не стоит сохранять рисунок в 24-битном формате. В JPG чертежи не жмут!!! JPG - это формат для фоток.
Кроме того, если вы рисуете схемы в Splan'e или PCAD'e 2000/2001 - можно и нужно присылать их в форматах этих редакторов (.spl и .sch соответственно).
Фотографии - вот их-то как раз можно и нужно жать в JPG. На худой конец - опять же - в BMP.
Формулы, прочий текст - как и схемы - GIF, PNG.

...
Разница между теорией и практикой на практике гораздо больше, чем в теории.
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15575
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Помогите с программированием микроконтроллера MC51

Сообщение BOB51 »

ну да, чужую *.pdfку подредактировать трудновато :)
зато сжатие\качество весьма высоко, да и acrobat есть практически у всех (к примеру оригинальные datasheet содержат и текст и чертежи и фото в одном документе)
CCCPTARAN
Родился
Сообщения: 5
Зарегистрирован: Пн апр 12, 2010 10:28:15

Re: Помогите с программированием микроконтроллера MC51

Сообщение CCCPTARAN »

Прошу побыстрому проверить код программы. Если есть ошибки исправьте пожалуста.

Программа пересылки массива из 10 чисел, размещенных в XSEG в DSEG.
movx dptr,#99h ;запись начального адреса в Xseg
mov r1,#35h ;запись начального адреса в Dseg
mov r0,10 ;установка количества повторов чтения
L1:
mov a,00h
movx a,@a+dptr ;чтение 1 числа по адресу в Xseg
movx @r1,a ;перенос 1 числа из Xseg в Dseg
inc r1 ;увеличение адреса Xseg 1
inc dptr ;увеличение адреса Dseg 1
djnz r0,L1 ; уменьшаем на 1, если не =0, то переход на L1
L2: sjmp L2
org 99h ;установка начального адреса в Xseg
db 01h,02h,03h,04h,05h,06h,07h,08h,09h,0ah,0bh,0ch,0dh,0eh,0fh
end
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15575
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Помогите с программированием микроконтроллера MC51

Сообщение BOB51 »

бред :shock:
если внешняя память через DPTR то адрес двухбайтовый
mov dptr,#adr16
далее чтение массива из внешней памяти в РПД ОЗУ с декрементом указателей
перезагрузка dptr адресом назначения и возврат данных из РПД ОЗУ в новое место внешнего ОЗУ
если ВПД с диапазоном адресов до 256 то можно использовать команды
movx a,@r0 movxa,@r1 и movx @r0,a movx @r1,a при этом старший байт адреса фиксировать в порт p1(при отсутствии внешней памяти программ)
с чашечки валерьянки будет:
mov sp,#50h;переустановка указателя стека
mov r0,#30h;указатель рвх
mov r2,#10;счетчик байт массива
mov dptr,#adr_a;адрес начала массива источника в dptr
rdb:
movx a,@dptr;читать текущий байт источника
mov @r0,a;хранить в рвх (не касается ИС с двумя dptr - от 52 и старше)
inc r0;указатель рвх+1
inc dptr;указатель источника +1
djnz r2,rdb;повторять до исчерпания (возможно я просчитался с к-вом байт :roll: )
mov r0,#30h;перезагрузка указателя рвх
mov r2,#10;перезагрузка с-ка байт
mov dptr,#adr_b;указатель на адрес начала массива назначения
wdb:
mov a,@r0;читать рвх
movx @dptr,a;в массив назначения
inc r0;указатель рвх+1
inc dptr;указатель приемника +1
djnz r2,wdb;повторять до исчерпания (возможно я просчитался с к-вом байт :roll: )
примерно так , но возможно и ошибка в количестве циклов 8)
CCCPTARAN
Родился
Сообщения: 5
Зарегистрирован: Пн апр 12, 2010 10:28:15

Re: Помогите с программированием микроконтроллера MC51

Сообщение CCCPTARAN »

спс большое
Spartan3E
Первый раз сказал Мяу!
Сообщения: 34
Зарегистрирован: Чт дек 24, 2009 23:50:46

Re: Помогите с программированием микроконтроллера MC51

Сообщение Spartan3E »

mov dptr,#99h ;запись начального адреса в Xseg
mov r1,#35h ;запись начального адреса в Dseg
mov r0,10 ;установка количества повторов чтения
L1:
movx a,@dptr ;чтение 1 числа по адресу в Xseg
mov @r1,a ;перенос 1 числа из Xseg в Dseg
inc r1 ;увеличение адреса Xseg 1
inc dptr ;увеличение адреса Dseg 1
djnz r0,L1 ; уменьшаем на 1, если не =0, то переход на L1
L2: sjmp L2

это лишнее с XSEG так не прокатит
--------------------
org 99h ;установка начального адреса в Xseg
db 01h,02h,03h,04h,05h,06h,07h,08h,09h,0ah,0bh,0ch,0dh,0eh,0fh
-------------------------------

Судя по ТЗ не было задачи гонять данные туда-обратно. Только туда.

"Написать программу пересылки массива из 10 чисел, размещенных в ХSEG в DSEG на языке Ассемблер."

Где то так. О стеке можете не заботиться. Он у вас не используется.
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15575
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Помогите с программированием микроконтроллера MC51

Сообщение BOB51 »

mov dptr,#99h ??? :)))
Spartan3E
Первый раз сказал Мяу!
Сообщения: 34
Зарегистрирован: Чт дек 24, 2009 23:50:46

Re: Помогите с программированием микроконтроллера MC51

Сообщение Spartan3E »

BOB51 писал(а):mov dptr,#99h ??? :)))
Именно. А в чем проблема? В чашечке валерьянки ?
Или в 16 битовый регистр нельзя до байта положить?
И не морочите человеку голову.
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15575
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Помогите с программированием микроконтроллера MC51

Сообщение BOB51 »

можно и один байт - как на это посмотрит конкретная программа обработки
если там заложено по умолчанию дополнять подобную запись старшим байтом равным 00 - то пройдет, иначе ждите сообщение о некорректной команде :)))
а для однобайтовых величин почему-то "недогадливые" ребята от INTEL "совсем зря" заложили команды mov dpl,#data и mov dph,3data
с чего бы это, если можно , по Вашему мнению , для этих целей 16- разрядную(двухбайтовую) команду использовать?
причем начальное состояние регистров dpl и dph считается "неопределенным"
кстати, mov dptr,#adr16 единственная 16-разрядная непосредственная загрузка в регистровую пару :wink:
Spartan3E
Первый раз сказал Мяу!
Сообщения: 34
Зарегистрирован: Чт дек 24, 2009 23:50:46

Re: Помогите с программированием микроконтроллера MC51

Сообщение Spartan3E »

BOB51 писал(а):можно и один байт - как на это посмотрит конкретная программа обработки
если там заложено по умолчанию дополнять подобную запись старшим байтом равным 00 - то пройдет, иначе ждите сообщение о некорректной команде :)))
а для однобайтовых величин почему-то "недогадливые" ребята от INTEL "совсем зря" заложили команды mov dpl,#data и mov dph,3data
с чего бы это, если можно , по Вашему мнению , для этих целей 16- разрядную(двухбайтовую) команду использовать?
причем начальное состояние регистров dpl и dph считается "неопределенным"
кстати, mov dptr,#adr16 единственная 16-разрядная непосредственная загрузка в регистровую пару :wink:
Назовите мне хоть один компилятор с ассемблера 51х, который бы ругался на mov dptr,#99h вместо того чтобы просто дополнить старший байт 00h.
А "недогадливые ребята" заложили команды mov dpl-dph для того, что бы не разрушать содержимое хранящиеся в старшем или младшем байте dptr.
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15575
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Помогите с программированием микроконтроллера MC51

Сообщение BOB51 »

"Назовите мне хоть один компилятор с ассемблера 51х, который бы ругался на mov dptr,#99h вместо того чтобы просто дополнить старший байт 00h."
система команд Intel mcs51 с картой команд и самостоятельным ручным кодированием - занудно но никаких дополнительных материальных и аппаратных затрат не требует :P
правда мозги нужны... собственные... а это дефицит по умолчанию :)
Закрыто

Вернуться в «Микроконтроллеры и ПЛИС»