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

📄 yjp_nxsx.asm

📁 一个液晶驱动程序,配合计算机软件可方便的制作文本显示器用于工控场合
💻 ASM
📖 第 1 页 / 共 5 页
字号:
;;*****************************************************************
;;----------- 液晶屏程序 --------------------------------------------
;;文件名:   YJP_NXSX.ASM
;;	   宁夏三新
;;真空热水锅炉(群控型)界面
;;订单号:02101504
;;通讯波特率	9600Kbs
;;*******************************************************************
;;口线定义区
;;-------------------------------------------------------------------
;;发光管
COM_LED 	 EQU  P2.0
CPU_LED 	 EQU  P2.1
POWER_LED	 EQU  P2.2
;;-------------------------------------------------------------------
;;蜂鸣器
BEEB		 EQU  P2.3;00H;;P2.3
;;-------------------------------------------------------------------
;;液晶背光电源
LCD_POWER	 EQU  P2.4
;;-------------------------------------------------------------------
;;24C021   I2C器件
A24C_SCL	 EQU  P1.0
A24C_SDA	 EQU  P1.1
;;-------------------------------------------------------------------
;;SDA2000A I2C器件
SDA2_SCL	 EQU  P1.3
SDA2_SDA	 EQU  P1.2
;;-------------------------------------------------------------------
;;OCMJ510液晶显示模块
BUSY		 EQU  P2.5
REQ		 EQU  P2.6
RESET		 EQU  P2.7
;;-------------------------------------------------------------------
;;键盘口线
;;1#键区
;上页键 	 EQU  P1.6
;下页键 	 EQU  P1.5
; 左键		 EQU  P1.4
; 右键		 EQU  P1.7
KEY1_SELECT	 EQU  P3.4
;;2#键区
; 下键		 EQU  P1.6
; 上键		 EQU  P1.5
;SET键		 EQU  P1.4
;ENT键		 EQU  P1.7
KEY2_SELECT	 EQU  P3.3
;;3#键区
; F1键		 EQU  P1.5
; F2键		 EQU  P1.7
; F3键		 EQU  P1.6
; F4键		 EQU  P1.4
KEY3_SELECT	 EQU  P3.5
;;===================================================================
;;RAM定义区
SHOW1BUF1	 EQU  2BH
SHOW1BUF2	 EQU  2CH
SHOW1BUF3	 EQU  2DH
SHOW1BUF4	 EQU  2EH
SHOW1BUF5	 EQU  2FH
;;-------------------------------------------------------------------
STR_DELAY	 EQU  30H
STR_DEL_BZ	 EQU  31H
T_005S		 EQU  32H
PAGE_NUMB	 EQU  33H
SHOW_COUNT1	 EQU  34H
SHOW_COUNT2	 EQU  35H
SHOWBUF1	 EQU  36H
SHOWBUF2	 EQU  37H
SHOWBUF3	 EQU  38H
SHOWBUF4	 EQU  39H
SHOWBUF5	 EQU  3AH
SHOW_TIME	 EQU  3BH
CUR_TIME	 EQU  3CH
CURFLASH	 EQU  3DH
SET_H_BUF	 EQU  3EH
SET_L_BUF	 EQU  3FH
;;-------------------------------------------------------------------
DPH_BUF1	 EQU  40H
DPL_BUF1	 EQU  41H
DPH_BUF2	 EQU  42H
DPL_BUF2	 EQU  43H
DPH_BUF3	 EQU  44H
DPL_BUF3	 EQU  45H
DPH_BUF4	 EQU  46H
DPL_BUF4	 EQU  47H
DPH_BUF5	 EQU  48H
DPL_BUF5	 EQU  49H
DPH_BUF6	 EQU  4AH
DPL_BUF6	 EQU  4BH
DPH_BUF7	 EQU  4CH
DPL_BUF7	 EQU  4DH
DPH_BUF8	 EQU  4EH
DPL_BUF8	 EQU  4FH
;;===================================================================
SEND_START	 EQU  50H
RECE_SP 	 EQU  51H
TX_COMM 	 EQU  52H
BYTE_SUM	 EQU  53H
TT_SP		 EQU  54H
TXH_DPL_BUF	 EQU  55H
TXL_DPL_BUF	 EQU  56H
DATA_SP 	 EQU  57H
STATUS_CODE	 EQU  58H
TX_LENTH	 EQU  59H
TX_LENTH1	 EQU  5AH
TX_ADDR 	 EQU  5BH
;;===================================================================
SET_X		 EQU  60H
FLASH_X 	 EQU  61H
CLR_CUR_X	 EQU  62H
CLR_CUR_Y	 EQU  63H
KEY_LIAN	 EQU  64H
KEY_BUF1	 EQU  65H
KEY_BUF2	 EQU  66H
KEY_BUF3	 EQU  67H
CLR_BIT_X	 EQU  68H
CLR_BIT_Y	 EQU  69H
PAGE_BUF	 EQU  6AH
LCD_POW_BZ	 EQU  6BH
LCD_POW_TBZ	 EQU  6CH
LCD_POW_TIME	 EQU  6DH
T1S		 EQU  6EH
PAGE_QHBZ	 EQU  6FH
;;===================================================================
SET_NUMB	 EQU  70H ;本页画面设置数据个数
SET_MODE	 EQU  71H
SHOW_COUN	 EQU  72H
DPH_S1		 EQU  73H ;可设置寄存器标号数据首址
DPL_S1		 EQU  74H
DPH_S2		 EQU  75H ;可设置寄存器显示位数数据首址
DPL_S2		 EQU  76H
DPH_S3		 EQU  77H ;可设置寄存器上限下限数据首址
DPL_S3		 EQU  78H
SHOW_LENTH	 EQU  79H ;该设置数据显示长度
SET_HIGH_H	 EQU  7AH ;设置数据上限
SET_HIGH_L	 EQU  7BH
SET_LOW_H	 EQU  7CH ;设置数据下限
SET_LOW_L	 EQU  7DH
CLR_CUR_BZ	 EQU  7EH
;;===================================================================
;;扩展RAM定义
;;-------------------------------------------------------------------
;;系统区	   用户仅以只读方式访问
MW00		 EQU  000H	;年
MW01		 EQU  002H	;月
MW02		 EQU  004H	;日
MW03		 EQU  006H	;星期
MW04		 EQU  008H	;时
MW05		 EQU  00AH	;分
MW06		 EQU  00CH	;秒

MW07		 EQU  00EH	;第一时段开小时
MW08		 EQU  010H	;第一时段开分钟
MW09		 EQU  012H	;第一时段关小时
MW10		 EQU  014H	;第一时段关分钟
MW11		 EQU  016H	;第二时段开小时
MW12		 EQU  018H	;第二时段开分钟
MW13		 EQU  01AH	;第二时段关小时
MW14		 EQU  01CH	;第二时段关分钟
MW15		 EQU  01EH	;第三时段开小时
MW16		 EQU  020H	;第三时段开分钟
MW17		 EQU  022H	;第三时段关小时
MW18		 EQU  024H	;第三时段关分钟
MW19		 EQU  026H	;第四时段开小时
MW20		 EQU  028H	;第四时段开分钟
MW21		 EQU  02AH	;第四时段关小时
MW22		 EQU  02CH	;第四时段关分钟
MW23		 EQU  02EH	;时段定时允许位  1:MW23.0 2:MW23.1 3:MW23.2 4:MW23.3
MW24		 EQU  030H
MW25		 EQU  032H	;时段定时允许位1  1:MW25.0 2:MW25.1 3:MW25.2 4:MW25.3
MW26		 EQU  034H	;未定义
MW27		 EQU  036H	;画面序号 用户可通过修改值切换画面
MW28		 EQU  038H	;未定义
MW29		 EQU  03AH	;未定义
;;-------------------------------------------------------------------
;;用户区	 用户可读可写	可自定义
MW30		 EQU  03CH
MW31		 EQU  03EH
MW32		 EQU  040H
MW33		 EQU  042H
MW34		 EQU  044H
MW35		 EQU  046H
MW36		 EQU  048H
MW37		 EQU  04AH
MW38		 EQU  04CH
MW39		 EQU  04EH
MW40		 EQU  050H
MW41		 EQU  052H
MW42		 EQU  054H
MW43		 EQU  056H
MW44		 EQU  058H
MW45		 EQU  05AH
MW46		 EQU  05CH
MW47		 EQU  05EH
MW48		 EQU  060H
MW49		 EQU  062H
MW50		 EQU  064H
MW51		 EQU  066H
MW52		 EQU  068H
MW53		 EQU  06AH
MW54		 EQU  06CH
MW55		 EQU  06EH
MW56		 EQU  070H
MW57		 EQU  072H
MW58		 EQU  074H
MW59		 EQU  076H
MW60		 EQU  078H	;定时结果输出位  1:MW60.0 2:MW60.1 3:MW60.2 4:MW60.3
MW61		 EQU  07AH
MW62		 EQU  07CH
MW63		 EQU  07EH
MW64		 EQU  080H
MW65		 EQU  082H
MW66		 EQU  084H
MW67		 EQU  086H
MW68		 EQU  088H
MW69		 EQU  08AH
MW70		 EQU  08CH
MW71		 EQU  08EH
MW72		 EQU  090H
MW73		 EQU  092H
MW74		 EQU  094H
MW75		 EQU  096H
MW76		 EQU  098H
MW77		 EQU  09AH
MW78		 EQU  09CH
MW79		 EQU  09EH
MW80		 EQU  0A0H
MW81		 EQU  0A2H
MW82		 EQU  0A4H
MW83		 EQU  0A6H
MW84		 EQU  0A8H
MW85		 EQU  0AAH
MW86		 EQU  0ACH
MW87		 EQU  0AEH
MW88		 EQU  0B0H
MW89		 EQU  0B2H
MW90		 EQU  0B4H
MW91		 EQU  0B6H
MW92		 EQU  0B8H
MW93		 EQU  0BAH
MW94		 EQU  0BCH
MW95		 EQU  0BEH
MW96		 EQU  0C0H
MW97		 EQU  0C2H
MW98		 EQU  0C4H
MW99		 EQU  0C6H
MW100		 EQU  0C8H
MW101		 EQU  0CAH
MW102		 EQU  0CCH
MW103		 EQU  0CEH
MW104		 EQU  0D0H
MW105		 EQU  0D2H
MW106		 EQU  0D4H
MW107		 EQU  0D6H
MW108		 EQU  0D8H
MW109		 EQU  0DAH
MW110		 EQU  0DCH
MW111		 EQU  0DEH
MW112		 EQU  0E0H
MW113		 EQU  0E2H
MW114		 EQU  0E4H
MW115		 EQU  0E6H
MW116		 EQU  0E8H
MW117		 EQU  0EAH
MW118		 EQU  0ECH
MW119		 EQU  0EEH
MW120		 EQU  0F0H
MW121		 EQU  0F2H
MW122		 EQU  0F4H
MW123		 EQU  0F6H
MW124		 EQU  0F8H
MW125		 EQU  0FAH
MW126		 EQU  0FCH
MW127		 EQU  0FEH
;********************************************************************
	   ORG 0000H
	   LJMP MAIN
	   ORG 000BH
	   LJMP TIM0
	   ORG 0023H
	   LJMP R_T_DATA
;;*******************************************************************
	   ORG 0100H
MAIN:	   SETB BEEB
	   LCALL RST_WDOG
	   LCALL SETUP
	   LCALL SETUP_SDA2

	   MOV LCD_POW_BZ,#1
	   LCALL AUTO_LCD_POWER
	   LCALL RST_OCMJ510
	   LCALL STR_3SEC
MAI1:	   LCALL RST_WDOG
	   MOV R0,#STR_DEL_BZ
	   MOV A,@R0
	   JNZ MAI1
	   LCALL SET_OCMJ510
	   LCALL RD_SET_DATA

LOOP:	   SETB  POWER_LED
	   LCALL RST_WDOG
	   LCALL RD_TIME
	   LCALL AUTO_LCD_POWER
	   LCALL SAVE_TIKEY
	   LCALL JDTIME
	   LCALL KEY
	   LCALL AUTOSHOW
	   AJMP  LOOP
;;===================================================================
;;以下为SDA2000A I2C时钟芯片操作子程序
;;-------------------------------------------------------------------
;名称:START
;描述:启动I2C总线子程序-发送I2C起始条件
;--------------------------------------------------------------------
SDA2_START:CLR	SDA2_SCL	 ;发送起始条件数据信号
	   DB 0,0,0,0,0
	   SETB SDA2_SDA	 ;发送起始条件数据信号
	   DB 0,0
	   SETB SDA2_SCL	 ;发送起始条件的时钟信号
	   DB 0,0,0,0,0 	 ;起始条件锁定时间大于4.7us
	   DB 0,0,0,0,0
	   CLR	SDA2_SDA	 ;发送起始信号
	   DB 0,0,0,0,0 	 ;起始条件锁定时间大于4.7us
	   DB 0,0,0,0,0
	   CLR	SDA2_SCL	 ;钳住I2C总线,准备发送或接收数据
	   RET
;;===================================================================
;名称:SDA2_STOP
;描述:停止I2C总线子程序-发送I2C总线停止条件
;--------------------------------------------------------------------
SDA2_STOP: CLR	SDA2_SDA	 ;发送停止条件的数据信号
	   DB 0,0,0,0,0
	   DB 0,0,0,0,0
	   SETB SDA2_SCL	 ;发送停止条件的时钟信号
	   DB 0,0,0,0,0 	 ;起始条件建立时间大于4.7us
	   DB 0,0,0,0,0
	   SETB SDA2_SDA	 ;发送I2C总线停止信号
	   DB 0,0,0,0,0
	   DB 0,0,0,0,0
	   CLR	SDA2_SDA
	   CLR	SDA2_SCL
	   DB 0,0,0,0,0
	   RET
;;===================================================================
;名称:SDA2_SENTBYTEHL	    高位到低位
;描述:字节数据传送子程序,发送一个字节数据或地址给被控器
;      要发送的数据在ACC中,使用R3寄存器,高位在前
;      发送数据正常,返回标志F0=0,F0=1表示被控器无应答
;--------------------------------------------------------------------
SDA2_SENTBYTEHL:
	   MOV R3,#08H		 ;要传送的数据长度为8位
SDA2_SENTBHL:RLC A		 ;要发送的数据左移,发送位入C
	   JC SDA2_SENT1HL	 ;发送位为"1"转发送数据位"1"
	   CLR SDA2_SDA 	 ;发送数据位"0"
	   SJMP SDA2_SENTHL	 ;转发送数据位
SDA2_SENT1HL:SETB SDA2_SDA	 ;发送数据位"1"
SDA2_SENTHL:
	   DB 0,0,0,0,0
	   DB 0,0,0,0,0
	   SETB SDA2_SCL	 ;置时钟线位高,通知被控器开始接收数据
	   DB 0,0,0,0,0 	 ;保证时钟高周期大于4us
	   DB 0,0,0,0,0
	   CLR	SDA2_SCL	 ;钳住总线准备接收下一个数据位
	   DJNZ R3,SDA2_SENTBHL
	   DB 0,0,0,0,0
	   SETB SDA2_SDA	 ;8位发送完后释放总线,准备接收应答
	   DB 0,0,0,0,0
	   SETB SDA2_SCL	 ;开始接收应答信号
	   DB 0,0,0,0,0
	   CLR	F0		 ;预先清发送数据出错标志
	   JNB SDA2_SDA,SDA2_ACKENDHL
	   SETB F0		 ;未收到应答,置位错误标志
SDA2_ACKENDHL: NOP
	   NOP
	   CLR	SDA2_SCL	 ;发送结束钳住总线,准备下一步发送或
	   RET			 ;接收数据或进行其它操作
;;===================================================================
;名称:SDA2_SENTBYTELH	    低位到高位
;描述:字节数据传送子程序,发送一个字节数据或地址给被控器
;      要发送的数据在ACC中,使用R3寄存器,低位在前
;      发送数据正常,返回标志F0=0,F0=1表示被控器无应答
;--------------------------------------------------------------------
SDA2_SENTBYTELH:
	   MOV R3,#08H		 ;要传送的数据长度为8位
SDA2_SENTBLH:RRC A		 ;要发送的数据右移,发送位入C
	   JC SDA2_SENT1LH	 ;发送位为"1"转发送数据位"1"
	   CLR SDA2_SDA 	 ;发送数据位"0"
	   SJMP SDA2_SENTLH	 ;转发送数据位
SDA2_SENT1LH:SETB SDA2_SDA	 ;发送数据位"1"
SDA2_SENTLH:
	   DB 0,0,0,0,0
	   DB 0,0,0,0,0
	   SETB SDA2_SCL	 ;置时钟线位高,通知被控器开始接收数据
	   DB 0,0,0,0,0 	 ;保证时钟高周期大于4us
	   DB 0,0,0,0,0
	   CLR	SDA2_SCL	 ;钳住总线准备接收下一个数据位
	   DJNZ R3,SDA2_SENTBLH
	   DB 0,0,0,0,0
	   SETB SDA2_SDA	 ;8位发送完后释放总线,准备接收应答
	   DB 0,0,0,0,0
	   SETB SDA2_SCL	 ;开始接收应答信号
	   DB 0,0,0,0,0
	   CLR	F0		 ;预先清发送数据出错标志
	   JNB SDA2_SDA,SDA2_ACKENDLH
	   SETB F0		 ;未收到应答,置位错误标志
SDA2_ACKENDLH: NOP
	   NOP
	   CLR	SDA2_SCL	 ;发送结束钳住总线,准备下一步发送或
	   RET			 ;接收数据或进行其它操作
;;===================================================================
;名称:SDA2_RCVBYTE	    低位到高位顺序
;描述:字节数据接收子程序,从被控器接收一个字节数据,然后根
;      据主程序要求发送应答位
;      接收的数据在ACC中,使用R3寄存器
;      F0=0,发送应答信号,F=1发送非应答信号
;--------------------------------------------------------------------
SDA2_RCVBYTE:
	   SETB SDA2_SDA	  ;置数据线为输入方式
	   MOV R3,#08H		  ;要传送的数据长度为8位
SDA2_RCV:  NOP
	   NOP
	   CLR	SDA2_SCL	  ;置时钟线为低,准备接收数据位
	   DB 0,0,0,0,0 	  ;时钟低周期大于4us
	   DB 0,0,0,0,0
	   SETB SDA2_SCL	  ;置时钟线为高使数据线上数据有效
	   DB 0,0,0,0,0
	   CLR	C		  ;准备将接收的数据位放入ACC中
	   JNB SDA2_SDA,SDA2_RCV0 ;读数据位,若为"1"则置C=1
	   SETB C
SDA2_RCV0: RRC A		  ;接收的数据放入ACC中
	   NOP
	   DB 0,0,0,0,0
	   DJNZ R3,SDA2_RCV	  ;8位没完继续接收
	   CLR	SDA2_SCL	  ;8位接收完置时钟线和数据线为低
	   DB 0,0,0,0,0 	  ;准备发送应答或非应答信号
	   DB 0,0,0,0,0
	   CLR	SDA2_SDA
	   JNB F0,SDA2_SENTACKB   ;判断是否接收字节数据
	   SETB SDA2_SDA	  ;发送非应答信号
SDA2_SENTACKB:	NOP		  ;以下程序发送应答位
	   DB 0,0,0,0,0
	   SETB SDA2_SCL	  ;置时钟线为高使应答位有效
	   DB 0,0,0,0,0 	  ;时钟高周期大于4us
	   DB 0,0,0,0,0
	   CLR	SDA2_SCL	  ;清时钟线钳住I2C总线以便继续接收数据
	   DB 0,0,0,0,0
	   CLR	F0		  ;清接收非应答标志
	   CLR	SDA2_SDA
	   RET
;;===================================================================
;名称:SDA2_RCVDATA
;描述:从SAD200A中接收实时时钟数据
;      数据顺序 年 月 日 星期 时 分 秒
;      接收数据缓冲区首址在MW0中
;      接收数据正常,返回标志F=0,F=1表示被控器无应答
;      发送命令数据:65H
;--------------------------------------------------------------------
SDA2_RCVDATA:
	   MOV R7,#07
	   MOV R0,#MW00
	   LCALL SDA2_START	 ;发送I2C总线起始条件
	   MOV A,#65H		 ;取被控器总线地址
	   LCALL SDA2_SENTBYTEHL ;发送被控器总线地址
	   JB F0,SDA2_RCVRETURN  ;出错返回
	   CLR	F0		 ;清接收非应答标志,准备接收数据
	   DJNZ R7,SDA2_RCVNEXT  ;如果未接收则转接收(R7)-1个数据
	   SJMP SDA2_RCVLAST	 ;只剩最后一个未接收转去接收最后一个
SDA2_RCVNEXT:
	   LCALL SDA2_RCVBYTE	 ;接收数据
	   MOV B,A
	   MOV A,R0
	   MOV DPL,A
	   MOV DPH,#02H
	   MOV A,#0
	   MOVX @DPTR,A 	 ;高字节清0
	   INC DPTR
	   MOV A,B
	   MOVX @DPTR,A 	 ;送MW0开始缓冲
	   INC R0
	   INC R0		 ;指向下一缓冲区
	   DJNZ R7,SDA2_RCVNEXT  ;重复操作至最后一个数据
SDA2_RCVLAST:
	   SETB F0		 ;置接收非应答标志,准备在接收完最后一个数据发非应答
	   LCALL SDA2_RCVBYTE	 ;接收最后一个数据
	   MOV B,A
	   MOV A,R0
	   MOV DPL,A
	   MOV DPH,#02H
	   MOV A,#0
	   MOVX @DPTR,A 	 ;高字节清0
	   INC DPTR
	   MOV A,B
	   MOVX @DPTR,A 	 ;送MW0开始缓冲
	   LCALL SDA2_STOP	 ;发送I2C总线停止条件
	   CLR	F0		 ;置接收正常标志
SDA2_RCVRETURN:
	   RET
;;===================================================================
;名称:SDA2_SENDDATA
;描述:向SAD200A中发送实时时钟数据
;      数据顺序 年 月 日 星期 时 分 秒
;      发送数据缓冲区首址在MW0中
;      接收数据正常,返回标志F=0,F=1表示被控器无应答
;      发送命令数据:64H
;--------------------------------------------------------------------
SDA2_SENDDATA:
	   MOV R7,#07
	   MOV R0,#MW00
	   LCALL SDA2_START	 ;发送I2C总线起始条件
	   MOV A,#64H		 ;取被控器总线地址
	   LCALL SDA2_SENTBYTEHL ;发送被控器总线地址
	   JB F0,SDA2_SENDRETURN ;出错返回
	   CLR	F0		 ;清接收非应答标志,准备发送数据
	   DJNZ R7,SDA2_SENDNEXT ;如果未接收则转发送(R7)-1个数据
	   SJMP SDA2_SENDLAST	 ;只剩最后一个未发送转去发送最后一个
SDA2_SENDNEXT:
	   MOV A,R0
	   MOV DPL,A
	   MOV DPH,#02H
	   INC DPTR
	   MOVX A,@DPTR
	   LCALL SDA2_SENTBYTELH ;发送数据
	   JB F0,SDA2_SENDRETURN ;出错返回
	   INC R0
	   INC R0		 ;指向下一缓冲区
	   DJNZ R7,SDA2_SENDNEXT ;重复操作至最后一个数据
SDA2_SENDLAST:
	   MOV A,R0
	   MOV DPL,A
	   MOV DPH,#02H
	   INC DPTR
	   MOVX A,@DPTR
	   LCALL SDA2_SENTBYTELH ;发送最后一个数据
	   JB F0,SDA2_SENDRETURN ;出错返回
	   LCALL SDA2_STOP	 ;发送I2C总线停止条件
SDA2_SENDRETURN:
	   RET
;;===================================================================
SDA2_BCDZH:
	   MOV R0,#MW00 	 ;MW00
	   MOV A,R0
	   MOV DPL,A
	   MOV DPH,#02H
	   MOV A,#0
	   MOVX @DPTR,A
	   INC DPTR
	   MOVX A,@DPTR
	   LCALL SDA2_BCD_HEX	 ;年
	   MOV DPH,#01H
	   MOVX @DPTR,A
	   MOV DPH,#02H
	   INC DPTR
	   MOV A,#0
	   MOVX @DPTR,A
	   INC DPTR
	   MOVX A,@DPTR
	   LCALL SDA2_BCD_HEX	 ;月
	   MOV DPH,#01H
	   MOVX @DPTR,A
	   MOV DPH,#02H
	   INC DPTR
	   MOV A,#0
	   MOVX @DPTR,A
	   INC DPTR
	   MOVX A,@DPTR
	   LCALL SDA2_BCD_HEX	 ;日
	   MOV DPH,#01H
	   MOVX @DPTR,A
	   MOV DPH,#02H
	   INC DPTR
	   MOV A,#0
	   MOVX @DPTR,A
	   INC DPTR
	   MOVX A,@DPTR
	   LCALL SDA2_BCD_HEX	 ;星期
	   MOV DPH,#01H
	   MOVX @DPTR,A
	   MOV DPH,#02H
	   INC DPTR
	   MOV A,#0
	   MOVX @DPTR,A
	   INC DPTR
	   MOVX A,@DPTR
	   ANL A,#7FH
	   LCALL SDA2_BCD_HEX	 ;时
	   MOV DPH,#01H
	   MOVX @DPTR,A
	   MOV DPH,#02H
	   INC DPTR
	   MOV A,#0
	   MOVX @DPTR,A

⌨️ 快捷键说明

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