lexus.mephi
Oct 3 2006, 14:08
Мне нужно вывести на индикатор DV-16236-S1FBLY информацию с микроконтроллера Philips 80C51. Если кто встречался с данной задачей, помогите(даже пример с др индикатором и МК мне бы очень помог)!
Вы бы хоть почту свою оставили.
Лядин Олег
Oct 13 2006, 07:28
Эта прога для WH1602, написана под IAR для ADuC812
#include "ioADUC812.h"
void dalay (int time) // Процедура задержки
{
char k, l, p;
for (k=time; k!=0; k--)
{
l=0;
for (p=100; p!=0; p--)
{
l=l+1;
}
}
}
void SEND_COMAND (int comand) // Процедура передачи команды
{
P2=comand;
dalay(10);
P3=0x80; //это я дёргаю сигнал "Е" у индикатора "1"
dalay(10);
P3=0x00; //это я дёргаю сигнал "Е" у индикатора в "0"
dalay(10);
}
void SEND_DAT (int dat) // Процедура передачи данных
{
P2=dat;
dalay(10);
P3=0xa0; //это я дёргаю сигнал "Е" у индикатора "1" и одновременно //держу "RS", т.к. RS - указывает на то что я пишу данные //а не команду
dalay(10);
P3=0x20; //это я дёргаю сигнал "Е" у индикатора "1" и одновременно //держу "RS", т.к. RS - указывает на то что я пишу данные //а не команду
dalay(10);
}
int main( void ) // Главная программа
{
// int i=48;
for(;;)
{
SEND_COMAND(0x0C); // Отображение символов на экране
dalay(10);
SEND_COMAND(0x01); // Очистка экрана
dalay(15);
SEND_COMAND(0x84); // Координта первого символа
dalay(15);
SEND_DAT(0xA3); // Код символа
dalay(10);
SEND_DAT(0x65); // Код символа
dalay(10);
SEND_DAT(0xBA); // Код символа
dalay(10);
SEND_DAT(0x61); // Код символа
dalay(100);
}
}
Есть и программы под ASM.
Ты действительно, почту оставь, я тебе накидаю программ.
Лядин Олег
Oct 13 2006, 08:49
Есть и программы под ASM.
Ты действительно, почту оставь, я тебе накидаю программ.
lexus.mephi
Oct 15 2006, 14:31
Ой =) Вот почта: lexus27@mail.ru
Я уже тут кое-что написал и столкнулся с одной проблемкой.
Это вывод на индикацию десятичных цифр
.RSECT
ind0: .DS 1
ind1: .DS 1
ind2: .DS 1
ind3: .DS 1
ind4: .DS 1
dgt: .DB F3h, 60h, B5h, F4h, 66h, D6h, D7h, 70h, F7h, F6h, 8h
...
;Подготовка для вывода на индикацию
MOV DPTR, #dgt
MOV A, R3
MOVC A, @A+DPTR
MOV ind3, A
MOV A, R2
MOVC A, @A+DPTR
MOV ind2, A
MOV A, R1
MOVC A, @A+DPTR
MOV ind1, A
MOV A, R0
MOVC A, @A+DPTR
MOV ind0, A
MOV A, #10
MOVC A, @A+DPTR
MOV ind4, A
;Вывод на индикацию
MOV DPTR, #7FFFh
MOV A, #01h
MOVX @DPTR, A
MOV A, #90h
MOVX @DPTR, A
MOV DPTR, #7FFEh
MOV A, ind3
MOV @DPTR, A
MOV A, ind2
MOV @DPTR, A
MOV A, ind1
MOV @DPTR, A
MOV A, ind0
MOV @DPTR, A
MOV A, ind4
MOV @DPTR, A
...
--------------------------------------------------
Компилятор у меня не видит ни таблицу dgt, ни вспомогательные переменные ind0-4. Походу я их как-то по-кривому в памяти размещаю. А может в этом ассемблере нельзя подобную директиву использовать!?
Для lexus.mephi: отправил Вам по e-mail примеры реализации.