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

PIC单片机玩具车程序

点击数:7448 次   录入时间:03-04 11:39:06   整理:http://www.55dianzi.com   PIC单片机
GOTO CHKPROG  ;    22-23
MOV LW 0x2B  ; BT2 + FSR,5   23
MOV WF FSR  ; to 2. byte   24
BSF STATUS,SEITE ;    25
GOTO DECOD  ;    26-27
;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
;--------------------------------
NEXT NOP   ;    15
RLF INDF,1  ; 1.Byte zusammenbauen  16
DECFSZ HI,0  ; HI=1?    17
GOTO INTEST1  ; next bit   18-19
GOTO START21  ;    19-20




;....................................................................
VMIDHI EQU 0x0A ; BT1
VMIDLO EQU 0x0B ; BT2
MULT1 EQU 0x0C ; BT3
MULT2 EQU 0x0D ; BT4
COUNT EQU 0x0E ; BT5
TEMP EQU 0x0F ; BT6
;--------------------------------
RSPEED  MOV F CV55,1  ;
BTFSC STATUS,ZERO ;
GOTO FSPEED  ;
SUBWF CV55,0  ;
GOTO RSPDEX  ;




CV2CV5  MOV F CV2,0  ; CV2CV5
MOV F CV51,1  ;
BTFSS SPEED2  ; activ low
BTFSC STATUS,ZERO ; 2nd Vmax for direction if CV51 not set
BTFSC DIR  ;
BTFSC FLAGS2  ; flag for 2nd FS
GOTO RSPEED  ;
FSPEED SUBWF CV5,0  ;
RSPDEX  MOV WF MULT1  ;
MOV WF VMIDHI  ; CV5-CV2




;................................ correction 28->32 .................
BCF STATUS,CARRY ;
RRF MULT1,1  ; /2 (127)
SWAPF VMIDHI,0 ; /16
ANDLW 00001111b ;
ADDWF MULT1,1  ; 127+15
MOV WF TEMP  ;
RRF TEMP,0  ;
ADDWF MULT1,1  ; 142+7
INCF MULT1,1  ;
;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
MOV LW 4  ; 4-31 -> 0-27
SUBWF S31,0  ;
MOV WF MULT2  ;
;-------
CALL MULTIP  ;   104-105 (1-86)
;-------
RRF MULT1,1  ;   77
RRF MULT2,1  ; /4   78
RRF MULT1,1  ;   79
RRF MULT2,1  ; /8   80
RRF MULT1,1  ;   81
RRF MULT2,1  ; /16   82
RRF MULT1,1  ;   83
RRF MULT2,1  ; /32   84
;-------
BTFSC MULT1,0  ; > 255 ?
GOTO BORROW  ;
MOV F CV2,0  ;
ADDWF MULT2,0  ;
BTFSC STATUS,CARRY ;
BORROW  MOV LW 255  ;
MOV WF SOLL  ;




;----------------------------------------------VMID------------------




VMID BCF FSR,5  ;-------------------
CALL STEP  ; for better PWM 
BSF FSR,5  ;-------------------




CLRF VMIDLO  ;
MOV F CV6,0  ; 
BTFSC STATUS,ZERO ;
GOTO VMIDEND  ; no VMID




ANDLW 01111111b ; 




MOV WF MULT1
MOV F VMIDHI,0 ; CV5-CV2
MOV WF MULT2
;-------
CALL MULTIP
;-------
MOV F MULT1,0  ; CV6*(CV5-CV2)/255
MOV WF VMIDHI  ;
BTFSS CV6,7  ;
GOTO NEGVMID  ;




MOV LW 4  ;
SUBWF S31,0  ; 4-31 > 0-27
GOTO VMID1  ;




NEGVMID COMF S31,0  ;
ANDLW 00011111b ;




VMID1  MOV WF COUNT  ;
BTFSS COUNT,4  ;
BTFSC COUNT,3  ;
GOTO VMIDMUL  ; > 7 lin




MOV WF TEMP  ;
BTFSC STATUS,ZERO ;
GOTO VMID3  ;
BCF STATUS,CARRY ;




VMID2 RRF VMIDHI,1 ; ->c log
RRF VMIDLO,1 ;   c->  /2
DECFSZ COUNT,1  ;
GOTO VMID2  ;




VMID3  MOV F VMIDHI,0 ;
SUBWF MULT1,0  ;
GOTO VMIDEND  ;
;--------------------------------
VMIDMUL BCF STATUS,CARRY
RRF VMIDHI,0 ; CV6 /2
ADDWF VMIDHI,0 ; CV6 - CV6 / 2
MOV WF MULT1  ;




MOV LW 7  ;
SUBWF COUNT,0  ; (S31)
MOV WF MULT2  ;
BCF STATUS,CARRY ;
RRF MULT2,0  ; /2
ADDWF MULT1,1  ;
BTFSC MULT2,0  ; odd
INCF MULT1,1  ;
;-------
CALL MULTIP  ;   248-249 (1-86)
;-------
RLF MULT2,1  ;
RLF MULT1,1  ; /128
RLF MULT2,1  ;
RLF MULT1,1  ; /64
RLF MULT2,1  ;
RLF MULT1,1  ; /32




INCF MULT1,0  ;
SUBWF VMIDHI,0 ;
;------------




VMIDEND BTFSS CV6,7  ;
GOTO SUBVMID  ;
ADDWF SOLL,0  ;
BTFSS STATUS,CARRY ;
MOV WF SOLL  ;
SUBEX BSF FS126  ;




BCF FSR,5  ;
GOTO START  ;




SUBVMID SUBWF SOLL,0  ;
BTFSC STATUS,CARRY ;
MOV WF SOLL  ;
GOTO SUBEX  ;




;------------------------------------------END VMID------------------




;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^




;--------------------------------------------------------------------
START1. NOP   ;    1.
START2. GOTO $+1  ;*    2.-3.
START4. GOTO $+1  ;    4.-5.
START6. CALL STEP  ;    6.-7.
START1 GOTO $+1  ;    1-2
START3 GOTO $+1  ;    3-4
START5 GOTO $+1  ;    5-6
START7 GOTO $+1  ;    7-8
START9 NOP   ;    9
START10 GOTO START  ;    10-11
START11 GOTO $+1  ;    11-12
START13 GOTO $+1  ;    13-14

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


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

上一篇:LCD1602显示C语言