微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 基于ATMEGA8515的SPI驱动ST7565P液晶屏的程序

基于ATMEGA8515的SPI驱动ST7565P液晶屏的程序

时间:11-22 来源:互联网 点击:

LCD_SPISend(COMMAND,0xA0); //设置SEG 输出方向

LCD_SPISend(COMMAND,0xC8); //设置公共端输出扫描方向

LCD_SPISend(COMMAND,0x25); //调整 (1 + Rb/Ra) ratio 值,调整此值影响很大

LCD_SPISend(COMMAND,0x81); //开始设置α的命令

LCD_SPISend(COMMAND,0x28); //设置α的值,值越大对比度越强,调整此值影响不太,是微调的

DelayMs(5);

LCD_SPISend(COMMAND,0x2F); //开启相关电压

DelayMs(50);

LCD_SPISend(COMMAND,0xAF); //显示开

LCD_SPISend(COMMAND,0xF8);

LCD_SPISend(COMMAND,0x01); //此两条命令是设置升压比的

DelayMs(500); //不知此延时可否省去,不过了安全起见,初次调试保留为好。。

}

////////////////////////////////////////

//清屏函数

//入口:无

//返回值:无

///////////////////////////////////////

void Clear_Display(void)

{

unsigned char i;

unsigned char j;

for(i=0;i<8;i++)

{

LCD_XYSet(0,i);

for(j=0;j<128;j++)

{

LCD_SPISend(DATA,0); //传输数据

}

}

}

////////////////////////////////

//显示一首李商隐的诗歌:

//  君问归期未有期

//  巴山夜雨涨秋池

//  何当共剪西窗烛

//  却话巴山夜雨时

//入口:无

//返回值:无

////////////////////////////////

void Gushi_Display(void)

{

unsigned char i;

unsigned char j;

for(i=0;i<8;i++)

{

LCD_XYSet(8,i);

for(j=0;j<112;j++)

{

LCD_SPISend(DATA,__LPM(&gushi[i][j]));

}

}

}

int main(void)

{

DDRB = 0xFF; //将IO口配置为输出

PORTB = 0xFF; //让IO口都输出高电平

DDRC = 0xFF; //配置为输出

PORTC = 0xFF; //输出高电平

DelayMs(1);

LCD_Init(); //初始化的函数

Clear_Display(); //清屏函数

Gushi_Display();

while(1)

{

}

}

编译结果如下:

AVR Memory Usage

----------------

Device: atmega8515

Program: 1688 bytes (20.6% Full)

(.text + .data + .bootloader)

Data: 0 bytes (0.0% Full)

(.data + .bss + .noinit)

Build succeeded with 0 Warnings...

显示效果如下:


Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top