Меню

 

Форум

nicks
31 октября 2007 16:02

Id сообщения: 6713
MT12232A-2FLB
Здравствуйте.
Немогу ничего вывести.
до этого дело имел с MT-12864J-2FLB

вот исходник
#include <stdio.h>
#include "AT91sam7s64.h"

#ifndef BIT
#define BIT(n) (1 << (n))
#endif

#define SET_BITS(ADDRESS,BITS) (ADDRESS |= ((unsigned int)BITS))
#define CLEAR_BITS(ADDRESS,BITS) (ADDRESS &= ~(BITS))
#define CHECK_BITS(ADDRESS,BITS) (ADDRESS & (1<
#define SET_BIT(ADDRESS,BIT) (ADDRESS |= ((unsigned int)1<#define CLEAR_BIT(ADDRESS,BIT) (ADDRESS &= ~(1<#define CHECK_BIT(ADDRESS,BIT) (ADDRESS & (1<
#define LCD_IODATASET (AT91C_BASE_PIOA->PIO_SODR)// Set Output Data Register
#define LCD_IODATADIR (AT91C_BASE_PIOA->PIO_OER) // Output Enable Register
#define LCD_IODATACLR (AT91C_BASE_PIOA->PIO_CODR)// Clear Output Data Register

#define LCD_IOMGRSET (AT91C_BASE_PIOA->PIO_SODR)// Set Output Data Register
#define LCD_IOMGRDIR (AT91C_BASE_PIOA->PIO_OER) // Output Enable Register
#define LCD_IOMGRCLR (AT91C_BASE_PIOA->PIO_CODR)// Clear Output Data Register

#define LCD_A0 (unsigned int)8
#define LCD_RW (unsigned int)9
#define LCD_E (unsigned int)10
#define LCD_RES (unsigned int)11
#define LCD_CS (unsigned int)12

unsigned char Logo122[4][122]={
{ 0xFF,0x01,0x01,0x01,0x01,0xC1,0xE1,0xB1,0x11,0x1D,0x1D,0x7F,0x7F,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFD,0xFD,0xF9,0xB1,
0xF1,0xE1,0x81,0x01,0x01,0x01,0xC1,0xC1,0xC1,0xC1,0xC1,0xC1,0xC1,0xC1,0xC1,0xC1,
0xC1,0xC1,0xC1,0xC1,0xC1,0xC1,0xC1,0xC1,0xC1,0xC1,0xC1,0xC1,0xC1,0xC1,0xC1,0xC1,
0xC1,0xC1,0xC1,0xC1,0xC1,0xC1,0xC1,0xC1,0xC1,0xC1,0xC1,0xC1,0xC1,0xC1,0xC1,0xC1,
0xC1,0xC1,0xC1,0xC1,0xC1,0xC1,0xC1,0xC1,0xC1,0xC1,0xC1,0xC1,0xC1,0xC1,0xC1,0xC1,
0xC1,0xC1,0xC1,0xC1,0xC1,0xC1,0xC1,0xC1,0xC1,0xC1,0xC1,0xC1,0xC1,0xC1,0xC1,0xC1,
0xC1,0xC1,0xC1,0xC1,0xC1,0xC1,0xC1,0xC1,0xC1,0xFF
},
{ 0xFF,0xE0,0x7C,0x7F,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF8,0x6F,0x6F,0x07,
0x07,0x06,0x00,0x00,0x03,0x03,0x0F,0x3F,0x07,0x07,0x07,0x03,0x03,0x07,0x0F,0x3B,
0x13,0x80,0x80,0x23,0x9E,0xF8,0xF8,0xF8,0xFC,0xFE,0xFE,0xFE,0xFC,0x00,0x00,0x00,
0x80,0x80,0xE0,0xF8,0xFC,0xFE,0xFE,0xFE,0xFC,0x00,0x00,0x00,0x60,0xF0,0xF8,0xF8,
0x7C,0x3E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x3E,0x3E,0x7E,0xFC,0xF8,0xF0,0xE0,
0xC0,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xE0,0xF8,0xFC,0xFE,
0xFE,0xFE,0xFE,0xFC,0x00,0x1C,0x3E,0x3E,0x3E,0x3E,0x3E,0x3E,0x3E,0xFE,0xFE,0xFE,
0xFE,0xFE,0x3E,0x3E,0x3E,0x3E,0x3E,0x3E,0x1C,0xFF
},
{ 0xFF,0x07,0x7C,0xE0,0x80,0x00,0x1F,0x3F,0xFF,0xFF,0xFF,0xFF,0x0F,0x30,0x38,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,
0xE0,0xF0,0xFC,0xFF,0xFF,0x3F,0x0F,0x03,0xFF,0xFF,0xFF,0xFF,0xFF,0xF8,0xFE,0xFF,
0x7F,0x7F,0x1F,0x0F,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x18,0x3C,0x7E,0x7E,0x7E,0x7E,0x7E,0x7E,0x3C,0x3C,0x18,0x00,0x00,0x01,0xFF,
0xFF,0xFF,0xFF,0x00,0x00,0x80,0xE0,0xF0,0xFC,0xFE,0xFF,0x7F,0x1F,0x07,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,
0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF
},
{ 0xFF,0x80,0x80,0x80,0x80,0x83,0x86,0x8C,0x98,0xB0,0xB0,0xE0,0xC0,0xC0,0x80,0x80,
0x80,0x80,0x80,0x80,0x80,0x80,0xC0,0xC0,0xC0,0xC0,0xC0,0xE0,0xF8,0xFC,0xFF,0xFF,
0xBF,0x8F,0x87,0x81,0x80,0x80,0x80,0x80,0xFF,0xFF,0xFF,0xFF,0xFF,0x9F,0x83,0x80,
0x80,0x80,0x80,0x80,0xFF,0xFF,0xFF,0xFF,0xFF,0x80,0x80,0x80,0x86,0x8F,0x9F,0xBF,
0xFE,0xFC,0xF8,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF8,0xF8,0xFC,0xFE,0xBF,0x9F,0x8F,
0x87,0xE3,0xF9,0xFC,0xFF,0xFF,0xBF,0x9F,0x87,0x81,0x80,0x80,0x80,0x80,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0xFF,0xFF,0xFF,
0xFF,0xFF,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0xFF
}
};
delay_ms(unsigned int i)
{
int f;
for(f=0;f}
void WriteByte(unsigned int b, unsigned char cd, unsigned char lr)
{
///LCD.RW=0; LCD.A0=cd;
SET_BIT(LCD_IOMGRCLR,LCD_RW);
if(cd)
SET_BIT(LCD_IOMGRSET,LCD_A0);
else
SET_BIT(LCD_IOMGRCLR,LCD_A0);
//LCD.CS=lr; LCD.D=b;
if(lr)
SET_BIT(LCD_IOMGRSET,LCD_CS);
else
SET_BIT(LCD_IOMGRCLR,LCD_CS);

SET_BITS(LCD_IODATACLR,(BIT(0)|BIT(1)|BIT(2)|BIT(3)|BIT(4)|BIT(5)|BIT(6)|BIT(7)));
SET_BITS(LCD_IODATASET,b);
//Delay(>40ns);
delay_ms(40);
//LCD.E=0; Delay(>160ns);
SET_BIT(LCD_IOMGRCLR,LCD_E);
delay_ms(160);
//LCD.E=1;
SET_BIT(LCD_IOMGRSET,LCD_E);
//Delay(>(2000ns-40ns-160ns));
delay_ms(1000);

}
void WriteCodeL(unsigned int b) { WriteByte(b,0,1); }
void WriteCodeR(unsigned int b) { WriteByte(b,0,0); }
void WriteDataL(unsigned int b) { WriteByte(b,1,1); }
void WriteDataR(unsigned int b) { WriteByte(b,1,0); }

void LCDinit(void)
{
SET_BITS(LCD_IODATACLR,0xFFFFFFFF);
SET_BITS(LCD_IODATADIR,BIT(0)|BIT(1)|BIT(2)|BIT(3)|BIT(4)|BIT(5)|BIT(6)|BIT(7));
SET_BITS(LCD_IOMGRDIR,(BIT(LCD_A0)|BIT(LCD_RW)|BIT(LCD_E)|BIT(LCD_RES)|BIT(LCD_CS)));
//LCD.E=1;
delay_ms(20000);
SET_BIT(LCD_IOMGRSET,LCD_E);
//LCD.RES=0;
SET_BIT(LCD_IOMGRSET,LCD_RES);
//Delay(>10us);
delay_ms(20000);
//LCD.RES=1;
//Delay(>1ms);
SET_BIT(LCD_IOMGRCLR,LCD_RES);
delay_ms(1000);
WriteCodeL(0xE2);
WriteCodeR(0xE2);
WriteCodeL(0xEE);
WriteCodeR(0xEE);
WriteCodeL(0xA4);
WriteCodeR(0xA4);
WriteCodeL(0xA9);
WriteCodeR(0xA9);
WriteCodeL(0xC0);
WriteCodeR(0xC0);
WriteCodeL(0xA1);
WriteCodeR(0xA0);

WriteCodeL(0xAF);
WriteCodeR(0xAF);
}

void main(void)
{
int i=0;
unsigned char p=0;
unsigned char c=0;
LCDinit();
for(p=0; p<4; p++)
{
WriteCodeL(p|0xB8);
WriteCodeL(0x13);
for(c=0; c<61; c++)
{
WriteDataL(Logo122[p][c]);
}
WriteCodeR(p|0xB8);
WriteCodeR(0x00);
for(c=61; c<122; c++)
{
WriteDataR(Logo122[p][c]);
}
}
}
nicks
31 октября 2007 16:08

Id сообщения: 6714

Пардон вот исправленый всеровно неработает
#include <stdio.h>
#include "AT91sam7s64.h"

#ifndef BIT
#define BIT(n) (1 << (n))
#endif

#define SET_BITS(ADDRESS,BITS) (ADDRESS |= ((unsigned int)BITS))
#define CLEAR_BITS(ADDRESS,BITS) (ADDRESS &= ~(BITS))
#define CHECK_BITS(ADDRESS,BITS) (ADDRESS & (1<
#define SET_BIT(ADDRESS,BIT) (ADDRESS |= ((unsigned int)1<#define CLEAR_BIT(ADDRESS,BIT) (ADDRESS &= ~(1<#define CHECK_BIT(ADDRESS,BIT) (ADDRESS & (1<
#define LCD_IODATASET (AT91C_BASE_PIOA->PIO_SODR)// Set Output Data Register
#define LCD_IODATADIR (AT91C_BASE_PIOA->PIO_OER) // Output Enable Register
#define LCD_IODATACLR (AT91C_BASE_PIOA->PIO_CODR)// Clear Output Data Register

#define LCD_IOMGRSET (AT91C_BASE_PIOA->PIO_SODR)// Set Output Data Register
#define LCD_IOMGRDIR (AT91C_BASE_PIOA->PIO_OER) // Output Enable Register
#define LCD_IOMGRCLR (AT91C_BASE_PIOA->PIO_CODR)// Clear Output Data Register

#define LCD_A0 (unsigned int)8
#define LCD_RW (unsigned int)9
#define LCD_E (unsigned int)10
#define LCD_RES (unsigned int)11
#define LCD_CS (unsigned int)12

unsigned char Logo122[4][122]={
{ 0xFF,0x01,0x01,0x01,0x01,0xC1,0xE1,0xB1,0x11,0x1D,0x1D,0x7F,0x7F,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFD,0xFD,0xF9,0xB1,
0xF1,0xE1,0x81,0x01,0x01,0x01,0xC1,0xC1,0xC1,0xC1,0xC1,0xC1,0xC1,0xC1,0xC1,0xC1,
0xC1,0xC1,0xC1,0xC1,0xC1,0xC1,0xC1,0xC1,0xC1,0xC1,0xC1,0xC1,0xC1,0xC1,0xC1,0xC1,
0xC1,0xC1,0xC1,0xC1,0xC1,0xC1,0xC1,0xC1,0xC1,0xC1,0xC1,0xC1,0xC1,0xC1,0xC1,0xC1,
0xC1,0xC1,0xC1,0xC1,0xC1,0xC1,0xC1,0xC1,0xC1,0xC1,0xC1,0xC1,0xC1,0xC1,0xC1,0xC1,
0xC1,0xC1,0xC1,0xC1,0xC1,0xC1,0xC1,0xC1,0xC1,0xC1,0xC1,0xC1,0xC1,0xC1,0xC1,0xC1,
0xC1,0xC1,0xC1,0xC1,0xC1,0xC1,0xC1,0xC1,0xC1,0xFF
},
{ 0xFF,0xE0,0x7C,0x7F,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF8,0x6F,0x6F,0x07,
0x07,0x06,0x00,0x00,0x03,0x03,0x0F,0x3F,0x07,0x07,0x07,0x03,0x03,0x07,0x0F,0x3B,
0x13,0x80,0x80,0x23,0x9E,0xF8,0xF8,0xF8,0xFC,0xFE,0xFE,0xFE,0xFC,0x00,0x00,0x00,
0x80,0x80,0xE0,0xF8,0xFC,0xFE,0xFE,0xFE,0xFC,0x00,0x00,0x00,0x60,0xF0,0xF8,0xF8,
0x7C,0x3E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x3E,0x3E,0x7E,0xFC,0xF8,0xF0,0xE0,
0xC0,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xE0,0xF8,0xFC,0xFE,
0xFE,0xFE,0xFE,0xFC,0x00,0x1C,0x3E,0x3E,0x3E,0x3E,0x3E,0x3E,0x3E,0xFE,0xFE,0xFE,
0xFE,0xFE,0x3E,0x3E,0x3E,0x3E,0x3E,0x3E,0x1C,0xFF
},
{ 0xFF,0x07,0x7C,0xE0,0x80,0x00,0x1F,0x3F,0xFF,0xFF,0xFF,0xFF,0x0F,0x30,0x38,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,
0xE0,0xF0,0xFC,0xFF,0xFF,0x3F,0x0F,0x03,0xFF,0xFF,0xFF,0xFF,0xFF,0xF8,0xFE,0xFF,
0x7F,0x7F,0x1F,0x0F,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x18,0x3C,0x7E,0x7E,0x7E,0x7E,0x7E,0x7E,0x3C,0x3C,0x18,0x00,0x00,0x01,0xFF,
0xFF,0xFF,0xFF,0x00,0x00,0x80,0xE0,0xF0,0xFC,0xFE,0xFF,0x7F,0x1F,0x07,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,
0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF
},
{ 0xFF,0x80,0x80,0x80,0x80,0x83,0x86,0x8C,0x98,0xB0,0xB0,0xE0,0xC0,0xC0,0x80,0x80,
0x80,0x80,0x80,0x80,0x80,0x80,0xC0,0xC0,0xC0,0xC0,0xC0,0xE0,0xF8,0xFC,0xFF,0xFF,
0xBF,0x8F,0x87,0x81,0x80,0x80,0x80,0x80,0xFF,0xFF,0xFF,0xFF,0xFF,0x9F,0x83,0x80,
0x80,0x80,0x80,0x80,0xFF,0xFF,0xFF,0xFF,0xFF,0x80,0x80,0x80,0x86,0x8F,0x9F,0xBF,
0xFE,0xFC,0xF8,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF8,0xF8,0xFC,0xFE,0xBF,0x9F,0x8F,
0x87,0xE3,0xF9,0xFC,0xFF,0xFF,0xBF,0x9F,0x87,0x81,0x80,0x80,0x80,0x80,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0xFF,0xFF,0xFF,
0xFF,0xFF,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0xFF
}
};
delay_ms(unsigned int i)
{
int f;
for(f=0;f}
void WriteByte(unsigned char b, unsigned char cd, unsigned char lr)
{
///LCD.RW=0; LCD.A0=cd;
SET_BIT(LCD_IOMGRCLR,LCD_RW);
if(cd)
SET_BIT(LCD_IOMGRSET,LCD_A0);
else
SET_BIT(LCD_IOMGRCLR,LCD_A0);
//LCD.CS=lr; LCD.D=b;
if(lr)
SET_BIT(LCD_IOMGRSET,LCD_CS);
else
SET_BIT(LCD_IOMGRCLR,LCD_CS);

SET_BITS(LCD_IODATACLR,(BIT(0)|BIT(1)|BIT(2)|BIT(3)|BIT(4)|BIT(5)|BIT(6)|BIT(7)));
SET_BITS(LCD_IODATASET,b);
//Delay(>40ns);
delay_ms(40);
//LCD.E=0; Delay(>160ns);
SET_BIT(LCD_IOMGRCLR,LCD_E);
delay_ms(160);
//LCD.E=1;
SET_BIT(LCD_IOMGRSET,LCD_E);
//Delay(>(2000ns-40ns-160ns));
delay_ms(1000);

}
void WriteCodeL(unsigned char b) { WriteByte(b,0,1); }
void WriteCodeR(unsigned char b) { WriteByte(b,0,0); }
void WriteDataL(unsigned char b) { WriteByte(b,1,1); }
void WriteDataR(unsigned char b) { WriteByte(b,1,0); }

void LCDinit(void)
{
SET_BITS(LCD_IODATACLR,0xFFFFFFFF);
SET_BITS(LCD_IODATADIR,BIT(0)|BIT(1)|BIT(2)|BIT(3)|BIT(4)|BIT(5)|BIT(6)|BIT(7));
SET_BITS(LCD_IOMGRDIR,(BIT(LCD_A0)|BIT(LCD_RW)|BIT(LCD_E)|BIT(LCD_RES)|BIT(LCD_CS)));
//LCD.E=1;
delay_ms(20000);
SET_BIT(LCD_IOMGRSET,LCD_E);
delay_ms(20000);
//LCD.RES=0;
SET_BIT(LCD_IOMGRCLR,LCD_RES);
//Delay(>10us);
delay_ms(20000);
//LCD.RES=1;
//Delay(>1ms);
SET_BIT(LCD_IOMGRSET,LCD_RES);
delay_ms(1000);
WriteCodeL(0xE2);
WriteCodeR(0xE2);
WriteCodeL(0xEE);
WriteCodeR(0xEE);
WriteCodeL(0xA4);
WriteCodeR(0xA4);
WriteCodeL(0xA9);
WriteCodeR(0xA9);
WriteCodeL(0xC0);
WriteCodeR(0xC0);
WriteCodeL(0xA1);
WriteCodeR(0xA0);
WriteCodeL(0xAF);
WriteCodeR(0xAF);
}

void main(void)
{
int i=0;
unsigned char p=0;
unsigned char c=0;
LCDinit();
for(p=0; p<4; p++)
{
WriteCodeL(p|0xB8);
WriteCodeL(0x13);
for(c=0; c<61; c++)
{
WriteDataL(Logo122[p][c]);
}
WriteCodeR(p|0xB8);
WriteCodeR(0x00);
for(c=61; c<122; c++)
{
WriteDataR(Logo122[p][c]);
}
}
}
nicks
31 октября 2007 18:30

Id сообщения: 6715

Все разрешилось.
Подал питание 5В (гудок).
Пол дня ковыряния попусту.

Уважаемые разработчики !
Расшифруйте аббревиатуры полностью.
Если трудно в pdf, то на странице в Интернете http://melt.com.ru/work/display/151
Или скажите что я не прав.

Индикаторы хорошие, но простые вещи упускаете.

Головин_Сергей
31 октября 2007 18:31

Id сообщения: 6716

К слову, написать правильно документацию - это очень непростая задача.
Кто бы нам помог :=)
Гость
31 октября 2007 19:44

Id сообщения: 6720

подскажите на 3.3 вольта в таком-же корпусе.
Головин_Сергей
01 ноября 2007 12:27

Id сообщения: 6749

Да, корпус тот же
Гость
05 ноября 2007 12:06

Id сообщения: 6901

Индекаторы мне очень нравятся.
плюсом было бы уменьшить неиспользуемую область.

Гость
20 ноября 2007 18:38

Id сообщения: 7636

Господа, практика показала что при пользовании дисплея мт-12232а-2ylg при питании от 5 вольт компьютера упокаивает его через год. Думаю необходимо подключить резистор. Но какой и куда? И как продлить им жизнь?


Код подтверждения:
Для зарегистрированых:
Логин
Пароль
Забыл пароль Регистрация Поиск


Телефоны офиса компании МЭЛТ:
тел: (495) 662-4414
e-mail: sales@melt.com.ru
ICQ: 221-319-648
Skype имя: melt-mos

Фактический адрес: 111024, Москва, Андроновское шоссе, д.26

Adress: 111024, Moscow, Andronovskoe highway, 26.

Адрес для корреспонденции: 109145, г. Москва, а/я 37, ООО "МЭЛТ".

Address for mail:  109145, Moscow, post box 37, MELT Ltd..

Продукция | Печатные платы | Сборочно-монтажные услуги | Документация | Цены | Новости | Контакты | Купить | Форум
создание - prorock web-soft