0 / 0 / 0
Регистрация: 26.11.2011
Сообщений: 816
|
|
1 | |
Как програмировать регистры МК51 на С++23.12.2011, 16:38. Показов 13191. Ответов 18
Метки нет Все метки)
(
Есть больщой вопрос по поводу регистров на АТ89С51. На ясемблере есть такой регистр Movx он работает всё хорошо. Он предназнасен для передачи информации по шине данных и шине адреса. А как этот регистр звучит на С++ и с чем его едят? Может быть какието примеры в С++ имеются?
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
|
|
23.12.2011, 16:38 | |
Ответы с готовыми решениями:
18
Как програмировать? Как правильно програмировать deamons Как програмировать на с++ под WM6?
|
0 / 0 / 0
Регистрация: 11.06.2011
Сообщений: 322
|
|
23.12.2011, 18:21 | 2 |
![]() ЗЫ сразу видно спеца по ясемблеру....
0
|
0 / 0 / 0
Регистрация: 07.12.2010
Сообщений: 574
|
|
23.12.2011, 23:43 | 3 |
Movx - это комманда ) а пишется Асемблер )
предлогаю изучить еще разок асемблер поучить
0
|
0 / 0 / 0
Регистрация: 26.11.2011
Сообщений: 816
|
|
23.12.2011, 23:47 | 4 |
Ну я пожалуй не так вырозилс. Да в асемблере я прафин, да Movx - это не регистр, а команда передачи байта по порту. Меня интересует как по этому порту передавать байт на С++. Проблема в том что есть учебно - отладочный стенд, мы (студенты) учимся передавать этот байт для задания адреса в регистр обшего назначения. Задание перейти с асемблера на С++. А вот как теперь задать этот адрес, вопро хороший. Если не задавать этот адрес никакой регистр общего назначения не работает.
0
|
0 / 0 / 0
Регистрация: 07.12.2010
Сообщений: 574
|
|
23.12.2011, 23:49 | 5 |
передачи байт по порту? о.О
0
|
0 / 0 / 0
Регистрация: 26.11.2011
Сообщений: 816
|
|
23.12.2011, 23:51 | 6 |
![]()
0
|
0 / 0 / 0
Регистрация: 07.12.2010
Сообщений: 574
|
|
23.12.2011, 23:53 | 7 |
так если вы хотите использовать конкретные РОН и комманды, то используйте асм вставки.
P.S. есть особенности в некоторых компиляторах, т.ч. советую скинуть хоть инфу по компилятору или его самого
0
|
0 / 0 / 0
Регистрация: 07.12.2010
Сообщений: 574
|
|
23.12.2011, 23:55 | 8 |
пардон, чушь написал
"предлогаю изучить еще разок асемблер поучить"
0
|
0 / 0 / 0
Регистрация: 26.11.2011
Сообщений: 816
|
|
24.12.2011, 00:01 | 9 |
Ну как тот самый порт (ШД И ША), по которому прогамируют МК. С ним можно работать не только для прогамирования но и для передачи данных на внешние устройства. Этот порт занимает 16 выводов (8 выводов данных и 8 выводов адреса).
0
|
0 / 0 / 0
Регистрация: 07.12.2010
Сообщений: 574
|
|
24.12.2011, 00:09 | 10 |
MOVC не обязательно по порту в/в.
Жду инфу про компилятор.
0
|
0 / 0 / 0
Регистрация: 26.11.2011
Сообщений: 816
|
|
24.12.2011, 00:13 | 11 |
![]()
0
|
0 / 0 / 0
Регистрация: 07.12.2010
Сообщений: 574
|
|
24.12.2011, 00:16 | 12 |
вам тогда очень поможет хорошая книга по этому поводу "Магда Ю.Г. (вроде так) Микроконтроллеры серии 8051. Практический подход"
0
|
0 / 0 / 0
Регистрация: 07.12.2010
Сообщений: 574
|
|
24.12.2011, 00:17 | 13 |
+ ко всему в кейле есть дизасемблер и отладка. Так что дерзайте
0
|
0 / 0 / 0
Регистрация: 26.11.2011
Сообщений: 816
|
|
24.12.2011, 00:23 | 14 |
![]()
0
|
0 / 0 / 0
Регистрация: 07.12.2010
Сообщений: 574
|
|
24.12.2011, 00:27 | 15 |
по сути можно даже простую подпрограмму прописать на запись и считываение данных.
А еще попробуйте найти в этой книге xdata - вам будет проще понять, что к чему стр 47~50
0
|
0 / 0 / 0
Регистрация: 26.11.2011
Сообщений: 816
|
|
24.12.2011, 00:52 | 16 |
Я источник нашол. Там говорится об прирывании от последовательного порта. меня интересует передать данные по этому порту. Прирывания мне не нужны.
0
|
0 / 0 / 0
Регистрация: 26.11.2011
Сообщений: 816
|
|
24.12.2011, 01:00 | 17 |
Пордон, не туда глянул. Да, чтото похожее. То есть передать данные можно приблизительно так;
char xdata text[256] _at_ 0xE000; где text[256] - это данные, а 0xE000 - это адрес. Или както так.
0
|
1 / 1 / 0
Регистрация: 28.01.2010
Сообщений: 537
|
|
24.12.2011, 01:21 | 18 |
Не С++, а SDCC.
Код
... xdata at 0xA000 unsykned char lefti; // left part of indication xdata at 0xB000 unsykned char righti; // right part of indication ... lefti=0x12; righti=0x34; ...
0
|
0 / 0 / 0
Регистрация: 07.12.2010
Сообщений: 574
|
|
24.12.2011, 08:49 | 19 |
поясняю
xdata - это указатель на внешную память _at_ - это конкретный указатель адреса Код
int xdata TEMP _at_ 0x2F00; . . . TEMP = 0b00011100; затем запись во внешнюю память числа 0b00011100 (бинарная система) Надеюсь пояснил
0
|
24.12.2011, 08:49 | |
Помогаю со студенческими работами здесь
19
Как произведение чисел с портов Р0 и Р1 МК51 вывести в порты Р2 и Р3 МК51 (аналог intel 8051): как добавить бит четности? Создать класс Account. Задача из книги Дейтелов "Как програмировать на С++" В чем програмировать? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |