📄 1-1161---0-1222.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 + -