当前位置: 代码迷 >> 单片机 >> 12864无显示解决方法
  详细解决方案

12864无显示解决方法

热度:187   发布时间:2016-04-28 16:29:25.0
12864无显示
#include <reg52.h>
#include <intrins.h>
#define uint unsigned int 
#define uchar unsigned char 
#define LCD_data P0 //数据口
#define delayNOP(); {_nop_();_nop_();_nop_();_nop_();};
 
sbit d0=P1^0;
sbit wela=P2^7;
sbit dula=P2^6;
sbit LCD_RS = P3^5; //寄存器选择输入 
sbit LCD_RW = P3^6; //液晶读/写控制
sbit LCD_EN = P3^4; //液晶使能控制
sbit LCD_PSB = P3^7; //串/并方式控制
sbit led = P2^5;
sbit zs12864 = P3^1;

uchar AsciiArray[]={"0123456"};

void delay0(uchar x); //x*0.14MS
void lcd_pos(uchar X,uchar Y); //确定显示位置

/*******************************************************************/
/* */
/* 延时函数 */
/* */
/*******************************************************************/
void delay(int ms)
{
  while(ms--)
{
  uchar i;
for(i=0;i<250;i++)  
{
_nop_();  
_nop_();
_nop_();
_nop_();
}
}
}
/*******************************************************************/
/* */
/*检查LCD忙状态 */
/*lcd_busy为1时,忙,等待。lcd-busy为0时,闲,可写指令与数据。 */
/* */
/*******************************************************************/
bit lcd_busy()
 {  
  bit result;
  LCD_RS = 0;
  LCD_RW = 1;
  LCD_EN = 1;
  delayNOP();
  result = (bit)(P2&0x80);
  LCD_EN = 0;
  return(result); 
 }
/*******************************************************************/
/* */
/*写指令数据到LCD */
/*RS=L,RW=L,E=高脉冲,D0-D7=指令码。 */
/* */
/*******************************************************************/
void lcd_wcmd(uchar cmd)
{  
  while(lcd_busy());
  LCD_RS = 0;
  LCD_RW = 0;
  LCD_EN = 0;
  _nop_();
  _nop_(); 
  P0 = cmd;
  delayNOP();
  LCD_EN = 1;
  delayNOP();
  LCD_EN = 0;  
}
/*******************************************************************/
/* */
/*写显示数据到LCD */
/*RS=H,RW=L,E=高脉冲,D0-D7=数据。 */
/* */
/*******************************************************************/
void lcd_wdat(uchar dat)
{  
  while(lcd_busy());
  LCD_RS = 1;
  LCD_RW = 0;
  LCD_EN = 0;
  P0 = dat;
  delayNOP();
  LCD_EN = 1;
  delayNOP();
  LCD_EN = 0; 
}
/*******************************************************************/
/* */
/* LCD初始化设定 */
/* */
/*******************************************************************/
void lcd_init()


  LCD_PSB = 1; //并口方式
  相关解决方案