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

📄 万年历串口程序.txt

📁 51单片机与金鹏的12864液晶
💻 TXT
📖 第 1 页 / 共 2 页
字号:
        ORG     0000H
RTCSA	EQU	60H
RTCSB	EQU	61H
RTCMIA	EQU	62H
RTCMIB	EQU	63H
RTCHA	EQU	64H
RTCHB	EQU	65H
RTCZ	EQU	66H
RTCDA	EQU	67H
RTCDB	EQU	68H
RTCMA	EQU	69H
RTCMB	EQU	6AH
RTCYA	EQU	6BH
RTCYB	EQU	6CH
RTCA	EQU	6DH
RTCB	EQU	6EH
COUNT	EQU	6FH
;*****************************
;18B20预定义区
TEMPHEAD          EQU         26H
TEMPDIN           BIT         P2.7
BITST            DATA        2CH
TIME1SOK         BIT         BITST.1
TEMPONEOK        BIT         BITST.2
TEMPL            DATA        1AH
TEMPH            DATA        1BH
TEMPHC           DATA        1CH
TEMPLC           DATA        1DH


;**************************************
;液晶串口子程序预定义区
DA_IN	EQU	40H	       ;数据或指令
RS_STU	BIT	P1.0	  	;数据指令选择
WR_COUNT1 EQU	41H   	;计数器1
WR_COUNT2 EQU	42H	;计数器2

CS	EQU	P3.0
STD	EQU	P3.1
SCLK	EQU	P3.2
PSB	EQU	P3.3
RST	EQU	P3.4

;18B20初始化
;********************初始化**********************
             MOV   	    SP,#70H 
START:       MOV            R0,#20H
             MOV            R1,#10H
	     MOV            20H,#00H
CLSMEM1:     MOV            @R0,#00H         
             INC            R0               
             DJNZ           R1,CLSMEM1    
             SJMP           INIT
ERROR:       NOP
             LJMP           START
             NOP 
INIT:        NOP
             NOP
	     NOP
	     NOP
             MOV            PSW,#00H
             CLR            TEMPONEOK
;液晶初始化
;******************************************************
        CLR	PSB
	NOP
	MOV	A,#34H    
	MOV	DA_IN,A
	CLR	RS_STU
	LCALL	SERIAL_WR

	MOV	A,#30H
	MOV	DA_IN,A
	CLR	RS_STU
	LCALL	SERIAL_WR

	MOV	A,#01H
	MOV	DA_IN,A
	CLR	RS_STU
	LCALL	SERIAL_WR

	MOV	A,#06H
	MOV	DA_IN,A
	CLR	RS_STU
	LCALL	SERIAL_WR
	
	MOV	A,#0CH
	MOV	DA_IN,A
	CLR	RS_STU
	LCALL	SERIAL_WR

;;;;;;;;;;;;;;;;;;;;;;;;;(DS12C887初始化)
	LCALL	BEGEN0
	LCALL	BEGEN3
	LCALL	WRITE
	NOP
	LCALL	BEGEN4
        LJMP    MAIN
;系统初始化
;***********************************
BEGEN0:	MOV	DPTR,#0FA0AH
	MOV	A,#20H
	MOVX	@DPTR,A	
BEGEN1:	MOV	DPTR,#0FA0BH
	MOV	A,#02H
	MOVX	@DPTR,A
	MOV	DPTR,#0FA0DH
	MOVX	A,@DPTR
	JNB	ACC.7,ERROR
	RET

BEGEN3:	MOV	DPTR,#0FA0BH
	MOV	A,#0A2H
	MOVX	@DPTR,A
	RET


BEGEN4:	MOV	DPTR,#0FA0CH
	MOVX	A,@DPTR
BEGEN5:	MOV	DPTR,#0FA0BH
	MOV	A,#22H
	MOVX	@DPTR,A	
	MOV	DPTR,#0FA0AH
	MOV	A,#20H
	MOVX	@DPTR,A
	RET	

;写入时间程序
;**********************************************
WRITE: MOV DPTR,#0FA00H  ;DS12C887秒单元 
       MOV A,#00H 
       MOVX @DPTR,A     ;写入秒 	
       MOV DPTR,#0FA02H  ;DS12C887分单元 
       MOV A,#42H 
       MOVX @DPTR,A     ;写入分 
       MOV DPTR,#0FA04H  ;DS12C887时单元 
       MOV A,#22H 
       MOVX @DPTR,A     ;写入时 
       MOV DPTR,#0FA06H  ;DS12C887星期单元 
       MOV A,#06H 
       MOVX @DPTR,A     ;写入周标66H 
       MOV DPTR,#0FA07H  ;DS12C887日单元 
       MOV A,#24H 
       MOVX @DPTR,A     ;写入月标
       MOV DPTR,#0FA08H  ;DS12C887月单元; 
       MOV A,#03H 
       MOVX @DPTR,A     ;写入月计数        
       MOV DPTR,#0FA09H  ;DS12C887年单元; 
       MOV A,#07H 
       MOVX @DPTR,A     ;写入年时间 
       MOV  DPTR,#0FA0EH
       MOV  A,#20H
       MOVX @DPTR,A
       RET
;***********************************************
;主程序区
MAIN:   LCALL    WENDU
        LCALL	DEL
        LCALL	RADE
        LCALL	TI_ON2
        LCALL   XIANSHI
        SJMP    MAIN
;*****************************************************

;(DS12C887读时间子程序)
;**************************************************
;秒信息送入60H,61H
RADE:	LCALL	CHK
	MOV	DPTR,#0FA00H
	MOVX	A,@DPTR
	MOV	60H,A
	SWAP	A
	MOV	61H,A
	ANL	60H,#0FH
	ANL	61H,#0FH
;分信息送62,63H
	MOV	DPTR,#0FA02H
	MOVX	A,@DPTR
	MOV	62H,A
	SWAP	A
	MOV	63H,A
	ANL	62H,#0FH
	ANL	63H,#0FH
;时信息送64,65H
	MOV	DPTR,#0FA04H
	MOVX	A,@DPTR
	MOV	64H,A
	SWAP	A
	MOV	65H,A
	ANL	64H,#0FH
	ANL	65H,#0FH
;周信息送66H
	MOV	DPTR,#0FA06H
	MOVX	A,@DPTR
	MOV	66H,A
	ANL	66H,#0FH
;月,日期送67,68H
	MOV	DPTR,#0FA07H
	MOVX	A,@DPTR
	MOV	67H,A
	SWAP	A
	MOV	68H,A
	ANL	67H,#0FH
	ANL	68H,#0FH
;月计数送69,6AH
	MOV	DPTR,#0FA08H
	MOVX	A,@DPTR
	MOV	69H,A
	SWAP	A
	MOV	6AH,A	
	ANL	69H,#0FH
	ANL	6AH,#0FH
;年信息送6B,6C时
	MOV	DPTR,#0FA09H
	MOVX	A,@DPTR
	MOV	6BH,A
	SWAP	A
	MOV	6CH,A
	ANL	6BH,#0FH
	ANL	6CH,#0FH
;世纪信息送6D,6E
	MOV	DPTR,#0FA0EH
	MOVX	A,@DPTR
	MOV	6DH,A
	SWAP	A
	MOV	6EH,A
	ANL	6DH,#0FH
	ANL	6EH,#0FH
	RET

;查询标志位
;********************************
CHK:	MOV	DPTR,#0FA0AH
	MOVX	A,@DPTR
	JB	ACC.7,CHK 
	RET


;液晶屏显示时间(2)
;******************************************
TI_ON2:	MOV     DPTR,#TAB2
        MOV	A,#9FH
	MOV	DA_IN,A
	CLR	RS_STU
	LCALL	SERIAL_WR
;	LCALL	SEND_I
	MOV	A,RTCSA
        MOVC     A,@A+DPTR
	MOV	DA_IN,A
	SETB	RS_STU
	LCALL	SERIAL_WR
;	LCALL	SEND_D
	MOV	A,#9EH
	MOV	DA_IN,A
	CLR	RS_STU
	LCALL	SERIAL_WR
;	LCALL	SEND_I
	MOV	A,RTCSB
	MOVC     A,@A+DPTR
	MOV	DA_IN,A
	SETB	RS_STU
	LCALL	SERIAL_WR
;	LCALL	SEND_D
	MOV	A,#9CH
	MOV	DA_IN,A
	CLR	RS_STU
	LCALL	SERIAL_WR
;	LCALL	SEND_I
	MOV	A,RTCMIA
	MOVC     A,@A+DPTR
	MOV	DA_IN,A
	SETB	RS_STU
	LCALL	SERIAL_WR	
;	LCALL	SEND_D
	MOV	A,#9BH
	MOV	DA_IN,A
	CLR	RS_STU
	LCALL	SERIAL_WR
;	LCALL	SEND_I
	MOV	A,RTCMIB
	MOVC     A,@A+DPTR
	MOV	DA_IN,A
	SETB	RS_STU
	LCALL	SERIAL_WR
;	LCALL	SEND_D
	MOV	A,#99H
	MOV	DA_IN,A
	CLR	RS_STU
	LCALL	SERIAL_WR	
;	LCALL	SEND_I
	MOV	A,RTCHA
	MOVC     A,@A+DPTR
	MOV	DA_IN,A
	SETB	RS_STU
	LCALL	SERIAL_WR	
;	LCALL	SEND_D
	MOV	A,#98H
	MOV	DA_IN,A
	CLR	RS_STU
	LCALL	SERIAL_WR	
;	LCALL	SEND_I
	MOV	A,RTCHB
	MOVC     A,@A+DPTR
	MOV	DA_IN,A
	SETB	RS_STU
	LCALL	SERIAL_WR	
;	LCALL	SEND_D
	MOV	A,#8DH
	MOV	DA_IN,A
	CLR	RS_STU
	LCALL	SERIAL_WR
;	LCALL	SEND_I
	MOV	A,RTCZ
	MOVC     A,@A+DPTR
	MOV	DA_IN,A
	SETB	RS_STU
	LCALL	SERIAL_WR	
;	LCALL	SEND_D
	MOV	A,#89H
	MOV	DA_IN,A
	CLR	RS_STU
	LCALL	SERIAL_WR
;	LCALL	SEND_I
	MOV	A,RTCDA
	MOVC     A,@A+DPTR
	MOV	DA_IN,A
	SETB	RS_STU
	LCALL	SERIAL_WR	
;	LCALL	SEND_D
	MOV	A,#88H
	MOV	DA_IN,A
	CLR	RS_STU
	LCALL	SERIAL_WR	
;	LCALL	SEND_I
	MOV	A,RTCDB
	MOVC     A,@A+DPTR
	MOV	DA_IN,A
	SETB	RS_STU
	LCALL	SERIAL_WR
;	LCALL	SEND_D
	MOV	A,#96H
	MOV	DA_IN,A
	CLR	RS_STU
	LCALL	SERIAL_WR
;	LCALL	SEND_I
	MOV	A,RTCMA
	MOVC     A,@A+DPTR	
	MOV	DA_IN,A
	SETB	RS_STU
	LCALL	SERIAL_WR	
;	LCALL	SEND_D
	MOV	A,#95H
	MOV	DA_IN,A
	CLR	RS_STU
	LCALL	SERIAL_WR	
;	LCALL	SEND_I
	MOV	A,RTCMB
	MOVC     A,@A+DPTR
	MOV	DA_IN,A
	SETB	RS_STU
	LCALL	SERIAL_WR	
;	LCALL	SEND_D
	MOV	A,#93H
	MOV	DA_IN,A
	CLR	RS_STU
	LCALL	SERIAL_WR
;	LCALL	SEND_I
	MOV	A,RTCYA
	MOVC     A,@A+DPTR
	MOV	DA_IN,A
	SETB	RS_STU
	LCALL	SERIAL_WR
;	LCALL	SEND_D
	MOV	A,#92H
	MOV	DA_IN,A
	CLR	RS_STU
	LCALL	SERIAL_WR
;	LCALL	SEND_I
	MOV	A,RTCYB
	MOVC     A,@A+DPTR
	MOV	DA_IN,A
	SETB	RS_STU
	LCALL	SERIAL_WR	
;	LCALL	SEND_D
	MOV	A,#91H
	MOV	DA_IN,A
	CLR	RS_STU
	LCALL	SERIAL_WR	
;	LCALL 	SEND_I
	MOV	A,RTCA
	MOVC    A,@A+DPTR
	MOV	DA_IN,A
	SETB	RS_STU
	LCALL	SERIAL_WR	
;	LCALL	SEND_D
	MOV	A,#90H
	MOV	DA_IN,A
	CLR	RS_STU
	LCALL	SERIAL_WR	
;	LCALL	SEND_I
	MOV	A,RTCB
	MOVC     A,@A+DPTR		
	MOV	DA_IN,A
	SETB	RS_STU
	LCALL	SERIAL_WR
;	LCALL	SEND_D
	LCALL	LGS1
	LCALL	LGS2
	LCALL	LGS3
	LCALL	LGS4
	LCALL	LGS5
	LCALL	LGS6
	RET
LGS1:		MOV	DPTR,#TAB01		;显示汉字和字符
		MOV	COUNT,#02H
		MOV	A,#94H		
		MOV	DA_IN,A
		CLR	RS_STU
		LCALL	SERIAL_WR		
;		LCALL	SEND_I
LGS11:		CLR	A
		MOVC	A,@A+DPTR
		MOV	DA_IN,A
	 	SETB	RS_STU
		LCALL	SERIAL_WR
;		LCALL	SEND_D
		INC	DPTR
		DJNZ	COUNT,LGS11
		RET
LGS2:		MOV	DPTR,#TAB02		;显示汉字和字符
		MOV	COUNT,#02H
		MOV	A,#97H
		MOV	DA_IN,A
		CLR	RS_STU
		LCALL	SERIAL_WR		
;		LCALL	SEND_I
LGS22:		CLR	A
		MOVC	A,@A+DPTR
		MOV	DA_IN,A
		SETB	RS_STU
		LCALL	SERIAL_WR
;		LCALL	SEND_D
		INC	DPTR
		DJNZ	COUNT,LGS22
		RET
LGS3:		MOV	DPTR,#TAB03		;显示汉字和字符
		MOV	COUNT,#02H
		MOV	A,#8AH
		MOV	DA_IN,A
		CLR	RS_STU
		LCALL	SERIAL_WR
;		LCALL	SEND_I
LGS33:		CLR	A
		MOVC	A,@A+DPTR
		MOV	DA_IN,A
		SETB	RS_STU
		LCALL	SERIAL_WR	

⌨️ 快捷键说明

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