基于ST7920控制的lcd对于显示汉字是非常的简单,果然不愧是国人设计的。对于内部自带字库的lcd,更是方便,仅用3线就可显示。
在本设计中使用LPC213X的21、22、23口为RS,RW,CS控制线。
主要的程序为:
1.定义端口:
#define CS (1<<21)
#define SID (1<<22)
#define SCLK (1<<23)
2.主要的define:
#define ADD_SET 0x34
#define MOVE 0x03
#define FUNC_SET 0x30
#define DISP_ON 0x0f
#define ENTRY_MODE 0x06
#define S_CMD 0xf8
#define S_DATA 0xfa
3.发送字节函数:
void send_byte(uint8 data)
{
uint8 i;
SCLK_L();
for(i=0;i<8;i++)
{
if(data&0x80)
SID_H();
else
SID_L();
SCLK_H();
delay(1000);
SCLK_L();
delay(1000);
data=data<<1;
}
delay(1000);
}
void send_cmd(uint8 cmd)
{
CS_H(); //cs=1
send_byte(S_CMD);
send_byte(cmd&0xf0);
send_byte(cmd<<4);
CS_L();
delay(10000);
}
void send_data(uint8 data)
{
CS_H();
send_byte(S_DATA);
send_byte(data&0xf0);
send_byte(data<<4);
CS_L();
delay(10000);
}
4.设置地址:
void set_position(uint8 row,uint8 col)
{
uint8 pos;
switch(row)
{
case 1:
pos=0x80+col-1;
break;
case 2:
pos=0x90+col-1;
break;
case 3:
pos=0x88+col-1;
break;
case 4:
pos=0x98+col-1;
break;
}
send_cmd(pos);
}
用户925035 2008-9-17 07:57
用户925035 2008-9-14 10:01
用户1079511 2008-9-14 09:44