Форум программистов, компьютерный форум, киберфорум
Микроконтроллеры
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
5 / 5 / 1
Регистрация: 15.09.2016
Сообщений: 410
1

затруднения с выводом массива через порт

10.11.2017, 18:21. Показов 705. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте:

ДЛЯ МК 8051

Дано задание:
В памяти определен массив данных. Осуществить вывод массива через порт В(адрес 45h), стробируя высоким уровнем по линии РС4.
Это естественно параллельным путем надо сделать( раз через порт B)

мои соображения:

1.PC4=0
M:
2. извл. эл.массива
3. Port C - элемент массива
4. PC4=1
5. PC4=0
перейти к Метке М

Assembler
1
2
3
4
5
6
org 20h
db 'array'
 clr PC4
m:
   
.....

А теперь в чем проблема. Проблема в том - что кусочно я понимаю суть программы, но не понимаю как это все сделать программой целой

Assembler
1
2
MOV DPTR,   #45H    ; Формирование в DPTR адреса порт В
MOVX    A,  @DPTR   ; Вывод на порт В
Установку и сброс PC4 я понимаю так (через настройку RCW) , где младший бит R/S ОТВЕЧАЕТ за установку на линии высокого или низкого сигнала, биты 1-3 за номер выбранного порта(у меня 4), старшая тетрада мне малоинтересна

Assembler
1
2
mov RSW, #00001001b ; установка на линию PC4=1
mov RSW, #00001000b ; сброс линии PC4=0
Извлечение массива представляю таким образом:

Assembler
1
2
3
4
5
6
7
org 10h
db '12345678'
  mov dptr , #10h
  mov r5 , #0; - первоначальное смещение
  mov R6, #8  ; счетчик цикла ( задаем число шагов)
   mov A ,R5 ;
   movc A, @A +dptr  ;  извлекаем в А текущий элемент массив

Помогите пожалуйста соединить все это должным образом. Понятное дело - это все еще и цикл. Стробировать высоким сигналов надо после принятия массива - нашего байта.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.11.2017, 18:21
Ответы с готовыми решениями:

Затруднения с выводом строки
Здравствуйте! Нужно простейшее приложение в Androis Studio , в Java разбираюсь слабо, сказывается...

Затруднения с выводом данных в ListBox
Дано задание: (С++) Упорядочить массив из 12 целых чисел по убыванию. Ввод данных в Мемо, вывод в...

Затруднения с выводом текста из файла на экран
Доброго времени суток, Прошу прощения за такой вопрос,но помогите понять причину: Допустим, я...

Затруднения с выводом системного времени в программе
Здравствуйте! Подскажите пожалуйста, как исправить ошибку. У меня две формы. Первая - примитивная...

Затруднения с выводом данных, как правильно?
класс Book описывает книгу(содержит название,автора и год издания) +2 метода Конструктор(автора и...

2
1176 / 653 / 111
Регистрация: 15.05.2012
Сообщений: 4,015
11.11.2017, 07:43 2
Цитата Сообщение от slavek777 Посмотреть сообщение
3. Port C - элемент массива
Очевидно, ошибка. Нужно Port B.
Assembler
1
2
3
org 10h
db '12345678'
  mov dptr , #10h
Раз данные во внутренней памяти, то DPTR тут не к месту. Используйте косвенную адресацию через регистр, скажем, R0.
Цитата Сообщение от slavek777 Посмотреть сообщение
Установку и сброс PC4
можно делать через команды Установка бита и Сброс бита.
0
5 / 5 / 1
Регистрация: 15.09.2016
Сообщений: 410
11.11.2017, 12:02  [ТС] 3
Ага, понял вас. Но вот сам не понял - извлекать ли массив?
Если да - а это вероятно всего. То мы ведь его сможем извлечь только шагом в один элемент(заведем переменные счетчик и количества шагом,а потом movc ну и т.д). В остальном по коду все верн или что-то я упустил?

Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
org 10h
db '12345678'
  mov R0 , #10h
  clr PC4
 
m:
    // извлечение массива пошагово по элементу надо ли? вот этот момент не понял.
 
MOV R0,   #45H    ; Формирование в R0 адреса порт В
MOVX    A,  @R0   ; Вывод
setb PC4
clr PC4
 
jmp m
0
11.11.2017, 12:02
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.11.2017, 12:02
Помогаю со студенческими работами здесь

Проблема с выводом массива через карточку
Здравствуйте, у меня возникла проблема с выводом массива через индексацию. Суть проблемы в том, что...

Ошибка с выводом в порт
Подскажите, почему в порте выводит бред (Скриншот) int echoPin = 9; int trigPin = 8; void...

Есть ли разница между обычным выводом через echo и выводом с использованием HEREDOC-синтаксиса?
Есть ли разницы между двумя многострочными выводами ? первый записывается как строка, второй код...

Передача данных массива Y через последовательный порт на Си для микроконтроллера MSC-51 (i8051, АТ89С52)
Была дана задача на Assembler: Инициализируйте последовательный порт со следующими параметрами: 9...

Затруднения в выводе на экран из массива
Вот сама задача : Затруднения у меня в выводе на экран из массива, подскажите где что доделать, и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru