分享一個51單片機的LCD1602顯示程序
單片機源程序如下:
- RS EQU P1.1
- RW EQU P1.2
- E EQU P1.3
- ORG 0000H
- AJMP MAIN
- ORG 0030H
- MAIN:
- CLR RS
- CLR E
- CLR RW
- MOV SP,#60H
- MOV P0,#01H ;清屏
- CLR RS ;送命令
- CLR RW
- CLR E
- LCALL DELAY
- SETB E
- MOV P0,#38H ;顯示功能
- LCALL ENABLE
- MOV P0,#0FH ;顯示開關控制
- LCALL ENABLE
- MOV P0,#06H ;顯示光標右移加1
- LCALL ENABLE
- MOV DPTR,#TABLE1
- ACALL DD2;DD2是LCD第一行顯示TABLE1
- ACALL PPP ;PPP是LCD第二行顯示TAB
- SJMP $
- DD2: MOV P0,#80H;第一行的開始位置
- LCALL ENABLE
- LCALL WRITE1;到TABLE1取碼?
- RET
- ENABLE:
- CLR RS ;送命令
- CLR RW
- CLR E
- LCALL DELAY
- SETB E
- RET
- WRITE1: MOV R1,#00H ;顯示table中的值
- A1: MOV A,R1;到table取碼
- MOVC A,@A+DPTR
- LCALL 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
- DELAY:
- MOV R4,#10
- D1:MOV R5,#0F8H
- D2:DJNZ R5,D2
- DJNZ R4,D1
- RET
- PPP:
- MOV P0,#0C0H;第二行的位置
- LCALL ENABLE
- MOV DPTR,#TAB;顯示
- LCALL WRITE3;到TAB取碼
- RET
- WRITE3: MOV R1,#00H ;顯示table中的值
- A2: MOV A,R1;到table取碼
- MOVC A,@A+DPTR
- LCALL WRITE2 ;顯示到lcd
- INC R1
- CJNE A,#00H,A2 ;是否到00h
- RET
- ORG 0C000H
- TABLE1: db"NAME: amy ",00H
- TAB: db"Tel:13218892322 ",00H
復制代碼
所有資料51hei提供下載:
正確代碼.zip
(4.35 KB, 下載次數: 56)
2018-4-15 17:01 上傳
點擊文件名下載附件
|