當前位置:編程學習大全網 - 編程語言 - 8051控制1602LCD

8051控制1602LCD

#include <reg51.h>

#include <intrins.h>

typedef unsigned char BYTE;

typedef unsigned int WORD;

typedef bit BOOL ;

sbit rs = P1^4;

sbit rw = P1^5;

sbit ep = P1^3;

BYTE code dis1[] = {"welcome!"};

BYTE code dis2[] = {"www.bluemcu.com"};

delay(BYTE ms)

{ // 延時子程序

BYTE i;

while(ms--)

{

for(i = 0; i<250; i++)

{

_nop_();

_nop_();

_nop_();

_nop_();

}

}

}

lcd_wcmd(BYTE cmd)

{ // 寫入指令數據到LCD

delay(1);

rs = 0;

rw = 0;

ep = 0;

_nop_();

_nop_();

P0 = cmd;

_nop_();

_nop_();

_nop_();

_nop_();

ep = 1;

_nop_();

_nop_();

_nop_();

_nop_();

ep = 0;

}

lcd_pos(BYTE pos)

{ //pos=0x40; //設定顯示位置

lcd_wcmd(pos|0x80);

//lcd_wcmd(pos);

}

lcd_wdat(BYTE dat)

{ //寫入字符顯示數據到LCD

delay(1);

rs = 1;

rw = 0;

ep = 0;

_nop_();

_nop_();

P0 = dat;

_nop_();

_nop_();

_nop_();

_nop_();

ep = 1;

_nop_();

_nop_();

_nop_();

_nop_();

ep = 0;

}

lcd_init()

{

delay(1); //LCD初始化設定

lcd_wcmd(0x38); //顯示模式設置:單行,8字符,5x7點陣

delay(1);

delay(1);

lcd_wcmd(0x06); //開顯示,關光標,不閃爍

delay(1);

delay(1);

lcd_wcmd(0x0c); //設置輸入模式:光標增量移動,顯示不移位

delay(1);

delay(1);

//lcd_wcmd(0x08);

//delay(1);

//delay(1);

lcd_wcmd(0x01); //清除LCD顯示的內容

delay(1);

}

void main()

{

while(1)

{

BYTE i;

lcd_init(); // 初始化LCD

delay(10);

lcd_pos(0x05); // 設置顯示位置為第壹行的第5個字符

i = 0;

while(dis1[i]!='\0')

{ // 顯示字符"welcome!"

lcd_wdat(dis1[i]);

delay(30);

i++;

}

//delay(20);

//lcd_init();

delay(10);

lcd_pos(0x40); // 設置顯示位置為第二行第二個字符

//delay(10);

i = 0;

while(dis2[i]!='\0')

{

lcd_wdat(dis2[i]); // 顯示字符" www.bluemcu.com "

delay(30);

i++;

}

//while(1);

delay(40);

}

}

看壹下這個對妳有幫助

  • 上一篇:Mr. Beast Quest Giveaway – Dragon City Game guide
  • 下一篇:c語言經典100
  • copyright 2024編程學習大全網