#include "config.h"
void delay(uchar i);
void init_12864(void);
void write_data(uchar data);
void write_comd(uchar comd);
void init_timer1(void);
void init_rb4(void);
void init_rb0(void);
void main()
{
init_12864();
write_data('1');
init_rb0();
while(1)
{
TRISD=0;
PORTD=0;
}
}
void delay(uchar i)
{
uchar j;
for(j=i;j>0;j--);
}
void init_12864(void)
{
delay(10000);
ADCON1=0X02;
TRISE&=0;
write_comd(0x0e);
delay(60);
write_comd(0x0e);
delay(60);
write_comd(0x01);
delay(60);
write_comd(0x06);
delay(60);
write_comd(0x80);
delay(60);
}
void write_data(uchar data)
{
uchar i;
cs_12864=1;
sid_12864=0;
sid_12864=1;
for(i=0;i<5;i++)
{
sclk_12864=0;
sclk_12864=1;
}
sclk_12864=0;
sid_12864=0;
sclk_12864=1;
sclk_12864=0;
sid_12864=1;
sclk_12864=1;
sclk_12864=0;
sid_12864=0;
sclk_12864=1;
for(i=0;i<4;i++)
{
sclk_12864=0;
if(data&0x80)
sid_12864=1;
else
sid_12864=0;
data=data<<1;
sclk_12864=1;
}
sid_12864=0;
for(i=0;i<4;i++)
{
sclk_12864=0;
sclk_12864=1;
}
for(i=0;i<4;i++)
{
sclk_12864=0;
if(data&0x80)
sid_12864=1;
else
sid_12864=0;
data=data<<1;
sclk_12864=1;
}
sid_12864=0;
for(i=0;i<4;i++)
{
sclk_12864=0;
sclk_12864=1;
}
sclk_12864=0;
sid_12864=1;
}
void write_comd(uchar comd)
{
uchar i;
cs_12864=1;
sid_12864=0;
sid_12864=1;
for(i=0;i<5;i++)
{
sclk_12864=0;
sclk_12864=1;
}
sclk_12864=0;
sid_12864=0;
sclk_12864=1;
sclk_12864=0;
sid_12864=0;
sclk_12864=1;
sclk_12864=0;
sid_12864=0;
sclk_12864=1;
for(i=0;i<4;i++)
{
sclk_12864=0;
if(comd&0x80)
sid_12864=1;
else
sid_12864=0;
comd=comd<<1;
sclk_12864=1;
}
sid_12864=0;
for(i=0;i<4;i++)
{
sclk_12864=0;
sclk_12864=1;
}
for(i=0;i<4;i++)
{
sclk_12864=0;
if(comd&0x80)
sid_12864=1;
else
sid_12864=0;
comd=comd<<1;
sclk_12864=1;
}
sid_12864=0;
for(i=0;i<4;i++)
{
sclk_12864=0;
sclk_12864=1;
}
sclk_12864=0;
sid_12864=1;
}
void interrupt cpu_interrupt(void)
{
if(INTF==1)
{
PORTD=0;
}
INTF=0;
}
void init_rb0(void)
{
GIE=0;
INTE=1;
INTEDG=1;
GIE=1;
}
PORTD接的是发光二极管,但是发光二极管不亮
12864用的是PORTE三个口,PORTE和PORTD无任何连接
12864正常显示,
但是主函数中加上
TRISD=0;
PORTD=0;
后就不显示了,而且二极管不亮
一周热门 更多>