实用标准文案
__CONFIG(0x3B31); void init();
void write_commond(uchar dat);//写指令函数 void write_data(uchar dat);//写数据函数
void disp_char(uchar x,uchar y,uchar dat);//在屏幕某个位置显示一个字符,x(0-16),y(1-2) void delay(uint x); void delay(uint x) { uint a,b;
for(a=x;a>0;a--)
for(b=110;b>0;b--); }
void init()//初始化指令 {
write_commond(0x01);//0000000001,清除屏幕显示 write_commond(0x28);//设置4位格式,2行,5X7,功能设定 write_commond(0x0C);//0000001100,开显示,无光标,不闪烁
write_commond(0x06);//0000000110,置输入模式,光标右移,屏幕上的文字不
移动 向
write_commond(0x80);//0001000100,设定CGRAM地址显示屏或光标移动方
文档
实用标准文案
}
void write_commond(uchar dat) {
rs=0;//指令 DB=dat; e=1;//允许 delay(5);
e=0; DB=DB<<4; delay(5); e=1; delay(5); e=0; }
void write_data(uchar dat) {
rs=1;//数据 DB=dat; e=1;//允许 delay(5);
e=0; delay(5);
文档
实用标准文案
}
DB=DB<<4; e=1; delay(5); e=0;
void disp_char(uchar x,uchar y,uchar dat) {
uchar address; if(y==1)
address=0x80+x; else
address=0xc0+x;
write_commond(address);
write_data(dat); }
void main() {
TRISD=0X00; PORTD=0X00; PORTB=0X00; TRISB=0X00; delay(5);
文档
实用标准文案
}
init();
disp_char(0,1,'A'); while(1);
也可以是如下:
void disp_char(uchar x,uchar y,uchar dat) {
uchar i;
write_commond(0x80+x); if(i=0;i<16;i++)
{
write_data('A'); delay(5); } }
文档