📄 dm12864.c
字号:
#include "..\target\44b.h"
#define rs {rPDATC |= 0x020;}
#define nrs {rPDATC &= 0xffdf;}
#define rw {rPDATC |= 0x040;}
#define nrw {rPDATC &= 0xffbf;}
#define en {rPDATC |= 0x080;}
#define nen {rPDATC &= 0xff7f;}
#define comm 0
#define dat 1
void wr_lcd (unsigned char dat_comm,unsigned char content);
void chk_busy (void);
unsigned char tab1[]={
" EUE44B0 "
};
unsigned char tab2[]={
" WWW.31DSP.COM "
};
unsigned char tab3[]={
" WWW.EESEA.COM "
};
unsigned char tab4[]={
"联合推出"
};
/*------------------初始化-----------------*/
void init_lcd (void)
{
wr_lcd (comm,0x30); /*30---基本指令动作*/
wr_lcd (comm,0x01); /*清屏,地址指针指向00H*/
wr_lcd (comm,0x06); /*光标的移动方向*/
wr_lcd (comm,0x0c); /*开显示,关游标*/
}
/*---------------显示汉字或字符----------------*/
void chn_disp (unsigned char *chn)
{
unsigned char i,j;
wr_lcd(comm,0x30);
wr_lcd(comm,0x80);
for (i=0;i<16;i++)
wr_lcd(dat,chn[i]);
wr_lcd(comm,0x90);
for (i=0;i<16;i++)
wr_lcd(dat,tab2[i]);
wr_lcd(comm,0x88);
for (i=0;i<16;i++)
wr_lcd(dat,tab3[i]);
wr_lcd(comm,0x9a);
for (i=0;i<8;i++)
wr_lcd(dat,tab4[i]);
}
/*--------------清DDRAM------------------*/
void clrram (void)
{
wr_lcd (comm,0x30);
wr_lcd (comm,0x01);
}
/*---------------------------------------*/
void wr_lcd (unsigned char dat_comm,unsigned char content)
{
unsigned int i;
chk_busy ();
if(dat_comm)
{
rs; //data
nrw; //write
}
else
{
nrs; //command
nrw; //write
}
rPDATD=content; //output data or comm
en;
for(i=0;i<500;i++);
nen;
}
void chk_busy (void)
{
rPDATD=0xff;
nrs;
rw;
en;
rPCOND = 0x1555;
while(rPDATD&0x80);
rPCOND = 0x5555;
nen;
}
void change_port()
{
rPCONC &= 0xffff03ff; //
rPCONC |= 0xffff577f; //设置GPC 3 5 6 7为OUTPUT
rPCOND = 0x5555;
}
void DM12864_main(void)
{
change_port();
init_lcd ();
clrram();
chn_disp (tab1);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -