×
单片机 > 单片机程序设计 > 详情

AT89S52并口驱动LCD12864(ST7920芯片组)

发布时间:2020-06-19 发布时间:
|

1.8-bit并口程序 

;///////////////////////////////////////////////
;AT89S52与LCD12864接口实验
;LCD12864控制器为ST7920芯片组
;用12846显示汉字
;RS-P2.4,R/W-P2.5,E-P2.6
;/RET-P2.3,PSB-P2.1,P0-DB0~DB7
;/////////////////////////////////////////////
RS EQU P2.4
RW EQU P2.5
E  EQU P2.6
LDB EQU P0
LRET EQU P2.3
PSB EQU P2.1
COM EQU 40H;写入指令暂存器
DAT EQU 41H;显示数据暂存器
ADDR EQU 42H;显示地址寄存器
ORG 0000H
SJMP START
ORG 0030H
;主程序
START:MOV SP,50H
      MOV P2,#10000111B
      LCALL DEL40      ;
      SETB LRET
      LCALL RESET;LCD12864初始化
      
      MOV ADDR,#80H;显示第一页数据
      MOV DPTR,#DISA1
      LCALL LINE
      MOV ADDR,#90H
      MOV DPTR,#DISA2
      LCALL LINE
      MOV ADDR,#88H
      MOV DPTR,#DISA3
      LCALL LINE
      MOV ADDR,#98H
      MOV DPTR,#DISA4
      LCALL LINE
      LCALL DEL2S
            
      MOV ADDR,#80H;显示第二页数据
      MOV DPTR,#DISA5
      LCALL LINE
      MOV ADDR,#90H
      MOV DPTR,#DISA6
      LCALL LINE
      MOV ADDR,#88H
      MOV DPTR,#DISA7
      LCALL LINE
      MOV ADDR,#98H
      MOV DPTR,#DISA8
      LCALL LINE
      LCALL DEL2S
      
      MOV ADDR,#80H;显示第三页数据
      MOV DPTR,#DISB1
      LCALL LINE
      MOV ADDR,#90H
      MOV DPTR,#DISB2
      LCALL LINE
      MOV ADDR,#88H
      MOV DPTR,#DISB3
      LCALL LINE
      MOV ADDR,#98H
      MOV DPTR,#DISB4
      LCALL LINE
      LCALL DEL2S
      
      MOV ADDR,#80H;显示第四页数据
      MOV DPTR,#DISB5
      LCALL LINE
      MOV ADDR,#90H
      MOV DPTR,#DISB6
      LCALL LINE
      MOV ADDR,#88H
      MOV DPTR,#DISB7
      LCALL LINE
      MOV ADDR,#98H
      MOV DPTR,#DISB8
      LCALL LINE
      LCALL DEL2S
      
      LJMP START
               
;函数WCOM 写LCD指令
WCOM: CLR RS
      SETB RW
   D2:MOV LDB,#0FFH
      SETB E
      MOV A,LDB
      CLR E
      JB ACC.7,D2
      CLR RW
      MOV A,COM
      MOV LDB,A
      SETB E
      NOP 
      CLR E
      RET
      
;函数WDAT 写显示数据
WDAT: CLR RS
      SETB RW
   D3:MOV LDB,#0FFH                  
      SETB E
      MOV A,LDB
      CLR E
      JB ACC.7,D3
      SETB RS
      CLR RW
      MOV A,DAT
      MOV LDB,A
      SETB E
      NOP
      CLR E
      RET
      
;函数RESET LCD初始化程序
RESET:MOV COM,#00110000B;设置基本指令
      LCALL WCOM
      MOV COM,#00110000B;设置8bit并口
      LCALL WCOM
      MOV COM,#00001100B;开显示,关光标,关反白
      LCALL WCOM
      MOV COM,#00000001B;清屏,AC=0
      LCALL WCOM
      MOV COM,#00000110B;进入点设定
      LCALL WCOM
      RET      
            
;函数LINE 写入一行的显示数据     
LINE: MOV A,ADDR
      MOV COM,A
      LCALL WCOM
      MOV R0,#10H
      MOV R1,#00H
   D1:MOV A,R1
      MOVC A,@A+DPTR
      MOV DAT,A
      LCALL WDAT
      INC R1
      DJNZ R0,D1
      RET     

;函数DEL40 40MS延时D
DEL40:MOV R3,#10
   E2:MOV R4,#100
   E1:NOP
      NOP
      DJNZ R4,E1
      DJNZ R3,E2
      RET
      
;函数DEL2S 2S延时
DEL2S:MOV R2,#03
   E5:MOV R5,#100
   E4:MOV R6,#20
   E3:MOV R7,#248
      DJNZ R7,$
      DJNZ R6,E3
      DJNZ R5,E4
      DJNZ R2,E5
      RET

;显示内容区      
DISA1:DB "青岛佰谦工贸公司"
DISA2:DB "WWW.Baidu.COM.cn"
DISA3:DB "  13210813637  "
DISA4:DB "128*64全点阵显示"
DISA5:DB "图形以及字符显示"
DISA6:DB "2009年 7月 29 日"
DISA7:DB "设计者:赵玉庆  "
DISA8:DB "AT89C52 与ST7920"

DISB1:DB "昨夜星辰昨夜风,"
DISB2:DB "画楼西畔桂堂东。"
DISB3:DB "身无彩凤双飞翼,"
DISB4:DB "心有灵犀一点通。"
DISB5:DB "隔座送钩春酒暖,"
DISB6:DB "分曹射覆蜡灯红。"
DISB7:DB "嗟余听鼓应官去,"
DISB8:DB "走马兰台类转蓬。"
  
END

关键字:AT89S52  并口驱动  LCD12864  ST7920

『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
51单片机CO2检测显示程序解析