Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.05.2019, 14:21   #1
Dager
Новичок
Джуниор
 
Регистрация: 25.05.2019
Сообщений: 1
По умолчанию Программирование светодиодной матрицы в mcu 8051

Программа должна выводить цифру 7 на матричном инидкаторе 8х8 при замыкании ключа 7 на матричной клавиатуре (на скрине обозначена стрелкой), а при замыкании другого ключа ничего выводиться не должно. Вместо этого семерка выводится, когда ключи вообще не замкнуты. Подскажите, пожалуйста, в чем проблема, несколько часов уже пытаюсь настроить
Код:
COLUMN         EQU 01     ;Начальный номер стобца матрицы
ROW         EQU 0     ;начальный номер ряда матрицы
TABL         EQU 50h ; адрес таблицы скан-кода символа
org 0 ;начало основной программы
    mov     a, #COLUMN
    mov     b, #ROW
    mov     dptr,#TABL
    mov     r0, #0     ;установка счетчика столбцов
    
m1:     call     led     ; вызов подпрограммы определения скан-кода
    mov     p2, a     ;подключения одного столбца
    mov     p1, b     ;и всех рядов матрицы
    call     loop     ;задержка на 2,5 мс (частота миганий 50 ГЦ)
     rl a         ;следующий столбец
    inc r0         ;икримент счетчика  столбцов
    orl p1, #0ffh     ;гашение текущего столбца
    cjne r0, #8, m1 ;продолжать до конца столбцов матрицы
    mov r0, #0     ;начинается
    mov r1, #0     ; следующий
    jmp m1         ; цикл
    
led:     push acc    ;
    mov a, r1    ;
    movc a, @A+DPTR    ; 
    mov b, a    ;
    inc r1             ;увелич r1 на 1
    pop acc        ;Извлекает знач из  стэк в аккум
    ret        ;retun
    
loop:     MOV R2, #01h
    MOV R3, #01h
    DJNZ R3, $
    DJNZ R2, $-5
    ret
org 50h
db 11111111b ; 0 
db 11111111b ; 1 
db 11111101b ; 2 
db 11111101b ; 3 
db 11111101b ; A 
db 11101101b ; 4 
db 10000001b ; 5 
db 11101111b ; 6 
db 11111111b ; b  
end
Изображения
Тип файла: png мк51.png (43.3 Кб, 111 просмотров)
Dager вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
программирование матрицы в Basic Мария Ильина Помощь студентам 2 24.09.2015 15:51
Программирование (Си): матрицы kotenkov_m Помощь студентам 0 15.06.2014 20:29
Матрицы и динамическое программирование. oleg61rus Помощь студентам 7 21.02.2011 15:33
Программирование на базе микроконтроллера Intel 8051 sers88 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 3 06.05.2010 12:57