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

📄 1302rwd.asm

📁 DS1302读写及实为七段显示器显示。是在用程序。
💻 ASM
字号:
         	       
                        RST  EQU P3.4
	                PIO  EQU P3.3
                        SCLK EQU P3.2
			
			ORG  0000H;            
			    sJMP START            
			ORG  0003H;            ;
			    sJMP START ;
			ORG  000BH        ;
			    sJMP START         ;
			ORG  0013H    
			    SJMP START;         ;
			ORG  001BH        ;
			    sJMP START         ;
			ORG  0023H        ;
			     sJMP START;         ;
			     
;**************************************
  START: 	       ;
        
    AA:  MOV P1,#00H
	 LCALL DELY300uS1
	 MOV P1,#11H
	 LCALL DELY300uS1
         MOV P1,57H
	 LCALL DELY300uS1
	 MOV P1,56H
	 LCALL DELY300uS1
	 MOV P1,55H
	 LCALL DELY300uS1
	 MOV P1,54H
	 LCALL DELY300uS1
	 MOV P1,53H
	 LCALL DELY300uS1
	 MOV P1,52H
	 LCALL DELY300uS1
	 MOV P1,51H
	 LCALL DELY300uS1
	 MOV P1,50H
	 LCALL DELY300uS1
         LCALL READTIM
	 LCALL CHULI
         SJMP AA
	  
 DELY300uS1:MOV R1,#20
    DEL3001:MOV R2,#54
           DJNZ R2,$
	   DJNZ R1,DEL3001
           RET
;     ds1302 intreface to 51,designed by ytf, name=ds1302.asm
;
;
;        RST  EQU P3.4
;        PIO  EQU P3.3
;        SCLK EQU P3.2
   	

;**************************
  CHULI: NOP
         MOV A,21H
	 ANL A,#00001111B
	 ADD A,#20H
	 MOV 50H,A
	 
	 MOV A,21H
	 ANL A,#11110000B
	 SWAP A
	 ADD A,#30H
	 MOV 51H,A
;*****	 
	 MOV A,22H
	 ANL A,#00001111B
	 ADD A,#40H
	 MOV 52H,A
	 
	 MOV A,22H
	 ANL A,#11110000B
	 SWAP A
	 ADD A,#50H
	 MOV 53H,A
;******	 
	 MOV A,23H
	 ANL A,#00001111B
	 ADD A,#60H
	 MOV 54H,A
	 
	 MOV A,23H
	 ANL A,#11110000B
	 SWAP A
	 ADD A,#70H
	 MOV 55H,A
;******
	 MOV A,24H
	 ANL A,#00001111B
	 ADD A,#80H
	 MOV 56H,A
	 
	 MOV A,24H
	 ANL A,#11110000B
	 SWAP A
	 ADD A,#90H
	 MOV 57H,A
	 RET
	 
;***********READ S-M-H-D-Y-MS-YE********* 
 READTIM:NOP
;        MOV R1,#81H	 ;1-x00000-1	 read 00000h n0	pc20h<-'s'
;	 LCALL READD	 ;b	   r
;	 MOV 20H,R0

	 MOV R1,#83H	 ;1-x00001-1	 read 00001h n1	pc21h<-'m'
	 LCALL READD	 ;b	   r
	 MOV 21H,R0

	 MOV R1,#85H	 ;1-x00010-1	 read 00010h n2	pc22h<-'h'
	 LCALL READD	 ;b        r
	 MOV 22H,R0

	 MOV R1,#87H	 ;1-x00011-1     read 00011h n3	pc23h<-'d'
	 LCALL READD	 ;b        r
	 MOV 23H,R0
 
	 MOV R1,#89H	 ;1-x00100-1		     n4	pc24h<-'y'
	 LCALL READD		   r
	 MOV 24H,R0
	 
;	 MOV R1,#8BH	 ;1-x00101-1		     n5	pc25h<-'ms'
;	 LCALL READD		   r
;	 MOV 25H,R0
 
;	 MOV R1,#8DH	 ;1-x00110-1		     n6	pc26h<-'ye'
;	 LCALL READD		   r
;	 MOV 26H,R0
 
	 ret
	
;******	R0=DATA R1=ADDRESS*******
  WRITE:CLR SCLK;	 clr rst	
	NOP
	NOP
	SETB RST;	RST=1 
	        ;	setb sclk
	NOP
	MOV A,R1
	MOV R2,#8
        ;       *******  R1=address    	
   SF01:RRC A ;	transfer address to ds1302
	MOV PIO,C  ;write C to io-piont
	NOP
	NOP
	SETB SCLK;  clk-shangshenyan	 clr sclk
	NOP
	NOP
	CLR SCLK;   clk-xiajiangyan	 setb sclk
	;	********  one bit write ok
	DJNZ R2,SF01  ;*  8-bit address  write ok
	NOP	
	NOP
;*********************	;* write 8-bit data
	MOV A,R0	;* R0=data
	MOV R2,#8
   SF02:RRC A ;transfer data to ds1302,shift right one bit 
	MOV PIO ,C	 ;write C to io-piont
	NOP
	NOP
	SETB SCLK	 ;clk-shangshenyan
	NOP
	NOP
	CLR SCLK	 ;clk-xiajiangyan
	DJNZ R2,SF02
	NOP
	NOP
	CLR RST
	NOP
	NOP
	RET
;**********WRITE OK******************

;******	R0=DATA R1=ADDRESS*******  
   READD:SETB RST
	MOV A,R1
	MOV R2,#8
   SS01:RRC A
	MOV PIO ,C
	NOP
	NOP
	SETB SCLK
	NOP
	NOP
	CLR SCLK
	DJNZ R2,SS01	
	NOP
	NOP
	SETB PIO
	CLR A
	CLR C
	MOV R2,#8
   SS02:MOV C,PIO  ;input 9 bit,no.1bit yi chu le
	RRC A
	NOP
	NOP
	SETB SCLK	
	NOP
	NOP
	CLR SCLK
	NOP
	NOP
	DJNZ R2,SS02
	MOV R0,A
	CLR RST
	RET
;**********READ OK******************	
	
	END      
 

⌨️ 快捷键说明

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