毕业论文论文范文课程设计实践报告法律论文英语论文教学论文医学论文农学论文艺术论文行政论文管理论文计算机安全
您现在的位置: 毕业论文 >> 论文 >> 正文

常用液晶显示模块驱动程序设计 第11页

更新时间:2009-6-13:  来源:毕业论文
常用液晶显示模块驱动程序设计 第11页
附录B 程序清单
附录B.1 LM061A的应用程序
程序1.使LM061A显示数字
功能:开机后在屏幕上显示0123456个数字
;主程序
CS BIT P1.0
WRR BIT P1.1
RDD BIT P1.2
DAT BIT P1.3
ORG 00H
AJMP INITIAL
ORG 30H
INITIAL:MOV A,#29H;初始化定义
LCALL LCM_WRCOM
MOV A,#18H;RC工作方式
LCALL LCM_WRCOM
MOV A,#03H;开显示
LCALL LCM_WRCOM
MOV A,#1;开振荡器
LCALL LCM_WRCOM
MOV R4,#6
MOV R5,#0
;***********主程序********
MAIN:MOV A,R5;     R5是地址计数器
MOV DPTR,#TAB;TAB中装的是显示数据的首地址
MOVC A,@A+DPTR
MOV R6,A;
LCALL LCM_DATA
INC R5
DJNZ R4,MAIN
AJMP $   ;文持输入状态
;**********写命令子程序*************
LCD_WRCOM:CLR CS
SETB DAT  ;写入命令码前缀100,此处为1
CLR WRR
SETB WRR
CLR DAT   ;此处为0
CLR WRR
SETB WR
CLR DAT   ;此处为0
CLR WRR
SETB WR
MOV R7,#8  ;命令码长度为8位
LOOP1:    RLC A
MOV DAT,C
CLR WRR
SETB WRR
DJNZ R7,LOOP1;位数据未送完则继续
CLR DAT   ;反之写入命令码的最后一位0
CLR WRR
SETB WRR
SETB CS
SETB DAT  ;写完指令码后LCM数据位要至高电平
RET
;*****写数据子程序**********
LCM_DATA: CLR CS
SETB DAT  ;写入数据码前缀1010,此处为1
CLR WRR
SETB WRR;
;***************
SETB DAT  ;此处为1
CLR WRR
SETB WRR;
;*****************
CLR DAT   ;此处为0
CLR WRR
SETB WR;
;*****************
MOV R7,#5;地址码长度为5位
MOV A,R5;
LOOP2:  RLC A
MOV DAT,C
CLR WRR
SETB WR
DJNZ R7,LOOP2;5位地址未送完则继续
MOV R7,#8
MOV A,R6
LOOP3:  RLC A
MOV DAT,C
CLR WRR
SETB WR
;**************
DJNZ R7,LOOP3;8位数据未送完则继续
SETB CS
SETB DAT  ;写完数据码后LCM数据位DAT要至高电平
RET
TAB:DB 0B7H,06H,0E5H,0C7H,56H;0.,1,2,3,4
DB 0D3H,0F3H,07H,0F7H,0D7H;5,6,7,8,9
DB 77H,0F2H,0B1H,0E6H,0F1H;A,B,C,D,E

附录B.2 LCM1602的应用程序
程序1. 使LCD在不同位置显示字符
功能说明:单片机接有液晶显示器,开机后在显示器第一行第二个位置上显示“L”,在第二行第五个位置显示“G”。本节电路见图3.3.
本节程序由主程序,初始化子程序,写指令子程序,判忙子程序和写数据子程序所构成,再设定第一行显示数据位置显示“A”后,又设定了第二行显示 数据的位置并输出显示数据“B”
(1)主程序流程图下图所示

 

 

 

 

 


附图2 LCM1602显示两个字符的程序流程图
(2)主程序
;********89C51引脚定义********
 RS BIT P3.3
 R_W BIT P3.4
 E BIT P3.5
 DB0_DB7 EQU P1
;*******程序开始********
 ORG 0000H
 LJMP MAIN
;*******主程序*******
 ORG 0030H
MAIN:MOV LCD,#00000001B;清屏,光标复位
ACALL WR_COM;    调用写指令子程序
ACALL INITIAL;    调用初始化子程序

MOV LCD #81H;     写入第一行第二个位置
ACALL WR_COM;   调用写指令子程序
www.youerw.com ACALL WR_DATA;    调用写数据子程序
JMP $;     文持当前输入状态
; *******初始化子程序*******
INITIAL:MOV A,#00111000B;  设置8位,2行,5*7点阵
 LCALL WRITE_COM;       调用写指令子程序
 MOV A,#00001110B ;     显示器开,允许光标闪烁
 LCALL WRITE_COM ;  调用写指令子程序
 MOV A,#00000110B ;  文字不动,光标自动右移
 LCALL WRITE_COM ;  调用写指令子程序
 RET
;******写命令子程序***********
WRITE_COM:
 CLR RS ;   RS=0,选择指令寄存器
 CLR R_W;   RW=0,选择写模式
 CLR E;   E=0,禁止读/写LCM 
    LCALL CHECK_BUSY;  调用判断忙碌子程序          
SETB E;   E=1 ,允许读/写LCM                                      
 RET;    子程序返回
;*********查忙子程序***********
CHECK_BUSY:  
MOV LCD,#0FFH;     此时不接受外来指令
 SETB R_W;          RW=1, 选择写模式
 CLR RS;      RS=0,选择指令寄存器
 CLR E;      E=0,禁止读/写LCM
NOP ;              延时1us
 SETB E;           E=1,允许读/写LCM
 JB LCD.7,CHECK_BUSY;若忙碌则循环等待
 RET;                 子程序返回
;*********写数据子程序************
WRITE_DATA:
SETB RS ;   RS=1,选择数据 寄存器
 CLR R_W;   RW=0,选择写模式
 CLR E;       E=0,禁止读/写LCM 
    LCALL CHECK_BUSY;  调用判断忙碌子程序          
SETB E;   E=1 ,允许读/写LCM                                      
 RET;    子程序返回

 << 上一页  [11] [12] [13] [14] [15] 下一页

常用液晶显示模块驱动程序设计 第11页下载如图片无法显示或论文不完整,请联系qq752018766
设为首页 | 联系站长 | 友情链接 | 网站地图 |

copyright©youerw.com 优文论文网 严禁转载
如果本毕业论文网损害了您的利益或者侵犯了您的权利,请及时联系,我们一定会及时改正。