erbi

Members
  • Публикации

    14
  • Зарегистрирован

  • Посещение

Репутация

0 Обычный

О erbi

  • Звание
    Новенький

Информация

  • Пол
    Мужчина
  • Город
    Москва
  1. Сортировка элементов массива

    Здравствуйте, спасибо Вам большое. Я все сдал и курсовик и экзамен. Еще раз большое спасибо за помощь. Заранее благодарен.
  2. Сортировка элементов массива

    Большое спасибо. Я уже в среду курсовую работу сдаю. Большое Вам спасибо.
  3. Сортировка элементов массива

    Здравствуйте, извините что опять обращаюсь, не могли бы проверить программу сортировки массива по возрастанию, у меня почему ошибку делать в данных FF в программе, если я меняю на 255 то нормально компелируется, а если FF то нет. MAX_ITEM EQU 02Eh ; переменная для максимального значения. IN_ADR EQU 030h ; начальный адрес размещения данных во внутренней памяти данных. NUM_ITEM EQU 007h ; количество элементов массива. org 0000h jmp Start ; переход к началу программы. org 0100h ; начало программы. Start: mov SP, 0080h ; установка указателя стека. mov R0, #IN_ADR ; загрузка начальных данных во внутреннюю память данных. mov A, #255 mov @R0, A inc R0 mov A, #128 mov @R0, A inc R0 mov A, #16 mov @R0, A inc R0 mov A, #0 mov @R0, A inc R0 mov A, #40 mov @R0, A inc R0 mov A, #108 mov @R0, A inc R0 mov A, #127 mov @R0, A call SORT_UP ; вызов подпрограммы SORT_UP. SORT_UP: mov R7, #NUM_ITEM ; в R7 загружаем количество прходов N-1. IN_SORT_UP_3: dec R7 push aR7 ; сохраняем в стеке количество проходов. mov R0, #IN_ADR ; в R0 организуем указатель на n-й элемент массива. mov R1, #IN_ADR inc R1 ; в R1 организуем указатель на (n+1)-й элемент массива. IN_SORT_UP_2: mov 02Eh, @R0 ; начинаем проход. В переменную MAX_IYEM загружаем содержимое n элемента массива. mov A, @R1 ; в аккумулятор загружаем содержимое (n+1) элемента массива. cjne A, MAX_ITEM, IN_SORT_UP_1 ; если (n+1)<n то необходимо поменять элементы местами (выполнить IN_SWAP_UP), IN_SORT_UP_1: jc IN_SWAP_UP ; иначе перейтди к IN_SORT_UP_4 jmp IN_SORT_UP_4 IN_SWAP_UP: mov @R0, A ; на место n элемента загружается (n+1) элемент, mov @R1, MAX_ITEM; ; на место (n+1) элемента загружается n элемент. IN_SORT_UP_4 : inc R0 ; увеличваем указатель на элемент массива inc R1 ; увеличваем указатель на элемент массива djnz R7, IN_SORT_UP_2 ; уменьшаем содержимое R7 и повторяем проход если R7 не достигло нуля. pop aR7 ; восстанавливаем из стека данные о выполненом проходе, djnz R7, IN_SORT_UP_3 ; уменьшаем на 1 количество шагов в следующем проходе, и повторяем если не достигнут конец. ret ; возврат из подпрограммы. Loop: sjmp Loop ; Обработчики прерываний. Ext1Srv: RETI Time0Srv: RETI Time1Srv: RETI RiTiSrv: RETI Ext0Srv: RETI RetIE0: RETI END Скажите, вот при коспиляции появляется ошибка при значении FF, можно ли ее изменить как то. Скажите, а как можно посмотреть в этой программе как именно он сортирует массив. Я посмотрел по отладке, вроде идет что то, но как именно проверить правильно ли он отсортировал его или нет. Это нельзя сделать. Это самая первая программа в этой теме. Заранее благодарен.
  4. Сортировка элементов массива

    Спасибо. Я Вас понял, скажите у меня эмулятор назвается MК51Win вроде на нем, нельзя вывести. Заранее благодарен.
  5. Сортировка элементов массива

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

    Большое спасибо, что помогли написать программу сортировки массива. У меня только вопрос, я в программе все понял, только не понял, что значит команда DATA в самом начале, у меня в списке команд нет токой команды. Скажите, а можете еще чуть чуть исправить этк программу, просизвести сортировку элементов массива только по возрастранию, и размещенной во внутренней памяти, по убыванию и во внешней памяти не нужно, просто преподаватель снял эти пункты у меня и отдал их другому. Извините, что отвлекаю Вас и задаю глупые вопросы, я нашел, адреса куда надо записывать. NAME LAB_DEMO1 USING 0 ; Использовать банк регистров 0 JMP START ; Начало программы ORG 03H ; Адрес обработчика EXT INT 0 LJMP Ext0Srv 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 2BH ; Адрес обработчика прерывания от LJMP SIO1 ; последовательного порта I2C ORG 53H ; Адрес обработчика прерывания LJMP ADC ; по завершению работы АЦП ORG 33H ; Адрес обработчика прерывания LJMP CT01 ; регистра захвата СТ0 ORG 5BH ; Адрес обработчика прерывания при LJMP TC20 ; сравнении Т/С2 и регистра уставок СМ0 ORG 3BH ; Адрес обработчика прерывания LJMP CT11 ; регистра захвата СТ1 ORG 63H ; Адрес обработчика прерывания при LJMP TC21 ; сравнении Т/С2 и регистра уставок СМ1 ORG 43H ; Адрес обработчика LJMP CT21 ; регистра захвата СТ2 ORG 6BH ; Адрес обработчика прерывания при LJMP TC22 ; сравнении Т/С2 и регистра уставок СМ2 ORG 4BH ; Адрес обработчика прерывания LJMP CT31 ; регистра захвата СТ3 ORG 73H ; Адрес обработчика прерывания LJMP TC2 ; при переполнении Т/С2 START: ORG 8000H ; Настройка микроконтроллера для обмена информацией с ПК ; по последовательному каналу. Скорость обмена 9600 бит/с ; Резонансная частота кварцевого резонатора 11,059 МГц MOV IE,#0 ; Запрет всех прерываний MOV TMOD,#20H ; Установка режима 2 для таймера 1 MOV TH1,#0FDH MOV TL1,#0FDH ANL PCON,#7FH MOV SCON,#50H SETB TR1 ; Старт Т/С1 Если Вам не трудно можете не мого исправит программу сортировки массива по возрастанию во внутренней памяти. Пожалуйста поймите меня правильно если бы я хоть в чем то разбирался я бы не пристовал, а то препоадватель, то одно дает то другое все меняет, сам поянть ничего не могу. А плату Вы правильно указали, действительно именно с этой платой мы и работает/ Заранее благодарен.
  7. Сортировка элементов массива

    Здравствуйте, извините что опять обращаюсь, но по этой ссылке, что то не получается у меня скачать, скачивает какой то файл index.php и больше ничего. Модете как раньше расшарить в блокноте. пожалуйста. Скажите, а я сортировку элементов массива по возрастанию во внутренней пямяти правильно написал. Можете рассказать. Пожалуйста не надо компилировать массив, можете программу просто в блокноте записать. Заранее благодарен.
  8. Сортировка элементов массива

    Здравствуйте, спасибо Вам что Вы мне помогли наисать программу по сортировке массива. Только преподаватель не захотел ее смотреть, сказал, что массив должен быть задан не в регистры. Он сказал, чтобы я написал программу так, чтобы он вначале задавал какие то цмфры сам, а в конце программы на экране монитора был показан отсортированный массив. Я вот написал программу сортировки массива по возрастанию, и находящийся во внутренней памяти, скажите, а что нужно добавить к этой программе, чтобы можно с клавиатуры задавать любые цифры, далее он производил сортировку массива, а затем был показал этот отсортированный массив. MAX_ITEM EQU 02Eh ; переменная для максимального значения. IN_ADR EQU 030h ; начальный адрес размещения данных во внутренней памяти данных. NUM_ITEM EQU 007h ; количество элементов массива. org 0000h jmp Start ; переход к началу программы. org 0100h ; начало программы. Start: mov SP, 0080h ; установка указателя стека. mov R0, #IN_ADR ; загрузка начальных данных во внутреннюю память данных. mov A, #255 mov @R0, A inc R0 mov A, #128 mov @R0, A inc R0 mov A, #16 mov @R0, A inc R0 mov A, #0 mov @R0, A inc R0 mov A, #40 mov @R0, A inc R0 mov A, #108 mov @R0, A inc R0 mov A, #127 mov @R0, A call SORT_UP ; вызов подпрограммы SORT_UP. SORT_UP: mov R7, #NUM_ITEM ; в R7 загружаем количество прходов N-1. IN_SORT_UP_3: dec R7 push aR7 ; сохраняем в стеке количество проходов. mov R0, #IN_ADR ; в R0 организуем указатель на n-й элемент массива. mov R1, #IN_ADR inc R1 ; в R1 организуем указатель на (n+1)-й элемент массива. IN_SORT_UP_2: mov 02Eh, @R0 ; начинаем проход. В переменную MAX_IYEM загружаем содержимое n элемента массива. mov A, @R1 ; в аккумулятор загружаем содержимое (n+1) элемента массива. cjne A, MAX_ITEM, IN_SORT_UP_1 ; если (n+1)<n то необходимо поменять элементы местами (выполнить IN_SWAP_UP), IN_SORT_UP_1: jc IN_SWAP_UP ; иначе перейтди к IN_SORT_UP_4 jmp IN_SORT_UP_4 IN_SWAP_UP: mov @R0, A ; на место n элемента загружается (n+1) элемент, mov @R1, MAX_ITEM ; ; на место (n+1) элемента загружается n элемент. IN_SORT_UP_4 : inc R0 ; увеличваем указатель на элемент массива inc R1 ; увеличваем указатель на элемент массива djnz R7, IN_SORT_UP_2 ; уменьшаем содержимое R7 и повторяем проход если R7 не достигло нуля. pop aR7 ; восстанавливаем из стека данные о выполненом проходе, djnz R7, IN_SORT_UP_3 ; уменьшаем на 1 количество шагов в следующем проходе, и повторяем если не достигнут конец. ret ; возврат из подпрограммы. Loop: sjmp Loop В какие адреса писать эту программу я так и не понял. Если Вам не трудно можете подссказать, какие именно подпрогрммы надо дописать, я примерную такую программу нашел, но она для другоо микроконтроллера, а как ее написать для микроконтроллера 80С552, а так и не понял. Вот ссылка где приведена программа для другого микроконтроллера. http://liloisproj.narod.ru/asm_bul.htm там примерно написано, а как мне изменитть, я не понемаю. Заранее благодарен. Спасибо, за то что написали основу этой программы.
  9. Сортировка элементов массива

    Спасибо. Огромное мпасибо за помощь.
  10. Сортировка элементов массива

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

    Спасибо. Я бы сделал, только преподавателя другого нет. Он один на кафедре читает Микропроцессорные системы.
  12. Сортировка элементов массива

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

    Извиняюсь, я вообще в программировании ноль. Ни разу не программировал. Поэтому не знаю, что такое FSI и как этим пользоватся.
  14. Всем привет. Помогите написать программы для микроконтроллера МК8051. Дали курсовик делать, а объяснять преподавтель ничего не хочет. Программирование до этого никто не читал, поэтому не владею ничем. Помогите кто сможет очень надо: Задания. 1.Произвести сортировк элементов массива 1, по возрастанию. 2. убыванию. Массив расположен 1, во внешней 2, во внутренней памяти. Число элементов массива равно 7. Помогите, курсовк надо сдавать, а как делать не знаю. В ассемблере вообще ничего не знаю. Программы требует писать для i8051, другие микроконтроллеры не хочет принимать. Програму пишшут на МК51WIN