⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 jingtailcd.#2

📁 c8051f020的lcd显示 可以直接应用 lcd是12864,驱动器ks0108
💻 #2
字号:
#include <c8051f020.inc> 
;***********定义**************
  CSA  EQU  P2.0    ;液晶片选在(左,前)显示
  CSB  EQU  P2.1    ;在(右、后)显示
  E    EQU  P2.4    ;使能信号
  DI   EQU  P2.2    ;选择存指令还是数据单元
  RW   EQU  P2.3
  ;(P7口:LCD的DB口)
  DAT        EQU  61H     ;字符数据
  COM        EQU  62H     ;液晶数据与指令的传送
  JCS1CS2    EQU  63H     ;片选
  COMXSTART  EQU  64H     ;起始页地址存放单元
  COMXEND    EQU  65H     ;终止页地址存放单元
  COMYSTART  EQU  66H     ;起始列地址存放单元
  COMYEND    EQU  67H     ;终止列地址存放单元

;*********************LCD*****************************
    ORG 00H

START:	MOV SP,#60H
        MOV WDTCN,#0DEH
      	MOV WDTCN,#0ADH
 ;       LCALL PORT_INIT
 ;       LCALL LCD_INIT
     
        MOV   COMXSTART,#0B8H           ;液晶清屏
        MOV   COMXEND,  #0BFH
        MOV   COMYSTART,#40H
        MOV   COMYEND,  #7FH
 ;       LCALL CLEAR
 ;       LCALL GUDING
main:  
clr  p2.5
lcall	delay
lcall	delay
lcall	delay
lcall	delay
lcall	delay
lcall	delay
lcall	delay
lcall	delay
lcall	delay
lcall	delay
lcall	delay
 NOP
        NOP
        NOP
        NOP
setb p2.5
        JMP   MAIN
;***************测得数据前面为"实测为:"*********************
GUDING:   MOV   DPTR,     #SHI
          MOV   COMXSTART,#0BAH
          MOV   COMXEND,  #0BBH   ;实
          MOV   COMYSTART,#40H
          MOV   COMYEND,  #4FH
          MOV   JCS1CS2,  #00H
          LCALL DISP

          MOV   DPTR,     #CE
          MOV   COMXSTART,#0BAH
          MOV   COMXEND,  #0BBH   ;测
          MOV   COMYSTART,#50H
          MOV   COMYEND,  #5FH
          MOV   JCS1CS2,  #00H
          LCALL DISP

          MOV   DPTR,     #MAOHAO
          MOV   COMXSTART,#0BAH
          MOV   COMXEND,  #0BBH   ;:
          MOV   COMYSTART,#60H
          MOV   COMYEND,  #6FH
          MOV   JCS1CS2,  #00H
          LCALL DISP
          RET
;*****************LCD初始化*********************
LCD_INIT:MOV        COM,#3FH
         LCALL      PRL0
         MOV        COM,#0C0H
         LCALL      PRL0
         RET
;******************清屏程序*********************
CLEAR:   MOV        R4,#00H        ;页面地址暂存器设置
CLEAR1:  MOV        A,R4
         ORL        A, #0B8H       ;"或"页面地址设置代码
         MOV        COM,A          ;页面地址设置
         lcall      PRL0
         MOV        COM,#40H       ;列地址设置为"0"
         LCALL      PRL0
         MOV        R3, #40H       ;一页清64个字节
CLEAR2:  MOV        DAT,#00H       ;显示数据为"0"
         LCALL      PRL1
         DJNZ       R3,CLEAR2      ;页内字节清零循环
         INC        R4             ;页地址暂存器加1
         CJNE       R4,#08H,CLEAR1 ;RAM区清零循环
         RET
     ;===================================================
     ;             WRITE COMMAND PROGRAM                 
     ;===================================================
PRL0:                          ;写命令子程序
          SETB   CSA
          SETB   CSB
          CLR    DI
          CLR    RW
PRL01:    NOP
          NOP
          MOV    P7,COM
          SETB   E
          nop
          CLR    E
          RET
    ;==================================================
    ;             WRITE DATA PROGRAM
    ;==================================================
PRL1:                           ;写数据子程序
           PUSH   ACC
           SETB   CSA                              ;Write data
           SETB   CSB
PRL101:    NOP
           NOP
           MOV     P7,DAT
           SETB    DI
           SETB    E
           NOP
           CLR     E
           POP     ACC
           RET
;***********************************************************
DISP:      PUSH    ACC
           PUSH    PSW
           SETB    RS0
           CLR     RS1
           MOV     R0,#COMXSTART
           MOV     R1,#COMYSTART
           INC     COMXEND
           INC     COMYEND
PUT1:      MOV     A,@R0
           MOV     COM,A              ;Set PAGE
           LCALL   PRL0
           MOV     A,@R1            ;Set LINE
           MOV     COM,A
           LCALL   PRL0
PUT2:     
; LCALL   WORD
           LCALL   PRL11
           MOV     A,@R1
           INC     A
           MOV     @R1,A
           CJNE    A,COMYEND,PUT2 
           MOV     A,COM
           MOV     @R1,A
           MOV     A,@R0
           INC     A
           MOV     @R0,A
           CJNE    A,COMXEND,PUT1
           POP     PSW
           POP     ACC
           RET
;***********************************************************           
;WORD:      ;查表程序
;           MOV     A,#00H
;           MOVC    A,@A+DPTR
;           MOV     DAT,A
;           INC     DPTR
;           RET
;************************************************************           
;写数据子程序
PRL11:     MOV     A,JCS1CS2
           CJNE    A,#00H,PRL1111
           SETB    CSA ;选择左片
           CLR     CSB
           LJMP    PRL111
PRL1111:   CLR     CSA ;选择右片
           SETB    CSB
PRL111:    MOV     P7,DAT
           SETB    DI
           CLR     RW
           SETB    E
           nop
           nop
           CLR     E
           RET
   ;********************C8051F020 I/O口初始化**********************
PORT_INIT: MOV XBR0,#00H
           MOV XBR1,#00H
           MOV XBR2,#40H
					 mov p2mdout,#0ffh
           
           RET
					 	delay:  mov r4,#20
  d2 :  mov r5,#248
        djnz r5,$
        djnz r4,d2
        ret
   ;***************************************************************
SHI:
;--  文字:  实  --

DB  000,010H,00CH,004H,04CH,0B4H,094H,005H,0F6H,004H,004H,004H,014H,00CH,004H,000
DB  000,082H,082H,042H,042H,023H,012H,00AH,007H,00AH,012H,0E2H,042H,002H,002H,000
CE:
;--  文字:  测  --

DB  008H,031H,086H,060H,000,0FEH,002H,0F2H,002H,0FEH,000,0F8H,000,000,0FFH,000
DB  004H,0FCH,003H,000,080H,047H,030H,00FH,010H,067H,000,007H,040H,080H,07FH,000
MAOHAO:
;--  文字:  :   --

DB  000,000,000,0C0H,0C0H,000,000,000,000,000,000,000,000,000,000,000
DB  000,000,000,030H,030H,000,000,000,000,000,000,000,000,000,000,000

END

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -