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

📄 1-1161---0-1222.asm

📁 508单片机
💻 ASM
字号:
;My first PIC program for control AD9851,IntRC_OSC
;REF=10M, F0=1161,F1=1222


   list p=12c508a
   #include <p12c508a.inc>
   __config  _CP_ON & _WDT_OFF & _MCLRE_OFF & _IntRC_OSC

 	#DEFINE DAT   GPIO,5
   	#DEFINE CLK   GPIO,4
  	#DEFINE ENB   GPIO,2
   	#DEFINE LD    GPIO,1
	#DEFINE SW    GPIO,0

TEMP1	equ	0x08			;Temp variables
TEMP2	equ	0x09
TEMP3	equ	0x0A

   	org	0x00			;Effective Reset Vector
BEGIN
   	clrf	GPIO	
 	movlw	0x03		 
	tris	GPIO 
	movlw   0x00
	option
        
START   
	btfss   SW             ; "1" SKIP IF SET
	call    F1
	call    DELAY1
	btfss   SW             ; "1" SKIP IF SET
        goto    START
        movlw   0x03
	movwf   TEMP1
	movlw   0x08
	movwf   TEMP2
	call    SDATA

	movlw   0x00
	movwf   TEMP1
	movlw   0x08
	movwf   TEMP2
	call    SDATA

        movlw   0x40
	movwf   TEMP1
	movlw   0x08
	movwf   TEMP2
	call    SDATA

	call    SENB	                 ;register 0 

	movlw   0x00
	movwf   TEMP1
	movlw   0x08
	movwf   TEMP2
	call    SDATA

	movlw   0x00
	movwf   TEMP1
	movlw   0x08
	movwf   TEMP2
	call    SDATA

	movlw   0x01
	movwf   TEMP1
	movlw   0x08
	movwf   TEMP2
	call    SDATA
	
	call    SENB                      ;register 1

	movlw   0x00
	movwf   TEMP1
	movlw   0x08
	movwf   TEMP2
	call    SDATA

	movlw   0x00
	movwf   TEMP1
	movlw   0x08
	movwf   TEMP2
	call    SDATA

	movlw   0x12
	movwf   TEMP1
	movlw   0x08
	movwf   TEMP2
	call    SDATA
	
	call    SENB                      ;register 2

	movlw   0x00
	movwf   TEMP1
	movlw   0x08
	movwf   TEMP2
	call    SDATA

	movlw   0x48
	movwf   TEMP1
	movlw   0x08
	movwf   TEMP2
	call    SDATA

	movlw   0x93
	movwf   TEMP1
	movlw   0x08
	movwf   TEMP2
	call    SDATA
	
	call    SENB                      ;register 3
 

	movlw   0x00
	movwf   TEMP1
	movlw   0x08
	movwf   TEMP2
	call    SDATA

	movlw   0x00
	movwf   TEMP1
	movlw   0x08
	movwf   TEMP2
	call    SDATA

	movlw   0xA6
	movwf   TEMP1
	movlw   0x08
	movwf   TEMP2
	call    SDATA
	
	call    SENB                      ;register 6
	goto 	FC

F1	call    DELAY1
	btfss   SW             ; "1" SKIP IF SET
	call    F2
	goto 	START
F2
	movlw   0x03
	movwf   TEMP1
	movlw   0x08
	movwf   TEMP2
	call    SDATA

	movlw   0x00
	movwf   TEMP1
	movlw   0x08
	movwf   TEMP2
	call    SDATA

        movlw   0x40
	movwf   TEMP1
	movlw   0x08
	movwf   TEMP2
	call    SDATA

	call    SENB	                 ;register 0 

	movlw   0x00
	movwf   TEMP1
	movlw   0x08
	movwf   TEMP2
	call    SDATA

	movlw   0x00
	movwf   TEMP1
	movlw   0x08
	movwf   TEMP2
	call    SDATA

	movlw   0x01
	movwf   TEMP1
	movlw   0x08
	movwf   TEMP2
	call    SDATA
	
	call    SENB                      ;register 1

	movlw   0x00
	movwf   TEMP1
	movlw   0x08
	movwf   TEMP2
	call    SDATA

	movlw   0x00
	movwf   TEMP1
	movlw   0x08
	movwf   TEMP2
	call    SDATA

	movlw   0x12
	movwf   TEMP1
	movlw   0x08
	movwf   TEMP2
	call    SDATA
	
	call    SENB                      ;register 2

	movlw   0x00
	movwf   TEMP1
	movlw   0x08
	movwf   TEMP2
	call    SDATA

	movlw   0x4C
	movwf   TEMP1
	movlw   0x08
	movwf   TEMP2
	call    SDATA

	movlw   0x63
	movwf   TEMP1
	movlw   0x08
	movwf   TEMP2
	call    SDATA
	
	call    SENB                      ;register 3
 

 

	movlw   0x00
	movwf   TEMP1
	movlw   0x08
	movwf   TEMP2
	call    SDATA

	movlw   0x00
	movwf   TEMP1
	movlw   0x08
	movwf   TEMP2
	call    SDATA

	movlw   0xA6
	movwf   TEMP1
	movlw   0x08
	movwf   TEMP2
	call    SDATA
	
	call    SENB                      ;register 6
	 
	 

FC
	call    DELAY
	call    SLD

	goto	BEGIN			;Repeat
 

DELAY

	movlw	0xFF 
	movwf	TEMP1			;TEMP1=255
	movwf	TEMP2			;TEMP2=255
	movlw	0x07 
	movwf	TEMP3			;TEMP3=1
	retlw	0x00

DELAY1  movlw   100
	movwf	10
    AA  movlw   50
	movwf	11
    BB  decfsz  11,1
	goto    BB
	decfsz  10,1
	goto    AA
	retlw	0x00

DLOOP
	decfsz  TEMP1, F
	goto    DLOOP

	;decfsz  TEMP2, F
	;goto    DLOOP

	decfsz  TEMP3, F
	goto    DLOOP

	retlw	0x00

SDATA
	rlf     TEMP1,F
	btfsc   STATUS,C
	goto    NEXT
	bcf     DAT
	goto 	NEXT1
NEXT	
	bsf     DAT
	nop
	nop
NEXT1
	bsf	CLK
	nop
	nop 
	bcf  	CLK
	decfsz	TEMP2,F
	goto    SDATA
	retlw   0x00

SENB	
	bsf	ENB
	nop
	nop
	bcf	ENB
	retlw	0x00

SLD
	btfss	LD
	sleep
	retlw	0x00

	end		

 

⌨️ 快捷键说明

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