请高手指点,该程序无法显示,谢谢! /**********FM12864-12L液晶**********/
#include <reg51.h>
#define uchar unsigned char #define uint unsigned int
#define datapa P0 //显示数据口 #define lcdbusy 0x80
sbit RS=P2^0; // sbit RW=P2^1; // sbit E=P2^2; // sbit PSB=P2^3; // sbit REST=P2^5; // sbit beef=P2^7; //
/**********************/ void Delayus(uint n) //N us延时函数 { uint i; for (i=0;i<n;i++); }
/**********************/ void Delaynus(uint i) //N us延时函数 { Delayus(40*i); }
/************延时1ms程序**********/ void Delayms(uchar ms) { uint i; i=1000*ms; while(i--); }
/************延时1s程序*************/ void Delays(uchar s) { uint t; t=s; while(t--) { Delayms(1000); } }
/**********************/ void wtcom(void) { RS=0; RW=1; E=1; Delaynus(30); while(datapa&lcdbusy); E=0; }
/***************************/ void Wcom(uchar temp) //写指令使能子程序
{ wtcom(); RS=0; RW=0; datapa=temp; E=1; Delaynus(30); E=0; }
/***************************/
void Wdata(uchar temp) //写数据使能子程序 { wtcom(); RS=1; RW=0; datapa=temp; E=1; Delaynus(30); E=0; }
/***************************/ LCDinit() //LCD 初始化设置 { Wcom(0x30); Delayms(1); Wcom(0x01); Delayms(1); Wcom(0x06); Delayms(1); Wcom(0x0c); Delayms(1); }
void main() { beef=0; Delays(1); beef=1; datapa=0xff; REST=1; Delays(3); PSB=1; LCDinit(); datapa=0; beef=0; Delays(1); beef=1; while(1) { Wcom(0x82); Delays(10); beef=0; Delays(3); beef=1; Wdata(0x33); Delays(10); beef=0; Delays(3); beef=1; } }
|