完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
电路按照12864芯片资料上面接的,程序编译没有问题,用avr128单片机却没有出来显示,用proteus仿真时,12864屏是黑的,大神们怎么解决啊????????,多谢(下面是程序) #include #include #define uchar unsigned char #define uint unsigned int #define RS_CLR PORTF &= ~(1 << PF2) //RS置低 #define RS_SET PORTF |= (1 << PF2) //RS置高 #define RW_CLR PORTF &= ~(1 << PF1) //RW置低 #define RW_SET PORTF |= (1 << PF1) //RW置高 #define EN_CLR PORTF &= ~(1 << PF0) //E置低 #define EN_SET PORTF |= (1 << PF0) //E置高 #define PSB_CLR PORTE &= ~(1 << PE2) //PSB置低,串口方式 #define PSB_SET PORTE |= (1 << PE2) //PSB置高,并口方式 #define RST_CLR PORTF &= ~(1 << PF3) //RST置低 #define RST_SET PORTF |= (1 << PF3) //RST置高 #define LOW 0 #define HIGH 1 //初始化指令 #define CLEAR_SCREEN 0x01 //清屏指令:清屏且AC值为00H #define AC_INIT 0x02 //将AC设置为00H。且游标移到原点位置 #define CURSE_ADD 0x06 //设定游标移到方向及图像整体移动方向(默认游标右移,图像整体不动) #define FUN_MODE 0x30 //工作模式:8位基本指令集 #define DISPLAY_ON 0x0c //显示开,显示游标,且游标位置反白 #define DISPLAY_OFF 0x08 //显示关 #define CURSE_DIR 0x14 //游标向右移动:AC=AC+1 #define SET_CG_AC 0x40 //设置AC,范围为:00H~3FH #define SET_DD_AC 0x80 #define Data_IO PORTC //液晶数据口 #define Data_DDR DDRC //数据口方向寄存器 //************************************************************************* // 初始化子程序 //************************************************************************* void system_init() { Data_IO=0xFF; //电平设置 Data_DDR=0xFF; //方向输出 PORTF=0xFF; //电平设置 DDRF=0xFF; //方向输出 PORTE=0xFF; //PSB对应于PE2 DDRE=0xFF; PSB_SET; //液晶并口方式 RST_SET; //复位脚RST置高 } //************************************************************************* // 系统延时程序 //************************************************************************* void delay_ms(uint ms) { uint i,j; for(i=0;i } //*********************************************************************** // 显示屏命令写入函数 //*********************************************************************** void LCD_write_com(uchar com) { RS_CLR; RW_CLR; EN_SET; Data_IO = com; delay_ms(5); EN_CLR; } //*********************************************************************** // 显示屏数据写入函数 //*********************************************************************** void LCD_write_data(uchar data) { RS_SET; RW_CLR; EN_SET; Data_IO = data; delay_ms(5); EN_CLR; } //*********************************************************************** // 显示屏清空显示 //*********************************************************************** void LCD_clear() { LCD_write_com(0x01); delay_ms(5); } //*********************************************************************** //函数名称:DisplayCgrom(uchar hz)显示CGROM里的汉字 //入口参数:无 //返回参数:无 //*********************************************************************** void DisplayCgrom(uchar addr,uchar *hz) { LCD_write_com(addr); delay_ms(5); while(*hz != ' |