1335初始化的问题!!
关于1335f的驱动程序,一直点不亮。
硬件检查了没有问题,采用的是SM89156A的IO驱动方式驱动1335f。
主板和液晶屏的连接线大概25cm。
采用IO驱动方式,是不是可以不用管1335f的地址了?
/*
-------------------------------------------------------
I/O configure:
DB0-DB7-----------P0
A0------------------P2.4
RD-----------------P3.7
WR-----------------P3.6
CS-----------------P2.5
RST----------------P2.7
-------------------------------------------------------
*/
#include <reg51.h>
#define system_set 0x40
#define sleep_in 0x53
#define disp_on 0x59
#define disp_off 0x58
#define scroll 0x44
#define scrform 0x5d
#define cgram_adr 0x5c
#define csrdir_right 0x4c
#define csrdir_left 0x4d
#define csrdir_up 0x4e
#define csrdir_down 0x4f
#define hdot_scr 0x5a
#define ovlay 0x5b
#define csrw 0x46
#define csrr 0x47
#define mwrite 0x42
#define mread 0x43
#define databus P0
sbit a0 = P2^4; //a0 -------------> P2.4
sbit read = P3^7; //read -------------> P3.7
sbit write = P3^6; //write -------------> P3.6
sbit cs = P2^5; //cs -------------> P2.5
sbit rst = P2^7; //read -------------> P2.7
sbit P2_0 =P2^0 ;
unsigned char code system_set_ini[8] = {0x34,0x87,0x07,0x27,0x4a,0xf0,0x28,0x00};
unsigned char code scroll_ini1[6] = {0x00,0x00,0xef,0x60,0x09,0xf0};
unsigned char code scroll_ini2[6] = {0xb0,0x04,0x1e,0x60,0x09,0xf0};
unsigned char code scrform_ini[2] = {0x07,0x86};
unsigned char code hdot_scr_ini[2] = {0x00,0x0b};
unsigned char code ovlay_ini[1] = {0x01};
unsigned char code disp_on_ini[1] = {0x16};
unsigned char code disp_off_ini[1] = {0x00};
unsigned char code cur_set_ini[2] = {0x28,0x00};
unsigned char code cur_set_ini1[2] = {0x00,0x00};
unsigned char code cur_set_ini2[2] = {0xb8,0x04};
unsigned char code cur_set_ini3[2] = {0x60,0x09};
unsigned char code null[1] = {0x00};
unsigned char code fill[1]={0xff};
void delay(int t)
{
int i=0;
for(i=0;i <t;i++);
}
void long_delay(int t)
{
int i=0;
int n;
for(i=0;i <t;i++)
{
for(n=0;n <1000;n++);
}
}
void sed1335_write(char commandcode, unsigned char code *parameter,int n)
{
int i=0;
a0=1;
read=1;
databus=commandcode;
write=0;
write=1;
for(i=0;i <n;i++)
{
a0=0;
read=1;
databus=parameter[i];
write=0;
write=1;
}
}
void clr_scr()
{
int i=0;
sed1335_write(csrdir_right,null,1);
sed1335_write(csrw,cur_set_ini1,2);
a0=1;
read=1;
databus=mwrite;
write=0;
write=1;
for(i=0;i <28800;i++)
{
a0=0;
read=1;
databus=0x00;
write=0;
write=1;
}
sed1335_write(csrw,cur_set_ini1,2);
}
/*******************************************************************
* sed1335 initial *
********************************************************************/
void lcd_ini()
{
sed1335_write(system_set,system_set_ini,8);
sed1335_write(scroll,scroll_ini1,6);
sed1335_write(scrform,scrform_ini,2);
sed1335_write(hdot_scr,hdot_scr_ini,2);
sed1335_write(ovlay,ovlay_ini,1);
sed1335_write(csrw,cur_set_ini1,2);
sed1335_write(csrdir_right,null,1);
clr_scr();
sed1335_write(disp_on,disp_on_ini,1);
sed1335_write(csrw,cur_set_ini3,2);
//sed1335_write(mwrite,box,9600);
}
/***************************************************************
* main program *
****************************************************************/
void main()
{
int i=0;
int j=0;
int t=0;
int k;
long_delay(10);
rst=0;
long_delay(30);
rst=1;
long_delay(10);
cs=0;
lcd_ini();
clr_scr();
while(1)
{
for(k=0;k <40000;k++) ;
P2_0 = 0 ;
for(k=0;k <40000;k++) ;
P2_0 = 1 ;
sed1335_write(csrw,cur_set_ini3,2);
for(j=0;j <9600;j++)
{
sed1335_write(mwrite,fill,1);
}
long_delay(200);
}
}
发表时间:2006年3月21日14:46:28