📄 s1505-52.asm
字号:
;My first PIC program for control si4133,IntRC_OSC
;REF=10M,RF1=1505.52MHz,N1=18819,R1=125
list p=12c508a
#include <p12c508a.inc>
__config _CP_ON & _WDT_OFF & _MCLRE_OFF & _IntRC_OSC
#DEFINE DAT GPIO,4
#DEFINE CLK GPIO,2
#DEFINE ENB GPIO,1
#DEFINE LD GPIO,0
TEMP1 equ 0x08
TEMP2 equ 0x09
TEMP3 equ 0x0A
org 0x00
BEGIN
clrf GPIO
movlw 0x01
tris GPIO
movlw 0x00
option
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 0x21
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 0x04
movwf TEMP1
movlw 0x08
movwf TEMP2
call SDATA
movlw 0x98
movwf TEMP1
movlw 0x08
movwf TEMP2
call SDATA
movlw 0x33
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 0x04
;movwf TEMP1
;movlw 0x08
;movwf TEMP2
;call SDATA
;call SENB ;register 4
movlw 0x00
movwf TEMP1
movlw 0x08
movwf TEMP2
call SDATA
movlw 0x00
movwf TEMP1
movlw 0x08
movwf TEMP2
call SDATA
movlw 0x05
movwf TEMP1
movlw 0x08
movwf TEMP2
call SDATA
call SENB ;register 5
movlw 0x00
movwf TEMP1
movlw 0x08
movwf TEMP2
call SDATA
movlw 0x07
movwf TEMP1
movlw 0x08
movwf TEMP2
call SDATA
movlw 0xD6
movwf TEMP1
movlw 0x08
movwf TEMP2
call SDATA
call SENB ;register 6
;movlw 0x00
;movwf TEMP1
;movlw 0x08
;movwf TEMP2
;call SDATA
;movlw 0x00
;movwf TEMP1
;movlw 0x08
;movwf TEMP2
;call SDATA
;movlw 0x07
;movwf TEMP1
;movlw 0x08
;movwf TEMP2
;call SDATA
;call SENB ;register 7
movlw 0x00
movwf TEMP1
movlw 0x08
movwf TEMP2
call SDATA
movlw 0x00
movwf TEMP1
movlw 0x08
movwf TEMP2
call SDATA
movlw 0x08
movwf TEMP1
movlw 0x08
movwf TEMP2
call SDATA
call SENB ;register 8
call DELAY
call SLD
goto BEGIN ;Repeat
;***************************************
;* This routine is a software delay. *
;* Fosc=1/Tosc; Tcycle = 4 x Tosc *
;* Delay=TEMP1xTEMP2xTEMP3xTcycle *
;***************************************
DELAY
movlw 0xFF
movwf TEMP1 ;TEMP1=255
movwf TEMP2 ;TEMP2=255
movlw 0x07
movwf TEMP3 ;TEMP3=7
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 + -