С Новым годом! Форум программистов, компьютерный форум, киберфорум
Микроконтроллеры
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.95/20: Рейтинг темы: голосов - 20, средняя оценка - 4.95
 Аватар для Linked
21 / 21 / 6
Регистрация: 12.12.2010
Сообщений: 677

(AT89C51, стенд СУ-МК51) Очистить семисегментный дисплей и вывести на него какую нибудь цифру

13.03.2013, 13:02. Показов 3939. Ответов 18
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте.Данный код компилируется в ProView32, но проблема в том что мы получаем .HEX файл, а не .com/.exe.
Вопрос: в какой среде можно скомпилировать данный код в .com/.exe файл?
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
MOV A,  #25
ADD A,  #13 
PUSH    ACC     
MOV A,  #23
SUBB    A,  #8  
POP B       
MUL AB      
SWAP    A       
ANL A,  #11110000b  
PUSH    ACC     
MOV A,  P0
ANL A,  #00001111b  
MOV R0, A
POP ACC
ORL A,  R0
MOV P0, A   
STOP:   JMP STOP    
END
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
13.03.2013, 13:02
Ответы с готовыми решениями:

(AT89C51, стенд СУ-МК51) Что означает "#"?
MOV A, #25 ADD A, #13 ;Выполнение первого действия PUSH ACC ;Сохранение результата MOV A, #23 SUBB A, #8 ;Выполнение второго...

(AT89C51, стенд СУ-МК51) Что означает символ "двойная стрелка" в скане листинга
Здравствуйте. Пишу код в ProView32, и в коде есть двойная стрелка(изображение ниже). Пытался найти коды(alt+*) на эту стрелку, но все не...

Как из Корела программно очистить какую нибудь папку?
Всем привет! После переустановки Винда10 Корел перестал через раз понимать команду: On Error Resume Next Kill...

18
1184 / 670 / 113
Регистрация: 15.05.2012
Сообщений: 4,078
13.03.2013, 16:00
Это код для MCS-микроконтроллеров, а не для процессоров Интел. Только хекс или что-то подобное, никак не ексе или ком.
1
 Аватар для Ethereal
6773 / 2741 / 385
Регистрация: 17.02.2013
Сообщений: 4,048
14.03.2013, 05:51
Утилита Hex2Bin.exe поможет перегнать Hex в Bin. А это почти то-же, что Com. Т.е. просто двоичный образ.
Только у меня большое подозрение, что Linked собрался ЭТО на персоналке запускать.
1
 Аватар для Linked
21 / 21 / 6
Регистрация: 12.12.2010
Сообщений: 677
14.03.2013, 16:46  [ТС]
Ethereal, вы правы.. У меня лабораторная работа, ну и задания, переделать код с "C" языка на Assembler. Вот и думаю, как выполнить сие чудо..Там лабораторные работы идут на стенде, и там инициализация файлов и пр. для работы со стендом, а как такое в асе мделать - я не знаю(
0
 Аватар для Ethereal
6773 / 2741 / 385
Регистрация: 17.02.2013
Сообщений: 4,048
14.03.2013, 17:38
Так на КАКОЙ ассемблер ?
У микроконтроллера MCS-51 и персоналки IBM PC архитектуры разные, а значит и ассемблеры тоже разные. Если ты напишешь на том ассемблере, что в первом сообщении топика, то запустить результат на персоналке ты не сможешь. Потому-что получишь код не для того процессора.
1
 Аватар для Linked
21 / 21 / 6
Регистрация: 12.12.2010
Сообщений: 677
14.03.2013, 19:53  [ТС]
Ethereal, вот оно что..Спасибо! Кое-что начинает проясняться..
Да, тогда вопрос: например в "C" я для инициализации работы со стендам делал чтото вроде этого:
include "namefile.h";
и в нужном моменте вызывал нужную функцию:
init_stand();
То как подобное делается в ассемблере(код пишется в ProView32)? Файлы теже самые есть, только с форматом inc.
0
 Аватар для Ethereal
6773 / 2741 / 385
Регистрация: 17.02.2013
Сообщений: 4,048
15.03.2013, 00:52
namefile.h - это .h файл, т.е. заголовочный файл. Он содержит всякие описания, нужные
для Си, но никакого кода не порождает.

init_stand();
Вызов этой функции породит код при компиляции. Поскольку эта функция вызывается без
параметров, то ее вызов породит только одну инструкцию в коде.
Которая на ассемблере будет выглядеть так :
lcall init_stand

Само тело функции init_stand() будет, естественно, состоять из целой кучи кода, но
поскольку текста этой функции я не вижу, то и какой это код сказать не могу.
1
 Аватар для Linked
21 / 21 / 6
Регистрация: 12.12.2010
Сообщений: 677
15.03.2013, 06:30  [ТС]
Цитата Сообщение от Ethereal Посмотреть сообщение
Которая на ассемблере будет выглядеть так :
lcall init_stand
А как в ассемблере подгрузить файл, из которого я собираюсь вызвать эту функцию?
0
 Аватар для Ethereal
6773 / 2741 / 385
Регистрация: 17.02.2013
Сообщений: 4,048
15.03.2013, 16:18
Ты этот файл сначала напиши.
1
 Аватар для Linked
21 / 21 / 6
Регистрация: 12.12.2010
Сообщений: 677
15.03.2013, 17:04  [ТС]
Всё, разобрался..Знак "$" перед include надо ставить..
Ребят..Вот есть код на С, и его надо перевести в ассемблер, для микроконтроллеров(8051) MCS(на скоко помню) - 8 бит..Вот код:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
void conv(unsigned char A, unsigned char data * D)
{ 
 D[0]=A/100;
 A=A-D[0]*100;
 D[1]=A/10;
 D[2]=A-D[1]*10;
}
 
void main(void)
{
 unsigned char data D[3];
conv (0x80, D);
 while (1);
}
Как это будет выглядеть на ассемблере?Используется стенд СУ-МК51
Да, и вот пример кода который выполняет действие (*+*)*(*-*) =??? числа.
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
MOV A,  #25
ADD A,  #13 ;Выполнение первого действия
PUSH    ACC     ;Сохранение результата
MOV A,  #23
SUBB    A,  #8  ;Выполнение второго действия
POP B       ;Вызов результата первого действия
MUL AB      ;Третье действие
SWAP    A       ;Обмен тетрад
ANL A,  #11110000b  ;Нам нужна старшая тетрада
PUSH    ACC     ;Сохранение результата
MOV A,  P0
ANL A,  #00001111b  ;Сохраняем младшую тетраду порта
MOV R0, A
POP ACC
ORL A,  R0
MOV P0, A   ;Результат в порт
 
STOP:   JMP STOP    ; Программа должна завершаться именно так
 
END
Вот в этом коде можете пожалуйста пояснить, причём тут тетрады и для чего они нужны?Это вроде в 16-й системе счисления используется?
0
 Аватар для Ethereal
6773 / 2741 / 385
Регистрация: 17.02.2013
Сообщений: 4,048
15.03.2013, 17:31
Итак, процессор (и компьютер в целом) использует двоичную систему, которая оперирует всего двумя цифрами: 0 и 1. И поэтому основание двоичной системы равно 2. Аналогично, основание десятичной системы равно 10, так как там используются 10 цифр.

Каждая цифра в двоичном числе называется бит (или разряд). Четыре бита – это полубайт (или тетрада), 8 бит – байт, 16 бит – слово, 32 бита – двойное слово. Запомните эти термины, потому что в программировании они используются очень часто.
1
 Аватар для Linked
21 / 21 / 6
Регистрация: 12.12.2010
Сообщений: 677
16.03.2013, 13:43  [ТС]
Ethereal, как понять "слово" и/или "двойное слово"?
0
 Аватар для Troll_Face
608 / 406 / 8
Регистрация: 26.04.2012
Сообщений: 2,065
16.03.2013, 15:03
Linked, два байта - это слово, четыре байта - это двойное слово.
1
 Аватар для Linked
21 / 21 / 6
Регистрация: 12.12.2010
Сообщений: 677
16.03.2013, 16:55  [ТС]
Fatal Error, мм.понятно. Буду считать что просто так их принято называть - "Словом")
Вот ещё вопрос, я этот код пишу на стенде, а как мне на индикатор вывести что либо?Мне нужно читать уже о самом стенде, как и какие функции использовать для инициализации работы со стендом, когда и как?

Добавлено через 55 секунд
Цитата Сообщение от Linked Посмотреть сообщение
void conv(unsigned char A, unsigned char data * D)
{
*D[0]=A/100;
*A=A-D[0]*100;
*D[1]=A/10;
*D[2]=A-D[1]*10;
}
void main(void)
{
*unsigned char data D[3];
conv (0x80, D);
*while (1);
}
Да, и как будет выглядеть этот код на ассемблере?
0
 Аватар для Ethereal
6773 / 2741 / 385
Регистрация: 17.02.2013
Сообщений: 4,048
19.03.2013, 03:34
Цитата Сообщение от Linked Посмотреть сообщение
Fatal Error, мм.понятно. Буду считать что просто так их принято называть - "Словом")
Ты бы пару книжек каких-нибудь по основам программирования для начала прочел, что-ли.

Запомни : СНАЧАЛА учится таблица умножения и только ПОТОМ квантовая механика.
Зачем тебе ассемблер, если ты еще не прочитал про двоичную систему счисления, тетраду, байт и слово ?
Или залезай обратно на баобаб с которого спустился или иди книги читай.
2
 Аватар для Linked
21 / 21 / 6
Регистрация: 12.12.2010
Сообщений: 677
19.03.2013, 06:42  [ТС]
Ethereal, спорить я с тобой не собираюсь, но просто скажу, что времени читать у меня книг нету. Зачем читать, если есть возможность получить ответы сразу на то, что тебе и нужно? Не хочу лишней кашей себе голову забивать, у меня других забот полно.

Добавлено через 20 минут
Ethereal, + Я этому жизнь посвящать не собираюсь. Мне поставили задачу в один момент времени - я её просто и пытаюсь решить, читать массу книг по основам и пр. это как-то глупо было-бы с моей стороны.
По теме:

Цитата Сообщение от Linked Посмотреть сообщение
Вот ещё вопрос, я этот код пишу на стенде, а как мне на индикатор вывести что либо?Мне нужно читать уже о самом стенде, как и какие функции использовать для инициализации работы со стендом, когда и как?
Вопрос решён на "C", вопрос как сделать на ассемблере.
В общем на стенде есть 2 индикатора: динамический 7-ми сегментный индикатор (8 символов)(SSI) и жидкокристаллический матричный индикатор (2 строки по 16 символов)(MJKI). На "C" там есть готовые функции, что-то вроде mjki_clear() - очистка индикатора, mjci_pos(x,y) - установка позиции на нужную строку нужный столбец индикатора и т.д., но там нет нигде самих расписанных этих функций(т.е. просмотрев все подключаемые файлы - я их не нашёл).
Вопрос: где могут быть записаны эти функции, не могут ли они быть записаны где-нибудь внутри стенда?(т.е. готовые функции, которым остаётся только передавать параметры)?
0
Ушел с форума
Автор FAQ
 Аватар для Mikl___
16372 / 7684 / 1080
Регистрация: 11.11.2010
Сообщений: 13,758
19.03.2013, 06:46
Linked,
а смысл объяснять, если тебе ЭТО не нужно? Интернет большой, ищи и получай ответы на вопросы сразу про то, что ТЕБЕ нужно -- зачем забивать ТВОЕЙ кашей мозги чужих людей?
2
 Аватар для Linked
21 / 21 / 6
Регистрация: 12.12.2010
Сообщений: 677
19.03.2013, 16:08  [ТС]
Mikl___, вот именно в этом то и проблема, что по данному стенду - в интернете ничего и нет.. Программы писали Белорусские прогеры, они написали на "С", а Ассемблер - мол надо - делайте сами.. Вот и пытаюсь

Добавлено через 5 часов 50 минут
Mikl___, пожалуй вы правы, я погорячился. Извиняюсь за происходящий "флудобред", в котором я мог бы сам разобраться погуглив.. А касательно стенда пожалуй пойду сам разбираться, ведь всётаки мой курсовой.
Спасибо ещё раз! В кое-чём всётаки разобрался.
0
 Аватар для Linked
21 / 21 / 6
Регистрация: 12.12.2010
Сообщений: 677
08.04.2013, 09:14  [ТС]
Микроконтроллер AT89С51, как очистить семисегментный дисплей и вывести на него какую нибудь цифру?Приведите пожалуйста пример
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
08.04.2013, 09:14
Помогаю со студенческими работами здесь

Семисегментный дисплей на 4 цифры. Как с этим работать?
Есть дисплей Kingbright CA56-125 RWA R. Работаю с подобными впервые - не ругайте за тупизну, пожалуйста. Там 4 цифры (на каждую по 7...

Как, используя клавиатуру, преобразовать цифру в ASCII-код и вывести на дисплей?
Как, используя клавиатуру, преобразовать цифру в ASCII-код и вывести на дисплей? С подсказками, которые есть на сайте не получается там...

С использованием клавиатуры ввести цифру и преобразовать в ASCII-код, потом вывести на дисплей
Как в comp model с использованием клавиатуры ввести цифру и преобразовать в ASCII-код, а потом вывести на дисплей? Мне надо сделать эту...

Как создать класс текста и вывести из него текст на дисплей?
С обычным выводом проблем нет. Реализовывал это по-разному, но ошибка всегда была одна : (см. на прикрепл.фото) struct tx { Text...

Очистить экран и вывести на него свою фамилию
Нужно написать программу - Очистить экран и вывести на него свою фамилию. хелп плз.


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

Или воспользуйтесь поиском по форуму:
19
Ответ Создать тему
Новые блоги и статьи
сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и источниками (напряжения, ЭДС и тока). Найти токи и напряжения во всех элементах. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru