📄 main.c
字号:
/******************** 2011电子科技协会 ********************
;名称 :12864液晶屏
;作者 : 郑品洪
;日期 : 07/25/2011
;描述 : 利用12864显示相应的字符,由于12864并行方式和1602基本一致,在这里不作重复注释,请参考1602程序
;***********************************************************/
#include <stm8s105s4.h>
#define uchar unsigned char
#define uint unsigned int
uchar table0[]="广东工业大学";
uchar table1[]="电子科技协会";
uchar table2[]=" www.gdutelc.cn";
_Bool RS @PA_ODR:4;
_Bool RW @PA_ODR:5;
_Bool E @PA_ODR:6;
void write_com(uchar com);
void delay(uchar a)
{
uchar i;
for(a;a>0;a--)
for(i=0;i<250;i++);
}
void init_stm8(void)
{
PA_DDR=0x70;
PA_CR1=0x70;
PA_CR2=0x00;
PB_DDR=0xff;
PB_CR1=0xff;
PB_CR2=0x00;
}
void init_12864(void)
{
write_com(0x38);
write_com(0x0c);
write_com(0x06);
write_com(0x01);
write_com(0x80);
RW=0;
}
void write_com(uchar com)
{
RS=0;
E=0;
PB_ODR=com;
delay(2);
E=1;
E=0;
}
void write_data(uchar data)
{
RS=1;
E=0;
PB_ODR=data;
delay(2);
E=1;
E=0;
}
void display(uchar *s)
{
while(*s>0)
{
write_data(*s++);
delay(200);
}
}
void main()
{
uchar i;
init_stm8();
init_12864();
write_com(0x81); //12864和1602唯一的不同就是地址值 不一样 ,这里是第一行地址值
display(table0);
write_com(0x91); //第二行地址值
display(table1);
write_com(0x88); //第三行地址值
display(table2);
while(1);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -