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

📄 jingtailcd.#1

📁 c8051f020的lcd显示 可以直接应用 lcd是12864,驱动器ks0108
💻 #1
字号:
#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:  
nop
        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 + -