当前位置:文档之家› [VHDL代码]LCD1602驱动

[VHDL代码]LCD1602驱动

[VHDL代码]LCD1602驱动
[VHDL代码]LCD1602驱动

[VHDL代码]LCD1602驱动

library IEEE;

use IEEE.STD_LOGIC_1164.ALL;

use IEEE.STD_LOGIC_ARITH.ALL;

use IEEE.STD_LOGIC_UNSIGNED.ALL;

entity LCD1602 is

Port ( Clk : in std_logic; --状态机时钟信号,同时也是液晶时钟信号,其周期应该满足液晶数据的建立时间Sec_low,Sec_high,Min_low,Min_high,Hour_low,Hour_high: in std_logic_vector(3 downto 0);

LCD_RS : out std_logic; --寄存器选择信号

LCD_RW : out std_logic; --液晶读写信号

LCD_EN : out std_logic; --液晶时钟信号

LCD_Data : out std_logic_vector(7 downto 0)); --液晶数据信号

end LCD1602;

architecture Behavioral of LCD1602 is

type STATE_TYPE is

(START,write_C,write_D,WRITE_BYTE_C,WRITE_BYTE_D,wait_3m1,wait_3m2,wait_5m1,wait_5m2,w ait_100m);

type MY_ARRAY1 is array(0 to 4) of std_logic_vector(7 downto 0);

type MY_ARRAY2 is array(0 to 7) of std_logic_vector(7 downto 0);--长度为14的8位/字数组

constant c_d: MY_ARRAY1:=(x"38",x"0c",x"06",x"01",x"84");

signal d_d: MY_ARRAY2:=(x"20",x"20",x"3A",x"20",x"20",x"3A",x"20",x"20");

signal STATE: STATE_TYPE:=START;

signal w_c_flag : integer range 0 to 2:=0;

signal w_d_flag : integer range 0 to 2:=0;

signal write_c_cnt : integer range 0 to 5:=0;

signal write_d_cnt : integer range 0 to 8:=0;

signal cnt : integer range 0 to 10000:=0;

signal count : integer range 0 to 10000:=0;

begin

LCD_RW <= '0' ; --写数据

d_d(0)<="0000"&Hour_high+x"30";

d_d(1)<="0000"&Hour_low+x"30";

d_d(3)<="0000"&Min_high+x"30";

d_d(4)<="0000"&Min_low+x"30";

d_d(6)<="0000"&Sec_high+x"30";

d_d(7)<="0000"&Sec_low+x"30";

process(Clk,STATE) --液晶驱动控制器begin

if rising_edge(Clk) then

case STATE is

when START=>

LCD_EN<='0';

w_c_flag<=0;

w_d_flag<=0;

write_c_cnt<=0;

write_d_cnt<=0;

STATE<=WRITE_C;

when WRITE_C=>

case write_c_cnt is

when 0 to 4=>

STATE<=WRITE_BYTE_C;

when 5=>

write_c_cnt<=4;

STATE<=WRITE_D;

end case;

when WRITE_BYTE_C=>

if(w_c_flag=0) then

LCD_RS<='0';

LCD_Data<=c_d(write_c_cnt);

w_c_flag<=1;

STATE<=wait_3m1;

elsif(w_c_flag=1) then

LCD_EN<='1';

w_c_flag<=2;

STATE<=wait_5m1;

elsif(w_c_flag=2) then

LCD_EN<='0';

w_c_flag<=0;

write_c_cnt<=write_c_cnt+1;

STATE<=WRITE_C;

end if;

when WRITE_D=>

case write_d_cnt is

when 0 to 7=>

STATE<=WRITE_BYTE_D;

when 8=>

write_d_cnt<=0;

STATE<=wait_100m;

end case;

when WRITE_BYTE_D=>

if(w_d_flag=0) then

LCD_RS<='1';

LCD_Data<=d_d(write_d_cnt); w_d_flag<=1;

STATE<=wait_3m2;

elsif(w_d_flag=1) then

LCD_EN<='1';

w_d_flag<=2;

STATE<=wait_5m2;

elsif(w_d_flag=2) then

LCD_EN<='0';

w_d_flag<=0;

write_d_cnt<=write_d_cnt+1; STATE<=WRITE_D;

end if;

when wait_3m1=>

if (cnt>=3) then

STATE<=WRITE_BYTE_C; cnt<=0;

else

cnt<=cnt+1;

STATE<=wait_3m1;

end if;

when wait_5m1=>

if (cnt>=5) then

STATE<=WRITE_BYTE_C; cnt<=0;

else

cnt<=cnt+1;

STATE<=wait_5m1;

end if;

when wait_3m2=>

if (cnt>=3) then

STATE<=WRITE_BYTE_D; cnt<=0;

else

cnt<=cnt+1;

STATE<=wait_3m2;

end if;

when wait_5m2=>

if (cnt>=5) then

STATE<=WRITE_BYTE_D; cnt<=0;

else

cnt<=cnt+1;

STATE<=wait_5m2;

end if;

when wait_100m=>

if (cnt>=100) then

STATE<=START;

cnt<=0;

else

cnt<=cnt+1;

STATE<=wait_100m;

end if;

end case;

end if;

end process;

end Behavioral;

lcd1602四线驱动

LCD1602 4 位数据线连接方式驱动程序(转载) 2008-10-14 11:00 LCD1602 4 位数据线连接方式驱动程序(转载) /* 单片机 I/O口使单片机资源的重要组成部分,也是用来扩展外围设备的必选资源, 尽可能以更少的 I/O口实现更多的功能是单片机工程师追求的目标,现在的一些串 行器件也为这一目标的实现添加了更多的可能性,比如 I2C总线,MAXIM 力推 的 1-WIRE 等等,都可以以很少的I/O 口实现更多的功能,当然这是以降低一定的速度 为代价的。 显示器件多见的是 LED数码管,LCD 液晶屏等。一般的数码管成本低廉,在显示内 容要求不多的时候适用;LCD 液晶屏以更多的显示空间得到了许多人的爱好,不过 成本上要高的多(市场价在 20元左右),本文以 LCD1602为例说明如何驱动液晶屏。 LCD1602 外接的控制接口有RS,R/W,E;数据接口为 DB7--DB0。总共有11 跟 线与单 片机的 I/O口连接,若使用标准的 51单片机,至少占用了一个端口再加上另一个端 口的部分 I/O 口。这再很多应用场合是不大可取的。所以很有必要减少连接数。从 其数据手册上介绍的 4线连接方式可以达到只使用 7个 I/O口即可满足要求,其中为 3 个控制口 RS , R/W , E 和数据口的 DB7--DB 4 ;写入数据或指令的顺序是先写高半个 字节,再写低半个字节。 其中 P2 口的高四位接到 LCD1602 的 DB7-DB4,P2.2-P2.3 分别接 RS,E; RW 接地

下面给出驱动源程序*/ /* -------------------------------------------------------- 液晶 LCD1602C 使用4 条数据线(D4~D7) ---------------------------------------------------------- */ /* ------------------------------------------------------------ LCD 引脚定义 1---GND 2---VCC 3---VO 4---RS 5---RW 6---EN 7 到 14--D0-D7 15--背景灯+ 16--背景灯- ---------------------------------------------------------------- */ #include #include #define LCD_DATA P2 sbit LCD1602_RS=P2^2; sbit LCD1602_EN=P2^3; //1602_RW 接地 int p=0; /* 函数说明 ----------------------------- */ void LCD_init(void);

LCD1602汇编显示程序

;1602显示ABC LCD_RS EQU P2.5 LCD_RW EQU P2.6 LCD_EN EQU P2.7 LCD_DATA EQU P3 ;----------------- ORG0000H JMP START ORG0030H ;----------------- LCD: CALL LCD_INIT MOV A, #80H CALL LCD_WCMD MOV A, #'A' CALL LCD_WDATA MOV A, #'B' CALL LCD_WDATA MOV A, #'C' CALL LCD_WDATA AJMP$ ;---------------- DELAY5MS: MOV R6, #10 DL1:DJNZ R7, $ DJNZ R6, DL1 RET ;---------------- LCD_INIT: CALL DELAY5MS MOV A, #38H CALL LCD_WCMD CALL DELAY5MS

CALL DELAY5MS MOV A, #06H CALL LCD_WCMD MOV A, #01H CALL LCD_WCMD MOV A, #0CH CALL LCD_WCMD RET ;===================================== LCD_WCMD: CALL CHECKBUSY CLR LCD_RS JMP W_LCD ;---------------- LCD_WDATA: CALL CHECKBUSY SETB LCD_RS W_LCD: CLR LCD_RW MOV LCD_DATA, A SETB LCD_EN NOP CLR LCD_EN RET ;---------------- CHECKBUSY: PUSH ACC MOV LCD_DATA, #255 CLR LCD_RS SETB LCD_RW BUSYLOOP: SETB LCD_EN NOP MOV A, LCD_DATA CLR LCD_EN JB ACC.7, BUSYLOOP POP ACC RET

安川伺服驱动器的常用故障代码

安川伺服驱动器的常用故障代码 A.00 绝对值数据错绝对值错误或没收到 A.02 参数中断用户参数检测不到 A.04 参数设置错误用户参数设置超出允许值 A.10 过流电源变压器过流 A.30 再生电路检查错误再生电路检查错误 A.31 位置错误脉冲溢出位置错误,脉冲超出参数Cn-1E设定值 A.40 主电路电压错误主电路电压出错 A.51 过速电机转速过快 A.71 过载(大负载) 电机几秒至几十秒过载运行 A.72 过载(小负载) 电机过载下连续运行 A.80 绝对值编码器差错绝对值编码器每转脉冲数出错ssszxx f A.81 绝对值编码器失效绝对值编码器电源不正常 A.82 绝对值编码器检测错误绝对值编码器检测不正常 A.83 绝对值编码器电池错误绝对值编码器电池电压不正常 A.84 绝对值编码器数据不对绝对值编码器数据接受不正常 A.85 绝对值编码器转速过高电机转速超过400转/分后编码器打开 A.A1 过热驱动器过热 A.B1 给定输入错误伺服驱动器CPU检测给定信号错误 A.C1 伺服过运行伺服电机(编码器)失控 A.C2 编码器输出相位错误编码器输出A、B、C相位出错 A.C3 编码器A相B相断路编码器A相B相没接 A.C4 编码器C相断路编码器C相没接 A.F1 电源缺相主电源一相没接 A.F3 电源失电电源被切断 CPF00 手持传输错误1 通电5秒后,手持与连接仍不对 CPF01 手持传输错误2 传输发生5次以上错误 A.99 无错误操作状态不正常 安川伺服报警代码 报警代码报警名称主要内容 A.00 绝对值数据错误不能接受绝对值数据或接受的绝对值数据异常A.02 参数破坏用户常数的“和数校验”结果异常 A.04 用户常数设定错误设定的“用户常数”超过设定范围 A.10 电流过大功率晶体管电流过大 A.30 测出再生异常再生处理回路异常 A.31 位置偏差脉冲溢出位置偏差脉冲超出了用户常数“溢出(Cn-1E)”的值

lcd1602显示程序

lcd1602显示程序 液晶显示简介①液晶显示原理 液晶显示的原理是利用液晶的物理特性,通过电压对其显示区域进行控制,有电就有显示,这样即可以显示出图形。液晶显示器具有厚度薄、适用于大规模集成电路直接驱动、易于实现全彩色显示的特点,目前已经被广泛应用在便携式电脑、数字摄像机、PDA移动通信工具等众多领域。 ②液晶显示器的分类 液晶显示的分类方法有很多种,通常可按其显示方式分为段式、字符式、点阵式等。除了黑白显示外,液晶显示器还有多灰度有彩色显示等。如果根据驱动方式来分,可以分为静态驱动(StaTIc)、单纯矩阵驱动(Simple Matrix)和主动矩阵驱动(AcTIve Matrix)三种。 ③液晶显示器各种图形的显示原理: 线段的显示 点阵图形式液晶由MN个显示单元组成,假设LCD显示屏有64行,每行有128列,每8列对应1字节的8位,即每行由16字节,共168=128个点组成,屏上6416个显示单元与显示RAM区1024字节相对应,每一字节的内容和显示屏上相应位置的亮暗对应。例如屏的第一行的亮暗由RAM区的000H00FH的16字节的内容决定,当(000H)=FFH时,则屏幕的左上角显示一条短亮线,长度为8个点;当(3FFH)=FFH时,则屏幕的右下角显示一条短亮线;当(000H)=FFH,(001H)=00H,(002H)=00H,(00EH)=00H,(00FH)=00H时,则在屏幕的顶部显示一条由8段亮线和8条暗线组成的虚线。这就是LCD显示的基本原理。 字符的显示 用LCD显示一个字符时比较复杂,因为一个字符由68或88点阵组成,既要找到和显示屏幕上某几个位置对应的显示RAM区的8字节,还要使每字节的不同位为1,其它的为0,为1的点亮,为0的不亮。这样一来就组成某个字符。但由于内带字符发生器的控制器来说,显示字符就比较简单了,可以让控制器工作在文本方式,根据在LCD上开始显

富士伺服驱动器报警代码

富士伺服驱动器报警代码 一、报警显示的含义 序号 显示 名称 说明 种类 1 oc1 过电流1 重大故障 2 oc2 过电流2 3 oS 超速 4 Hu 过电压 5 Et1 编码器异常1 6 Et2 编码器异常2 7 ct 控制电路异常 8 dE 存储器异常 9 Fb 保险丝断 10 cE 电机组合异常 11 tH 再生晶体管过热 12 Ec 编码器通信异常 13 ctE CONT 重复 14 oL1 过载1 15 oL2 过载2 16 rH4 浪涌电流抑制电路异常 17 LuP 主电路电压不足 轻微故障 18 rH1 内部再生电阻过热 19 rH2 外部再生电阻过热 20 rH3 再生晶体管异常 21 oF 偏差超出 22 AH 放大器过热 23 EH 编码器过热 24 dL1 ABS 数据丢失1 25 dL2 ABS 数据丢失2 26 dL3 ABS 数据丢失3 27 AF 多旋转溢出 28 ' E 初始化错误 29 ˉPoF 未给伺服电机通电 防撞开关急停 30 ˉPn0 速度零停止(通过输入强制停止信号,以速度零停止) 介质定位装置没有放下 31 =PP1 脉冲列输入运行中 正常状态显示 32 =Pot 检测正/负方向的超程信号中 原点位置时显示(Y 向驱动器显示)

二、报警的处理方法: oc1 过电流1:从伺服放大器输出的电流超过规定值 oc2 过电流2: 原因措施 伺服电机的输出配线错误修复动力线(U、V、W)的配线 确认电线(目测、导通检查),并更换 伺服电机的输出配线短路 伺服电机绝缘不良绝缘电阻测定(对地间在数MΩ以上) 伺服电机的故障线间电阻测定(各线间为数Ω) 再生电阻器的电阻值不合适更换为可适用范围的再生电阻器 因编码器的异常引起的电流不平稳更换伺服电机 未接地线连接地线 oS 超速:伺服电机的转速超过最高速度的1.1倍 原因措施 伺服电机的输出配线错误修复动力线(U、V、W)的配线 伺服电机的转速超速●延长PA1_37:加速时间 ●增大PA1_52:一次延迟S形时间常数 ●提高PA1_15:自整定增益1 Hu 过电压:伺服放大器内部直流电压高于上限值 原因措施 电源电压过高(刚接通电源后)●确认电源电压在规格范围内 ●若有功率改进用电容器则插入电抗器 外部再生电阻器的未连接或误配线连接外部再生电阻器 再生晶体管破损更换伺服放大器 Et1 编码器异常1:编码器的1转位置检测异常 Et2 编码器异常2 :编码器存储数据的读取异常 原因措施 来自编码器的数据异常使用屏蔽线以免爱噪音影响 编码器出现故障更换伺服电机 ct 控制电路异常:伺服放大器内部的控制电源电压存在异常,内部电路有出现的故障的可能性 原因措施 伺服放大器出现故障即使再次接通电源也未恢复时,更换伺服放 大器 dE 存储器异常:伺服放大器内保存参数数据损坏 原因措施

LCD1602资料及单片机对其驱动

技术支持:https://www.doczj.com/doc/2f2441191.html,/bbs 主 讲:wang1jin Wang1jin 带您从零学单片机 配套开发板:WJ-V4.0 AVR+51开发板 第三章:LCD 部分

技术支持:https://www.doczj.com/doc/2f2441191.html,/bbs 主 讲:wang1jin 单片机驱动LED ?LCD1602简介 ?LCD1602硬件原理图?LCD1602工作方式?LCD1602时序及应用?LCD1602显示应用流程 ?实例操作:在LCD1602上显示一个字符?实例操作:在LCD1602上显示一串字符?实例操作:在LCD1602上显示自定义图形

这里介绍的字符型液晶模块是一种用 5x7点阵图形来显示字符的液晶显示器,根据显示的容量可以分为1行16个字、2行16个字、2行20个字等等,这里我们使用常用的2行16个字的LCD1602液晶模块来介绍它的编程方法。 技术支持:https://www.doczj.com/doc/2f2441191.html,/bbs 主讲:wang1jin

LCD1602液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,其代码与标准的ASCII字符代码一致。因此,我们只要写入显示字符的ASCII码即可,这种标准化的设计给使用带来很大的方便。 比如大写的英文字母“A”的ASCII代码是01000001B (41H),显示时单片机往液晶模块写入显示指令,模块就把地址41H中的点阵字符图形显示出来,我们就能在相应位置上看到字母“A”。 技术支持:https://www.doczj.com/doc/2f2441191.html,/bbs 主讲:wang1jin

LCD1602液晶显示实验要点

实验报告 实验名称: [LCD1602液晶显示实验]姓名: 学号: 指导教师: 实验时间: [2013年6月15日] 信息与通信工程学院

LCD1602液晶显示实验 1.实验原理 1.1 基本原理 1.1.1 1602字符型LCD简介 字符型液晶显示模块是一种专门用于显示字母、数字、符号等点阵式LCD,目前常用16*1,16*2,20*2和40*2行等的模块。 1.1.2 1602LCD的基本参数及引脚功能 1602LCD分为带背光和不带背光两种,基控制器大部分为HD44780,带背光的比不带背光的厚,是否带背光在应用中并无差别,两者尺寸差别如下图1-2所示: 图1-2 1602LCD尺寸图 1.1602LCD主要技术参数: 显示容量: 16×2个字符 芯片工作电压: 4.5~5.5V 工作电流: 2.0mA(5.0V) 模块最佳工作电压: 5.0V 字符尺寸: 2.95×4.35(W×H)mm 2.引脚功能说明: 1602LCD采用标准的14脚(无背光)或16脚(带背光)接口,各引脚接口说明如表: 表1-3引脚接口说明表 编 符号引脚说明编号符号引脚说明 号 1 VSS 电源地9 D 2 数据 2 VDD 电源正极10 D 3 数据 3 VL 液晶显示偏压11 D 4 数据 4 RS 数据/命令选择12 D 5 数据 5 R/W 读/写选择13 D 6 数据 6 E 使能信号14 D 7 数据 7 D0 数据15 BLA 背光源正极 8 D1 数据16 BLK 背光源负极

1.1.3 1602LCD的指令说明及时序 1602液晶模块内部的控制器共有11条控制指令,如表1-4所示: 表1-4 控制命令表 序号指令RS R/W D7 D6 D5 D4 D3 D2 D1 D0 1 清显示0 0 0 0 0 0 0 0 0 1 2 光标返回0 0 0 0 0 0 0 0 1 * 3 置输入模式0 0 0 0 0 0 0 1 I/D S 4 显示开/关控制0 0 0 0 0 0 1 D C B 5 光标或字符移位0 0 0 0 0 1 S/C R/L * * 6 置功能0 0 0 0 1 DL N F * * 7 置字符发生存贮器 地址 0 0 0 1 字符发生存贮器地址 8 置数据存贮器地址0 0 1 显示数据存贮器地址 9 读忙标志或地址 0 1 BF 计数器地址 10 写数到CGRAM或 DDRAM) 1 0 要写的数据内容 11 从CGRAM或 DDRAM读数 1 1 读出的数据内容 1602液晶模块的读写操作、屏幕和光标的操作都是通过指令编程来实现的。(说明:1为高电平、0为低电平)读写操作时序如图1-5和1-6所示: 图1-5 读操作时序

已经采用过-LCD1602显示字符和(RAM)数字的汇编程序

单片机LCD1602显示字符和数字的汇编程序(无聊原创) 1,单片机和LCD1602的连线,和程序结果显示如下图: 2,LCD第一行显示字符XIAORENGUANG第二行显示RAM中40H到46H中的数字。程序如下: ORG 0000H AJMP MAIN RS EQU P2.4 RW EQU P2.5 E EQU P2.6 MAIN: MOV SP,#60H MOV 40H,#01H MOV 41H,#02H MOV 42H,#03H MOV 43H,#04H MOV 44H,#05H MOV 45H,#06H MOV 46H,#07H ACALL DD1 ;DD1是LCD初始化

MOV DPTR,#TABLE1 ACALL DD2;DD2是LCD第一行显示TABLE1 ACALL PPP ;PPP是LCD第二行显示RAM中40H到46H中的数据 SJMP $ DD1: MOV p0,#01H ;清屏 CALL ENABLE MOV p0,#38H ;显示功能 CALL ENABLE MOV p0,#0FH ;显示开关控制 CALL ENABLE MOV p0,#06H ;+1 CALL ENABLE RET DD2: MOV p0,#80H;第一行的开始位置 cALL ENABLE CALL WRITE1;到TABLE1取码? RET DD3: MOV p0,#0C0H;第二行的位置 CALL ENABLE CALL WRITE1;到TABLE2 取码 RET ENABLE: CLR RS ;送命令 CLR RW CLR E CALL DELAY SETB E RET WRITE1: MOV R1,#00H ;显示table中的值 A1: MOV A,R1;到table取码 MOVC A,@A+DPTR call wRITE2 ;显示到lcd INC R1 CJNE A,#00H,A1 ;是否到00h RET WRITE2:MOV p0,A ;显示 SETB RS CLR RW CLR E CALL DELAY SETB E RET

伺服驱动器报警解决方法..

保护功能 报警 代码 故障原因应对措施 控制电源 欠电压 11 控制电源逆变器上P、N 间电压低于规定值。1)交流电源电压太低。瞬时失电。 2)电源容量太小。 电源接通瞬间的冲击电流导致电压跌落。 3)驱动器(内部电路)有缺陷。 测量 L1C、L2C 和r、t 之间电压。 1)提高电源电压。更换电源。 2)增大电源容量。 3)请换用新的驱动器。 过电压 12 电源电压高过了允许输入电压的范围。 逆变器上 P、N 间电压超过了规定值。 电源电压太高。 存在容性负载或UPS(不间断电源),使得 线电压升高。 1)未接再生放电电阻。 2)外接的再生放电电阻不匹配,无法吸收再 生能量。 3)驱动器(内部电路)有缺陷。 测量 L1、L2 和L3 之间的相电压。 配备电压正确的电源。 排除容性负载。 1)用电表测量驱动器上P、B 间外接电阻阻值。如果读数是“∞”,说明电阻没有真正地接入。请换一个。 2)换用一个阻值和功率符合规定值的外接电阻。 3)请换用新的驱动器。 主电源 欠电压 13 当参数Pr65(主电源关断时欠电压报警触发 选择)设成1 时,L1、L3 相间电压发生瞬时 跌落,但至少是参数Pr6D(主电源关断检测 时间)所设定的时间;或者,在伺服使能(Servo-ON)状态下主电源逆变器P-N 间相 电压下降到规定值以下。

1)主电源电压太低。发生瞬时失电。 2)发生瞬时断电。 3)电源容量太小。 电源接通瞬间的冲击电流导致电压跌落。 4)缺相:应该输入3 相交流电的驱动器实际输入的是单相电。 5)驱动器(内部电路)有缺陷。 测量 L1、L2、L3 端子之间的相电压。 1)提高电源电压。 换用新的电源。 排除电磁继电器故障后再重新接通电源。 2)检查Pr6D 设定值,纠正各相接线。 3)请参照“附件清单”,增大电源容量。 4)正确连接电源的各相(L1、L2、L3)线路。单相电源请只接L1、L3 端子。 5)请换用新的驱动器。 过电流 和 接地错误 14 * 流入逆变器的电缆超过了规定值。 1)驱动器(内部电路、IGBT 或其他部件) 有缺陷。 2)电机电缆(U、V、W)短路了。 3)电机电缆(U、V、W)接地了。 4)电机烧坏了。 5)电机电缆接触不良。 6)频繁的伺服ON/OFF(SRV-ON)动作导 1)断开电机电缆,激活伺服ON 信号。如果马上出现此报警,请换用新驱动器。 2)检查电机电缆,确保U、V、W 没有短路。正确的连接电机电缆。 3)检查U、V、W 与“地线”各自的绝缘电阻。如果绝缘破坏,请换用新机器。 4)检查电机电缆U、V、W 之间的阻值。如果阻值不平衡,请换用新驱动器。 5)检查电机的U、V、W 端子是否有松动或未接,应保证可靠的电气接触。 6)请换用新驱动器。 Minas A4 系列驱动器技术资料选编- 61 - 保护功能 报警 代码 故障原因应对措施

[VHDL代码]LCD1602驱动

[VHDL代码]LCD1602驱动 library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; entity LCD1602 is Port ( Clk : in std_logic; --状态机时钟信号,同时也是液晶时钟信号,其周期应该满足液晶数据的建立时间Sec_low,Sec_high,Min_low,Min_high,Hour_low,Hour_high: in std_logic_vector(3 downto 0); LCD_RS : out std_logic; --寄存器选择信号 LCD_RW : out std_logic; --液晶读写信号 LCD_EN : out std_logic; --液晶时钟信号 LCD_Data : out std_logic_vector(7 downto 0)); --液晶数据信号 end LCD1602; architecture Behavioral of LCD1602 is type STATE_TYPE is (START,write_C,write_D,WRITE_BYTE_C,WRITE_BYTE_D,wait_3m1,wait_3m2,wait_5m1,wait_5m2,w ait_100m); type MY_ARRAY1 is array(0 to 4) of std_logic_vector(7 downto 0); type MY_ARRAY2 is array(0 to 7) of std_logic_vector(7 downto 0);--长度为14的8位/字数组 constant c_d: MY_ARRAY1:=(x"38",x"0c",x"06",x"01",x"84"); signal d_d: MY_ARRAY2:=(x"20",x"20",x"3A",x"20",x"20",x"3A",x"20",x"20"); signal STATE: STATE_TYPE:=START; signal w_c_flag : integer range 0 to 2:=0; signal w_d_flag : integer range 0 to 2:=0; signal write_c_cnt : integer range 0 to 5:=0; signal write_d_cnt : integer range 0 to 8:=0; signal cnt : integer range 0 to 10000:=0; signal count : integer range 0 to 10000:=0; begin LCD_RW <= '0' ; --写数据 d_d(0)<="0000"&Hour_high+x"30"; d_d(1)<="0000"&Hour_low+x"30"; d_d(3)<="0000"&Min_high+x"30"; d_d(4)<="0000"&Min_low+x"30"; d_d(6)<="0000"&Sec_high+x"30"; d_d(7)<="0000"&Sec_low+x"30";

1602液晶显示计算器电路图及程序

#include #include #include #include unsigned char code Error[]={"error"}; unsigned char code Systemerror[]={"system error"}; unsigned char code Lcd[]={"lcd calculate"}; char str[16]; sbit RS=P2^0; sbit RW=P2^1; sbit E=P2^2; sbit BF=P0^7; /*********************** 函数功能:延时1ms ***********************/ void delay1ms() { unsigned char i,j; for (i=0;i<10;i++) for (j=0;j<33;j++) ; } /************************ 函数功能:延时n毫秒 入口参数:n ************************/ void delaynms(unsigned char n) { unsigned char i; for (i=0;i

富士伺服驱动器的常用故障代码及其检查与维护

一、检查 1、警报检出内容 (图1) (按键面板的7段LED显示器以秒的间隔闪烁。) 2、警报检出时的动作 (1)在检出的同时自由运转 (图2) (2)以最大转矩减速,停止后自由运转 (图3) 二、维护 1、过电流 【显示】 (图4) 【检出内容】 主回路晶体的输出电流超过规定值。

【要因与处置】 (图5) 伺服马达的动力沛县有可能漏电或短路。 通常,对地间有数MΩ以上,线圈之间的电阻值均衡。 2、过速度 【显示】 (图6) 【检出内容】 伺服马达的回转速度超过最高速度的倍。 【要因与处置】 (图7) 马达的回转速度有可能出现峰突。 (图8) 3、过电压 【显示】 (图9) 【检出内容】 伺服驱动器内部的直流中间电压比上限值大。

【要因与处置】 (图10) 可以在按键面板的监视模式确认内部的中间电压。 On 16:直流中间电压(最大值)On 17:直流中间电压(最小值)约在420V时检出电压。 4、编码器异常 【显示】 (图11) 【检出内容】 伺服马达内部的编码器可能已损坏。 【要因与处置】 (图12) 编码器内部的CPU是以自我诊断的结果来检出警报的。 这时,伺服驱动器马达之间正在进行通信。 5、控制电流异常 【显示】 (图13) 【检出内容】

伺服驱动器内部的控制电源发生异常,有损坏的可能性。 【要因与处置】 (图14) 6、记忆体异常 【显示】 (图15) 【检出内容】 保存在伺服驱动器EEPROM内部的参数内容已损坏。 【要因与处置】 (图16) 发生记忆体异常时,请执行参数的初始化。 执行初始化之后仍然会检出记忆体异常时,必须更换驱动器。 7、回生晶体过热 【显示】 (图17) 【检出内容】 伺服驱动器内装的回生处理用晶体过热。 【要因与处置】

LCD1602驱动详解

一.接口 LCD1602是很多单片机爱好者较早接触的字符型液晶显示器,它的主控芯片是HD44780或者其它兼容芯片。刚开始接触它的大多是单片机的初学者。由于对它的不了解,不能随心所欲地对它进行驱动。经过一段时间的学习,我对它的驱动有了一点点心得,今天把它记录在这里,以备以后查阅。与此相仿的是LCD12864液晶显示器,它是一种图形点阵显示器,能显示的内容比LCD1602要丰富得多,除了普通字符外,还可以显示点阵图案,带有汉字库的还可以显示汉字,它的并行驱动方式与LCD1602相差无几,所以,在这里花点时间是值得的。 一般来说,LCD1602有16条引脚,据说还有14条引脚的,与16脚的相比缺少了背光电源A(15脚)和地线K(16脚)。我手里这块LCD16 02的型号是HJ1602A,是绘晶科技公司的产品,它有16条引脚。如图1所示:

图1 再来一张它的背面的,如图2所示:

图2它的16条引脚定义如下:

3. VO是液晶显示的偏压信号,可接10K的3296精密电位器。或同样阻值的RM065/RM063蓝白可调电阻。见图3。 图3 4. RS是命令/数据选择引脚,接单片机的一个I/O,当RS为低电 平时,选择命令;当RS为高电平时,选择数据。 5. RW是读/写选择引脚,接单片机的一个I/O,当RW为低电平时,向LCD1602写入命令或数据;当RW为高电平时,从LCD1602读取状态 或数据。如果不需要进行读取操作,可以直接将其接VSS。 6. E,执行命令的使能引脚,接单片机的一个I/O。 7. D0—D7,并行数据输入/输出引脚,可接单片机的P0—P3任意 的8个I/O口。如果接P0口,P0口应该接4.7K—10K的上拉电阻。如果是4线并行驱动,只须接4个I/O口。 8. A背光正极,可接一个10—47欧的限流电阻到VDD。 9. K背光负极,接VSS。见图4所示。

LM1602液晶显示程序

#include #define uchar unsigned char #define uint unsigned int unsigned char code tab1[16]=" Now time is: "; unsigned char tab2[16]=" 00:00:00 "; uchar second = 30; uchar minite = 11; uchar hour = 15; sbit RS = P2^5; sbit RW = P2^6; sbit E = P2^7; void delay() { int i,j; for(i=0; i<=100; i++) for(j=0; j<=20; j++); } void Write_Command(uchar command) { P0 = command; RS = 0; RW = 0; E = 1; delay(); E = 0; } void Write_Data(uchar Data) { P0 = Data; RS = 1; RW = 0; E = 1; delay(); E = 0; } void LCD_Init(void)//初始化 { Write_Command(0x01); Write_Command(0x38);

Write_Command(0x0c); Write_Command(0x06); } void LCD_Printfc(uchar hang,uchar lie,uchar sign) { uchar a; if(hang == 1) a = 0x80; if(hang == 2) a = 0xc0; a = a + lie; Write_Command(a); Write_Data(sign); } void LCD_Display(uchar *tab1) { uchar i; Write_Command(0x80); for(i=0; i<16; i++) { Write_Data(tab1[i]); delay(); } /* Write_Command(0xc0); for(i=0; i<16; i++) { Write_Data(tab2[i]); delay(); }*/ } void time_view(void) { if(second == 60) { minite ++; second = 0; } if(minite == 60) { hour++; minite = 0; } if(hour == 24)

lcd1602C语言驱动

/*LCD1602 驱动程序 */ display (行号,数据指针) displayUser (行号,列号,字符/字符串) Ddisplay (行号、列号、字符/字符串) Fldisplay (行号、列号、字符/字符串) /* 声明代码(放工程中需要包含的自定义头文件中) void delay(unsigned char n); void init(); void display(unsigned char a,unsigned char table[]); void write_date(uchar); void write_command(uchar); void displayUser(unsigned char hang,unsigned lie,unsigned char table[]); void Ddisplay(unsigned char hang,unsigned lie,unsigned char table[]); void Fldisplay(unsigned char hang,unsigned lie,unsigned char table[]); */ #include #define uchar unsigned char sbit rs=P2A 4; sbit rw=P2A5; sbit e=P2A6; uchar busyc,line; void delay(uchar n) { uchar x,y; for(x=n;x>0;x--) for(y=110;y>0;y--); } void busy(uchar busyc) { rs=0; rw=1;e=1; delay(1); busyc=P0; e=0; } void write_command(uchar command) { /* 程序用法: 1、按行显示: 2、定位显示 3、动态显示 4、闪烁显示 */

伦茨LENCE9300驱动器故障代码表

伦茨9300系列伦茨伺服驱动器故障代码表 2012-12-21 0:51:27 点击:125 伦茨驱动器故障代码表9300系列 优先显示含义 1 GLOBAL DRIVE INIT 键盘和控制器之间的初始化或通信错误 2 XXX - TRIP 活动行程(C0168/ 1的内容) 3 XXX - MESSAGE 活动消息(C0168/ 1的内容) 4 特别控制器状态: 4 Special controller states: 接通禁止 5 控制器源禁止(C0004的价值是在同一时间显示): STP1 端子X5/28 STP3 键盘或LE COM A/B/LI STP4 InterBus-S or Profibus STP5 系统总线(CAN) STP6 C0040 6 快速停止来源: QSP-term-Ext 在输入MCTRL-QSP的功能块MCTRL的高信号 (出厂设置应用于端子X5/E1和X5/E2的) QSP-C0135 键盘或端子A/B/LI QSP-AIF inter总线-S或ProFi系统总线 QSP-CAN 系统总线(CAN) 7 XXX - WARNING 活跃的警告(C0168/ 1的内容) 8 xxxx C0004的值 显示错误原因解决办法 --- 无错误- - CCr 系统故障强干扰对控制电缆检查控制电缆 CCr System fault 在布线的接地或接地回路确保布线合理 CE0 通讯错误转移过程中的控制指令通过自动化接口X1的错误在牢固的自动化模块和插件,如果有必要,螺栓下来 CE1 通讯错误 过程数据输入 对象CAN_IN_1 CAN_IN_1对象接收错误的数据,或通讯中断检查电缆在x4 检查变送器 增加监控时间,如果有必要根据C0357/ 1 CE2 通讯错误过程数据输入 对象CAN_IN_2 CAN_IN_2 对象接收错误的数据,或通讯中断检查电缆在x4 检查变送器下

51单片机控制1602LCD显示程序

LCD显示电路 #include sbit RS=P3^7; //寄存器选择位,将RS位定义为P2.0引脚 sbit RW=P3^6; //读写选择位,将RW位定义为P2.1引脚 sbit E=P2^7; //使能信号位,将E位定义为P2.2引脚 sbit BF=P0^7; //忙碌标志位,将BF位定义为P0.7引脚 #define Lcd_Data P0 #include #include //包含_nop_()函数定义的头文件 unsigned char code string1[ ]= {0x77,0x75,0x20,0x79,0x61,0x6E,0x67,0x20,0x79,0x61,0x6E,0x67,0x20,0x20,0x20,0x20}; //第一行显示的字符 void Lcd_delay1ms() // 函数功能:延时1ms //注:不同单片机不同晶振需要对此函数进行修改 { unsigned char i,j; for(i=0;i<90;i++) for(j=0;j<33;j++); } void Lcd_delay(unsigned int n) // 函数功能:延时若干毫秒,入口参数:n { unsigned int i; for(i=0;i

/***************************************************** 函数功能:判断液晶模块的忙碌状态 返回值:result。result=1,忙碌;result=0,不忙 ***************************************************/ bit Lcd_BusyTest(void) { bit result; RS=0; //根据规定,RS为低电平,RW为高电平时,可以读状态 RW=1; E=1; //E=1,才允许读写 _nop_(); //空操作 _nop_(); _nop_(); _nop_(); //空操作四个机器周期,给硬件反应时间 result=BF; //将忙碌标志电平赋给result E=0; return result; } /***************************************************** 函数功能:将模式设置指令或显示地址写入液晶模块 入口参数:dictate ***************************************************/ void Lcd_WriteCom (unsigned char dictate) { while(Lcd_BusyTest()==1); //如果忙就等待 RS=0; //根据规定,RS和R/W同时为低电平时,可以写入指令RW=0; E=0; //E置低电平(写指令时就是让E从0到1发生正跳变,所以应先置"0" _nop_(); _nop_(); //空操作两个机器周期,给硬件反应时间 Lcd_Data=dictate; //将数据送入P0口,即写入指令或地址 _nop_(); _nop_(); _nop_(); _nop_(); //空操作四个机器周期,给硬件反应时间 E=1; //E置高电平 _nop_(); _nop_(); _nop_(); _nop_(); //空操作四个机器周期,给硬件反应时间 E=0; //当E由高电平跳变成低电平时,液晶模块开始执行命令} /***************************************************** 函数功能:指定字符显示的实际地址 入口参数:x

LCD1602显示屏地驱动设置及例程

LCD1602显示屏的驱动设置及例程 一般来说,LCD1602有16条引脚,据说还有14条引脚的,与16脚的相比缺少了背光电源A(15脚)和地线K(16脚)。我手里这块LCD1602的型号是HJ1602A,是绘晶科 技公司的产品,它有16条引脚。如图1所示: 图1 再来一张它的背面的,如图2所示: 引脚号符号引脚说明引脚号符号引脚说明 1 VSS 电源地9 D 2 数据端口 2 VDD 电源正极10 D 3 数据端口 3 VO 偏压信号11 D 4 数据端口 4 RS 命令/数据12 D 5 数据端口 5 RW 读/写13 D 6 数据端口 6 E 使能14 D 7 数据端口 7 D0 数据端口15 A 背光正极

图3

图4 二.基本操作 LCD1602的基本操作分为四种: 1. 读状态:输入RS=0,RW=1,E=高脉冲。输出:D0—D7为状态字。 2. 读数据:输入RS=1,RW=1,E=高脉冲。输出:D0—D7为数据。 3. 写命令:输入RS=0,RW=0,E=高脉冲。输出:无。 4. 写数据:输入RS=1,RW=0,E=高脉冲。输出:无。 读操作时序图(如图5): 图5 写操作时序图(如图6):

图6 时序时间参数(如图7): 图7 三.DDRAM、CGROM和CGRAM DDRAM(Display Data RAM)就是显示数据RAM,用来寄存待显示的字符代码。共80个字节,其地址和屏幕的对应关系如下(如图8): 图8 DDRAM相当于计算机的显存,我们为了在屏幕上显示字符,就把字符代码送入显存,这样该字符就可以显示在屏幕上了。同样LCD1602共有80个字节的显存,即DDRAM。但L CD1602的显示屏幕只有16×2大小,因此,并不是所有写入DDRAM的字符代码都能在屏幕上显示出来,只有写在上图所示范围内的字符才可以显示出来,写在范围外的字符不

相关主题
文本预览
相关文档 最新文档