⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pic12ce519

📁 使用PIC12CE519控制步进电机
💻
📖 第 1 页 / 共 5 页
字号:
        COMF        BT1,1                ; 9.Bit=1  (inverting BYTE)        1.
        COMF        BT2,1                ;            (inverting BYTE)        2.
        COMF        BT3,1                ;            (inverting BYTE)        3.
        COMF        BT4,1                ;            (inverting BYTE)        4.
        COMF        BT5,1                ;            (inverting BYTE)        5.
        CALL        STEP                ;                                6.-7.
        DECF        FSR,1                ; auf vorletztes Byte                1

        BSF        STATUS,SEITE        ;                                11
        GOTO        CV                ;                                12-13
;--------------------------------
                                ;   0_____________<_PWM_______255
                                ; off     ^on                 off
                                ;          PWM=IST
EQUIL        MOVF        IST,0                ;                                4
        SUBWF        PWM,0                ;                                5
        BTFSS        STATUS,CARRY        ; PWM > IST?                        6
        MOVF        PWM,0                ; PWM > 8?                        7
        ANDLW        11111000b        ;                                8
        BTFSC        STATUS,ZERO        ; difference > 8?                9
        GOTO        NEQUIL                ;                                10-11
        BSF        STATUS,SEITE        ;                                11
        GOTO        CV                ;                                12-13

NEQUIL        MOVLW        6                ;                                12
        MOVWF        PRE                ;                                13
LEQUIL        DECFSZ        PRE                ; 14        17    20    23    2.    5.
        GOTO        LEQUIL                ; 15-16        18-19 21-22 24-1. 3.-4. 6.
        CALL        STEP                ;                                7.-8.
        GOTO        EQUIL                ;                                2-3

;--------------------------------

NEXT        BTFSC        FLACKER                ;                                16
        BSF        LED                ;                                17
        RLF        INDF,1                ; 1.Byte zusammenbauen                18
        GOTO        INTEST1                ; n鋍hstes Bit                        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
;-------------------------------

TEST        MOVLW        1                ;
        MOVWF        CV2                ;
        MOVLW        255                ;
        MOVWF        CV5                ;
        MOVLW        0                ;
        MOVWF        CV6                ;
;--------------------------------
BORROW        BTFSC        S31,4                ;                        198
        MOVF        CV5,0                ;                        199
        GOTO        BBACK                ;                        200-201
;--------------------------------
CV2CV5        MOVF        CV2,0                ; CV2CV5                94
        SUBWF        CV5,0                ;                        95
        MOVWF        MULT1                ;                        96
        BCF        STATUS,CARRY        ;                        97
        RRF        MULT1,1                ;/2                        98
        MOVLW        24                ; correction 28/32        99
        ADDWF        MULT1,1                ;                        100
        MOVLW        3                ;4-31 -> 1-28                101
        SUBWF        S31,0                ;                        102
        MOVWF        MULT2                ;                        103
;-------
        CALL        MULTIP                ;                        104-105 (1-86)
;-------
        MOVLW        9                ; correction 28/32        192
        SUBWF        MULT2,1                ;                        193
        MOVF        CV2,0                ;                        194
        BTFSS        STATUS,CARRY        ;                        195
        GOTO        BORROW                ;                        196-197
        NOP                        ;                        197
        NOP                        ;                        198
        ADDWF        MULT2,0                ;                        199
        BTFSC        STATUS,CARRY        ;                        200
        MOVF        CV5,0                ;                        201
BBACK        MOVWF        SOLL                ;                        202

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

VMID        CLRF        VMIDLO                ;                        200
        MOVF        CV6,0                ;                        201
        BTFSC        STATUS,ZERO        ;                        202
        GOTO        VMIDEND                ; no VMID                203
        ANDLW        01111111b        ;                        204
        MOVWF        VMIDHI                ;                        205
        BTFSS        CV6,7                ;                        206
        GOTO        NEGVMID                ;                        207-208
        MOVLW        4                ;                        208
        SUBWF        S31,0                ; 4-32 > 0-27                209
        GOTO        VMID1                ;                        210-211

NEGVMID        COMF        S31,0                ;                        211
        ANDLW        00011111b        ;                        212
        NOP                        ;                        213

VMID1        MOVWF        COUNT                ;                        214
        BTFSS        COUNT,4                ;                        215
        BTFSC        COUNT,3                ;                        216
        GOTO        VMIDMUL                ;                        217-218
        MOVWF        TEMP                ;                        218
        BTFSC        STATUS,ZERO        ;                        219
        GOTO        VMID3                ;                        220
        BCF        STATUS,CARRY        ;                        221
VMID2        RRF        VMIDHI,1        ; ->c                        222
        RRF        VMIDLO,1        ;   c->                /2        223
        DECFSZ        COUNT,1                ;                        224
        GOTO        VMID2                ;                        225
VMID3        COMF        TEMP,0                ;                        226
        ANDLW        00000111b        ;                        227
        MOVWF        COUNT                ;                        228
        BTFSC        STATUS,ZERO        ;                        229
        GOTO        VMID5                ;                        230
VMID4        NOP                        ;                        231
        NOP                        ;                        232
        DECFSZ        COUNT,1                ;                        233
        GOTO        VMID4                ;                        234
VMID5        MOVF        CV6,0                ;                        235
        ANDLW        01111111b        ;                        236
        MOVWF        TEMP                ;                        237
        MOVF        VMIDHI,0        ;                        238
        SUBWF        TEMP,0                ;                        239

        GOTO        VMIDEND                ;                        240-241
;--------------------------------
VMIDMUL        SWAPF        VMIDHI,0        ;                        241
        ANDLW        00000111b        ;                        242
        ADDWF        VMIDHI,0        ; CV6 + CV6 / 16        243
        MOVWF        MULT1                ;                        244
        MOVLW        7                ;                        245
        SUBWF        COUNT,0                ;                        246
        MOVWF        MULT2                ;                        247
;-------
        CALL        MULTIP                ;                        248-249 (1-86)
;-------
        MOVF        MULT2,0                ;                        336
        MOVWF        TEMP                ;                        337
        RRF        MULT1,1                ;                        338
        RRF        MULT2,1                ;/2                        339
        RRF        MULT1,1                ;                        340
        RRF        MULT2,1                ;/4                        341
        DECF        MULT2,0                ;                        342
        SUBWF        TEMP,0                ;                        343

        SUBWF        VMIDHI,0        ;                        344
;------------

VMIDEND        BTFSS        CV6,7                ;        1                345
        GOTO        SUBVMID                ;        2-3                346-347
        ADDWF        SOLL,0                ;        3                347
        BTFSS        STATUS,CARRY        ;        6                350
        MOVWF        SOLL                ;        7                351
        NOP                        ;        8                352
SUBEX        BSF        FS126                ;        9                353

;-------------------------------
;        NOP                        ; test
;        GOTO        CV2CV5                ; test
;-------------------------------
        BCF        FSR,5                ;                        354
        GOTO        START                ;                        355-356

SUBVMID        SUBWF        SOLL,0                ;        4                348
        BTFSC        STATUS,CARRY        ;        5                349
        MOVWF        SOLL                ;                        350
        GOTO        SUBEX                ;        7-8                351-352

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

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

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

INIT        MOVLW        11010111b        ; no wakeup, no pullup, T0 int., hightolow, T0, 1:256
        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
        BTFSS        STATUS,ZERO        ; all Bytes ok?
        GOTO        CLEAR
        MOVLW        00001000b        ; GP3 input, rest output
        TRIS        GPIO                ; set port GPIO
        GOTO        START                ; -----------------------------------

CLEAR        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        MOVLW        00001011b        ; STEPPER off and GP3 Input
        TRIS        GPIO                ; tristate port GPIO
        CLRF        GPIO

; EEPROM ............................................................

LOADREG        MOVLW        0x30                ;
        MOVWF        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
        BTFSC        STATUS,ZERO        ; ERROR?
        GOTO        EEREAD                ;
        MOVF        EEDATA,0        ;
        MOVWF        INDF                ;
        MOVLW        0x3F                ;
        XORWF        FSR,0                ;
        ANDLW        00111111b        ;
        BTFSC        STATUS,ZERO        ;
        GOTO        EEEXIT                ;
        INCF        FSR,1                ;
        INCF        EEADDR                ;
        GOTO        EEREAD                ;

EEEXIT        MOVF        CV3,0                ;
        BTFSC        STATUS,ZERO        ;
        IORLW        1                ;
        XORLW        0xFF                ; complement W
        BCF        FSR,5                ; rampage back to 0x10..
        MOVWF        ACC                ;
        BSF        FSR,5                ; rampage to 0x30..
        MOVF        CV4,0                ;
        BTFSC        STATUS,ZERO        ;
        IORLW        1                ;
        XORLW        0xFF                ; complement W
        CLRF        MAPCV                ; for old acknowledge
        BCF        FSR,5                ; rampage back to 0x10..
        MOVWF        DEC                ;
        MOVLW        0x09                ; adress = BT1 - 1
        MOVWF        FSR                ; Pointer for indirect Adressing

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -