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

📄 1302-12232f.asm

📁 从1302中读出的数据放在 52H(小时)51H(分钟)50H(秒) 显示缓冲单元 72H-73H(45H-44H)小时,75H-76H(43H-42H)分钟,78H-79H(41H-40H)秒
💻 ASM
📖 第 1 页 / 共 2 页
字号:
                           CLR SCLK
                           NOP
                           MOV A,DS1302_DATA
                           MOV R4,#8
                WRITE2:    RRC A
                           NOP     ;送数据给1302
                           CLR SCLK
                           NOP
                           NOP
                           MOV IO,C
                           NOP
                           NOP
                           NOP
                           SETB SCLK
                           NOP
                           NOP
                           DJNZ R4,WRITE2
                           CLR RST
                           RET
;
;******************读1302程序********************;
;
                READ:      CLR SCLK
                           NOP
                           NOP
                           SETB RST
                           NOP
                           MOV A,DS1302_ADDR
                           MOV R4,#8
                READ1:     RRC A    ;送地址给1302
                           NOP
                           MOV IO,C
                           NOP
                           NOP
                           NOP
                           SETB SCLK
                           NOP
                           NOP
                           NOP
                           CLR SCLK
                           NOP
                           NOP
                           DJNZ R4,READ1

                           MOV R4,#8
                READ2:     CLR SCLK
                           NOP    ;从1302中读出数据
                           NOP
                           NOP
                           MOV C,IO
                           NOP
                           NOP
                           NOP
                           NOP
                           NOP
                           RRC A
                           NOP
                           NOP
                           NOP
                           NOP
                           SETB SCLK
                           NOP
                           DJNZ R4,READ2
                           MOV DS1302_DATA,A
                           CLR RST
                           RET
;
;
;******************时间显示子程序*******************
TIME:   MOV  A,#80H	       ;第一行左第一个字开始
	LCALL WRITE_COM
	MOV  DPTR,#CHINESE2     ;16*16点阵“时间”
	LCALL WRITE_HZ2
;
TIMEUP:
        MOV  A,#82H	       ;第一行左第5个字开始
	LCALL WRITE_COM
        MOV   R1,#70H           ;将70-79H时间数据查出字码写入LCD
        MOV   DPTR,#TABLE1
        MOV   R2,#0AH          ; 查10次
        MOV   A,#00H
MOVCLOP:MOV   A,@R1            ;
        MOVC  A,@A+DPTR
        LCALL WRITE_DAT
        INC   R1
        DJNZ  R2,MOVCLOP       ;
        RET
;
;***************开机显示画面***********************
LOGON:	MOV  A,#80H	       ;第一行左第一个字开始
	LCALL WRITE_COM
	MOV  DPTR,#CHINESE     ;WORD 16*16点阵TEST
	LCALL WRITE_HZ
        MOV  A,#90H	       ;第二行左第一个字开始
	LCALL WRITE_COM
	MOV  DPTR,#CHINESE1    ;WORD 16*16点阵TEST
	LCALL WRITE_HZ
        CLR   LAMPBLAK         ;开背光灯
        LCALL DELAY5S          ;显示5秒
        SETB  LAMPBLAK         ;关背光灯
        RET
;**********初始化程序*************
SETUP:  LCALL DELAY
        LCALL DELAY
        LCALL DELAY
        LCALL DELAY
	MOV  A,#01H		;CLEAR DISPLAY
	LCALL WRITE_COM
	MOV  A,#00110000B	;FUNCTION SETTING
	LCALL WRITE_COM
	MOV  A,#00000010B	;DDRAM SET TO '00H'
	LCALL WRITE_COM
	MOV  A,#00000100B	;
	LCALL WRITE_COM
	MOV  A,#00001100B	;DISPLAY ON
	LCALL WRITE_COM
	MOV  A,#00000001B	;CLEARING SCREEN
	LCALL WRITE_COM
	MOV  A,#10000000B	;SET DDRAM ADDRESS
	LCALL WRITE_COM
        LCALL DELAY
	LCALL DELAY
	LCALL DELAY
        LCALL DELAY
	RET
;************串行命令写入子程序****************
;写入命令字在A中
WRITE_COM:
	        LCALL DELAY1		;
                SETB  CS
		PUSH  ACC
		MOV  R0,#8
		MOV  A,#11111000B
COMM1:
                CLR  C
		RLC  A
		MOV  SID,C
		CLR  CLK
                SETB CLK
 		DJNZ R0,COMM1
		POP  ACC
		MOV  R5,A
		ANL  A,#0F0H
		MOV  R0,#8
COMM2:	        CLR  C
		RLC  A
		MOV  SID,C
		CLR  CLK
		SETB CLK
		DJNZ R0,COMM2
		MOV  A,R5
		SWAP A
		ANL  A,#0F0H
		MOV  R0,#8
COMM3:	        CLR  C
		RLC  A
		MOV  SID,C
		CLR  CLK
		SETB CLK
		DJNZ R0,COMM3
		CLR  CS
	        RET
;
;***********串行数据写入子程序****************
;写入数据字在A中
WRITE_DAT:
		LCALL DELAY1
                SETB CS
		PUSH  ACC
		MOV  R0,#8
		MOV  A,#11111010B
DATA1:	        CLR  C
		RLC  A
		MOV  SID,C
		CLR  CLK
		SETB CLK
		DJNZ R0,DATA1
		POP  ACC
		MOV  R5,A
		ANL  A,#0F0H
		MOV  R0,#8
DATA2:	        CLR  C
		RLC  A
		MOV  SID,C
		CLR  CLK
		SETB CLK
		DJNZ R0,DATA2
		MOV  A,R5
		SWAP A
		ANL  A,#0F0H
		MOV  R0,#8
DATA3:	        CLR  C
		RLC  A
		MOV  SID,C
		CLR  CLK
		SETB CLK
		DJNZ R0,DATA3
		CLR  CS
	        RET
;
;**************延时子程序**********************
;0.544ms
DELAY1:
	MOV  R7,#010H
D11:	MOV  R6,#010H
	DJNZ R6,$
	DJNZ R7,D11
	RET
;0.13s
DELAY:
	MOV  R1,#00H
D2:	MOV  R2,#00H
	DJNZ R2,$
	DJNZ R1,D2
	RET
;5.2s
DELAY5S:MOV  R3,#28H
DE5S:   LCALL DELAY
        DJNZ R3,DE5S
        RET
;
;************16*16点阵汉字写入子程序共7个***********
WRITE_HZ:		;WRITE 7 CHINESE TO LCD
		MOV  R4,#7
DD:	        CLR  A
		MOVC A,@A+DPTR
		INC  DPTR
		LCALL WRITE_DAT
		CLR  A
		MOVC A,@A+DPTR
		INC DPTR
		LCALL WRITE_DAT
		DJNZ R4,DD
		RET
;************16*16点阵汉字写入子程序共2个***********
WRITE_HZ2:		;WRITE 8 CHINESE TO LCD
		MOV  R4,#2
DD4:	        CLR  A
		MOVC A,@A+DPTR
		INC  DPTR
		LCALL WRITE_DAT
		CLR  A
		MOVC A,@A+DPTR
		INC DPTR
		LCALL WRITE_DAT
		DJNZ R4,DD4
		RET
;
;*****************************16*8点阵的字符代码表**********************************
TABLE1: DB     30H,31H,32H,33H,34H,35H,36H,37H,38H,39H,3AH,3BH,3CH,3DH,3EH,20H
;               0   1   2   3   4   5   6   7   8   9   :   ;   <   =   > "不显"
;**********************************自造字符地址表***********************************
CGRAM1:	DB 000H,000H
CGRAM2:	DB 000H,002H
CGRAM3:	DB 000H,004H
CGRAM4:	DB 000H,006H
;******************"这里是16*16点阵的汉字代码表"************************************
CHINEMOV  DW 0C3BFH,0CCECH,0B6BCH,0D3D0H,0BAC3H,0D0C4H,0C7INC,0DBA0H;每天都有好心情
CHINESE1: DW 0BACEH,0CEC4H,0B5C2H,0D7A8HINC2B5H,0C9E8H,0BCC6H,0DBA0H;何文德专业设计
CHINESE2RETW 0CAB1H,0BCE4H                                          ;时间
    
END
;******************************结束************************************************

⌨️ 快捷键说明

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