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. [SoapUI] Property Expansion in soapUI

    1. Property Expansion in soapUI SoapUI provides a common syntax to dynamically insert ("expand& ...

  2. 秒懂 this

    一:全局执行 console.log(this); // Window 可以看出在全局作用域中 this 指向当前的全局对象 Window. 二:函数中执行 1.非严格模式中 function fun ...

  3. .net判断当前时间是否在工作时间段内

    整理代码,判断当前时间是否在配置的工作时间段内,代码如下: public static bool getTimeSpan(string _strWorkingDayAM, string _strWor ...

  4. hibernate集合映射inverse和cascade详解<转载>

    1.到底在哪用cascade="..."? cascade属性并不是多对多关系一定要用的,有了它只是让我们在插入或删除对像时更方便一些,只要在cascade的源头上插入或是删除,所 ...

  5. js之function

    function* function* 这种声明方式(function关键字后跟一个星号)会定义一个生成器函数 (generator function),它返回一个  Generator  对象. 你 ...

  6. Android音频系统之AudioFlinger(三)

    http://blog.csdn.net/xuesen_lin/article/details/8805091 1.1.1 PlaybackThread的循环主体 当一个PlaybackThread进 ...

  7. 使用小技巧加快IDEA的开发速度

    一.live template的使用. 1.live template(自定义模板的载入)打开: Ctrl+shift+A 再在命令行中间输入live  template弹出用户自定义的界面.需要自行 ...

  8. centos7 sqoop 1 搭建笔记

    1.require : java环境,hadoop,hive ,mysql2.下载解压sqoop13.设置环境变量 export SQOOP_HOME=/data/spark/bin/sqoop ex ...

  9. 使用Ant发布web应用到tomcat

    使用Ant发布web应用到tomcat 来自:http://blog.csdn.net/hbcui1984/article/details/1954537 今天在公司用ant写了个部署web应用的脚本 ...

  10. Java泛型总结——吃透泛型开发

    什么是泛型 泛型是jdk5引入的类型机制,就是将类型参数化,它是早在1999年就制定的jsr14的实现. 泛型机制将类型转换时的类型检查从运行时提前到了编译时,使用泛型编写的代码比杂乱的使用objec ...