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

PIC单片机玩具车程序

点击数:7448 次   录入时间:03-04 11:39:06   整理:http://www.55dianzi.com   PIC单片机




READ_BIT_COUNTER
BSF GPIO,SDA ; set data bit to 1 so we’re not pulling bus down.
NOP
BSF GPIO,SCL
MOV LW 8  ; Set counter so 8 bits will be read into EEDATA
MOV WF COUNTER




READ_BYTE
BSF GPIO,SCL ; Raise SCL, SDA valid. SDA still input from ack
BSF STATUS,CARRY ;(SETC) Assume bit to be read = 1
BTFSS GPIO,SDA ; Check if SDA = 1
BCF STATUS,CARRY ;(CLRC) if SDA not = 1 then clear carry bit
RLF EEDATA,1 ; rotate carry bit (=SDA) into EEDATA;
BCF GPIO,SCL ; Lower SCL
bsf GPIO,SDA ; reset SDA
DECFSZ COUNTER,1 ; Decrement counter
GOTO READ_BYTE ; Read next bit if not finished reading byte
BSF GPIO,SCL
NOP
BCF GPIO,SCL




;****************** Generate a STOP bit and RETURN ***********************




STOP_BIT
BCF GPIO,SDA ; SDA=0, on TRIS, to prepare for transition to ’1’
BSF GPIO,SCL ; SCL = 1 to prepare for STOP bit
GOTO $+1  ; equivalent 4 NOPs neccessary for I2C spec Tsu:sto = 4.7us
GOTO $+1
BSF GPIO,SDA ; Stop bit, SDA transition to ’1’ while SCL high
BTFSS PC_OFFSET,EE_OK ; Check for error
RETLW NO  ; if error, send back NO
RETLW OK  ; if no error, send back OK




;************************ End EEPROM Subroutines **************************
;XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
;XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
;XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
;XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
;XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
;XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
;XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
;XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
;
; 0111 1RRR  DDDD DDDD  ->  register mode
;
; 0111 10AA  AAAA AAAA  111K DBBB ; Bit manipulation
;              verify/write^




;.....................................................................
DECOD SWAPF INDF,0  ;    25
MOV WF BT6  ;    26
RRF BT6,0  ;    27
ANDLW 00000111b ;    28
ADDWF PC  ;    29
GOTO DECCON  ; 000    30-31
GOTO ADVAN  ; 001
GOTO FORWARD  ; 010
GOTO REVERSE  ; 011
GOTO FTION  ; 100
GOTO FTION1  ; 101
GOTO TELNEW  ; 110




MOV F BT2,0  ;--------------------------------
XORLW 11111001b ; old acknowledge mode
BTFSC STATUS,ZERO ;
GOTO OLDACK  ;--------------------------------




MOV F INDF,0  ; OTM mode -copy bytes
MOV WF BT1  ; 
INCF FSR,1  ; 
MOV F INDF,0  ; CV to pogram
MOV WF BT2  ;
INCF FSR,1  ; DATA for cv
MOV F INDF,0  ; INDF looks to data
MOV WF BT3  ;
GOTO PROGOTM  ; 111
;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^




;.....................................................................
BITMAN  MOV WF FSR  ;
MOV LW 00000111b ;
ANDWF BT3,0  ;
CALL BITPOS  ;
BTFSS BT3,4  ;
GOTO VBIT  ; verify bit
BTFSC BT3,3  ;
IORWF INDF,1  ; set bit
XORLW 0XFF  ;
BTFSS BT3,3  ;
ANDWF INDF,1  ; clear bit
MOV F FSR,0  ; EEADDR
GOTO EEPROG  ; write complete byte
;--------------------------------
VBIT ANDWF INDF,0  ;
BTFSC STATUS,ZERO ;
GOTO BITCLR  ;




BITSET BTFSC BT3,3  ;
GOTO ACKNOW  ; =1 
GOTO HOPP  ;




BITCLR BTFSS BT3,3  ;
GOTO ACKNOW  ; =0
GOTO HOPP  ;
;--------------------------------
BITPOS ADDWF PC  ;
RETLW 00000001b ; 0 
RETLW 00000010b ; 1 
RETLW 00000100b ; 2 
RETLW 00001000b ; 3 
RETLW 00010000b ; 4 
RETLW 00100000b ; 5 
RETLW 01000000b ; 6 
RETLW 10000000b ; 7 
;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^




;.....................................................................
DECCON BTFSC INDF,4  ; 000>0<CCCD
GOTO CONCON  ; 0001 consist control




RRF INDF,0  ; 0000CCC>D<  MOV ed to carry
ANDLW 0xFF  ;
BTFSC STATUS,ZERO ;
GOTO RESET  ; 000 reset / hard reset
GOTO HOPP  ;
;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^




;.....................................................................
LIGHT BTFSS RDLTON  ;
GOTO LI  ;
BTFSC REDLT  ;
GOTO REDLIT  ;
GOTO NOLIGHT  ;
LI BTFSS BRKON  ;
GOTO LI1  ;
BTFSC BRAKE  ;
GOTO REDLIT  ;
GOTO NOLIGHT  ;




LI1 BTFSS INDF,4  ;
GOTO NOLIGHT  ;
REDLIT BTFSC DIR  ; direction invert?
GOTO BLIGHT  ;




FLIGHT BTFSC LIINV  ; light invert? (PWRSRC)
GOTO BLI  ;




FLI BTFSS FLOFF  ; cv50
BSF LIGHT1  ;

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


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

上一篇:LCD1602显示C语言