原创 液晶1602全功能

2010-3-3 22:49 1877 2 4 分类: MCU/ 嵌入式

;===============功能提要====================
;1602液晶屏的静态显示程序与用户自定RAM的使用
;本课难点在于初始化LCD指令的功能
;本讲重要和难点为液晶的通信协议
;===========================================
RS   BIT P2.0     ;RS位为1表示送数据,为0表示送指令
RW   BIT P2.1     ;RW位为1表示读,为0表示写。
E    BIT P2.2     ;E位为1表示允许开关打开,为0表示关闭传送通道。
COM  DATA 30H     ;送指令寄存器
DAT  DATA 31H     ;读数据寄存器
ORG 0000H
MAIN:    MOV SP,#80H
         LCALL CSH
         LCALL CGRAM
         LCALL LCD1H
         LCALL LCD2H
         SJMP $


CSH:     MOV R2,#0
;初始化LCD
CSLCD:   MOV COM,#38H
         ACALL WRI
         MOV COM,#0CH
         ACALL WRI
         MOV COM,#06H
         ACALL WRI
         MOV COM,#01H
         ACALL WRI
         RET
CGRAM:   MOV COM,#40H
         ACALL WRI
LCG1:    LCALL CB
         ACALL WRD
         CJNE R2,#32,LCG1
         MOV R2,#0
         RET
LCD1H:   MOV COM,#80H     ;选择1602液晶第一行的指令
         ACALL WRI
L1H1:    LCALL CB1
         ACALL WRD
         CJNE R2,#16,L1H1
         RET
LCD2H:   MOV COM,#0C0H    ;选择1602液晶第二行的指令
         ACALL WRI
L2H1:    LCALL CB1
         ACALL WRD
         CJNE R2,#32,L2H1
         MOV R2,#0
         RET


CB:      MOV DPTR,#TAB
         LCALL CB2
         RET
CB1:     MOV DPTR,#TABLE
CB2:     MOV A,R2
         MOVC A,@A+DPTR
         MOV DAT,A
         INC R2
         RET
;1602通信协议
;=================================
WRI:     ACALL RDBF    ;调用忙标志位诊断(忙标志是否空闲)
         CLR RW
         MOV P0,COM    ;把我们写的指令送给1602
         SETB E        ;打开允许通信(注:打开通信后,后面一定要跟着关闭)
         CLR E
         RET
WRD:     ACALL RDBF
         SETB RS
         CLR RW
         MOV P0,DAT    ;把我们写的数据送给1602
         SETB E
         CLR E
         RET
RDBF:    CLR RS        ;选择送指令通道
         SETB RW       ;选中读
LBF1:    MOV P0,#80H   ;把忙标志置1
         SETB E
         MOV A,P0      ;把忙标志位送给累加器做诊断
         CLR E
         JB ACC.7,LBF1 ;忙标志位为0表示空闲,空闲就退出
         RET
;=================================
TAB:
DB 04H,0FH,12H,0FH,0AH,1FH,02H,00H
DB 0FH,09H,0FH,09H,0FH,09H,13H,00H
DB 1FH,11H,11H,1FH,11H,11H,1FH,00H
DB 0CH,12H,12H,0CH,00H,00H,00H,00H
TABLE:
DB '2011',00H,'01',01H,'11'02H,' 12',03H,'C'
DB 'LunShang LanQu86'
END

PARTNER CONTENT

文章评论2条评论)

登录后参与讨论

dwwzl 2010-3-8 09:15

不错的,支持一下

用户1547065 2010-3-6 20:25

程序很简洁啊 用汇编的都是牛人
相关推荐阅读
用户1520859 2010-03-01 15:17
补泉洲市单片机竞赛题目
题目:多种模式流水灯控制电路<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />控制要求...
用户1520859 2010-02-11 12:47
1608液晶程序
;=========这是静态液晶1608的程序==========;应有人需要本文先上传给大家做参考;注释等到3月份我再来补上去;有紧用的请联系我QQ,QQ本程序有给;加好友请备注为EDNchina....
用户1520859 2010-02-09 21:04
2010年泉洲市单片机竞赛题
;==============这课要点为中断与多分支===================;这我凭印象所再做的程序题目2010年1月26日泉洲市赛竞赛题;我目前没题目要求材料,要等到我进校才能够再拿到...
用户1520859 2010-02-07 15:35
汇编的温度传感器
这是经过很大程度的浓缩而成的,最大意义是为了让使用者能够“一目了然”的简单感受,不让其因程序太长太多而心情沉甸、无力,而是让其以轻松的心情去阅读,让你越看越有激情。;============功能提要=...
用户1520859 2010-01-24 20:33
ds1302
;========功能提要=========;DS1302显示时间程序;本课重点为DS1302的时序;=========================SCLK BIT P2.3     ;时钟线(当...
我要评论
2
2
关闭 站长推荐上一条 /4 下一条