文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-628552.html
#include "reg51.h"
#define uchar unsigned char
sbit RS=P3^2;
sbit RW=P3^1;
sbit E=P3^0;
uchar sj=0;
int read_state();
int write_cmd(uchar);
void lcd_init();
int input_char(uchar abc);
int input_string();
int read_state()
{
uchar zgw=0;
RW=1;
sleep(3);
RS=0;
sleep(3);
E=1;
sleep(3);
sj=P2;
sleep(3);
//獲取最高位
E=0;
sleep(3);
RW=0;
sleep(3);
sj=sj&0x80;
zgw=sj>>7;
return zgw;
}
int write_cmd(uchar command)
{
do{;}while(read_state()==1);//如果控制器忙就出不來(lái),只有控制器不瞞才能出來(lái)
RW=0;sleep(3);RS=0;sleep(3);
E=1;sleep(3);
P2=command;sleep(3);
E=0;sleep(3);
RW=1;
sleep(3*250);
return 0;
}
void lcd_init()
{
write_cmd(0x3c);
write_cmd(0x0e);
write_cmd(0x01);
write_cmd(0x06);
write_cmd(0x80);
}
int input_char(uchar abc)
{
while(read_state()==1);
RS=1;sleep(3);RW=0;sleep(3);
E=1;sleep(3);
P2=abc;sleep(3);
E=0;sleep(3);
RW=1;
sleep(3*255);
return 0;
}
int input_string()
{
int i=0;
uchar str[]="hello tom";
while(read_state()==1);
for(i=0;str[i]!='\0';i++)
{
input_char(str[i]);
sleep(3*200);
}
return 0;
}
int main()
{
lcd_init();
sleep(3*250);
write_cmd(0x83);
sleep(3*250);
input_string();
while(1);
return 0;
}
void sleep(long int a)
{
long int i=0;
for(i=0;i<a;i++)
{
;
}
}
附:字符型LCD顯示屏型號(hào):LM016L;這個(gè)代碼應(yīng)該是可以直接運(yùn)行的文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-628552.html
到了這里,關(guān)于單片機(jī) 用LCD顯示屏 輸出字符串源代碼(附Proteus圖)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!