| Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
Подключение LCD Nokia 3310
24.09.2007, 21:25
|
|
|
Частый гость
Регистрация: 07.06.2005
Сообщений: 12
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Подключение LCD Nokia 3310
Пытаюсь подключить LCD Nokia 3310 к PIC16F628A. Написал простенькую тестовую прошивку. Но экран не работает. Что не так. Как проверить работоспособность LCD. Код на С ниже. Все на основе рабочих библиотек.
|
Код:
|
// Вывод на LCD Nokia 3310.
// Используется PIC16F628A
//-------------------------------------------------------------------------
#include "pic.h"
#include "delay.h"
//#include "delay.c"
__CONFIG(0x3f09);
#define XTAL_FREQ 4MHZ /* Crystal frequency in MHz */
#define nok_sclk RB4 // nokia lcd sclk
#define nok_sda RB3 // nokia lcd sda
#define nok_dc RB2 // nokia lcd d/c
#define nok_cs RB1 // nokia lcd cs
#define nok_res RB0 // nokia lcd res
//--------------------------------------------------------------------------
signed char c;
unsigned char bytefornokia;
//---------------------------------------------------------------------------
void init(void);
void nokia_write_command(void);
void nokia_write_dorc(void);
void nokia_write_data(void);
void nokia_gotoxy(unsigned char xnokia, unsigned char ynokia);
//--------------------------------------------------------------------------
void main(void)
{
init();
bytefornokia=0xFF;
nokia_write_data();
bytefornokia=0xFF;
nokia_write_data();
bytefornokia=0xFF;
nokia_write_data();
bytefornokia=0xFF;
nokia_write_data();
bytefornokia=0xFF;
nokia_write_data();
//nokia_clean_ddram();
for(;;);
}
//---------------------------------------------------------------------------------------
void init(void)
{
CMCON = 0x07;
TRISB = 0x00;
PORTB = 0x00;
nok_res=1;
nok_dc=1;
nok_cs=1;
nok_res=0;
DelayMs(100);
nok_res=1;
bytefornokia=0x21;
nokia_write_command();
bytefornokia=0x13;
nokia_write_command();
bytefornokia=0xC8;
nokia_write_command();
bytefornokia=0x20;
nokia_write_command();
bytefornokia=0x0C;
nokia_write_command();
nokia_gotoxy(0,0);
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void nokia_write_command(void)
{
nok_dc=0; // передача команды в регистр
nok_cs=0; // включение контроллера
nokia_write_dorc();
nok_cs=1; // отключение контроллера
}
/////////////////////////////////////////////////////////////////////////////////
void nokia_write_data(void)
{
nok_dc=1; // передача данных в диплей
nok_cs=0; // chip enabled
nokia_write_dorc();
nok_cs=1; // chip disabled
}
//////////////////////////////////////////////////////////////////////////////////
void nokia_write_dorc(void) // serial write data or command subroutine
{
for (c=8;c›0;c--) {
nok_sclk=0;
if ((bytefornokia&0x80)==0){
nok_sda=0;
}
else {
nok_sda=1;
}
nok_sclk=1;
bytefornokia=bytefornokia‹‹1;
}
}
//////////////////////////////////////////////////////////////////////////////////
void nokia_gotoxy (unsigned char xnokia, unsigned char ynokia) // Nokia LCD Position cursor
{
bytefornokia=(0x40|(ynokia&0x07)); // Y axe initialisation: 0100 0yyy
nokia_write_command();
bytefornokia=(0x80|(xnokia&0x7f)); // X axe initialisation: 1xxx xxxx
nokia_write_command();
} |
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 12:59.
|
|