PIC LCD1602显示

2019-04-15 14:26发布

#include       //调用头文件,可以去PICC18软件下去查找PIC18FXX2.H __CONFIG(1,XT) ;         //晶振为外部4M __CONFIG(2,WDTDIS) ;     //看门狗关闭 __CONFIG(4,LVPDIS) ;     //禁止低电压编程 #define uint unsigned int #define uchar unsigned char #define en RB3 #define rw RB4 #define rs RB5 #define D PORTD
void delayms(uint x) { int i,j; for(i=0;i<=110;i++) for(j=0;j<=x;j++); }
void write_com(uchar com) { rs=0; rw=0; delayms(5); en=1; delayms(5); D=com; en=0; delayms(5); }
void write_dat(uchar dat) { rs=1; rw=0; delayms(5); en=1; delayms(5); D=dat; en=0; delayms(5); }
void init() { write_com(0x38); write_com(0x0c); write_com(0x06); write_com(0x01); write_com(0x80+1); write_dat('I'); write_com(0x80+3); write_dat('a'); write_com(0x80+4); write_dat('m'); write_com(0x80+6); write_dat('I'); write_com(0x80+7); write_dat('r'); write_com(0x80+8); write_dat('o'); write_com(0x80+9); write_dat('n'); write_com(0x80+11); write_dat('m'); write_com(0x80+12); write_dat('a'); write_com(0x80+13); write_dat('n'); }
void main(void) { ADCON1=0X06;            //所有IO均为数字口,模拟量输入禁止   TRISB=0B11000111;   TRISD=0x00; init(); while(1) { } }


LCD1602使用的方法都是一样的,不管在51单片机,还是PIC,就简单带过
PS:有一点不一样,就是在51中,可以利用编译器在一个位置之后直接写入一连串字符,但是PIC不行,必须一个一个写入,并且一个一个标注好索要的显示位置