Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RFpro.ru: Ассемблер? Это просто! Учимся программировать


Хостинг портала RFpro.ru:
Московский хостер
Профессиональный ХОСТИНГ на базе Linux x64 и Windows x64

РАССЫЛКИ ПОРТАЛА RFPRO.RU

Лучшие эксперты данной рассылки

Boriss
Статус: Академик
Рейтинг: 2552
∙ повысить рейтинг »
Абаянцев Юрий Леонидович aka Ayl
Статус: Профессионал
Рейтинг: 2063
∙ повысить рейтинг »
vladisslav
Статус: 8-й класс
Рейтинг: 1332
∙ повысить рейтинг »

/ КОМПЬЮТЕРЫ И СОФТ / Программирование / Assembler (Ассемблер)

Номер выпуска:1391
Дата выхода:04.12.2010, 05:30
Администратор рассылки:Лысков Игорь Витальевич (Старший модератор)
Подписчиков / экспертов:223 / 66
Вопросов / ответов:1 / 1

Вопрос № 180950: Здравствуйте, уважаемые эксперты! Прошу Вас ответить на следующий вопрос: Нужно выполнить задание для микроконтроллера MCS-51 на Ассемблере. ССЫЛКА ЗАДАНИЯ URL >>


Вопрос № 180950:

Здравствуйте, уважаемые эксперты! Прошу Вас ответить на следующий вопрос: Нужно выполнить задание для микроконтроллера MCS-51 на Ассемблере.
ССЫЛКА ЗАДАНИЯ URL >> E-mail >>

Отправлен: 26.11.2010, 05:06
Вопрос задал: Sergio (Посетитель)
Всего ответов: 1
Страница вопроса »


Отвечает Лысков Игорь Витальевич (Старший модератор) :
Здравствуйте, Sergio!
Вот Вам программа.
Код:

mov dptr,#table ;адрес таблицы кодов для индикации
mov p3,#0 ;вначале все погасим
main_loop: ;основной цикл сканирования и индикации
mov r2,#4 ;число линий сканирования
mov r3,#1 ;код для выбора линии сканирования
mov r4,#0 ;скан-код - индекс в таблице кодов для индикации
scan_loop: ;цикл проверки линии сканирования
mov p1, r3 ;задаем линию сканирования в p1.0-p1.3
mov a, p1 ;читаем результат из p1.4-p1.6
swap a ;перенесем биты 4-6 в 0-2 (для удобства анализа)
mov r5,#3 ;число выходных линий
line_loop: ;цикл анализа полученных бит
rrc a ;сдвинем аккумулятор на 1 бит вправо, младший бит в С
jnc key_found ;если С = мл.бит = 0, то было нажатие!
inc r4 ;код следующей кнопки
djnz r5, line_loop ;по всем битам линии
;линия ничего не дала - переходим на следующую
mov a, r3 ;сдвинем код выбора линии сканирования на 1 влево
rl a ; (это можно делать только в аккумуляторе)
mov r3, a
djnz r2, scan_loop ;по всем линиям сканирования
;увы, ничего не было нажато
jmp main_loop ;идем на повтор сканирования,
;ни индикаторе ничего не меняем
key_found: ;есть нажатие!
mov a, r4 ;скан-код клавиши (0-11)
movc a,@a+dptr ;читаем код для индикации
mov p3, a ;выводим
jmp main_loop ;и на повтор сканирования

table: ;таблица для задания кодов для индикации
db 00010000b, 00100000b, 00110000b ;1,2,3
db 01000000b, 01010000b, 01100000b ;4,5,6
db 01110000b, 10000000b, 10010000b ;7,8,9
db 10110000b, 00000000b, 10100000b ;*,0,#

end

Вместе с блок-схемой - block-schema.doc (34.0 кб)

-----
Люби своего ближнего, как самого себя

Ответ отправил: Лысков Игорь Витальевич (Старший модератор)
Ответ отправлен: 01.12.2010, 14:57
Номер ответа: 264469
Украина, Кировоград
Тел.: +380957525051
ICQ # 234137952
Mail.ru-агент: igorlyskov@mail.ru

Вам помог ответ? Пожалуйста, поблагодарите эксперта за это!
Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 264469 на номер 1151 (Россия) | Еще номера »
  • Отправить WebMoney:


  • Оценить выпуск »
    Нам очень важно Ваше мнение об этом выпуске рассылки!

    Задать вопрос экспертам этой рассылки »

    Скажите "спасибо" эксперту, который помог Вам!

    Отправьте СМС-сообщение с тестом #thank НОМЕР_ОТВЕТА
    на короткий номер 1151 (Россия)

    Номер ответа и конкретный текст СМС указан внизу каждого ответа.

    Полный список номеров »

    * Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи. (полный список тарифов)
    ** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
    *** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.


    © 2001-2010, Портал RFPRO.RU, Россия
    Авторское право: ООО "Мастер-Эксперт Про"
    Автор: Калашников О.А. | Программирование: Гладенюк А.Г.
    Хостинг: Компания "Московский хостер"
    Версия системы: 2010.6.24 от 30.11.2010

    В избранное