lcd编程与机器人应用集成技术

上传人:bin****86 文档编号:57512117 上传时间:2018-10-22 格式:PPT 页数:41 大小:1.58MB
返回 下载 相关 举报
lcd编程与机器人应用集成技术_第1页
第1页 / 共41页
lcd编程与机器人应用集成技术_第2页
第2页 / 共41页
lcd编程与机器人应用集成技术_第3页
第3页 / 共41页
lcd编程与机器人应用集成技术_第4页
第4页 / 共41页
lcd编程与机器人应用集成技术_第5页
第5页 / 共41页
点击查看更多>>
资源描述

《lcd编程与机器人应用集成技术》由会员分享,可在线阅读,更多相关《lcd编程与机器人应用集成技术(41页珍藏版)》请在金锄头文库上搜索。

1、LCD应用编程及与机器人的集成技术,南昌大学机电工程学院,2018/10/22,机器人技术介绍,2,第八章 LCD应用编程及与机器人的集成技术,LCD(Liquid Crystal Display)的应用很广泛,简单如手表上的液晶显示屏,仪表仪器上的液晶显示器或者笔记本电脑上的液晶显示器,都用LCD。在一般的办公设备上也很常见,如传真机,复印件,以及一些娱乐器材玩具等也常常见到LCD 的踪影。本章应用LCD作为机器人状态显示窗口,使机器人在运行过程中能够向你显示信息。,2018/10/22,机器人技术介绍,3,LCD 显示器的介绍本章使用的 LCD 为字符型点阵式LCD 模块(Liquid C

2、rystal Display Module),简称LCM,或者是字符型LCD。字符型液晶显示模块是一种专门用于显示字母、数字、符号等的点阵式液晶显示模块。每一个显示的字符(或字母、数字等)是由5*7 或5*11 点阵组成。点阵字符位之间有一空点距的间隔,起到字符间距和行距的作用。本章所使用的LCD 显示器可显示两行,每行由16 个点阵字符组成,能显示所有ASCII字符,如图8-1 所示,每个字符由5*7 点阵组成。,2018/10/22,机器人技术介绍,4,图8-1 1602 LCD 实物图,2018/10/22,机器人技术介绍,5,任务一 认识LCD显示器,LCD显示器连接,LCD1602

3、有八个数据引脚(D0D7)与AT89S52 相连,用于接收指令和数据;AT89S52通过RS,RW 和E 这三个端口控制LCD 模块。表8-1 为LCD 的引脚说明,图8-2 为LCD引脚与AT89S52 连接示意图。,2018/10/22,机器人技术介绍,6,Vo:直接接地,对比度最高。RS:MCU 写入数据或者指令选择端。MCU 要写入指令时,使RS 为低电平;MCU 要写入数据时,使RS 为高电平。,2018/10/22,机器人技术介绍,7,R/W:读写控制端。R/W 为高电平时,读取数据;R/W 为低电平时,写入数据。E:LCD 模块使能信号控制端。写数据时,需要下降沿触发模块。D0D

4、7:8 位数据总线,三态双向。该模块也可以只使用4 位数据线D4D7 接口传送数据。BLA:需要背光时,BLA 串接一个限流电阻接VCC,BLK 接地。BLK:背光地端。,2018/10/22,机器人技术介绍,8,图8-2 LCD 模块于MCU 连接图,2018/10/22,机器人技术介绍,9,LCD 控制器接口说明,基本操作时序,在 LCD 时序图中,在将E 置高电平前,先设置好RS 和R/W 信号,在E 下降沿到来之前,准备好写入的命令字或数据。只需在适当的地方加上延时,就可以满足要求了。 读状态 输入:RS=L,RW=H,E=H输出:DB0DB7=状态字 写指令 输入:RS=L,RW=L

5、,E=下降沿脉冲,DB0DB7=指令码输出:无 读数据 输入:RS=H,RW=H,E=H输出:DB0DB7=数据 写数据 输入:RS=H,RW=L,E=下降沿脉冲,DB0DB7=数据输出:无,2018/10/22,机器人技术介绍,10,状态字说明,注:对控制器每次进行读写操作之前,都必须进行读写检测,确保 STA7 为0。,2018/10/22,机器人技术介绍,11,指令说明 显示模式设置,2018/10/22,机器人技术介绍,12,初始化过程(复位过程),1、延时 15ms 2、写指令 38H(不检测忙信号)(或28H,表示4 位数据接口,下同) 3、延时 15ms 4、写指令 38H(不检

6、测忙信号) 5、延时 15ms 6、写指令 38H(不检测忙信号) (以后每次写指令、读/写数据操作之前都均需检测忙信号),2018/10/22,机器人技术介绍,13,7、写指令 38H:显示模式设置 8、写指令 08H:显示关闭 9、写指令 01H:显示清屏 10、写指令 06H:显示光标移动设置 11、写指令 0cH:显示开及光标设置,数据指针(地址)设置LCD 控制器内部带有80X8 位(80 字节)的RAM 缓冲区,对应关系如图8-3:,2018/10/22,机器人技术介绍,14,图8-3 LCD 内部RAM 地址映射图,数据地址设置指令码:80H+地址码(027H,4067)。,20

7、18/10/22,机器人技术介绍,15,任务二 编写LCD模块驱动程序,在本任务中,你将通过编写程序来驱动 LCD 显示器,并显示你的机器人所要显示的字符或字符串,这样你就可以不需要调试终端的帮助而显示字符或者字符串。 元件清单: (1)1602LCD 显示器 (2)跳线线路连接传统的连线是图 8-2 介绍的八位数据线接法,而教材采用的是四位数据线传输方式来进行LCD 显示。为什么只用四线传输?因为这样可以节省接口开销。,2018/10/22,机器人技术介绍,16,由于LCD 的指令和数据都是八位的,因此在传输时要传输两次才能完成一次操作。电路的连接如图8-4 所示。,图8-4 四口数据线连接

8、LCD,2018/10/22,机器人技术介绍,17,例程:LCDdisplay.c 1、接通主板电源 2、输入、保存并运行 LCDdisplay.c 3、连接 LCD 显示器模块,验证显示器是否显示字符串,/*= 1602 液晶显示的实验例子 - | DB4-P0.4 | RW-P2.1 | DB5-P0.5 | RS-P2.2 | DB6-P0.6 | E-P2.0 | DB7-P0.7 | - =*/,2018/10/22,机器人技术介绍,18,#include #include #define LCM_RW P2_1 /定义引脚 #define LCM_RS P2_2 #define L

9、CM_E P2_0 #define LCM_Data P0 #define Busy 0x80 /用于检测LCM 状态字中的Busy 标识,2018/10/22,机器人技术介绍,19,/*- 子函数声明 -*/ void Write_Data_LCM(unsigned char WDLCM); void Write_Command_LCM(unsigned char WCLCM,BuysC); void Read_Status_LCM(void); void LCM_Init(void); void Set_xy_LCM(unsigned char x, unsigned char y); v

10、oid Display_List_Char(unsigned char x, unsigned char y, unsigned char *s);,2018/10/22,机器人技术介绍,20,void main(void) LCM_Init(); /LCM 初始化 delay_nms(5); /延时片刻(可不要) while(1) Display_List_Char(0, 0, ““); Display_List_Char(1, 0, “Robot-AT89S52“); ,2018/10/22,机器人技术介绍,21,/*= 函数名:Read_Status_LCM() 功能:忙检测函数 =*/

11、 void Read_Status_LCM(void) unsigned char read=0; LCM_RW = 1; LCM_RS = 0; LCM_E = 1; LCM_Data = 0xff; do read = LCM_Data; while(read ,2018/10/22,机器人技术介绍,22,/*- 函数名:Write_Data_LCM ( ) 功能:对 LCD 1602 写数据 -*/,void Write_Data_LCM(unsigned char WDLCM) Read_Status_LCM(); /检测忙 LCM_RS = 1; LCM_RW = 0; LCM_Da

12、ta ,WDLCM = WDLCM4; LCM_Data ,2018/10/22,机器人技术介绍,23,/*- 函数名:Write_Command_ LCM ( ) 功能:对 LCD 1602 写指令 -*/,void Write_Command_LCM(unsigned char WCLCM,BuysC) /BuysC 为0 时忽略忙检测 if (BuysC) Read_Status_LCM(); /根据需要检测忙 LCM_RS = 0; LCM_RW = 0;,2018/10/22,机器人技术介绍,24,LCM_Data ,2018/10/22,机器人技术介绍,25,/*- 函数名:LCM

13、_Init() 功能:对 LCD 1602 初始化 -*/ void LCM_Init(void) /LCM初始化 LCM_Data = 0; Write_Command_LCM(0x28,0); /三次显示模式设置,不检测忙信号 delay_nms(15); Write_Command_LCM(0x28,0); delay_nms(15); Write_Command_LCM(0x28,0); delay_nms(15); Write_Command_LCM(0x28,1); /显示模式设置,开始要求每次检测忙信号 Write_Command_LCM(0x08,1); /关闭显示 Write

14、_Command_LCM(0x01,1); /显示清屏 Write_Command_LCM(0x06,1); /显示光标移动设置 Write_Command_LCM(0x0C,1); /显示开及光标设置 ,2018/10/22,机器人技术介绍,26,/*- 函数名:Set_xy_LCM () 功能:设定显示坐标位置 -*/ void Set_xy_LCM(unsigned char x, unsigned char y) unsigned char address; if( x = 0 ) address = 0x80+y; else address = 0xc0+y; Write_Command_LCM(address,1); ,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号