您当前的位置:五五电子网电子知识单片机-工控设备PIC单片机PIC单片机玩具车程序 正文
PIC单片机玩具车程序

PIC单片机玩具车程序

点击数:7448 次   录入时间:03-04 11:39:06   整理:http://www.55dianzi.com   PIC单片机
BTFSS BLOFF  ; cv51
BCF LIGHT2  ;
RETLW 0




BLIGHT BTFSC LIINV  ; light invert? (PWRSRC)
GOTO FLI  ;




BLI BTFSS FLOFF  ; cv50
BCF LIGHT1  ;
BTFSS BLOFF  ; cv51
BSF LIGHT2  ;
RETLW 0




NOLIGHT BTFSS FLOFF  ; cv50
BCF LIGHT1  ;
BTFSS BLOFF  ; cv51
BCF LIGHT2  ;
RETLW 0
;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^




;....................................................................
FINDCV BCF NOCV  ;
BCF ROMCV  ;




XORLW (1-1)  ; CV1
BTFSC STATUS,ZERO ;
RETLW CV1  ; Primary Adress




XORLW (1-1)^(2-1) ; CV2
BTFSC STATUS,ZERO ;
RETLW CV2  ; Vstart




XORLW (2-1)^(3-1) ; CV3
BTFSC STATUS,ZERO ;
RETLW CV3  ; Acceleration Rate




XORLW (3-1)^(4-1) ; CV4
BTFSC STATUS,ZERO ;
RETLW CV4  ; Deceleration Rate




XORLW (4-1)^(5-1) ; CV5
BTFSC STATUS,ZERO ;
RETLW CV5  ; Vhigh




XORLW (5-1)^(6-1) ; CV6
BTFSC STATUS,ZERO ;
RETLW CV6  ; Vmid




XORLW (6-1)^(17-1) ; CV17
BTFSC STATUS,ZERO ;
RETLW CV17  ; Extended Adress Low Byte




XORLW (17-1)^(18-1) ; CV18
BTFSC STATUS,ZERO ;
RETLW CV18  ; Extended Adress High Byte




XORLW (18-1)^(19-1) ; CV19
BTFSC STATUS,ZERO ;
RETLW CV19  ; Consist Adress




XORLW (19-1)^(29-1) ; CV29
BTFSC STATUS,ZERO ;
RETLW CV29  ; 0=DIR 1=14/28 2=PWSRC 3=ADVACK 4=SPEEDTAB 5=LADRE 6= 7=ACCDEC




XORLW (29-1)^(49-1) ; CV49
BTFSC STATUS,ZERO ;
RETLW CV49  ; Output F1-F8 to GP2




XORLW (49-1)^(50-1) ; CV50
BTFSC STATUS,ZERO ;
RETLW CV50  ; front light switch with F1-F8




XORLW (50-1)^(51-1) ; CV51
BTFSC STATUS,ZERO ;
RETLW CV51  ; back light switch with F1-F8




XORLW (51-1)^(55-1) ; CV55
BTFSC STATUS,ZERO ;
RETLW CV55  ; second Vhigh




XORLW (55-1)^(64-1) ; CV64
BTFSC STATUS,ZERO ;
RETLW CV64  ; configuration byte




BSF ROMCV  ;
XORLW (64-1)^(7-1) ; CV7
BTFSC STATUS,ZERO ;
RETLW CV7  ; Version No




XORLW (7-1)^(8-1) ; CV8
BTFSC STATUS,ZERO ;
RETLW CV8  ; Manufacturer




BCF ROMCV  ;
BSF NOCV  ;
RETLW 0xFF  ; no CV’s to program
;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^




;....................................................................
PROG  MOV F FSR,0  ;
ANDLW 00001111b ;
XORLW BT3  ;
BTFSS STATUS,ZERO ;
GOTO PROGREG  ; 3 byte command




PROGOTM  MOV F BT2,0  ;
CALL FINDCV  ;
BTFSC NOCV  ;
GOTO HOPP  ;




BTFSC ROMCV  ;
BTFSS BT1,3  ; write/verify bit
GOTO ROMNEXT  ;
MOV WF MAPCV  ;
MOV LW MAPCV  ;




ROMNEXT BTFSS BT1,2  ;
GOTO BITMAN  ; bit manipulation




BTFSS BT1,3  ; write/verify bit
GOTO EEVERI  ;
;--------------------------------




EEPROG ANDLW 00001111b ;
MOV WF EEADDR  ;
READ CALL READ_RANDOM ; *******************************
BTFSS PC_OFFSET,EE_OK ;(BTFSC STATUS,ZERO) ERROR?
GOTO READ
CLRF CONFIG
MOV F INDF,0  ;
XORWF EEDATA,0 ;




BTFSC STATUS,ZERO ;
BCF STATUS,SEITE ; auf ROM seite 0
BTFSC STATUS,ZERO ;
GOTO LOADREG  ;




MOV F INDF,0  ;
MOV WF EEDATA  ;




BTFSC PROGBIT  ;
GOTO PROG3  ;
BSF PROGBIT  ; 2x prog
GOTO PROGEX  ;




PROG3 BTFSC PROGBT1  ;
GOTO EEIN  ;
BSF PROGBT1  ; 3x prog
GOTO PROGEX  ;




EEIN CALL WRITE_BYTE ; ********************************
BTFSS PC_OFFSET,EE_OK ;(BTFSC STATUS,ZERO) ERROR?
GOTO EEIN  ;
CLRF CONFIG
BCF STATUS,SEITE ; auf ROM seite 0
BCF PROGBIT  ;
BCF PROGBT1  ;
GOTO INIT  ; 
;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^




;....................................................................




OLDACK  MOV F BT1,0  ;------ for old DCC-Programmer ------
MOV WF INDF  ; save loco adress
CLRW   ; CV1
CLRF MAPCV  ; for old acknowledge
GOTO OACK  ;




EEVERI BTFSC ROMCV  ;
GOTO RDROMCV  ;




ANDLW 00001111b ;
OACK  MOV WF EEADDR  ;
CALL READ_RANDOM ; ********************************
CLRF CONFIG
MOV F INDF,0  ;
XORWF EEDATA,0 ;




VERIBK BTFSS STATUS,ZERO ;
BCF STATUS,SEITE ; to ROM page 0
BTFSS STATUS,ZERO ;
GOTO START  ;




ACKNOW BTFSC ACKBIT  ;
GOTO ACKNOW1  ;
BSF ACKBIT  ; 2x verify 
GOTO PROGEX  ;




ACKNOW1  MOV LW 00110001b ; set FL/FR and motor on
MOV WF GPIO  ;




LOOP  MOV LW 9  ; 7x765uS (5355) 4,5,6,7 ok; 8 9 10 IB
MOV WF BT5  ;
OLOOP CLRF BT6  ; help register
CLRWDT   ;

上一页  [1] [2] [3] [4] [5] [6] [7] [8] [9] [10]  下一页


本文关键字:单片机  程序  玩具  PIC单片机单片机-工控设备 - PIC单片机

上一篇:LCD1602显示C语言