?? lcd.c
字號:
//使能信號,讀狀態下,高電平有效;寫狀態下,下降沿有效
#include<at89x52.h>
#include<absacc.h>
sbit A0=P2^7;//為高電平時選擇的是數據寄存器,為低電平時選擇的是指令寄存器
sbit CS1=P2^5; //使能信號
sbit CS2=P2^4;
sbit LCDRW=P2^6;//高讀,低寫
sfr DATA=0x90;
#define BUSY 0x90;
#define DISPON 0x3f;
#define DISPOFF 0x3e;
void delay(unsigned char time)//delay5ms
{unsigned char i=250,j=20;
while(time--)
{while(i--)
{
while(j--);}
}
}
void wrcmdl(unsigned char c1)
{ unsigned char data in;
//CS1=1;A0=1;LCDRW=1;
while(1)
{in=BUSY;
if((in&0x80)==0) break;}
//A0=0;
//LCDRW=0;
//CS1=0;
DATA=c1;
}
void wrcmdr(unsigned char c2)
{ unsigned char data in;
//CS1=1;A0=1;LCDRW=1;
while(1)
{in=BUSY;
if((in&0x80)==0) break;
}
//A0=0;
//LCDRW=0;CS2=0;
DATA=c2;
}
void lcddata(unsigned char d)
{ unsigned char data in;
//A0=1;LCDRW=1;
while(1)
{in=BUSY;
if((in&0x80)==0) break;}
//CS1=1;
// A0=0;
// LCDRW=0;
DATA=d;
}
void lcdintall()
{ DATA=DISPOFF;
wrcmdl(0x3c);
wrcmdr(0x3c);
wrcmdl(0x0e);
wrcmdr(0x0e);
wrcmdl(0x06);
wrcmdr(0x06);
wrcmdl(0x01);
wrcmdr(0x01);
}
void main()
{ unsigned char data i=50,j=0;
delay(8);
lcdintall();
while(i--)
{lcddata(j++);}
i=50;
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -