久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 13089|回復: 7
收起左側

電動車控制完整程序,希望對大家有幫助

  [復制鏈接]
ID:90671 發表于 2015-9-29 08:22 | 顯示全部樓層 |閱讀模式
;designed by wangxiaoqing
   ;2005 11.25      
            LIST P=16f72         
     INCLUDE "P16f72.inc"
           
           ORG 0000H
        GOTO  E00A
        ADDLW 0xff
        addlw 0xff
        addlw 0xff
            ;主程序開始跳到BANK0------BANK1
      ORG   0004H
   GOTO F168
   MOVLW 0;   初始化
   MOVWF 0X40;延時256*240US
A007 CALL DL
   DECFSZ 0X40,F
   GOTO A007
        ORG  000AH
E00A    MOVLW 0X1 ;   初始化  
   MOVWF 0X40;延時40*240US
A00C CALL DL
   DECFSZ 0X40,F
      GOTO A00C;
A00F CALL B17E;清20H--7FH=0
   CALL B188;復初始積存器值  
   CALL B1A4
   CALL B1D4
   CALL B1D9
   CALL A058
   MOVF 0X71,W
   MOVWF PORTC;根據霍爾信號對應PC口狀態控制IR2103
   BSF T1CON,0;TR1=1定時器開始工作
   BSF T2CON,0X2;TR2=1定時器開始工作
   BSF STATUS,0X5;選擇BANK1
   BCF TMR0,0X5;OPTION.5=0;;T0CS=0用內部周期時鐘
   BCF STATUS,0X5; BANK0
   MOVLW 0XA0
   MOVWF TMR0;TMR0=#160
   BSF INTCON,0X5;允許TMR0中斷  
   BCF INTCON,0X2;T0IF=0
   BCF INTCON,0;RBIF=0
   BSF INTCON,0X7;GIE=1;開所有的中斷  
   CALL H353
A023 CLRWDT;WDT=0防止看門狗益出
      BTFSS 0X20,0
   GOTO  A031
   CLRF CCPR1L  ;CCPR1=0 KJJJJJJJJJJJLKKKKKKKKKKKKKKKKKKK
      MOVLW 0Xf
   ANDWF CCP1CON,F
   CALL  A036
   MOVLW 0X81
   BTFSC PORTB,0X4;PB4=0?
   MOVLW 0XAB;   
   SUBWF 0X65,W ;65H-#ABH
   BTFSC STATUS,0 ; 過壓否 欠壓否
   GOTO E00A;65H>=#ABH;程序復位
   GOTO A023 ;65H<#ABH;跳到0023H
A031 CALL A0A9
   CALL D4D9
   CALL B1D9
   CALL C356
   GOTO  A023
A036 MOVLW 0X89
   MOVWF ADCON0
   NOP
   NOP
   NOP
   NOP
   NOP
   NOP
   NOP
     NOP
   NOP
   NOP
   NOP
   NOP
   BSF ADCON0,2
   NOP
   NOP
   NOP
   NOP
   NOP
   NOP
   NOP
   NOP
   NOP
   NOP
   NOP
   NOP
A051 BTFSC ADCON0,0X2;
   GOTO A051
   MOVLW 0X4;
   ADDWF ADRES,F ;4+ADRES送到ADRES
   MOVF ADRES,W
   MOVWF 0X65; ADRES送到65H
   RETURN;返回地址0029H
;確定當前轉子位置確定當前轉子位置
A058 MOVF PORTB,W ;PB0---PB7送到70H
   MOVWF 0X70
   SWAPF 0X70,F
   BCF STATUS,0
   RRF 0X70,F
   MOVLW 0X7
   ANDWF 0X70,W ;PB5,PB6,PB7接霍爾信號送到W   
   MOVWF 0X70
   CALL  A063
   MOVWF 0X71;W送到71H返回IR2103輸出控制表送到71H
   RETURN
A063 BTFSS PORTB,0X3;檢測PB3=1?
   GOTO  A087;PB3=0;跳到87H
   MOVWF 0X7D;檢測到PB3=1;霍爾信號送到7DH
   MOVLW 0
   SUBWF 0X7D,W ;
   BTFSC STATUS,0X2  ;7DH不=0跳6AH
   RETLW 0;7DH=0;;        W=#0
   MOVLW 0X1
   SUBWF 0X7D,W
   BTFSC STATUS,0X2 ;7DH不=1
   RETLW 0X51 ;7DH=1;;    W=#51H
   MOVLW 0X2
   SUBWF 0X7D,W
   BTFSC STATUS,0X2;7DH=2?  
   RETLW 0X98 ;7DH=2;;   W=#98H
   MOVLW 0X3
   SUBWF 0X7D,W
   BTFSC STATUS,0X2
   RETLW 0X58;7DH=#3;;   W=#58H
   MOVLW 0X4
   SUBWF 0X7D,W
   BTFSC STATUS,0X2;  
   RETLW 0XC2;7DH=#4;;   W=#C2H
   MOVLW 0X5
   SUBWF 0X7D,W
   BTFSC STATUS,0X2
   RETLW 0XC1;7DH=#5;;     W=#C1H
   MOVLW 0X6
   SUBWF 0X7D,W
   BTFSC STATUS,0X2
   RETLW 0X92;7DH=#6;;    W=#92H
   MOVLW 0X7
   SUBWF 0X7D,W
   BTFSC STATUS,0X2;
   RETLW 0;7DH=#7;;        W=#0
   RETLW 0;7DH不=#7;;      W=#0
A087 MOVWF 0X7D
   MOVLW 0   
   SUBWF 0X7D,W
   BTFSC STATUS,0X2
   RETLW 0Xc1;7DH=#0;;   W=#D1H
   MOVLW 0X1
   SUBWF 0X7D,W
   BTFSC STATUS,0X2
   RETLW 0X51;7DH=#1;;  W=#51H   
   MOVLW 0X7
   SUBWF 0X7D,W
   BTFSC STATUS,0X2;;
   RETLW 0X98;7DH=#7;;  W=#98H   
     MOVLW 0X3
   SUBWF 0X7D,W
   BTFSC STATUS,0X2
   RETLW 0X58;7DH=#3;;   W=#58H
   MOVLW 0X4
   SUBWF 0X7D,W
   BTFSC STATUS,0X2
   RETLW 0Xc2;7DH=#4;;   W=#D2H  
   MOVLW 0X5
   SUBWF 0X7D,W
   BTFSC STATUS,0X2
   RETLW 0;7DH=#5;;      W=#0
   MOVLW 0X6
   SUBWF 0X7D,W
   BTFSC STATUS,0X2
   RETLW 0X92;7DH=#6;;   W=#92H
   MOVLW 0X2
   SUBWF 0X7D,W
   BTFSC STATUS,0X2
   RETLW 0 ;;7DH=#2;;;   W=#0  
   RETLW 0 ;;7DH不=#2;;  W=#0
A0A9    BTFSC 0X20,0
   GOTO A0AF
   CALL B24C
   CALL B252
   BTFSS 0X20,0X4
   GOTO  A0B4
A0AF MOVLW 0XFC
   MOVWF 0X2C
   MOVWF 0X2D
   BCF 0X43,0
   GOTO E143
A0B4 BTFSS 0X44,0X5
   GOTO A0B7
   GOTO  A00F
A0B7 BTFSS 0X20,0X5
   GOTO  A0D0
   MOVF 0X2D,W
   SUBLW 0XFC
   BTFSC STATUS,0X2
   GOTO  A0C8
   MOVLW 0X1
   ADDWF 0X2D,F
   BTFSC STATUS,0
   GOTO A0C8
   MOVF 0X2D,W
   SUBLW 0XFC
   BTFSS STATUS,0
   GOTO A0C8
   MOVF 0X2D,W
   MOVWF 0X2C
   GOTO  E146
A0C8 MOVLW 0XFC
   MOVWF 0X2C
   MOVWF 0X2D
   GOTO E146
   INCF 0X2D,F
   MOVF 0X2D,W
   MOVWF 0X2C
   GOTO E146
A0D0  BTFSS 0X43,0
   GOTO  A0D5
   MOVF 0X38,W
   MOVWF 0X2C
      GOTO  F12E
A0D5 MOVLW 0X99
   MOVWF ADCON0
   NOP
      NOP
   NOP
   NOP
   NOP
   NOP
   NOP
   NOP
   NOP
   NOP
   NOP
   NOP
   BSF ADCON0,0X2
   NOP
   NOP
   NOP
   NOP
   NOP
   NOP
   NOP
   NOP
   NOP
   NOP
   NOP
   NOP
   NOP
   NOP
   BTFSC ADCON0,0X2
   GOTO 0XF2
   MOVF ADRES,W
   MOVWF 0X2C
   MOVLW 0X5D
   BCF STATUS,0
      SUBWF 0X2C,W
   BTFSC STATUS,0
   GOTO  A0FE
   MOVLW 0X54
   MOVWF 0X2C
   GOTO  F11E
A0FE MOVLW 0XB0
   BCF STATUS,0
   SUBWF 0X2C,W
   BTFSS STATUS,0
   GOTO E106
   MOVLW 0
   MOVWF 0X2C
   GOTO  F11E
E106    MOVLW 0X5D
   SUBWF 0X2C,W
   SUBLW 0X54
   MOVWF 0X2C
   GOTO F11E
   MOVLW 0X7C
   BCF STATUS,0
   SUBWF 0X2C,W
   BTFSS STATUS,0
   GOTO F113;
   MOVLW 0X3F
   MOVWF 0X2C
   GOTO F11E
F113 MOVLW 0X4C
   BCF STATUS,0
      SUBWF 0X2C,W
   BTFSC STATUS,0
   GOTO F11B
   MOVLW 0
   MOVWF 0X2C   
   GOTO F11E
F11B MOVLW 0X3C
   SUBWF 0X2C,w
   MOVWF 0X2C
F11E    MOVF  0X2C,W
        ADDWF 0X2C,F      
   ADDWF 0X2C,F
        MOVLW 0XFC
        SUBWF 0X2C,W
        BTFSC  STATUS,0X2;55H=#FAH?
        GOTO   F12E
        BCF STATUS,0
        MOVLW  0xfc         
        MOVWF  0x37
   RRF 0X37,W
   SUBWF 0X36,W
   BTFSC STATUS,0
   GOTO F12E
   MOVF 0X41,W
   SUBWF 0X2C,W
   BTFSC STATUS,0
   GOTO F12E
   BTFSS 0X43,0X6
   GOTO F12E
   MOVF 0X41,W
   MOVWF 0X2C
F12E MOVF 0X2C,W
   SUBWF 0X2D,W
   MOVWF 0X2B
      MOVF 0X2B,F
   BTFSC STATUS,0X2
   GOTO E143
   BCF STATUS,0;進位  C=0
   MOVF 0X2D,W
   SUBWF 0X2C,W; 2CH-2DH
   BTFSC STATUS,0;進位C=0?
   GOTO F13B;2C>=2DH
   DECF 0X2D,F;2CH<2DH
   GOTO E143 ;DAO143   
F13B INCF 0X2D,F ;2C>=2DH;;;2DH+1=2DH
   BCF STATUS,0;進位C=0
   MOVLW 0XFC  
   SUBWF 0X2D,W; 2DH-#FCH
   BTFSS STATUS,0 ;進位C=1
   GOTO  E143;進位C=0 ;;2DH<#FCH跳到143
   MOVLW 0XFC;進位C=1
   MOVWF 0X2D;2DH>=#FCH;;2DH=#FCH
E143 GOTO  F144
F144 MOVLW 0XFC
     MOVF 0X2D,W;2DH=#FCH
E146 SUBLW 0XFC;#FCH-2DH送到W
   MOVWF 0X48;W送到48H
   BCF STATUS,0;進位C=0
   RRF 0X48,F ;48H/2送到48H  
   BCF STATUS,0
   RRF 0X48,W  ;48H/2送到W  
   MOVWF 0X48  ;48H/2送到48H
   ADDWF 0X48,F;;W+48H送到48H  
   ADDWF 0X48,F;48H+W送到48H
   BCF STATUS,0;C=0
   RRF 0X48,W ;48H/2送到W
   MOVWF 0X48 ;48H/2送到48H
   BTFSC PORTC,0X5;PA0,PA1(D5,D6)位程序存儲器巖面地址預選擇位PA0=0  
   GOTO F15B;PA0=0跳到15B;;測試PA1=0?
   SUBLW 0X3A;;PA0=1;; #3AH-W
   BTFSS STATUS,C;C=1?
   GOTO F158 ;W>#3AH 跳到158
   GOTO F15A; W<=#3AH跳到15A
F158 MOVLW 0X3A;  #3AH=W
   GOTO F15B
F15A MOVF 0X48,W ;48H=W
F15B BTFSC 0X44,0X6 ;測試PA1=0?測試PA1 PA0 =00選中0 巖面(000---1FFH)01(200---2FFH)10(300---3FF)11(400---4FFH)
        ;PA1PA0=10或者=11時跳到164
   MOVLW 0  ;W=#0 ;;PA1PA0=00,或者=01   
   BTFSC PORTB,0X2 ;檢測PB2=0?SC剎車控制  
   GOTO  F164;PB2=1跳到164
   MOVLW 0XFC;PB2=0;2CH=#FCH
   MOVWF 0X2C
   MOVWF 0X2D;2DH=#FCH
   BCF 0X43,0;43H.0=0
   MOVLW 0;0=W
F164 MOVWF CCPR1L ;W=CCPR1KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK
   MOVLW 0XF
   ANDWF CCP1CON,F;CCP1CON 與00001111=CCP1CON
   RETURN
;;0004中斷程序
F168 BCF INTCON,0X7;GIE=0
   MOVWF 0X21
   MOVF STATUS,W
   MOVWF 0X22;保護現場
   BTFSS INTCON,0;;檢測是不是PB4--PB7口、變化中斷
   GOTO F170;不是
   CALL G27E;是調用27E
   GOTO F179;返回現場
F170 BTFSS INTCON,0X2;是不是TMR0益處中斷
   GOTO F174
   CALL H34C;是
   GOTO F179
F174 CALL  G2BA;調用2BA;
   BTFSS PIR1,0;TMR1IF=1?是定時器1中斷?
   GOTO F179;不是返回出棧
   BSF 0X67,0;是TMR1中斷67H.0=1
   BCF PIR1,0;TMR1IF=0以防誤中斷
F179 MOVF 0X22,W;出棧返回現場
   MOVWF STATUS
   MOVF 0X21,W
   BSF INTCON,0X7;GIE=1;開中斷
   RETFIE;中斷返回
B17E MOVLW 0X20;清所有的單元
   MOVWF FSR
   MOVLW 0X5F
   MOVWF 0X7F  
F182 CLRF INDF
   DECFSZ 0X7F,F
      GOTO  F186
   RETURN
F186 INCF FSR,F
   GOTO  F182

B188 MOVLW 0X0
   MOVWF CCPR1L
        MOVWF 0X42
   MOVWF 0X34;清34H
   MOVWF 0X33;清33H
   MOVLW 0XFC
   MOVWF 0X41;41H=#FCH   
   MOVWF 0X2D;42H=#2DH
   MOVLW 0X3F
   MOVWF 0X60;60H=#3FH
   MOVWF 0X61;61H=#3FH
      MOVWF 0X62;62H=#3FH
      MOVWF 0X63;63H=#3FH
   MOVLW 0
   MOVWF 0X43;43H=#0
   MOVWF 0X44;44H=#0
   MOVWF 0X45;45H=#0
   MOVLW 0X24
   MOVWF 0X4A;4AH=#24H
   MOVWF 0X4B;4BH=#24H
   MOVWF 0X4C;4CH=#24H
   MOVWF 0X4D;4DH=#24H
   MOVWF 0X47;47H=#24H
   MOVLW 0X4
   MOVWF 0X49;49H=#04H
   MOVLW 0X40
   MOVWF 0X75;75H=#40H
   RETURN;;返回

B1A4 BCF STATUS,0X5;
   MOVLW 0X4
      MOVWF ADCON0;
   MOVLW 0X48
   MOVWF INTCON;允許外圍接口中斷PEIE=1;RBIE=1
   BSF STATUS,0X5
   MOVLW 0X1
   MOVWF PIR1;TMR1IE=1允許TMR1中斷
   BCF   STATUS,0X5;BANK0
   MOVLW 0
   MOVWF PORTA;PA=0000 0000
   MOVLW 0X18
   MOVWF PORTB;PB=0001 1000
   MOVLW 0XC2
   MOVWF PORTC;PC=1100 0010
   BSF   STATUS,0X5;BANK1
   MOVLW 0X3F
   MOVWF PORTA;TRISA=0011 1111,PA0--PA5定義輸入
   MOVLW 0XFE
   MOVWF PORTB;TRISB=1111 1110;PB0輸出PB1--PB7定義輸入
   MOVLW 0X20
   MOVWF PORTC;TRISC=0010 0000;PC5定義輸入,PC0--PC4,PC6,PC7輸出
   MOVLW 0X4
   MOVWF ADCON0;PA0,PA1,PA3位模擬口,PA2,PA5為數字口
   BCF STATUS,0X5
   BSF STATUS,0X5;BANK1
   MOVLW 0X1
   MOVWF PIR1;;TMR1IE=1允許TMR1中斷
   BCF STATUS,0X5;BANK0;
   MOVLW 0X38
   MOVWF TMR0;TMR0=#38H
   MOVLW 0
   MOVWF T1CON;TMR1關閉,工作在定時方式分頻1
   MOVLW 0X10
   MOVWF TMR1L
   MOVLW 0XF3
   MOVWF TMR1H;TMR1H=#F3H;TMR1L=#10H
   MOVLW 0
   MOVWF T2CON;;TMR2=0
   MOVLW 0XC
   MOVWF CCP1CON;PWM方式CCP1
   MOVLW 0
   MOVWF  CCPR1L;TMR1IF=0;TMR2IF=0,ADIF=0
   BSF STATUS,0X5;BANK1;
   MOVLW 0X5D
   MOVWF T2CON;PR2=#5DH
   BCF STATUS,0X5;返回BANK0
   RETURN
B1D4 CLRF PIR1;清外圍接口中斷標志寄存器TMR1IF(0),TMR2IF(1),CCP1IF(2)   
   CLRF STATUS;清狀態寄存器BANK0
   BCF  INTCON,0; ;清GIE中斷允許位,禁止所有中斷  
   BCF PIR1,0;TMR1IF=0  
   RETURN

B1D9 MOVF 0X4B,W
   MOVWF 0X4C;4BH送到4CH
   MOVF 0X4A,W
   MOVWF 0X4B;4AH送到4BH
   MOVF 0X47,W;
   MOVWF 0X4A;47H送到4AH
   MOVLW 0X89
   MOVWF ADCON0;準備A/D轉換,關閉  
   NOP
   NOP
      NOP
   NOP
   NOP
   NOP;延時一段時間穩定A/D
   NOP
   NOP
   NOP
   NOP
   NOP
   NOP
   BSF ADCON0,0X2;開始A/D轉換
   NOP
   NOP
   NOP
   NOP
   NOP
   NOP
   NOP
   NOP
   NOP
   NOP         
   NOP
   NOP
F1FA BTFSC ADCON0,0X2
   GOTO  F1FA
      MOVLW 0X4;轉換完成
   MOVLW 0X4
   ADDWF ADRES,F;#4+ADRES送到ADRES
   MOVF ADRES,W ;ADRES送到W
   MOVWF 0X4A ;ADRES送到4AH
   BCF STATUS,0
   RRF ADRES,F
   BCF STATUS,0
   RRF ADRES,F;ADRES/4送到ADRES
   MOVWF 0X47;W送到47H
   BCF STATUS,0
   RRF 0X47,F
   BCF STATUS,0
   RRF 0X47,F ;47H/4送到47H
   MOVF ADRES,W
   MOVWF 0X47 ;ADRES送到47H
   BTFSC PORTB,0X4;檢測 PB4=0? 檢測過壓欠壓埋標志位
   GOTO G219
   MOVLW 0X84;PB4=0 則 4AH-#84H
   SUBWF 0X4A,W
   BTFSC STATUS,0
   GOTO G224
   BSF 0X20,0X2 ;4AH<#84H;;20H.2=1
   MOVLW 0X7F
      SUBWF 0X4A,W ;4AH-#7FH
   BTFSC STATUS,0
   GOTO G225 ;4AH>=#7FH 跳到225
   BSF 0X20,0X3 ;4AH<#7FH;;20H.3=1
   GOTO G226; 4AH>=#2FH跳到 226
G219 MOVLW 0XAC
   SUBWF 0X4A,W ;4AH-#ACH
   BTFSC STATUS,0
   GOTO G224  ;4AH>=#ACH跳到224
   BSF 0X20,0X2 ;4AH<#ACH;;20H.2=1
   MOVLW 0XA9
   SUBWF 0X4A,W;4AH-#A9H
   BTFSC STATUS,0
   GOTO G225 ;4AH>=#A9H跳到225
   BSF 0X20,0X3;4AH<#A9H;;20H.3=1   
   GOTO G226 ; 跳到226
G224 BCF 0X20,0X2;20H.2=0
G225 BCF 0X20,0X3; 20H.3=0
G226 MOVF 0X47,W; 47H送到5FH A/D 值
   MOVWF 0X5F
      CLRF 0X5E; 5EH=#0
G229  MOVLW 0XA;HJYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY
   BCF STATUS,0;C=0
   SUBWF 0X5F,W ;5FH-#2送到W  
   BTFSS STATUS,0;  5FH>=#2
   GOTO G231
                     ;5FH<#2跳到231  
   MOVWF 0X5F;5FH-#2送到5FH
   INCF 0X5E,F;5EH+1回送到5EH  
   GOTO G229;跳到228重新檢測
G231 MOVF 0X5F,F
   BTFSS STATUS,0X2 ;5FH=0?
   GOTO G236;5FH不=0 跳到236
   MOVLW 0XA;5FH=#10
   MOVWF 0X5F
G236 MOVF 0X5E,F
   BTFSS STATUS,0X2;5EH=0?  
   GOTO G23B;5EH不=0跳到23B
   MOVLW 0XA;5EH=0則5EH=#10
   MOVWF 0X5E
G23B MOVF 0X5E,W
   MOVWF 0X3D ;5EH送到3DH
   MOVF 0X5F,W
   MOVWF 0X3E ;5FH送到3EH返回
   RETURN ;返回

DL     CLRF 0X6F ;延時240US子程序
A241  NOP
   NOP
      NOP
   NOP
   NOP
      NOP
   NOP
   NOP
   DECFSZ 0X6F,F
   GOTO A241
   RETURN
B24C BTFSS PORTA,0X4;檢測PA4=1?
   GOTO A250
   BCF 0X20,0X4;PA4=1;20H.4=0;返回
   RETURN
A250 BSF  0X20,0X4;檢測到 PA4=0;;20H.4=0;
   RETURN
B252 MOVF 0X52,W
   MOVWF 0X53;52H送到53H
   MOVF 0X51,W
   MOVWF 0X52;51H送到52H
   MOVF 0X50,W
   MOVWF 0X51;50H送到51H
   MOVLW 0X81
   MOVWF ADCON0;
   NOP
   NOP
   NOP
   NOP
   NOP
   NOP
      NOP
   NOP
   NOP
   NOP
   NOP
   NOP
   BSF  ADCON0,0X2
   NOP
   NOP
   NOP
   NOP
   NOP
   NOP
   NOP
   NOP
   NOP
   NOP
   NOP
A272 BTFSC ADCON0,0X2
   GOTO  A272
   MOVF ADRES,W
   MOVWF 0X50;ADRES送到50H;(AD結果送到ADRES)      
        MOVF 0X75,W
        SUBWF 0X50,W
        BTFSS STATUS,0
        GOTO A27C
        BSF 0X20,0X5
        RETURN
A27C    BCF 0X20,0X5
        RETURN
G27E    BCF   0X26,1
      BCF INTCON,0X3
        BCF INTCON,0;是PB4--PB7變化中斷;RBIF=0
        CALL  A058;
        MOVF 0X71,W;根據霍爾信號控制IR2103,HC08
        BTFSS STATUS,0X2;檢測71H=0?
        GOTO G287;不=0;跳到287
        BSF 0X26,0X1;71H=0;;26H.1=1
        GOTO G2B8;跳到2B8
G287    SUBWF 0X72,W ;;72H=71H(根據霍爾信號控制IR2103,HC08)?
        BTFSC STATUS,0X2;
        GOTO G2B8;72H=71H跳到2B8
      MOVLW  0XFC
         
        SUBWF 0X2D,W
        BTFSS STATUS,0X2;2DH=#fCH?
        GOTO G292;不=#2CH跳到291HHHHHHHHHHHHHHHHHHHHHHHHH
        MOVLW 0XF0;2DH=#fCH;PC=1111 0000
        MOVWF PORTC
        BSF 0X44,0X7;44H.7=1
        GOTO G294;跳到298
G292    MOVF 0X71,W;
        MOVWF PORTC; PC口=71H
G294    BTFSS PORTB,3
        GOTO G298;
        CALL I408
        GOTO G299;JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ
G298    CALL I468
G299    MOVF 0X70,W;70H送到69H
        MOVWF 0X69
        MOVF 0X71,W
        MOVWF 0X72;71H送到72H
        BTFSS 0X26,0X1;26H.1=1?
        INCF 0X66,F;不=1,66H+1送到66H
        MOVF 0X66,W
        SUBLW 0X80
        BTFSC STATUS,2
        DECF 0X66,F;66H-1送到66H
        INCF 0X54,F;54H+1送到54H
        MOVLW 0XA
        SUBWF 0X54,W
        BTFSS STATUS,2
        GOTO G2B0
        CLRF 0X54
        INCF 0X55,F;55H+1送到55H
        MOVLW 0XFA
        SUBWF 0X55,W
        bTFSS  STATUS,0X2;55H=#FAH?
        GOTO G2B0;不=;;跳到2B0
        CLRF 0X55;=#FAH;;55H=#0
        BSF 0X4F,0
G2B0    INCF 0X56,F
        CALL H353
        MOVF 0X74,W
        SUBWF 0X56,W
        BTFSS STATUS,0X2;
   GOTO G2B8
   CLRF 0X56;56H=0
   INCF 0X57,F
;57H+1送到57H;
G2B8 BSF INTCON,0X3;允許RBIE=1中斷返回
   RETURN
G2BA MOVLW 0X10
   MOVWF  TMR1L;TMR1L=#10H
   MOVLW 0XF3
   MOVWF TMR1H;TMR1H=#F3H
   CALL H378
   CALL H390
      CALL H316
   CALL H322
   BTFSS 0X20,0X4;檢測22H.4=1?
   CLRF 0X6A;檢測到20H.4=0;;6AH=#0
   INCF 0x6a,F;檢測到20H.4=1;;6AH+1送到6AH
   MOVF 0X6A,W
   BCF 0X44,0X5;44H.5=0
   SUBLW 0X64
   BTFSC STATUS,0X2;檢測6AH=#64H?
   BSF 0X44,0X5;6AH=#64H;;44H.5=1
   BTFSS 0X44,0X5;檢測到6AH不=#64H;;在檢測44H.5=1?
   GOTO G2DF;檢測到44H.5=0;;跳到3DF
   MOVLW 0;檢測到44H.5=1;;
   MOVWF PORTC;PC口=0000 0000
   CALL DL
   CALL DL
   CALL DL
   CALL DL
   CALL DL
   CALL DL
   CALL DL
   CALL DL
   CALL DL
   CALL DL;延時240US*10=2.4MS
   MOVLW 0X7
   MOVWF PORTC;PC=0000 0111
G2DA CALL B24C
   CLRWDT
   BTFSC 0X20,0X4
   GOTO G2DA
   RETURN
G2DF CALL H336
   CALL H32E
   BTFSS 0X20,0X1
   GOTO G2FF
   CALL H340
   CALL H3DA
   INCF 0X76,F
   MOVF 0X76,W
   SUBLW 0XA
   BTFSS STATUS,0X2
   GOTO G2FF
   CLRF 0X76
   BTFSS 0X44,0X6
   GOTO G2F4
   INCF 0X73,F
   MOVF 0X73,W
   SUBLW 0X5
   BTFSS STATUS,0X2
   GOTO G2FF
   BSF 0X20,0
   GOTO G2FF
G2F4    MOVF 0X66,W
      SUBLW 0XE
     BTFSS STATUS,0
     GOTO G2FB
      CALL H302
      CLRF 0x66
      GOTO G2FF
G2FB    CLRF 0x66
     CLRF 0x73
     MOVLW 0x40
      MOVWF 0x75
G2FF    BCF 0x20,1
      BCF PIR1,0
         RETURN
H302    BTFSC 0x44,0x6
     RETURN
      MOVLW 0x5
      SUBWF 0x50,w
      BTFSS STATUS,0
     GOTO H312
        INCF 0x73,F
      MOVF 0x73,w
     SUBLW 0x4
     BTFSS STATUS,0x2
     RETURN
     MOVLW 0x10
     MOVWF 0x75
      BSF 0x44,0x6
      CLRF 0x73
      RETURN
H312    CLRF 0x73
     MOVLW 0x40
        MOVWF 0x75
      RETURN
H316    BTFSC 0x20,0x3;檢測20H.3=0?
      GOTO H31A;20H.3=1跳到31A
      CLRF 0x5a;20H.3=0;;5AH=#0
      RETURN
H31A    INCF 0x5a,F;5AH+1送到5AH
     MOVLW 0xfa
        SUBWF 0x5a,w
        BTFSS STATUS,0X2;判斷5AH=#FAH?
       RETURN;5AH不=#FAH
        BSF 0x20,0;5AH=#FAH;;20H.0=1
     CLRF 0x5a;5AH=#0
      RETURN
H322    BTFSC 0x20,0x5;檢測20H.5=0?
      GOTO H326;20H.5=1;;跳到326
      CLRF 0x5b;20H.5=0;;5BH=#0
      RETURN
H326    INCF 0x5b,F;5BH+1送到5BH
      MOVLW 0xc8
     SUBWF 0x5b,w
     BTFSS STATUS,0x2 ;5BH=#C8H?
      RETURN;5BH不=#C8H
      BSF 0x20,0;5BH=#C8H;;20H.0=1
     CLRF 0x5b;5BH=#0
      RETURN
H32E    INCF 0x5c,F;5CH+1送到5CH
      MOVLW 0x14
      SUBWF 0x5c,w;
        BTFSS STATUS,0x2;5CH=#14H?
      RETURN;≠返回
   BSF 0x20,0x1;5CH=#14H;;20H.1=1
   CLRF 0x5c;5CH=#0
   RETURN
H336 INCF 0x59,F;59H+1送到59H
   MOVLW 0x64
   SUBWF 0x59,W
        BTFSS STATUS,0X2
        RETURN;≠則返回
        MOVF 0x57,W  
        MOVWF 0x46 ;57H送到46H  
        CLRF 0x57;57H=#0;;59H=#0
        CLRF 0x59
        RETURN
H340    BTFSC 0x20,0x2;檢測20H.2=0?
        GOTO H343
        RETURN;20H.2=0返回
H343    BTFSC 0x20,0x3;20H.2=1;;檢測20H.3=0?
        GOTO H34B;20H.3=1;;返回
        BTFSS 0x5d,0;;20H.3=0;檢測
        GOTO H349  
        BCF 0x5d,0
        RETURN
H349    BSF 0x5d,0
        RETURN
H34B    RETURN
H34C    CALL I4C9
        MOVLW 0xa0
        MOVWF TMR0;TMR0=#160
        BCF INTCON,0x2;PEIE=0
        RETURN
        BCF 0x20,0x6
        RETURN
H353    MOVLW 0x6
        MOVWF 0x74
        RETURN
C356    CALL H366;調用366
        BTFSS 0x43,0x2;檢測43H.2=1?
        RETURN;43H.2=0;返回
        BTFSC 0x43,0;43H.2=1;檢測43H.0=1?
        GOTO H35C;檢測43H.0=0跳到35C;
        GOTO H364;43.0=1;跳到364
H35C    BCF 0x43,0;43H.0=0
        MOVF 0x2D,W
        SUBLW 0xf0
        BTFSC STATUS,0
        BCF 0x43,0
        MOVF 0x2d,w
        MOVWF 0x38
        RETURN
H364     
        RETURN
H366    BCF 0x43,0x2
        BTFSC PORTB,0x1
        GOTO H36D
        BSF  0x43,0x2
H36D     
        RETURN
H36F    BCF 0x43,0x4;43H.4=0
        BTFSC PORTA,0x2;檢測PA2=0?  
        GOTO H376;PA2=1;跳到376
        RETURN
H376    BSF 0x43,0X4;
        RETURN;返回
H378    CALL H36F;調用36F
        BTFSC 0x43,0x4;檢測43h.4=1?
        GOTO H381;43H.4=0;;跳到38
         
        CLRF 0x35;3BH=#0
        RETURN
H381    MOVF 0x35,W
        SUBLW 0xfc   
        BTFSC STATUS, 0x2
        RETURN;35H=#FCH;返回
        INCF 0x35,F;35H不=#FCH;;35H+1送到35H返回
        RETURN

H38E    BCF 0x44,0x1;44h.1=0
        RETURN
H390     
         
        BTFSC 0x43,0x3;檢測到43H.1=1;;檢測43H.3=0?
        GOTO H397;43H.3=1;跳到397
        BSF 0x43,0x3;43H.3=0則43H.3=1
        RETURN;返回
H397    MOVF 0x35,W;
        MOVWF 0X36; 35H送到36H
        INCF  0x42,F
        MOVLW 0xfc
        MOVWF 0x37 ;42H送到37H
        BCF 0X43,0x7;43H.7=0
        BCF STATUS,0;C=0
        RRF 0x37,W;37H/2送到W
        SUBWF 0x36,W;36H-37H/2
        BTFSS STATUS,0;
        BSF 0x43,0x7;36H<(37H/2);;43H.7=1
        BTFSC 0x43,0x7;36H>=(37H/2);43H.7=0?
        CALL H3CF ;43H.7=1跳到3CF
        BTFSS 0x43,7;43H.7=0;檢測
        GOTO H3BB;跳到3BBH
        BTFSS 0x43,6              
        GOTO H3BB;跳到3BBH
        MOVF 0x42,W
        SUBLW 0xa5  ; #A5H-42H
        BTFSS STATUS,0
        GOTO  H3BB;42H>#A5H跳到3BB
        MOVLW 0x4e;42H<=#A5H
        MOVWF 0x64;42H=#4EH
        MOVF 0x42,W
        SUBWF 0x64,F;#64H-42H
        BTFSC STATUS,0
        GOTO H3C0;42H<=#64H;跳到3C0H
        MOVF 0x42,W;42H>#64H
        MOVLW 0x27
        SUBWF 0x42,W;42H-#27H送到W再送到41H
        MOVWF 0x41
            
        BCF STATUS,0;C=0
        ADDWF 0x41,W; 41H+W送到41H
        MOVWF 0x41
        CALL H3ED;調用3EDH
        RETURN
H3BB    MOVLW 0xfc
        MOVWF 0x41 ;41H=#FCH
        
        CALL H3ED;調用3EDH
        RETURN
H3C0    MOVLW 0x4e
        MOVWF 0x41;41H=#4EH
        
        CALL H3ED;調用3EDH
        RETURN

H3CB    MOVLW 0xFc
        MOVWF 0x41;41H=#1CH
        CALL H3ED ;調用3ED
        RETURN
H3CF    BTFSS 0x43,0x6;43H.6=1?
        GOTO H3D2;43H.6≠1跳到3D2
        RETURN;43H.6=1返回
H3D2    INCF 0x34,f;34H+1送到34H
        MOVF 0x34,w
        XORLW 0x5
        BTFSS STATUS,0x2;34H=5?
        RETURN;34H≠5返回
        BSF 0x43,0x6;34H=5;;43H.6=1;;34H=#0;返回
        CLRF 0x34
        RETURN
H3DA    BTFSS 0x43,0x6;43H.6=1?
        RETURN;43H.6≠1返回
        MOVLW 0xfc
        SUBWF 0x41,w
        BTFSS STATUS,0x2;43H.6=1;判斷41H=#FCH?
        GOTO H3E1;41H≠#FCH跳到3E1
        GOTO H3E5;41H=#FCH跳到3E5
H3E1    BTFSS 0x43,0x7;43H.7=1?
        GOTO H3E5;43H.7≠1跳到3E5
        CLRF 0x33;43H.7=1;;33H=#0返回
        RETURN
H3E5    INCF 0x33,F
        MOVF 0x33,W;33H+1送到33H
        XORLW 0x8
        BTFSS STATUS,0x2;33H=6?
        RETURN;33H≠6返回
        BCF 0x43,0x6;33H=6,43H.6=0
        CLRF 0x33;33H=#0
        RETURN
H3ED    BCF STATUS,0
        RRF 0x41,F;41H/2送到41H
        BCF STATUS,0
        RRF 0x41,w;41H/2送到W
        MOVWF 0x63 ;W送到63H
        ADDWF 0x60,W;60H+W送到W
        ADDWF 0x61,W;61H+W送到W
        ADDWF 0x62,W;62H+W送到W
        MOVWF 0x41;W送到41H
        MOVWF 0x63;W送到63H
        BCF STATUS,0
        RRF 0x63,F
        BCF STATUS,0
        RRF 0x63,F;63H/4送到63H
        MOVF 0x61,W
        MOVWF 0x60;61H送到60H
        MOVF 0x62,W
        MOVWF 0x61;62H送到61H
        MOVF 0x63,W
        MOVWF 0x62;63H送到62H
        MOVF 0x41,W
        SUBLW 0xf0 ;#F0H-41H
        BTFSC STATUS,0
        RETURN;41H<=#F0H返回
        MOVLW 0xfc;41H>#F0H
        MOVWF 0x41;41H=#FCH;;返回
        RETURN
        
I408    DECF 0x70,W;70h-1送到70H  
        BTFSS STATUS,0x2;70H=0?
        GOTO I40C;70H不=0跳到40C
        GOTO I40D;70H=0;;跳到40D
I40C    GOTO I417
I40D    MOVF 0x69 ,w
        XORLW 0x3
        BTFSS STATUS,0x2;69H=5?
        GOTO I412;69H不=5;跳到412
        GOTO I413;69H=5;跳到413
I412    GOTO I415
I413    BCF 0x26 ,0x1;26H.1=0返回
        GOTO I416
I415    BSF 0x26,0x1;26H.1=1
I416    RETURN

I417    MOVF 0x70,W;
        XORLW 0x5
        BTFSS STATUS,0x2;70H=2?
        GOTO I41C;70H不=2;跳到41C
        GOTO I41D;70H=2;;跳到41D
I41C    GOTO I427;跳到427
I41D    DECF 0x69,w
        BTFSS STATUS,0x2;69H=#3?
        GOTO I422;69H不=3跳到422
        GOTO I423;69H=3;;跳到423
I422    GOTO I425
I423    BCF 0x26,0x1;26H.1=0;返回
        GOTO I426
I425    BSF 0x26,0x1;26H.1=1
I426    RETURN
I427    MOVF 0x70,w
        XORLW 0x4
        BTFSS STATUS,0x2;70H=3?
        GOTO I42C
        GOTO I42D;70H=3;跳到42D
I42C    GOTO I436;70H不=3跳到436
I42D    MOVF 0x69,w
        XORLW 0x5
        BTFSS STATUS,0x2;69H=0?
        GOTO I431;69H不=0跳到431
        GOTO I432;69H=0跳到432
I431    GOTO I434  
I432    BCF 0x26,0x1;26H.1=0返回
        GOTO 0x435
I434    BSF 0x26,0x1;26H.1=1
        RETURN
I436    MOVF 0x70,w;70H=4?
        XORLW 0x6
        BTFSS STATUS,0x2
        GOTO I43B;70H≠4跳到43B
        GOTO I43C;70H=4跳到43C
I43B    GOTO I446
I43C    MOVF 0x69,w
        XORLW 0x4
        BTFSS STATUS,0x2;69H=6?
        GOTO I441
        GOTO I442;69H=6;;26H.1=0返回
I441    GOTO I444
I442    BCF 0x26,0x1
        GOTO I445
I444    BSF 0x26,0x1;69H≠6;;26H.1=1返回
I445    RETURN
I446    MOVF 0x70,w
        XORLW 0x2
        BTFSS STATUS,0x2;70H=5?
        GOTO I44B;70H≠5跳到44B
        GOTO I44C;70H=5跳到44C
I44B    GOTO I456
I44C    MOVF 0x69,w
        XORLW 0x6
        BTFSS STATUS,0x2;69H=4?
        GOTO I451;69H≠4跳到451
        GOTO I452;69H=4跳到452
I451    GOTO I454
I452    BCF 0x26,0x1;26H.1=0返回
        GOTO I455
I454    BSF 0x26,0x1;26H.1=1返回
I455    RETURN
I456    MOVF 0x70,W
        XORLW 0x3
        BTFSS STATUS,0x2;70H=6?
        GOTO I45B;70H≠6跳到45B
        GOTO I45D;70H=6;
I45B    BSF 0x26 ,0x1;26H.1=1;返回
        GOTO I467
I45D    MOVF 0x69,w
        XORLW 0x2
   BTFSS STATUS,0x2 ;69H=2?
    GOTO I462;69H≠2跳到462
    GOTO I463;69H=2;跳到463
I462  GOTO I465
I463   BCF 0x26,0x1;26H.1=0返回
       GOTO I466
I465  BSF 0x26,0x1;26H.1=1;
I466  RETURN

I467  RETURN
I468  DECF 0x70,w
   BTFSS STATUS,0x2;70H-1送到70H=0?
    GOTO I46C;70H≠0跳到46C
    GOTO I46D;70H=0跳到46D
I46C  GOTO I477
I46D  MOVF 0x69,w
    XORLW 0x3
    BTFSS STATUS,0x2;69H=3?
      GOTO I472;69H≠3跳到472;;26H.1=1返回
    GOTO I473;69H=3;;26H.1=0返回
I472  GOTO I475
I473  BCF 0X26,0x1
   GOTO I476
I475  BSF 0x26,0x1
I476   RETURN
I477  movf 0X70,W
    XORLW 0
   BTFSS STATUS,0x2;70H=0?
      GOTO I47C;70H≠0跳到47C
    GOTO I47D;70H=0跳到48D;
I47C  GOTO I487
I47D    MOVF 0x69,w
        XORLW 0x1
        BTFSS STATUS,0x2;69H=1?  
        GOTO I482;69H≠126H.1=1返回
        GOTO I483;69H=1跳到483;;26H.1=0;返回
I482    GOTO I485
I483    BCF 0x26,0x1
        GOTO I486
I485    BSF 0x26,0X1
I486    RETURN

評分

參與人數 2黑幣 +60 收起 理由
zwk34 + 10 共享資料的黑幣獎勵!
admin + 50 共享資料的積分獎勵!

查看全部評分

回復

使用道具 舉報

ID:98168 發表于 2015-12-3 16:11 | 顯示全部樓層
謝謝分享,謝謝
回復

使用道具 舉報

ID:97969 發表于 2015-12-4 19:29 | 顯示全部樓層
謝謝,分享
回復

使用道具 舉報

ID:33634 發表于 2016-8-31 21:43 | 顯示全部樓層
謝謝分享,向樓主致敬。
回復

使用道具 舉報

ID:76408 發表于 2018-2-25 16:47 | 顯示全部樓層
樓主辛苦了,收藏了。
回復

使用道具 舉報

ID:114814 發表于 2018-10-19 15:41 | 顯示全部樓層
牛逼啊
回復

使用道具 舉報

ID:223688 發表于 2018-10-20 08:23 | 顯示全部樓層
謝謝分享
回復

使用道具 舉報

ID:507914 發表于 2019-4-11 11:11 | 顯示全部樓層
好好學習
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 狠狠艹 | 一级毛毛片 | 日韩精品一区二区三区视频播放 | 国产 欧美 日韩 一区 | 国产91在线 | 亚洲 | 国产视频一区在线观看 | 欧美 日韩 中文 | 韩日视频在线观看 | 国产欧美精品一区二区三区 | 亚洲在线一区 | 91欧美激情一区二区三区成人 | 一区二区在线免费观看 | 国产成人高清成人av片在线看 | 黄色网址在线免费观看 | 99精品国产一区二区三区 | 色播视频在线观看 | 亚洲日韩中文字幕一区 | aaaa一级毛片 | 天天久久 | 久久久精品视频一区二区三区 | 欧美日韩国产精品 | 亚洲第一在线视频 | 日韩欧美国产一区二区 | 91欧美| 久久er99热精品一区二区 | 亚洲国产精品一区二区第一页 | 乱一性一乱一交一视频a∨ 色爱av | 欧美成人精品一区二区三区 | 亚洲欧美在线观看 | 精品免费在线 | 久久久久久久久国产成人免费 | 日韩一区二区三区av | 久久青草av| 国产精品嫩草影院精东 | 一级片成人 | 国产精品一区二区免费 | 久草综合在线视频 | 午夜合集 | 天天看天天干 | 麻豆精品一区二区三区在线观看 | 日韩免费一区二区 |