基于mcs51单片机与lcd液晶显示器的接口技术内容摘要:
S/C R/L 设定情况 0 0 光标左移 1格,且 AC 值减 1 0 1 光标右移 1格,且 AC 值加 1 1 0 显示器上字符全部左移一格,但光标不动 1 1 显示器上字符全部右移一格,但光标不动 表 功能:设定数据总线位数、显示的行数及字型。 参数设定的情况如下: 位名 设置 DL 0=数据总线为 4位 1=数据总线为 8 位 N 0=显示 1行 1=显示 2行 F 0=57 点阵 /每字符 1=510 点阵 /每字符 CGRAM 地址指令 学院 2020 届专科生毕业设计 第 12 页 表 功能:设定下一个要存入数据的 CGRAM 的地址。 DDRAM 地址指令 表 功能:设定下一个要存入数据的 CGRAM 的地址。 AC 地址指令 表 功能: 1 读取忙碌信号 BF 的内容, BF=1 表 示液晶显示器忙,暂时无法接收单片机送来的数据或指令。 当 BF=0 时,液晶显示器可以接收单片机送来的数据或指令。 2 读取地址计数器 (AC)的内容。 DDRAM 或 CGRAM 指令一览 表 学院 2020 届专科生毕业设计 第 13 页 功能: 1 将字符码写入 DDRAM,以使液晶显示屏显示出相对应的字符。 2 将使用者自己设计的图形存入 CGRAM。 CGRAM 或 DDRAM 读出数据的指令一览 表 功能:读取 DDRAM 或 CGRAM 中的内容。 基本操作时序: 读状态 输入: RS=L, RW=H, E=H 输出: DB0~ DB7=状态字 写指令 输入: RS=L, RW=L, E=下降沿脉冲, DB0~ DB7=指令码 输出:无 读数据 输入: RS=H, RW=H,E=H 输出: DB0~ DB7=数据 写数据 输入: RS=H, RW=L, E=下降沿脉冲, DB0~ DB7=数据 输出:无 LCD1602 的一般初始化(复位)过程 延时 15Ms 写指令 38H(不检测忙信号) 延时 5mS 写指令 38H(不检测忙信号) 延时 5mS 写指令 38H(不检测忙信号 ) 以后每次写指令、读 /写数据操作均需要检测忙信号 写指令 38H:显示模式设置 写指令 08H:显示关闭 写指令 01H:显示清屏 学院 2020 届专科生毕业设计 第 14 页 写指令 06H:显示光标移动设置 写指令 0CH:显示开及光标设置 学院 2020 届专科生毕业设计 第 15 页 3 电路软件模拟及仿真 Keil 及 Proteus 使用介绍 单片机编程及仿真软件有很多种,本课程设计主要使用的是 Keil 及 Proteus,下面对两种软件的使用大体介绍下。 [4] 为了能使 Keil 成功与 Proteus 连接,其关键就是在 Keil 中编写驱动程序并生成 .Hex 文件。 图 用红线圈住的部分为生成 .Hex 文件必做步骤,图 为软件中一些常用的项或注意点。 图 学院 2020 届专科生毕业设计 第 16 页 图 中 .Hex 文件的导入 [5] 在 Proteus 中连接好仿真电路图以后,就要开始向单片机中导入生成的 .Hex 文件。 双击单片机,会出现图 所示图形,点击 Program File 里面 用红线圈住的文件夹样式的按钮,然后从保存的文件夹中导入 .Hex 文件,再点击 OK 键,就可以进行模拟仿真了。 学院 2020 届专科生毕业设计 第 17 页 图 LCD1602 入门程序的实现 液晶显示模块是一个慢显示器件,所以在执行每条指令之前一定要确认模块的忙标志为低电平,表示不忙,否则此指令失效。 要显示字符时要先输入显示字符地址,也就是告诉模块在哪里显示字符, 图 为 1602 显示要用到的地址。 图 例如第二行第一个字符的地址是 40H,那么是否直接写入 40H 就可以将光标定位在第二行第一个字符的位置呢。 这样不行,因为写入显示地址时要求最高位 D7 恒定为高电平 1 所 以 实 际 写 入 的 数 据 应 该 是 01000000B ( 40H ) 学院 2020 届专科生毕业设计 第 18 页 +10000000B(80H)=11000000B(C0H)。 为了 直观的说明这个问题,我用 LCD1602 入门的一个程序来显示一个字符。 还是以 A 字为例,实现在第二行第一个字符的位置显示一个 A 字。 我们已经知道 A字的代码是 41H,所以代码 41H 和 C0H 是本程序的关键。 详细程序如下: RS EQU。 确定具体硬件的连接方式 RW EQU。 确定具体硬件的连接方式 E EQU。 确定具体硬件的连接方式 MOV P1,00000001B ACALL ENABLE。 调用写入命令子程序 MOV P1,00111000B ACALL ENABLE。 调用写入 命令子程序 MOV P1,00001111B ACALL ENABLE。 调用写入命令子程序 MOV P1,00000110B ACALL ENABLE。 调用写入命令子程序 MOV P1,0C0H ACALL ENABLE。 调用写入命令子程序 MOV P1,01000001B SETB RS CLR RW。 准备写入数据 CLR E。 执行显示命令 ACALL DELAY。 判断液晶模块是否忙 ? SETB E。 显示完成 ,程序停车 AJMP $ ENABLE: CLR RS CLR RW CLR E ACALL DELAY SETB E RET DELAY: 学院 2020 届专科生毕业设计 第 19 页 MOV P1,0F0H CLR RS SETB RW CLR E NOP SETB E JB ,DELAY RET END 将本程序输入单片机后,仿真效果如图 : 图 字符型液晶显示模块与单片机的连接 单片机与液晶显示器的连接方法有两种。 一:直接访问方式;二:间接控制方式。 一:直接访问方式模拟接口电路见图 [2]: 学院 2020 届专科生毕业设计 第 20 页 图 直接访问方式的驱动子程序如下 : A15 = E的选通信号 A9 = R/W A8 = RS COM EQU 20H。 指令寄存器 DAT EQU 21H。 数据寄存器 CW_Add EQU 8000H。 指令口写地址 CR_Add EQU 8200H。 指令口读地址 DW_Add EQU 8100H。 数据口写地址 DR_Add EQU 8300H。 数据口读地址 读 BF和 AC值 PR0: PUSH DPH PUSH DPL PUSH ACC MOV DPTR,CR_Add。 设置指令口读 地址 MOVX A,@DPTR。 读 BF和 AC值 MOV COM,A。 存入 COM 单元 POP ACC POP DPL POP DPH RET 写指令代码子程序 PR1: PUSH DPH PUSH DPL 学院 2020 届专科生毕业设计 第 21 页 PUSH ACC MOV DPTR,CR_Add。 设置指令口读地址 PR11: MOVX A,@DPTR JB ,PR11。 判 BF=0? 是继续 MOV A,COM MOV DPTR,CW_Add。 设置指令口写地址 MOVX @DPTR,A。 写指令代码 POP ACC POP DPL POP DPH RET 写显示数据子程序 PR2: PUSH DPH PUSH DPL PUSH ACC MOV DPTR,CR_Add。 设置指令口读地址 PR21: MOVX A,@DPTR JB ,PR21。 判 BF=0? 是继续 MOV A,DAT MOV DPTR,DW_Add。 设置数据口写地址 MOVX @DPTR,A。 写数据 POP ACC POP DPL POP DPH RET 读显示数据子程序 PR3: PUSH DPH PUSH DPL PUSH ACC MOV DPTR,CR_Add。 设置指令口读地址 PR31: MOVX A,@DPTR JB ,PR31。 判 BF=0? 是继续 学院 2020 届专科生毕业设计 第 22 页 MOV DPTR,DR_Add。 设置数据口读地址 MOVX A,@DPTR。 读数据 MOV DAT,A。 存入 DAT 单元 POP ACC POP DPL POP DPH RET 二:间接控制方式 间接控制方式 (4位总线 )是利用 HD44780所具有的 4位数据总线的功能简化电路接口的一种接口方式实用电路如图 : 图 间接控制方式的驱动子程序如下 RS EQU。基于mcs51单片机与lcd液晶显示器的接口技术
相关推荐
内部计算机可以相互连接。 可以却不能与其它公司连接。 因为没有一个统一的规范。 计算机之间相互传输的信息对方不能理解。 所以不能互联。 ISO为了更好的使网络应用更为普及,就推出了OSI参考模型。 其含义就是推荐所有公司使用这个规范来控制网络。 这样所有公司都有相同的规范,就能互联了。 其内容如下:第7层应用层—直接对应用程序提供服务,应用程序可以变化,但要包括电子消息传输。
n was analyzed, the programmable controller of ponent and work principle. And puts forward the fountain hardware each position module and detailed hardware module design. This design improves the
ok_borrow int 借出量 允许为空 book_remark varchar(200) 备注 允许为空 说明:此表供管理员录入图书、修改图书基本信息使用。 4) buyinfo 员工自费购买图书登记表,见表 24 表 24 员工自费购买图书登记表 字段名 数据类型及长度 说明 备注 buy_id int 编号 主关键字 buy_username varchar(50) 购买用户名称
(或库函数),而且每个子模型库中包含有相应的功能模块,用户还可以根据需要定制和创建自己的模块。 用 Simulink 创建的模型可以具有递阶结构,因此用户可以采用从上到下或从下到上的结构创建模型。 用户可以从最高级开始观看模型,然后用鼠标双击其中的子系统模块,来查看其下一级的内容,以此类推,从而可以看到整个模型的细节,帮助用户理解模型的结构和各模块之间的相互关系。 在定义完一个模型后
3步)。 注意: 1)外部电压源是。 2)外部晶体管的内部阻抗应该小于 5 ohm。 触摸屏工作原理 触摸屏控制接口包括一个外部晶体管控制逻辑和具有中断产生逻辑的 ADC 接口逻辑。 1)普通转换模式 普通转换模式 (AUTO_PST=0, XY_PST=0)是用作一般目的下的 ADC 转换。 这个模式可以通过设置 ADCCON 和 ADCTSC 来进行对 AD 转换的初始化;而后读取
通过在存储芯片 ROM 中保存不同频率信号的信号发生点数,在频率切换时调用 ROM 中所存储的不同点数模块来实现频率的切换。 方案二: 在存储芯片 RAM 中保存由软件实时产生的波形点数,通过所取的点数的不同来决定发生的波形的频率。 由于设计中的信号要进行不断的改变,因此波形的数据不能存储在 ROM 中,应该存储 RAM 中,因此采用方案二的设计方法。 滤波电路 方案一: 利用运放芯片