реклама на сайте
подробности

 
 
> MAX7219 (помогите разобраться пжл)
Lotor
сообщение Jul 3 2007, 20:00
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 476
Регистрация: 3-07-07
Из: Санкт-Петербург
Пользователь №: 28 866



Люди! Помогите понять, почему не получается управлять семисегментниками через AD7219... Или хотя бы дайте примеры кодов (алгоритмов) работы с ней. Симулирую схему в Proteus'е. Вот например кусок кода, где включается тестовый режим, при котором должны светиться все разряды, но этого нет:
Цитата
DIN EQU P2.5
LOAD EQU P2.6
CLK EQU P2.7
MAX_ADR EQU R5
MAX_DATA EQU R6
ORG 0h
LJMP START
ORG 100H

START:
MOV P2,#0FFh
MOV MAX_ADR, #0fH ; адрес тестового регистра
MOV MAX_DATA, #01H
SETB LOAD
CLR CLK
MOV A, #10h ; счетчик посылки 16 бит
CLR LOAD
LOOP:
PUSH ACC ; сохраняем счетчик посылки
MOV a,MAX_DATA
RLC A
MOV a,MAX_ADR
RLC A
MOV DIN, C
SETB CLK ; строб
CLR CLK
POP acc
DJNZ ACC, LOOP
SETB LOAD
END

Скажите пожалуйста, я дурак или Proteus?...


--------------------
Ковырял чукча отверткой в ухе, звук в телевизоре и пропал.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 2)
Omen_13
сообщение Jul 3 2007, 20:20
Сообщение #2


Силовик-затейник
****

Группа: Модераторы
Сообщений: 766
Регистрация: 18-02-07
Из: Столица солнечного Башкортостана
Пользователь №: 25 467



1. Инициализацию сделал? Если нет то не удивляйся - работать не будет
2. Вот код в АСМе, будут вопросы пиши

Код
;таблица кодов для инициализации режима работы MAX7219
TDisplInit:
; адрес,данные  
    DB  0Fh,00h;ТЕСТ ИНДИКАТОРОВ ВЫКЛЮЧЕН
    DB  0Ch,01h;нормальная работа
    DB  0Bh,07h;все индикаторы включены
    DB  09h,00h;дешифраторы выключены
    DB  0Ah,0Fh;яркость максимальная


InitMax7219:;инициализация MAX7219
    MOV    R3,#05h
    MOV    R0,#00h    
    MOV    DPTR,#TDisplInit;таблица инициализации MAX7219
LInitMax7219:
    MOV    A,R0
    INC    R0
    MOVC    A,@a+DPTR;адрес
    ANL    P0,#0F0h;выбор MAX7219
    MOV    R2,#08h;запись в счетчик циклов
    CALL    WriteMax7219
    MOV    A,R0
    INC    R0
    MOVC    A,@a+DPTR;значение
    MOV    R2,#08h;запись в счетчик циклов
    CALL    WriteMax7219
    ORL    P0,#08h;отключение MAX7219
    DJNZ    R3,LInitMax7219
    RET


Out_Max7219:
    MOV    R0,#RAM_out;адрес ОЗУ первой ячейки на запись в МАХ7219
    MOV    R1,#00h
    MOV    R3,#08h;запись в счетчик циклов
    MOV    DPTR,#TDisplAdr;адреса соответсвий RAM_out регистрам МАХ7219
LDisplLine8:
    MOV    A,R1    
    MOVC    A,@a+DPTR;адрес регистра

    ANL    P0,#0F0h;выбор MAX7219 - установил все линии в "0"
    MOV    R2,#08h;запись в счетчик циклов
    CALL    WriteMax7219

    MOV    A,@R0;содержимое выводимой ячейки
    MOV    R2,#08h;запись в счетчик циклов
    CALL    WriteMax7219
    SETB    LOAD_MAX;отключение MAX7219

    INC    R0;переход к следующей ячейке
    INC    R1;переход к следующему адресу
    DJNZ    R3,LDisplLine8
    RET;Вы будете смеяться но это все !!!


WriteMax7219:;запись по внутренней последовательной шине
; a записываемый байт
; R2 счетчик
    CLR    C
LWMax7219:
    RLC    A;выделяем бит данных
    MOV    DIN_MAX,C;если бит равен 1 он установит D1, если равен 0 сбросит
    NOP
    NOP
    SETB    SCLK_MAX;формирование фронта D0
    NOP
    CLR    SCLK_MAX;формирование спада D0
    DJNZ    R2,LWMax7219
    RET


--------------------
"Вперёд на мины, ордена потом!"
"инжинер/разработчик создает нечто, в отличии от многих других профессий. В этом есть сходность с художниками или музыкантами"(с)CodeWarrior1241
Go to the top of the page
 
+Quote Post
Lotor
сообщение Jul 4 2007, 18:12
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 476
Регистрация: 3-07-07
Из: Санкт-Петербург
Пользователь №: 28 866



Инициализацию-то и не сделал... Огромное спасибо! Особенно за код - в ассемблере для x51 опыта практически нет. Теперь Proteus симулирует нормально, а мне обеспечен здоровый сон)


--------------------
Ковырял чукча отверткой в ухе, звук в телевизоре и пропал.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 28th July 2025 - 19:52
Рейтинг@Mail.ru


Страница сгенерированна за 0.01385 секунд с 7
ELECTRONIX ©2004-2016