Форум программистов, компьютерный форум, киберфорум
Микроконтроллеры
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.87/15: Рейтинг темы: голосов - 15, средняя оценка - 4.87
0 / 0 / 0
Регистрация: 05.11.2012
Сообщений: 18

Keil Uvision 4 , МК51

11.05.2017, 17:31. Показов 3228. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Люди добрые, выручайте!)
Как в 51 работать с портами по указателю??

Нужно сделать универсальную функцию, в параметрах которой передаешь порт и данные. Задача банальная, но чет никак вообще. Либо компилится без ошибок но не работает. Либо ругается, что sfr регистрами такого делать нельзя...
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
11.05.2017, 17:31
Ответы с готовыми решениями:

Работа с Keil uVision
Здравствуйте! Подскажите по Keil uVision, был установлен Keil С51 uVision 4.22 раньше я работал только с МК С51, теперь установил MDK ARM...

Код для at89c51 в keil uvision
Доброго времени суток! Я догадывался, что рано или поздно придется программировать. Этот день наступил. Необходимо написать программу...

Подпрограмма для keil uvision 8051
Напишите пожалуйста такую подпрограмму для 8051, а то у меня с ассемблером все плохо /Реализовать подпрограмму, копирующую большой блок...

11
1184 / 673 / 113
Регистрация: 15.05.2012
Сообщений: 4,085
12.05.2017, 07:57
C
1
2
3
4
5
6
7
switch(заданный_порт)
{
case 0:
    P0= data;
    break;
и т.д
}
Не?
0
0 / 0 / 0
Регистрация: 05.11.2012
Сообщений: 18
12.05.2017, 10:54  [ТС]
Жуть какая))
Это как забивать саморез плоскогубцами��
Это громоздко, долго и просто дико)
На авриках все работало, а тут видать секреты какие
0
1184 / 673 / 113
Регистрация: 15.05.2012
Сообщений: 4,085
12.05.2017, 11:26
Цитата Сообщение от Plu6e4ka Посмотреть сообщение
На авриках все работало
Хочу это видеть.
0
0 / 0 / 0
Регистрация: 05.11.2012
Сообщений: 18
12.05.2017, 12:29  [ТС]
Дык вот же:
C
1
2
3
4
void OutPort(volatile uint8_t *pReg, uint8_t data)
{  
      *pReg = data;
}
Вызов функции:
C
1
OutPort(&PORTB, 0xff);
ПыСы: Тиснул банально с какой то статьи..
0
487 / 333 / 33
Регистрация: 15.08.2011
Сообщений: 1,078
13.05.2017, 00:40
Цитата Сообщение от Plu6e4ka Посмотреть сообщение
Как в 51 работать с портами по указателю??
Это смотря какой у вас МК. Если натурально 51-й, то можно через указатель. А если это серии 52 (а большинство современных как раз они), то специальные регистры, к которым относятся порты можно адресовать только непосредственно.
0
 Аватар для Voland_
1983 / 1276 / 131
Регистрация: 04.01.2010
Сообщений: 4,607
13.05.2017, 11:28
Цитата Сообщение от paskal Посмотреть сообщение
А если это серии 52 (а большинство современных как раз они)
а можно подробнее? Насчет "большинства современных" - это вы из которых исчисляете?
0
487 / 333 / 33
Регистрация: 15.08.2011
Сообщений: 1,078
13.05.2017, 12:56
Ну когда то Интел выпустили контроллер 8051. У него было 128 байт ОЗУ. Адресация была через 1 байтовый указатель. Первые 128 адресов были под ОЗУ, вторые 128 под специальные регистры (SFR). Обратится к SFR можно было как непосредственно, так и косвенно: "mov p1,a" и "mov @r0,a". Потом появился 8052. Там они увеличили ОЗУ до 256. Адреса ОЗУ и SFR стали перекрываться. К SFR стало возможно обращаться через "mov p1,a", а к ОЗУ через "mov @r0,a".
А какие конкретно сделаны по образу 51, или 52-го, смотрите даташиты. Например 89С2051 - это как 51-й. Но почти все это 52-е.
0
 Аватар для Voland_
1983 / 1276 / 131
Регистрация: 04.01.2010
Сообщений: 4,607
14.05.2017, 18:48
Цитата Сообщение от paskal Посмотреть сообщение
А какие конкретно сделаны по образу 51, или 52-го, смотрите даташиты. Например 89С2051 - это как 51-й. Но почти все это 52-е.
Вы опять назвали 8051й... назовите "большинство современных", 8052х. Я, допустим, с "современными" сталкивался только с МК, у которых ЦП анонсируется как 8051 (например, CC254x (TI), NRF24LE1 (Nordic), C8051F3xx (SiLabs) и другие. Соответственно, раз вы обозначили, что 8052 - это "большинство", то обозначьте, о чем вы в этот момент подумали.
0
487 / 333 / 33
Регистрация: 15.08.2011
Сообщений: 1,078
14.05.2017, 19:41
Цитата Сообщение от Voland_ Посмотреть сообщение
Я, допустим, с "современными" сталкивался только с МК, у которых ЦП анонсируется как 8051
У них всех пишут ядро 8051. Это означает систему команд. Потому как у всех она одинакова. А по остальной периферии там черт ногу сломает отличать. По подмножеству 8052 я уже сказал - это ОЗУ 256 байт.
0
 Аватар для Voland_
1983 / 1276 / 131
Регистрация: 04.01.2010
Сообщений: 4,607
15.05.2017, 22:09
Цитата Сообщение от paskal Посмотреть сообщение
Если натурально 51-й, то можно через указатель. А если это серии 52 (а большинство современных как раз они), то специальные регистры, к которым относятся порты можно адресовать только непосредственно.
Цитата Сообщение от paskal Посмотреть сообщение
По подмножеству 8052 я уже сказал - это ОЗУ 256 байт

Не по теме:

Я так вас и понял ;). Можете не продолжать.

0
15.05.2017, 23:35

Не по теме:

Цитата Сообщение от Voland_ Посмотреть сообщение
Я так вас и понял . Можете не продолжать.
С чего вы решили что я хочу продолжать? Это вы меня вопросами замотали.

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
15.05.2017, 23:35
Помогаю со студенческими работами здесь

Как добавить микросхему в Keil uVision 4?
Скачал Keil uVision for C51 v9.00 с рутрекера, после чего ее установил. Далее, при попытке создать проект, а проект мне нужно создать для...

Keil uVision. Получить частоту внешнего генератора
Пишу программу на Си с использованием keiluvision Задача: Получить частоту внешнего генератора и вывести на дисплей Использовать: ...

Программирование арифметических операций (i8051 Keil uVision)
Переход от двоичного формата к двоично-десятичному (целые числа без знака). Задано двухбайтовое двоичное число. В четырех последовательных...

Ошибки про сборке проекта в Keil uVision 5
Доброго времени суток. Проблема такова: создал проект в CubeMX под плату stm32f4discovery, добавил файлы для работы с гироскопом MPU6050,...

Keil uVision. Как просмотреть assembler code программы на Си?
Пишу на С. Можно ли как-то посмотреть как кеил компилирует мой код? Получить на выходе файл .asm .s ?


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Вывод данных через динамический список в справочнике
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Функция заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию. 2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO Апнулись до NET10. Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта так и в интерактивном режиме. из сложностей - чисто функциональный подход. Решил. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru