|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
05.11.2012, 21:16 | #1 |
Регистрация: 30.10.2011
Сообщений: 5
|
Программирование микроконтроллера MCS–51 (решение учебной задачи на Ассемблере)
Начнём с того что я студент.У нас в лабораторной работе есть индивидуальное задание, выглядит оно так:
Заполнить все четные элементы РПД логическими нулями,а нечетные - единицами; микроконтроллер MK51. Дело в том,что я хочу разобраться как выполнить это задание,а не просто получить готовое решение и сдать его... надеюсь на вашу помощь дорогие профессионалы.Если не хотите мне помогать, хоть намекните,где я могу получить ответы(я имею ввиду литературу) п.с.: спасибо модераторам,что отредактировали заголовок. Будет мне примером на будущее. Последний раз редактировалось leva290791; 06.11.2012 в 10:04. |
06.11.2012, 00:09 | #2 |
Форумчанин
Регистрация: 15.06.2010
Сообщений: 740
|
Привет!
Если есть какая-то железка и есть название проца (контроллера) в ней - то первый шаг - это скачка даташита на данный проц (контроллер). Так как оно совковое, знчит можно без особых заморочек найти (это не китайский ноунейм с закрытй докой за ~50000 $) В доке помимо вводов-выводов и прочих температурных режимов обычно пишут команды. Команды = прога. Что такое РПД ваще не ведомо мне.
Чтобы понять рекурсию, сперва нужно понять рекурсию.
|
06.11.2012, 08:08 | #3 |
Регистрация: 30.10.2011
Сообщений: 5
|
Резидентная память данных (РПД) в первых моделях микроконтроллеров семейства MCS–51 имела объем 128 байт. Младшие 32 байта РПД являются одновременно и регистрами общего назначения – РОН (4 банка по 8 РОНов). Программа может обратиться к одному из 8–ми РОНов активного банка. Выбор активного банка РОНов осуществляется программированием двух бит в регистре состояния процессора – PSW.
Обращение к РПД возможно с использованием косвенной или прямой байтовой адресации (прямая байтовая адресация позволяет обратиться только к первым 128-ми байтам РПД). то есть как я понял, 4 банка в РПД являются элементами этого РПД и нужно Банки 0,1,3(то есть нечетные) заполнить единицами,а Банк 2 заполнить нулями? У каждого регистра есть адрес, но не буду же я в каждый регистр заносить нули и единицы?!Или все таки буду? тогда какой командой это можно реализовать .... рассуждаю я наверное со стороны программиста не логично) Последний раз редактировалось leva290791; 06.11.2012 в 10:12. |
06.11.2012, 12:20 | #4 | |
Регистрация: 30.10.2011
Сообщений: 5
|
Цитата:
прикрепляю документацию, может кому-нибудь пригодиться. |
|
06.11.2012, 13:31 | #5 |
Старожил
Регистрация: 02.01.2011
Сообщений: 3,327
|
Возможно вам будет полезно первое сообщение моей темы:
http://programmersforum.ru/showthread.php?t=215554 Появятся контретные вопросы - так будет легче вам помочь. |
15.11.2012, 20:03 | #6 |
Регистрация: 30.10.2011
Сообщений: 5
|
Возвращаюсь к не закрытой теме.
Разбираясь с данным микроконтроллером я наконец понял суть задания.Нужно написать программу со следующими условиями: 1.Создать массив чисел. 2.Реализовать проверку на четность, то есть: берём первое число массива и делем его на два, таким образом если останется остаток, то это число нечетное. 3.Записать в нечетные числа единицы(аналогично провести и с четными числами,только в четные записать логические нули). 4.Проверка и дальнейшая обработка должна идти до тех пор, пока в массиве не закончатся проверяемые числа(то есть после проверки первого числа массива,программа должна перейти на следующее число и т.д.) Вопрос в следующем, можно ли в числа(в массиве) заносить логические нули либо единицы? |
15.11.2012, 20:25 | #7 | |
Старожил
Регистрация: 02.01.2011
Сообщений: 3,327
|
Цитата:
Начните с простого. Поставьте среду, например Keil http://avaxhome.ws/software/ke901.html и запусите программу Hello, World Код:
P.S. В ассемблере нет понятия логических переменных. Переходы совершаются в результате анализа флагов PSW (могут быть ещё безусловные переходы). А в массив можно заносить и нули и единицы и любые числа (не превышающие допустимые значения для данного массива). Последний раз редактировалось 8Observer8; 15.11.2012 в 20:36. |
|
15.11.2012, 20:40 | #8 |
Регистрация: 30.10.2011
Сообщений: 5
|
Я и сам много чего не понимаю в этом. Это хорошо,что вы мне указываете на мои ошибки, ибо только так я пойму как правильно(путём совершения этих ошибок).Я пользуюсь ДОСовским ассемблером,он мне привычнее... Попробую сделать то,что вы просили.
п.с.: Файл листинга показал много ошибок. Это специально для того,что бы выявить то самое "Лишнее"? Последний раз редактировалось leva290791; 15.11.2012 в 20:45. |
15.11.2012, 20:50 | #9 |
Старожил
Регистрация: 02.01.2011
Сообщений: 3,327
|
Пользуйтесь вот этой книжкой, как справочником: Микроконтроллеры серии 8051: практический подход. Магда Ю. С.
Она маленькая и очень полезная. Там для среды Keil. Главное всё на практике пробуйте. Всё, что без практики вылетит из головы. Будет появляться много тупиков. Но каждый тупик это рост! Описывайте тупики здесь, они вас приведут в новые и это хорошо |
15.11.2012, 21:50 | #10 |
Старожил
Регистрация: 02.01.2011
Сообщений: 3,327
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Программирование микроконтроллера | ros.pro | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 15 | 26.05.2012 23:45 |
Решение задачи на ассемблере | netdel | Помощь студентам | 0 | 29.05.2011 22:04 |
нужна помощь с программированием микроконтроллера в Ассемблере | quart | Фриланс | 9 | 10.02.2011 14:49 |
Программирование микроконтроллера 80С196КС на ассемблере | KOCT9IH | Фриланс | 3 | 07.11.2008 13:03 |