Перейти к содержанию

Сортировка элементов массива


erbi

Рекомендуемые сообщения

Всем привет. Помогите написать программы для микроконтроллера МК8051. Дали курсовик делать, а объяснять преподавтель ничего не хочет. Программирование до этого никто не читал, поэтому не владею ничем. Помогите кто сможет очень надо:

Задания.

1.Произвести сортировк элементов массива 1, по возрастанию. 2. убыванию. Массив расположен 1, во внешней 2, во внутренней памяти. Число элементов массива равно 7.

Помогите, курсовк надо сдавать, а как делать не знаю. В ассемблере вообще ничего не знаю. Программы требует писать для i8051, другие микроконтроллеры не хочет принимать. Програму пишшут на МК51WIN

Ссылка на комментарий
Поделиться на другие сайты

  • Ответов 80
  • Создана
  • Последний ответ

Топ авторов темы

Топ авторов темы

Всем привет. Помогите написать программы для микроконтроллера МК8051. Дали курсовик делать, а объяснять преподавтель ничего не хочет. Программирование до этого никто не читал, поэтому не владею ничем. Помогите кто сможет очень надо:

Задания.

1.Произвести сортировк элементов массива 1, по возрастанию. 2. убыванию. Массив расположен 1, во внешней 2, во внутренней памяти. Число элементов массива равно 7.

Помогите, курсовк надо сдавать, а как делать не знаю. В ассемблере вообще ничего не знаю. Программы требует писать для i8051, другие микроконтроллеры не хочет принимать. Програму пишшут на МК51WIN

А ты попробуй FSI (провью32), сдесь и Си поддерживается. А дальше все проще пареной репы

Удачи!!!

Пишу на Си CCS PICC для PIC, CVAVR для AVR, и иногда IAR для NEC. Особенно привык к SIM300dz.

ICQ: 288449055

Ссылка на комментарий
Поделиться на другие сайты

Сравнительное тестирование аккумуляторов EVE Energy и Samsung типоразмера 18650

Инженеры КОМПЭЛ провели сравнительное тестирование аккумуляторов EVE и Samsung популярного для бытовых и индустриальных применений типоразмера 18650. 

Для теста были выбраны аккумуляторы литий-никельмарганцевой системы: по два образца одного наименования каждого производителя – и протестированы на двух значениях тока разряда: 0,5 А и 2,5 А. Испытания проводились в нормальных условиях на электронной нагрузке EBD-USB от ZKEtech, а зарядка осуществлялась от лабораторного источника питания в режиме CC+CV в соответствии с рекомендациями в даташите на определенную модель. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

Новый аккумулятор EVE серии PLM для GSM-трекеров, работающих в жёстких условиях (до -40°С)

Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре. 

Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств. Подробнее параметры и результаты тестов новой серии PLM по ссылке.

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

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

http://www.vt.fvms.mirea.ru/ там есть учебные материалы по МК51. А как с ней рабоатть я не знаю. Если не трудно саму программу написать не вней, а в блокноте, я ее потом в саму программу перекину.

Заранее благодарен.

Ссылка на комментарий
Поделиться на другие сайты

Литиевые батарейки и аккумуляторы от мирового лидера  EVE в Компэл

Компания Компэл, официальный дистрибьютор EVE Energy, бренда №1 по производству химических источников тока (ХИТ) в мире, предлагает продукцию EVE как со склада, так и под заказ. Компания EVE широко известна в странах Европы, Америки и Юго-Восточной Азии уже более 20 лет. Недавно EVE была объявлена поставщиком новых аккумуляторных элементов круглого формата для электрических моделей «нового класса» компании BMW.

Продукция EVE предназначена для самого широкого спектра применений – от бытового до промышленного. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

А может тебе лучше у другово преподавателя курсовую делать... Может там для тебя по легче задания будут...

Изменено пользователем IGRISE
Ссылка на комментарий
Поделиться на другие сайты

Помогите, курсовк надо сдавать, а как делать не знаю. В ассемблере вообще ничего не знаю. Программы требует писать для i8051, другие микроконтроллеры не хочет принимать. Програму пишшут на МК51WIN

Огромный нереспект преподу.

А тебе вот что скажу: учиться надо не в том ключе что препод ДОЛЖЕН обяснить а тебе помогут с "конечным результатом", а учиться надо искать информацию в нужном месте, и заниматься самообучением.

Чтоб понять чё я те тут понаписал, всё равно придется в книжку смотреть, или напрягай еще кого-нибудь, раз таким образом учишся.

Верхнее образование однозначно портится в эрэфии...

bubble_1.txt

Происходит в этой программе сортировка пузырьковым методом. В зависимости от заданных пользователем начальных данных выполняется одна из 4 подпрограмм.

Ссылка на комментарий
Поделиться на другие сайты

Спасибо. Большое спасибо. Учусь я довольно хорошо уже на 5 курсе имею за все 5 лет одну тройку. А программироать не умею, потому что до этого не было пердмета по программирвагию. А специальность у меня вообще не имеет к программмированию ничего общего. Я спрашивал первый раз. С программирование вообще не сталикался. Преподавтель вообще литературу не дал. Дал только свою методичку, но она так хорошо написана, что понять в ней ничего не возможно. А в библиотеке как назло катало закрыли. Я уже пытался взять книги, но в институтской билитоеке ремон начался. А ездить куда то нет времени, так как учусь на вечернем. И работаю.

Еще раз спасибо. Постараюсь разобратся.

Ссылка на комментарий
Поделиться на другие сайты

Еще раз спасибо. Постараюсь разобратся.

Аааа.... Тогда извиняюсь.

Вот описание:

Метод пузырька подразумевает обработку данных в несколько проходов, с перестановкой соседних элементов если один больше (меньше) другого. В результате одного прохода наибольшее (наименьшее) значение "всплывает" наверх. С каждым новым проходом кол-во обрабатываемых элементов уменьшается на один, потому что тот элемент который "всплыл" на свое место, больше не нуждается в проверке.

При кол-ве элементов = N, кол-во проходов будет N-1. Общее кол-во проверок (шагов) за все проходы будет в твоем случае равно = 6+5+4+3+2+1 = 21. Ну это так к слову.

По программе:bubble_1.txt

Читай комментарии, я написал. Плюс читай описание команд, ну из книжки или из инета. В поисковике набери "описание команд MCS-51".

Контрольный пример, по возрастанию (больший адрес - большее число):

-----------------------------------------------------------------------------------

! адрес ! было ! 1проход!2проход!3проход!4проход!5роход!6проход!

! 30 ! FF ! 80 ! 10 ! 00 !

! 31 ! 80 ! 10 ! 00 ! 10 !

! 32 ! 10 ! 00 ! 28 ! 28 !

! 33 ! 00 ! 28 ! 6С ! 6С ! Результат не меняется

! 34 ! 28 ! 6С ! 7F ! 7F !

! 35 ! 6C ! 7F ! 80 ! 80 !

! 36 ! 7F ! FF ! FF ! FF !

-----------------------------------------------------------------------------------

Контрольный пример, по убыванию (больший адрес - меньшее число):

-----------------------------------------------------------------------------------

! адрес ! было ! 1проход!2проход!3проход!4проход!5роход!6проход!

! 30 ! FF ! FF ! FF ! FF ! FF !

! 31 ! 80 ! 80 ! 80 ! 80 ! 80 !

! 32 ! 10 ! 10 ! 28 ! 6C ! 7F !

! 33 ! 00 ! 28 ! 6С ! 7F ! 6C ! Результат не меняется

! 34 ! 28 ! 6C ! 7F ! 28 ! 28 !

! 35 ! 6C ! 7F ! 10 ! 10 ! 10 !

! 36 ! 7F ! 00 ! 00 ! 00 ! 00 !

------------------------------------------------------------------------------------

Изменено пользователем Speccy
Ссылка на комментарий
Поделиться на другие сайты

Люди добрые... я сам не местный... Помогитенаписать программу для микроконтроллера МК8051. Помогите кто сможет очень надо:

Задания.

1.С клавиатуры ПК подать одну из двух команддля микроконтроллера. Первая команда должна обеспечиватьвывод на ЖКИ показания АЦП, вторрая - вывод на ЖКИ текущее время с предварительно выделенным словом TIME.

Программы требует писать для i8051, другие микроконтроллеры не хочет принимать.

Препод зараза лекции ведет и при этом спит стоя... методичка, которую он написал мне может быть полезна только при большой нужде :(( весь в растерянности. помоему он сам не знает что толком хочет, потому что на вопросы ответить не может :(

Ссылка на комментарий
Поделиться на другие сайты

Здравствуйте

Извините, я наверно всех уже тут достал, но мне просто не к кому больше обратится. Я уже писал здесь тему, но мне не ответили. У меня тоже вопрос по программированию на МК51, я этой темы не видел поэтому сосздал новую. Дали лабораторную делать а преподаватель вообще ушел из класса, Лекции вообще не было, преподаватель вообще на лекции не ходит, а программирование до этого вообще не было. На лабораторные пришел какойто преподаватель и сказал чтобы мы к следующему разу написали вот эту программу, а как это сделать я не знаю. Преподавател только сказал, что ЖКИ HD 44780.

Задания.

1. Записать в память ЖКИ 10 показаний АЦП и вывести их последовательно с темпом 0,5 с на экран ЖКИ.

Программы требует писать для i8051, другие микроконтроллеры не хочет принимать.

Еще раз извините, что прошу помочь.

Спасибо всем, кто поможет.

Ссылка на комментарий
Поделиться на другие сайты

Еще раз извините, что прошу помочь.

Спасибо всем, кто поможет.

....я балдею. Вы в верхнем учебном заведении учитесь или где?

Взяли, написали всей группой заяву в деканат. Так, мол, и так. Препод нас не устраивает по таким то причинам. Просим заменить или принять меры.

С уваженьем. Дата, подпись. Отвечайте нам, а то..... Если вы не отзоветесь. Мы напишем в спортлото!

Вот. Если это как то поможет.

stud_3.txt

Ссылка на комментарий
Поделиться на другие сайты

Speccy, доброго времени суток!!!

Какое можно использовать ПО для AT89S51. Пишу только на Си++. Желательно, чтобы компилятор поддерживал и програмирование. Процы конечно древние, но и задачу перед ними не сложную ставлю.

Как выложить что-либо на форум???

Что-то я найти не могу как!!!

Пишу на Си CCS PICC для PIC, CVAVR для AVR, и иногда IAR для NEC. Особенно привык к SIM300dz.

ICQ: 288449055

Ссылка на комментарий
Поделиться на другие сайты

Большое спасибо. А насчет заявления в деканат, уже было нам преподавтель по другому прдмету дал свою кандидатскую переводить с английского на русский. Мы пожаловались, а декан вмсето того чтобы поддержать нас поддержал преподавтеля. Мы потом ели сдали этот экзамен.

Еще раз спасибо. Большое спасибо за помощь.

Ссылка на комментарий
Поделиться на другие сайты

Какое можно использовать ПО для AT89S51. Пишу только на Си++. Желательно, чтобы компилятор поддерживал и програмирование. Процы конечно древние, но и задачу перед ними не сложную ставлю.

Как выложить что-либо на форум???

Что-то я найти не могу как!!!

Если пишешь только на С++, то даже не знаю какое ПО. Имхо, для семейства MCS-51, кроме как в машинных кодах, писать как-то неприлично.

Я только на ассемблере пишу.

Пользуюсь программами типа Single-Chip Machine 2, или MCStudio. В них удобный текстовый редактор для ввода мнемоник, есть даже компилятор, эмулятор, отладчик. Однако в вышеуказанных прогах эмуляция происходит с серьезными ошибками и недочетами. Поэтому можно использовать только для компиляции. Поддержки программатора в них нет. На сайте атмела наверняка есть ПО для перепрограммирования и схема программатора.

Ядро конечно древнее. Но архитектура получилась настолько удачной, что на этом ядре продолжают клепать МК с дополнительной периферией и в наши дни. www.silabs.com посмотри для примера.

Касаемо AT89S51: можно смело перед ним ставить задачу архиважную и архисложную, так как глюков и аномалий в этой штуковине на 99,9% нет, а наработок различного плана - дохренища.

На форуме к сообщению можно прикрепить файлы. Когда пишешь ответ то справа внизу есть кнопки "обзор" и "загрузить".

Ссылка на комментарий
Поделиться на другие сайты

  • 2 недели спустя...

Здравствуйте, извиняюсь что я еще раз обращаюсь, у меня один вопрос. В задаче которую Вы мне написали про запись в память ЖКИ 10 показаний АЦП и выводом их последовательно с темпом 0,5 с на экран ЖКИ, там оказывается нужно, я просто не знал до этого, а преподаватель дал плату демонстрационную и там в заданиие написано что при инициализации ЖКИ запись производится в регистр команд по адресу 7FC0H, а чтение из регистра команд - по адресу 7FC1H, а вот где поменять адрес я что то не допонял. Еще раз извиняюсь за глупый вопрос.

Преподаватель так же дал еще одно задание.

1. Вывести на экран свою фамилию, имя и отчество (пример, Иванов Иван Иванович). Причем в этом задании требуется выводить ФИО отдельно на каждой строке. На первой строке Фамилия, на второй строке Имя, на третий строке Отчетство.

Причем при инициализации ЖКИ - модуля команды должны записыватся в регистр команд микроконтроллера HD44780. На данной отладочной плате запись в регистр команд должна производится по адресу 7FC0H, чтение из регитсра команд - по адресу 7FC1H.

Заранее благодарен. Еще раз извиняюсь, что достаю Вас.

Ссылка на комментарий
Поделиться на другие сайты

...там оказывается нужно, я просто не знал до этого, а преподаватель дал плату демонстрационную и там в заданиие написано что при инициализации ЖКИ запись производится в регистр команд по адресу 7FC0H, а чтение из регистра команд - по адресу 7FC1H, а вот где поменять адрес я что то не допонял. Еще раз извиняюсь за глупый вопрос.

Обратите внимание, написано было в самом начале "УЧЕБНАЯ ПРОГРАММА"!!!

Вам преподаватель предлагает откомпилировать ваши задания и загрузить их в реальную макетную плату с ЖКИ? Он у вас шутник!

1. Всё равно вы не до конца разузнали адреса. Скорее всего есть еще адрес регистра данных ЖКИ. Либо вы не правильно переписали задание.

2. В самом начале исходного текста, там где написано ";константы:", есть числа. Control - регистр команд, Data - регистр данных. Ну раз у вашего преподавателя по другому, то давай я чуток переделаю.

stud_4.txt

Преподаватель так же дал еще одно задание.

Прозорливый у вас преподаватель :)

Это он вкурил, что ты не самостоятельно прогу писал, и навешал еще.

А потом еще навешает.

Вывести на экран свою фамилию, имя и отчество (пример, Иванов Иван Иванович). Причем в этом задании требуется выводить ФИО отдельно на каждой строке. На первой строке Фамилия, на второй строке Имя, на третий строке Отчетство.

Причем при инициализации ЖКИ - модуля команды должны записыватся в регистр команд микроконтроллера HD44780. На данной отладочной плате запись в регистр команд должна производится по адресу 7FC0H, чтение из регитсра команд - по адресу 7FC1H.

Заранее благодарен. Еще раз извиняюсь, что достаю Вас.

Не извиняйся. Не поможет.

Должно быть что-то типа такого:stud_5.txt

Точнее не знаю.

ИМХО это бред, делать такие задания для макетной платы. Должны быть проще задания, либо препод должен теоретические знания студентов проверять, но уж никак не работоспособность кода. Максимум - в эмуляторе.

Ссылка на комментарий
Поделиться на другие сайты

Большое спасибо. А насчет платы я и сам незнал. Он сказал про нее только сейчас, сказал что сначало надо написать программы, а потом он плату даст вот поэтому я и не знал.

Большое спасибо.

Ссылка на комментарий
Поделиться на другие сайты

Извините, что еще раз обращаюсь, вот была лабораторная работа, и мы выводили свою ФИО на экран ЖКИ, спасибо Вам что написали программу, У нас все получилось, только преподаватель еще дал, сказал чтобы мы вывели ФИО, только с подпрограмммой SEND_STRING, я поискал в интернете, но что это за подпрогрмма я так и не нашел. В его методичке про это вообще ничего не сказано, там он выводит по буквенно. Причем после каждой буквы пишет метку на подпрограмму SYMB:

SYMB: mov DPTR, #7FC2H

movx @DPTR, A

call Delay_15ms

ret

Эта подпрограмам называется вывод на экран ЖКИ принятого в аккумулятор МК символа. Скажите, а вот в программе по вывода значений АЦП эта подпрогрмаам не нужна.

И если ВАм не трудно можете написать подпрогрмаму инициализации УАПП, с частоотй 9600 Гц, режим работы 1 с., определяемая таймером счетчиком 1.

Он на усложнил задачу, сказал чтобы мы вывели теперь ФИО не только на экран ЖКИ, но и на экран монитора. Плата подключается через COM порт. Он требет, чтобы эта программа была написано через подпрограмму SEND_STRING, только не на 3 строках а на одной через пробел , или на двух. На первой строке Фамилия на второй Имя.

Сама плата, которая является демонстрационной наз. EB-552

У нее адрес регистра команд для записи 7FC0H

Код команды выбора интерфейса 38h

Инкремент счетчика адресов 06h

Очистка экрана 01hВключение экрана 0ch

Адрес регистра данных для записи 7FC2h.

Извините, можете еще поправить программу для этой платы которую Вы писали CEPBEP, просто у меня очень похожая программа.

Я к преподавателю с вопросами начал пристовать, он так и не смог мне на них ответить. Насчет подпрограммы SEND_STRING

Можете еще поправить программу вывода на экран ЖКИ ФИО. Я написал ее, но не уверен, что правильно.

NAME LAB_DEMO

USING 0 ;Использование банк регистров 0

Jmp Start ; Начало программы

ORG 03h

LJmp Ext0Srv ; Адрес обработчика прерываний EXIT INT 0

ORG 0BH ; Адрес обработчика TIMER INT 0

LJmp Time0Srv ;

ORG 13H ; Адрес обработчика EXT INT 1

LJmp Ext1Srv ;

ORG 1BH ; Адрес обработчика TIMER INT 1

LJmp Time1Srv ;

ORG 23H ; Адрес обработки прерываний от

LJmp RiTiSrv ; последовательного порта

; --- Конец заголовка----

;---------- Здесь вводите код программы----------

ORG 8000H

adr_for_write equ 7FC0H

lcd_interface equ 00111000B

mov_screen_right equ 00000110B

lcd_clr equ 01H

lcd_on equ 0Eh

Start:

call init_LCD

MOV DPTR,#MES_1

CALL S_STRING

Loop: sjmp Loop

init_LCD: mov DPTR,#adr_for_write

mov a,#lcd_interface

movx @dptr,a

call delay5ms

mov a,#mov_screen_right

movx @dptr,a

call delay5ms

mov a,#lcd_on

movx @dptr,a

call delay5ms

mov a,#lcd_clr

movx @dptr,a

call delay5ms

ret

S_STRING: push ACC

push B

CLR A

MOV B,A

AGAIN: MOV A,B

INC B

MOVC A,@A+DPTR

JZ FINISH

CALL SYMB

JMP AGAIN

FINISH: pop B

pop ACC

RET

SYMB: PUSH DPL

PUSH DPH

MOV DPTR,#7FC2H

MOVX @DPTR,A

CALL DELAY15MS

POP DPH

POP DPL

RET

delay5ms: call delay1ms

call delay1ms

call delay1ms

call delay1ms

call delay1ms

ret

delay1ms: mov r1,#90

l1: mov r2,#4

l2: djnz r2,l2

djnz r1,l1

ret

delay15ms:call delay5ms

call delay5ms

call delay5ms

ret

MES_1: DB ' Ivanov Ivan ' 0

; Обработка прерываний

Ext1Srv: RETI

Time0Srv: RETI

Time1Srv: RETI

RiTiSrv: RETI

Ext0Srv: RETI

RetIE0: RETI

END

Заранее благодарен. Еще раз спасибо, что Вы мне помогли.

Ссылка на комментарий
Поделиться на другие сайты

У вас препод не в себе что ли?

А вы кто по специальности??

Пишу на Си CCS PICC для PIC, CVAVR для AVR, и иногда IAR для NEC. Особенно привык к SIM300dz.

ICQ: 288449055

Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу

  • Сообщения

×
×
  • Создать...