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

📄 x1228.asm

📁 51单片机读写X1228源程序
💻 ASM
字号:
$NOMOD51

NAME	X1228

P0	DATA	080H
P1	DATA	090H
P2	DATA	0A0H
P3	DATA	0B0H
T0	BIT	0B0H.4
AC	BIT	0D0H.6
T1	BIT	0B0H.5
T2	BIT	090H.0
EA	BIT	0A8H.7
IE	DATA	0A8H
EXF2	BIT	0C8H.6
RD	BIT	0B0H.7
ES	BIT	0A8H.4
IP	DATA	0B8H
RI	BIT	098H.0
INT0	BIT	0B0H.2
CY	BIT	0D0H.7
TI	BIT	098H.1
INT1	BIT	0B0H.3
RCAP2H	DATA	0CBH
PS	BIT	0B8H.4
SP	DATA	081H
T2EX	BIT	090H.1
OV	BIT	0D0H.2
RCAP2L	DATA	0CAH
C_T2	BIT	0C8H.1
WR	BIT	0B0H.6
RCLK	BIT	0C8H.5
TCLK	BIT	0C8H.4
SBUF	DATA	099H
PCON	DATA	087H
SCON	DATA	098H
TMOD	DATA	089H
TCON	DATA	088H
IE0	BIT	088H.1
IE1	BIT	088H.3
B	DATA	0F0H
CP_RL2	BIT	0C8H.0
ACC	DATA	0E0H
ET0	BIT	0A8H.1
ET1	BIT	0A8H.3
TF0	BIT	088H.5
ET2	BIT	0A8H.5
TF1	BIT	088H.7
TF2	BIT	0C8H.7
RB8	BIT	098H.2
TH0	DATA	08CH
EX0	BIT	0A8H.0
IT0	BIT	088H.0
TH1	DATA	08DH
TB8	BIT	098H.3
EX1	BIT	0A8H.2
IT1	BIT	088H.2
TH2	DATA	0CDH
P	BIT	0D0H.0
SM0	BIT	098H.7
TL0	DATA	08AH
SM1	BIT	098H.6
TL1	DATA	08BH
SM2	BIT	098H.5
TL2	DATA	0CCH
PT0	BIT	0B8H.1
PT1	BIT	0B8H.3
RS0	BIT	0D0H.3
PT2	BIT	0B8H.5
TR0	BIT	088H.4
RS1	BIT	0D0H.4
TR1	BIT	088H.6
TR2	BIT	0C8H.2
PX0	BIT	0B8H.0
PX1	BIT	0B8H.2
DPH	DATA	083H
DPL	DATA	082H
EXEN2	BIT	0C8H.3
REN	BIT	098H.4
T2CON	DATA	0C8H
RXD	BIT	0B0H.0
TXD	BIT	0B0H.1
F0	BIT	0D0H.5
PSW	DATA	0D0H
;------------ --------- --------------------------------
;硬件定义区
;------------ --------- --------------------------------
XSCL          EQU       P1.0
XSDA          EQU       P1.1
LCDP0         EQU       80f0H
LCDP1         EQU       84f0H
LCDP2         EQU       88f0H
LCDP3         EQU       8Cf0H
ZKHA          EQU       8003H
PRN           EQU       8000H
;------------ --------- --------------------------------
BUF           EQU       7000H
;------------ --------- --------------------------------
XCONT         EQU       7210H
XRTC          EQU       7230H
;------------ --------- --------------------------------
;字节定义区
;------------ --------- --------------------------------
FCOLORH       EQU       30H             ;当前前景色
FCOLORL       EQU       31H
BCOLORH       EQU       32H             ;当前背景色
BCOLORL       EQU       33H
CUXH          EQU       34H             ;当前字符显示点位置
CUXL          EQU       35H
CUY           EQU       36H
DSPXH         EQU       37H             ;当前显示起始点位置
DSPXL         EQU       38H
DSPY          EQU       39H
DSPPAGE       EQU       3AH             ;当前显示页
HHIGHT        EQU       3BH             ;显示行高
HWIDE         EQU       3CH             ;显示字符宽
HZLEFT        EQU       3DH             ;汉字符左空
HZTOP         EQU       3EH             ;汉字符上空
CCOLORH       EQU       3FH             ;光标颜色
CCOLORL       EQU       40H
;CPOSXH        EQU       41H             ;光标位置
;CPOSXL        EQU       42H
;CPOSY         EQU       43H
DSPMODE       EQU       44H             ;当前显示模式寄存器值
EWIDE         EQU       45H             ;英文字符宽
ELEFT         EQU       46H             ;英文左空

?PR?_x1228?X1228 SEGMENT CODE
	PUBLIC	_x1228
	RSEG  ?PR?_x1228?X1228
_X1228:
;------------ --------- --------------------------------
;              CLR       TR0
              MOV       A,R7
              CLR       C
              RLC       A
              CLR       C
              RLC       A
              MOV       DPTR,#XJMP
              JMP       @A+DPTR
XJMP:         LJMP      XREAD
              DB        0
              LJMP      XWRITE
              DB        0
              LJMP      XRCONT
              DB        0
              LJMP      XWCONT
              DB        0
              LJMP      XRRTC
              DB        0
              LJMP      XWRTC

;------------ --------- --------------------------------
XSTART:       SETB      XSCL
              SETB      XSDA
              CLR       XSDA
              CLR       XSCL
              RET
;------------ --------- --------------------------------
XEND:         CLR       XSDA
              CLR       XSCL
              NOP
              SETB      XSCL
              SETB      XSDA
              RET
;------------ --------- --------------------------------
XSEND:        MOV       R7,#8
XSEND1:       RLC       A
              MOV       XSDA,C
              SETB      XSCL
              CLR       XSCL
              DJNZ      R7,XSEND1
              SETB      XSDA
              SETB      XSCL
              JB        XSDA,$
              MOV       C,XSDA
              CLR       XSCL
              RET
;------------ --------- --------------------------------
XRCV:         MOV       R7,#8
XRCV1:        SETB      XSCL
              MOV       C,XSDA
              RLC       A
              CLR       XSCL
              DJNZ      R7,XRCV1
              RET
;------------ --------- --------------------------------
XACK:         CLR       XSDA
              SETB      XSCL
              CLR       XSCL
              SETB      XSDA
              RET
;------------ --------- --------------------------------
XWEN:         LCALL     XSTART
              MOV       A,#11011110B
              LCALL     XSEND
              MOV       A,#0
              LCALL     XSEND
              MOV       A,#3FH
              LCALL     XSEND
              MOV       A,#2
              LCALL     XSEND
              LCALL     XSTART
              MOV       A,#11011110B
              LCALL     XSEND
              MOV       A,#0
              LCALL     XSEND
              MOV       A,#3FH
              LCALL     XSEND
              MOV       A,#6
              LCALL     XSEND
              LCALL     XEND
              RET
;------------ --------- --------------------------------
XREAD:        MOV       DPTR,#BUF
              MOV       A,#10101110B
              LCALL     XSTART
              LCALL     XSEND
              MOV       A,DPH
              ANL       A,#1
              LCALL     XSEND
              MOV       A,DPL
              LCALL     XSEND
              LCALL     XSTART
              MOV       A,#10101111B
              LCALL     XSEND
              MOV       R5,#8
XREAD2:       MOV       R6,#64
XREAD1:       LCALL     XRCV
              LCALL     XACK
              MOVX      @DPTR,A
              INC       DPTR
              DJNZ      R6,XREAD1
              DJNZ      R5,XREAD2
              LCALL     XRCV
              LCALL     XEND
;              SETB      TR0
              RET
;------------ --------- --------------------------------
XWRITE:       MOV       DPTR,#BUF
              LCALL     XWEN
              MOV       R5,#8
XWRITE2:      LCALL     XSTART
              MOV       A,#10101110B
              LCALL     XSEND
              MOV       A,DPH
              ANL       A,#01H
              LCALL     XSEND
              MOV       A,DPL
              LCALL     XSEND
              MOV       R6,#64
XWRITE1:      MOVX      A,@DPTR
              LCALL     XSEND
              INC       DPTR
              DJNZ      R6,XWRITE1
              LCALL     XEND
              LCALL     XDELAY
              DJNZ      R5,XWRITE2
;              SETB      TR0
              RET
;------------ --------- --------------------------------
XDELAY:       MOV       R4,#120
XWRITE3:      MOV       R3,#100
              DJNZ      R3,$
              DJNZ      R4,XWRITE3
              RET
;------------ --------- --------------------------------
XRCONT:       MOV       DPTR,#XCONT
              MOV       A,#11011110B
              LCALL     XSTART
              LCALL     XSEND
              MOV       A,#0
              LCALL     XSEND
              MOV       A,#10H
              LCALL     XSEND
              LCALL     XSTART
              MOV       A,#11011111B
              LCALL     XSEND
              MOV       R0,#3
XRCONT1:      LCALL     XRCV
              MOVX      @DPTR,A
              LCALL     XACK
              INC       DPTR
              DJNZ      R0,XRCONT1
              LCALL     XRCV
              MOVX      @DPTR,A
              LCALL     XEND
;              SETB      TR0
              RET
;------------ --------- --------------------------------
XWCONT:       LCALL     XWEN
              MOV       DPTR,#XCONT
              LCALL     XSTART
              MOV       A,#11011110B
              LCALL     XSEND
              MOV       A,#0
              LCALL     XSEND
              MOV       A,#10H
              LCALL     XSEND
              MOV       R0,#4
XWCONT1:      MOVX      A,@DPTR
              LCALL     XSEND
              INC       DPTR
              DJNZ      R0,XWCONT1
              LCALL     XEND
              LCALL     XDELAY
;              SETB      TR0
              RET
;------------ --------- --------------------------------
XRRTC:        MOV       DPTR,#XRTC
              MOV       A,#11011110B
              LCALL     XSTART
              LCALL     XSEND
              MOV       A,#0
              LCALL     XSEND
              MOV       A,#30H
              LCALL     XSEND
              LCALL     XSTART
              MOV       A,#11011111B
              LCALL     XSEND
              MOV       R0,#7
XRRTC1:       LCALL     XRCV
              MOVX      @DPTR,A
              LCALL     XACK
              INC       DPTR
              DJNZ      R0,XRRTC1
              LCALL     XRCV
              MOVX      @DPTR,A
              LCALL     XEND
;              SETB      TR0
              RET
;------------ --------- --------------------------------
XWRTC:        LCALL     XWEN
              MOV       DPTR,#XCONT
              LCALL     XSTART
              MOV       A,#11011110B
              LCALL     XSEND
              MOV       A,#0
              LCALL     XSEND
              MOV       A,#30H
              LCALL     XSEND
              MOV       R0,#8
XWRTC1:       MOVX      A,@DPTR
              LCALL     XSEND
              INC       DPTR
              DJNZ      R0,XWRTC1
              LCALL     XEND
              LCALL     XDELAY
;              SETB      TR0
              RET
;------------ --------- --------------------------------
              END

⌨️ 快捷键说明

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