LCM LM016L流程图:
LCD1602 LM016L仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)
LCD1602 LM016L单片机汇编源代码如下:
- ORG 0000H
- LJMP MAIN
- ORG 0030H
- MAIN: LCALL CSH
- MOV R2,#00H
- MOV R3,#00H
- MOV R0,#80H
- LCALL WRI
- MOV DPTR,#TAB
- FIRST:MOV A,R2
- MOVC A,@A+DPTR
- MOV R1,A
- LCALL WRD
- MOV 50H,#0FFH
- LCALL DELAY
- INC R2
- CJNE R2,#14,FIRST
- MOV R0,#0C0H
- LCALL WRI
- MOV DPTR,#TAB1
- SEC: MOV A,R3
- MOVC A,@A+DPTR
- MOV R1,A
- LCALL WRD
- MOV 50H,#0FFH
- LCALL DELAY
- INC R3
- CJNE R3,#16,SEC
- LJMP MAIN
- ;********延时子程序******
- ORG 0200H
- DELAY:MOV 51H,#0FFH
- DJNZ 51H,$
- DJNZ 50H,DELAY
- RET
- ;********写指令代码子程序******
- ORG 0250H
- WRI: CLR P2.0 ;RS=0 指令
- SETB P2.1 ;RW=1,忙标志和地址计数器读出,
- LOP0: SETB P2.2 ;E=1,读写使能,高电平有效
- MOV P0,#0FFH ;读P0口状态
- MOV A,P0 ;读P0口状态,读IR
- CLR P2.2
- ANL A,#80H
- CJNE A,#0,LOP0 ;D7脚为高时,忙于内部操作,一直检测
- CLR P2.0
- CLR P2.1
- SETB P2.2
- MOV P0,R0
- MOV 50H,#2 ;延时约510Us
- LCALL DELAY
- CLR P2.2 ;RS=0,RW=0,E下降沿,写指令代码
- RET
- ;********写数据子程序******
- ORG 0450H
- WRD: CLR P2.0 ;RS=0 指令
- SETB P2.1 ;RW=1,忙标志和地址计数器读出,
- LOP1: SETB P2.2 ;E=1,读写使能,高电平有效
- MOV P0,#0FFH ;读P0口状态
- MOV A,P0 ;读P0口状态,读IR
- CLR P2.2
- ANL A,#10000000B
- CJNE A,#0,LOP1 ;D7脚为高时,忙于内部操作,一直检测
- SETB P2.0
- CLR P2.1
- MOV P0,R1
- MOV 50H,#2
- LCALL DELAY
- SETB P2.2
- MOV 50H,#2
- LCALL DELAY
- CLR P2.2
- RET
- ;********初始命令子程序******
- ORG 0600H
- CSH: MOV R0,#38H
- LCALL WRI ;功能设置L L L L H H(DL 8位数据接口模式) H(双N) L(F) L L 双列显示,字形5*7
- MOV R0,#0FH
- LCALL WRI ;LL L L L L H H H H 开显示,光标闪烁
- MOV R0,#01H
- LCALL WRI ;清除LCD显示屏
- RET
- ORG 0800H
- TAB: DB 57H,78H,79H,20H,69H,73H,20H,61H,20H,67H,69H,72H,6CH,2EH ;Wxy is a girl.
- ORG 0850H
- TAB1: DB 57H,61H,6EH,67H,78H,79H,32H,30H,31H,36H,30H,31H,32H,33H,31H,32H ;Wangxy2016012312
- END
复制代码
所有资料51hei提供下载:
11LCM控制实验.rar
(47.71 KB, 下载次数: 57)
|