SUBWF BT5,0 ; LOW
BTFSC STATUS,CARRY ; BIT
GOTO CALI ;-----------------
MOV LW 27 ; <- Schleife +2
SUBWF BT5,0 ;
BTFSC STATUS,CARRY ; Hi BIT > 25?
GOTO CALEX ;-----------------
MOV LW 00100000b ;
ADDWF OSCCAL,1 ;
GOTO CALI ;-----------------
;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
; -----------------------------------
CALEX MOV LW INOUT ; GP3 input, rest output
TRIS GPIO ; tristate port GPIO
MOV LW 11010110b ; no wakeup, no pullup, T0 int., hightolow, T0, 1:128
OPTION
COMF XOR,0 ; inverted stored for reset conditions (all zero)
XORWF SOLL,0 ; for brown out to start
XORWF IST,0 ; with same speed
BTFSC STATUS,ZERO ; all Bytes ok?
GOTO START ; -----------------------------------
CLEAR BCF ACKBIT ;
CLRF IST ; -----------------------------------
CLRF SOLL ; set all register to start condition
CLRF S31 ;
CLRF LO ;
CLRF HI ; set PWM to 1 to force a jump
CLRF PWM ; in STEP for stop condition
INCF PWM ; -----------------------------------
BEGIN
; EEPROM ............................................................
LOADREG MOV LW 0x30 ;
MOV WF FSR ; Pointer for indirect Adressing
CLRF EEADDR ;
EEREAD BSF STATUS,SEITE ; set to 200H begin EEPROM
CALL READ_RANDOM ;
BCF STATUS,SEITE ; auf ROM seite 0
BTFSS PC_OFFSET,EE_OK ;(BTFSC STATUS,ZERO) ERROR?
GOTO EEREAD ;
MOV F EEDATA,0 ;
MOV WF INDF ;
MOV LW 0x3F ;
XORWF FSR,0 ;
ANDLW 00111111b ;
BTFSC STATUS,ZERO ;
GOTO EEEXIT ;
INCF FSR,1 ;
INCF EEADDR ;
GOTO EEREAD ;
EEEXIT MOV F CV3,0 ;
BTFSC STATUS,ZERO ;
IORLW 1 ;
XORLW 0xFF ; complement W
BCF FSR,5 ; rampage back to 0x10..
MOV WF ACC ;
BSF FSR,5 ; rampage to 0x30..
MOV F CV4,0 ;
BTFSC STATUS,ZERO ;
IORLW 1 ;
XORLW 0xFF ; complement W
BCF FSR,5 ; rampage back to 0x10..
MOV WF DEC ;
;--------------------------------
BSF FSR,5 ;
MOV F CV64,0 ; copy config
BCF FSR,5 ; to
MOV WF FLAG ; lower ram page
;--------------------------------
MOV LW 0x09 ; adress = BT1 - 1
MOV WF FSR ; Pointer for indirect Adressing
GOTO START ;
;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
;..................................................................
SPDTAB MOV F S31,0 ;13
ADDWF PC ;14
RETLW 0 ;15-16
RETLW 0 ;
RETLW 0 ;
RETLW 0 ;
RETLW 2 ; 1
RETLW 3 ; 2
RETLW 5 ; 3
RETLW 7 ; 4
RETLW 10 ; 5
RETLW 13 ; 6
RETLW 18 ; 7
RETLW 22 ; 8
RETLW 28 ; 9
RETLW 34 ; 10
RETLW 41 ; 11
RETLW 48 ; 12
RETLW 56 ; 13
RETLW 65 ; 14
RETLW 74 ; 15
RETLW 84 ; 16
RETLW 95 ; 17
RETLW 106 ; 18
RETLW 118 ; 19
RETLW 131 ; 20
RETLW 144 ; 21
RETLW 158 ; 22
RETLW 173 ; 23
RETLW 188 ; 24
RETLW 204 ; 25
RETLW 220 ; 26
RETLW 237 ; 27
RETLW 255 ; 28
;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
;....................................................................
;--------------------- multiply MULT1 * MULT2 = hi MULT1 low MULT2 --
MULTIP MOV LW 9 ; 1
MOV WF COUNT ; 2
CLRW ; 3
BCF STATUS,CARRY ; 4
MULTI MOV WF TEMP ; 1
RRF TEMP,0 ; 2
RRF MULT2,1 ; 3
BTFSC STATUS,CARRY ; 4
ADDWF MULT1,0 ; 5
DECFSZ COUNT,1 ; 6
GOTO MULTI ; 7-8
MOV WF MULT1 ; 9*8=72 76
RETLW 0 ; END MULTIP 77-78
;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
;SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
START CLRWDT ; 12
MOV LW 0xFF ; 13
MOV WF BT4 ; 14
MOV WF BT5 ; 15
MOV WF BT6 ; 16
MOV LW 0x09 ; Pointer for ind. Adressing 17
MOV WF FSR ; (BT1 - 1) 18
MOV LW 11 ; 19
MOV WF PRE ; PRE to 10 Bit for Preample 20
;-------------
INTEST CLRF HI ; 20
INTST BCF STEPOK? ; 21
NOP ; 22
CALL IN ; 23-24
BTFSC STEPOK? ; 4.
GOTO STEPOK ; 5.-6
CALL STEP ; 6.-7.
BTFSC DCCIN ; ########### input ########## 1 (25)
BSF BITHI ; 2
BTFSC FLACKER ; 3
BTFSC BT2,3 ; 4
上一页 [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] 下一页
本文关键字:单片机 程序 玩具 PIC单片机,单片机-工控设备 - PIC单片机