1.利用单片机控制LCD1602,在LCD1602上显示字符串,并使其整屏左移。

#include<reg51.h>

#define uchar unsigned char

#define uint unsigned int

uchar code table[]="Hello World!";

uchar code table1[]="I am a boy!";

sbit lcden;  //液晶使能端

sbit lcdrs;

sbit LCDWR;

uchar num;

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

延时函数

参数说明:

z代表要延时z ms

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

void delay(uint z)

{

uint x,y;

;x--)

;y--);

}

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

写命令或数据

参数说明:

isRs=1代表写数据,isRs=0代表写命令

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

void write(uchar mdata, uchar isRs)

{

lcdrs=isRs;

P0=mdata;

delay);

lcden;

delay);

lcden;

}

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

写命令

参数说明:

data代表要写的命令

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

void write_command(uchar com)

{

write);

}

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

写数据

参数说明:

data代表要写的数据

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

void write_data(uchar mdata)

{

write);

}

void init()

{

lcden;

LCDWR;

write_command(0x38);//设置16X2显示,5X7点阵,8位数据接口

write_command(0x0c);//设置开显示,不显示光标

write_command

write_command(0x01);//显示清零,数据指针清零

}

void main()

{

init();

write_command(0x80+0x10);

;num++)

{

write_data(table[num]);

delay);

}

write_command(0x80+0x50);

;num++)

{

write_data(table1[num]);

delay);

}

;num++)

{

write_command(0x18);

delay);

}

);

}

思考:如果向CGRAM写入数据?

向CGRAM写入数据的步骤:

1.建立一个字符数组

Uchar LCD_Data1[]={0x01,0x03,0x1D,0x11,0x1D,0x03,0x01,0x00};

2.设置CGRAM地址,写指令.

Write_cmd(0x40);

3.把数据送入CGRAM地址内.

for(i=0;i<i;i++) //在8个字节的CGRAM中写入要显示的汉字字模

{            write_cmd(0x40+i);

write_date(table[i]);

delay(5);

}

4.写需要显示的位置指令. Write_cmd(0x80);

5.把CGRAM的0位的数据送向LCD1602,显示数据存储的数据. for(i=0;i<8;i++)      //显示自定义字符

{

write_date(i);  //显示第i个字符

delay(5);

}

扩展:

1.利用单片机控制LCD1602,使其可以汉字“中华人民共和国”并控制整屏移动

#include<reg51.h>

#define uchar unsigned char

#define uint unsigned int

sbit lcden;  //液晶使能端

sbit lcdrs代表数据)

sbit LCDWR代表读)

uchar num;

uchar code table_HanZi[]={

0x04,0x04,0x1F,0x15,0x15,0x1F,0x04,0x04,//中

0x0A,0x1B,0x0E,0x0B,0x04,0x1F,0x04,0x04,//华

0x00,0x04,0x04,0x04,0x0A,0x11,0x00,0x00,//人

0x1F,0x11,0x1F,0x18,0x16,0x16,0x11,0x18,//民

0x0A,0x1F,0x0A,0x1F,0x00,0x0A,0x11,0x11,//共

0x04,0x08,0x18,0x1F,0x0D,0x1F,0x1C,0x08,//和

0x1F,0x11,0x1F,0x15,0x1F,0x17,0x1F,0x1F,//国

};

uchar code table1[]={0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07};  //自定义字符数据地址

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

延时函数

参数说明:

z代表要延时z ms

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

void delay(uint z)

{

uint x,y;

;x--)

;y--);

}

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

写命令或数据

参数说明:

isRs=1代表写数据,isRs=0代表写命令

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

void write(uchar mdata, uchar isRs)

{

lcdrs=isRs;

P0=mdata;

delay);

lcden;

delay);

lcden;

}

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

写命令

参数说明:

data代表要写的命令

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

void write_command(uchar com)

{

write);

}

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

写数据

参数说明:

data代表要写的数据

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

void write_data(uchar mdata)

{

write);

}

void init()

{

lcden;

LCDWR;

write_command(0x38);//设置16X2显示,5X7点阵,8位数据接口

write_command(0x0c);//设置开显示,不显示光标

write_command

write_command(0x01);//显示清零,数据指针清零

delay);

}

void main()

{

uchar i;

init();

)

{

write_command(0x40);    //开始写入要显示的自定义字符、汉字代码

;i++)

{

write_data(table_HanZi[i]);

delay);

}

write_command(0x80);    //从第一行第一列开始显示

;i++)  //显示自定义字符

{

write_data(table1[i]);

delay);

}

}

}

实验6 LCD接口的更多相关文章

  1. LCD接口(转载)

    LCD接口分类 1.   I8080接口,我觉得应该就是所谓的8080,通常会用在12864屏上面,且有内部sdram,不需要实时的刷新图片,速度有限制, 支持的数据宽度有8/9/16/18bit,接 ...

  2. 【转】Android LCD(三):Samsung LCD接口篇

    关键词:android LCD控制器 Framebuffer PWM  平台信息:内核:linux2.6/linux3.0系统:android/android4.0 平台:samsung exynos ...

  3. Android LCD(三):Samsung LCD接口篇

    关键词:android LCD控制器 Framebuffer PWM  平台信息: 内核:linux2.6/linux3.0 系统:android/android4.0  平台:samsung exy ...

  4. 对LCD接口的认识

    LCD接口类型: 1.首先我们以传递的信号类型来区分主要有两大类:- 模拟信号: - VGA: Video Graphics Array- 数字信号 - TTL: Transistor Transis ...

  5. android系统平台显示驱动开发简要:Samsung LCD接口篇『三』

    平台信息: 内核:linux3.4.39系统:android4.4 平台:S5P4418(cortex a9) 作者:瘋耔(欢迎转载,请注明作者) 欢迎指正错误,共同学习.共同进步!! 关注博主新浪博 ...

  6. LCD接口和RGB介绍【转】

    转自:https://www.cnblogs.com/hzl6255/p/5470583.html 阅读目录 1. 介绍 2. 接口类型 3. RGB 4. YUV 5. FOURCC 回到顶部 1. ...

  7. LCD接口和RGB介绍

    1. 介绍 Video的显示离不开LCD, 所以这里简单介绍一下LCD的接口和RGB LCD的全称是Liquid Crystal Display 的简称, 即液晶显示器LCD目前已经取代CRT, 成为 ...

  8. (转)常见LCD接口

    LCD常用接口原理 点击打开链接 点击打开链接 点击打开链接 点击打开链接 点击打开链接 点击打开链接 点击打开链接 点击打开链接 xubin 平台信息:内核:linux2.6/linux3.0系统: ...

  9. Java实验案例(接口)

    实验任务 任务一:设计实现发声接口 任务二:动物乐园 实验内容 任务一:设计实现发声接口 任务目的: 理解并掌握如何定义接口 掌握接口的实现方式 任务描述: 设计和实现一个Soundable接口,该接 ...

随机推荐

  1. Hive 系列(二)权限管理

    Hive 系列(二)权限管理 一.关于 Hive Beeline 问题 启动 hiveserver2 服务,启动 beeline -u jdbc:hive2:// 正常 ,启动 beeline -u ...

  2. Quartz入门教程

    public class App { public static void main(String[] args) throws MessagingException, IOException { / ...

  3. fetch获取json的正确姿势

    fetch要求参数传递,遇到请求无法正常获取数据,网上其他很多版本类似这样: fetch(url ,{ method: 'POST', headers:{ 'Accept': 'application ...

  4. [ASP.NET]使用Layer简介

    layer是一款近年来备受青睐的web弹层组件,她具备全方位的解决方案,致力于服务各水平段的开发人员,您的页面会轻松地拥有丰富友好的操作体验. 在与同类组件的比较中,layer总是能轻易获胜.她尽可能 ...

  5. 车站(NOIP1998)

    题目链接:车站 这一题,首先你要会推导,推到出式子后,就会像我一样简单AC. 给一张图: 这里,t是第二个车站上车人数. 有什么规律? 其实很好找.有如下规律: 第x车站的人数增量为第x-2车站的上车 ...

  6. sticky footer 布局

    <!doctype html><html lang="en"> <head> <meta charset="UTF-8" ...

  7. 删除GitHub中的项目

    1.找到要删除的项目 2.点击settings,下拉到底部 3.点击delete this repository,输入你要删除的项目名称

  8. springboot深入学习(五)-----spring data、事务

    spring data项目是spring解决数据访问问题的一系列解决方案,包含了大量关系型数据库以及非关系型数据库的访问解决方案. 一.spring data jpa 1.简介 jpa是一套规范,不提 ...

  9. 消除flex-wrap之后每个item上下的距离

    设置flex-wrap后,每个item上下都会有距离.更改父元素的高度,就可以删除这些距离. 更改后:

  10. windows socket扩展函数

    1.AcceptEx() AcceptEx()用于异步接收连接,可以取得客户程序发送的第一块数据. BOOL AcceptEx( _In_  SOCKET       sListenSocket,   ...