您的位置 首页 IOT

单片机试验板2011_V1.1-LCD12864液晶显示

/***********************************************************//*模块名:LCD12864控制显示*//*创建人:ClimberWin日期:

/***********************************************************/
/*模块名 :LCD12864操控显现 */
/*创建人 :ClimberWin 日期:2011-03-12 */
/***********************************************************/

#include
#define uchar unsigned char
#define uint unsigned int
#define ulong unsigned long

sbit LCD_CS = P1^5;//片选 高电平有用 单片LCD使用时可固定高电平 rs
sbit LCD_SID = P1^6;//数据 r/w
sbit LCD_SCLK = P1^7;//时钟 e

ucharcode HEX_[] ={“0123456789ABCDEF”};

uchar BUFFER[6] = {0};
uchar K_NUM;
void DELAY(uchar t);
void LCD_SEND(uchar date);
void LCD_SCOM(bit st,uchar date);
void LCD_DELAY(void);
void LCD_INIT(void);
void LCD_write(uchar *p);
void LCD_LOCAL(uchar x,uchar y,uchar *p);
void LCD_cblank(uchar x,uchar y);
void LCD_count(long s,uchar x1,uchar y1,uchar x,uchar y,uchar *p);
void LCD_bai();
void Delay1ms(unsigned int count);
/***************************1秒延时子程序start***************************/
void Delay1ms(unsigned int count)
{
unsigned int i,j;
for(i=0;ifor(j=0;j<120;j++);
}

/***************************1秒延时子程序end***************************/

void DELAY(uchar t)
{
while(–t);
}
void LCD_SEND(uchar date)
{
uchar i;
LCD_SCLK=0;
for(i=0;i<8;i++)
{
LCD_SID=date&0x80;
LCD_SCLK=1;
LCD_SCLK=0;
date<<=1;
}
}
void LCD_SCOM(bit st,uchar date)
{
uchar st_temp,hdate,ldate;
if(st)
st_temp=0xfa;
else st_temp=0xf8;
hdate=date&0xf0;
ldate=date&0x0f;
ldate <<= 4;
LCD_CS = 1;
LCD_SEND(st_temp);
LCD_SEND(hdate);
LCD_SEND(ldate);
LCD_CS = 0;
DELAY(38);
}
void LCD_DELAY(void)
{ uchar s;
s=10;
while(–s)
DELAY(250);
}
void LCD_INIT(void)
{
LCD_SCOM(0,0×30);
LCD_DELAY();
LCD_SCOM(0,0x0c);
LCD_DELAY();
LCD_SCOM(0,0×01); //清屏,将DDRAM的地址计数器归零
LCD_DELAY();
}
void LCD_write(uchar *p)
{
while(*p)
{
LCD_SCOM(1,*p);
p++;
}
}
void LCD_LOCAL(uchar x,uchar y,uchar *p) //lcd string (x,y) write!
{
switch (x)
{
case 1:LCD_SCOM(0,0x7f+y); LCD_write(p);break;
case 2:LCD_SCOM(0,0x8f+y); LCD_write(p);break;
case 3:LCD_SCOM(0,0×87+y); LCD_write(p);break;
case 4:LCD_SCOM(0,0×97+y); LCD_write(p);break;
default :LCD_SCOM(0,0x7f+y); LCD_write(p);
}
}
void LCD_cblank(uchar x,uchar y)
{
switch (x)
{
case 1:LCD_SCOM(0,0x7f+y); LCD_SCOM(0,0x0d);break;
case 2:LCD_SCOM(0,0x8f+y); LCD_SCOM(0,0x0d);break;
case 3:LCD_SCOM(0,0×87+y); LCD_SCOM(0,0x0d);break;
case 4:LCD_SCOM(0,0×97+y); LCD_SCOM(0,0x0d);break;
default :LCD_SCOM(0,0x7f+y); LCD_SCOM(0,0x0d);
}
}

/*******************************************/

/********************************************/
main()
{ //main start

Delay1ms(1000);
LCD_INIT();
Delay1ms(1000);
LCD_LOCAL(1,1,”单片机教育试验板”);
LCD_LOCAL(2,1,”LCD12864显现程序”);
LCD_LOCAL(3,1,”版别:V1.1 “);
LCD_LOCAL(4,1,”2011年03月12日 “);

while(1);

}

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/yingyong/iot/267245.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部