|
GCCAVR下的12864初始化,下载后12864无反应,请各位大侠帮忙指点
[复制链接]
#include
#include
#define Enable_0() (PORTC&=~_BV(PC2))
#define Enable_1() (PORTC|=_BV(PC2))
#define RW_0() (PORTC&=~_BV(PC1))
#define RW_1() (PORTC|=_BV(PC1))
#define Di_0() (PORTC&=~_BV(PC0))
#define Di_1() (PORTC|=_BV(PC0))
#define reset_0() (PORTC&=~_BV(PC5))
#define reset_1() (PORTC|=_BV(PC5))
#define Lcd_Bus PORTA //连接液晶的八位总线
//-----------------------液晶相关-------------------------------
#define Disp_On 0x3f //开显示控制字
#define Disp_Off 0x3e //关闭显示控制字
#define Col_Add 0x40 //列地址增加量
#define Page_Add 0xb8 //页地址增加量
#define Start_Line 0xc0 //行地址增加量
#define cs1_0() (PORTC&=~_BV(PC3))
#define cs1_1() (PORTC|=_BV(PC3))
#define cs2_0() (PORTC&=~_BV(PC4))
#define cs2_1() (PORTC|=_BV(PC4))
void init_port();
void write_com(unsigned char cmdcode);
void write_data(unsigned char Dispdata);
void Clr_Scr(void);
//void hz_disp16(unsigned char pag,unsigned char col, unsigned char *hzk);
//void e_disp16(unsigned char pag,unsigned char col, unsigned char *hzk);
void init_lcd(void);
void init_port()
{
DDRA=0xff;
DDRC=0XFF;
}
////////////////////////////////////////////// 液 晶 显 示 部 分 程 序 ///////////////////////////////////////////////////////
/*------------------写命令到LCD------------------------------*/
void write_com(unsigned char cmdcode)
{
Di_0();
RW_0();
Lcd_Bus=cmdcode;
Enable_1();
Enable_0();
}
/*-------------------写数据到LCD----------------------------*/
void write_data(unsigned char Dispdata)
{
Di_1();RW_0();
Lcd_Bus=Dispdata;_delay_us(0);
Enable_1();_delay_us(0);
Enable_0();
}
void Clr_Scr(void)
{
unsigned char j,k;
cs1_0();cs2_0();
write_com(Page_Add+0);
write_com(Col_Add+0);
for(k=0;k<8;k++)
{
write_com(Page_Add+k);
for(j=0;j<128;j++)
write_data(0xff);
_delay_us(100);
}
}
void init_lcd(void)
{ reset_0();
_delay_us(1);
reset_1();
_delay_us(1);
cs1_1();cs2_1();_delay_us(1);
write_com(Disp_Off);
write_com(Page_Add+0);
write_com(Start_Line+0);
write_com(Col_Add+0);
write_com(Disp_On);
}
/*void delay(unsigned int t)
{
unsigned int i,j;
for(i=0;i
for(j=0;j<5;j++);
}*/
void main(void)
{
init_port();
init_lcd();
while(1)
{
Clr_Scr();
}
}
|
|