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

📄 led1h.sdi

📁 代码保护功能处于持续发展中。Microchip 承诺将不断改进产品的代码保护功能。任何试图破坏Microchip 代码保护功能的行为均可视 为违反了《数字器件千年版权法案(Digital Mille
💻 SDI
字号:
,,,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
,,,;
,,,;       Source File:    LED1H.ASM
,,,;       Author:         MPB
,,,;       Date:           2-12-05
,,,;
,,,;       Output binary count incremented
,,,;       and reset with push buttons.
,,,;       Uses hardware timer to debounce input switch
,,,;
,,,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
,,,
,,,        PROCESSOR 16F877        ; Define MCU type
00002007,3733,,        __CONFIG 0x3733         ; Set config fuses
,,,
,,,; Register Label Equates....................................
,,,
,,,PORTB   EQU     06      ; Port B Data Register
,,,PORTD   EQU     08      ; Port D Data Register
,,,TRISD   EQU     88      ; Port D Direction Register
,,,
,,,TMR0    EQU     01      ; Hardware Timer Register
,,,INTCON  EQU     0B      ; Interrupt Control Register
,,,OPTREG  EQU     81      ; Option Register
,,,
,,,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
,,,
,,,        ORG     000             ; Start of program memory
00000000,0000,,        NOP                     ; For ICD mode
00000001,2806,,        GOTO    init            ; Jump to main program
,,,
,,,; Interrupt Service Routine ................................
,,,
,,,        ORG     004
00000004,110B,,        BCF     INTCON,2        ; Reset TMR0 interrupt flag
00000005,0009,,        RETFIE                  ; Return from interrupt
,,,
,,,; Initialise Port D (Port B defaults to inputs).............
,,,
00000006,0000,init,init    NOP                     ; BANKSEL cannot be labelled
00000007,1683 1303,,        BANKSEL TRISD           ; Select bank 1
00000009,3000,,        MOVLW   b'00000000'     ; Port B Direction Code
0000000A,0088,,        MOVWF   TRISD           ; Load the DDR code into F86
,,,
,,,; Initialise Timer0 ........................................
,,,
0000000B,30D8,,        MOVLW   b'11011000'     ; TMR0 initialisation code
0000000C,0081,,        MOVWF   OPTREG          ; Int clock, no prescale
0000000D,1283 1303,,        BANKSEL PORTD           ; Select bank 0
0000000F,30A0,,        MOVLW   b'10100000'     ; INTCON init. code
00000010,008B,,        MOVWF   INTCON          ; Enable TMR0 interrupt
,,,
,,,; Start main loop ...........................................
,,,
00000011,0188,reset,reset   CLRF    PORTD           ; Clear Port B Data
,,,
00000012,1C86,start,start   BTFSS   PORTB,1         ; Test reset button
00000013,2811,,        GOTO    reset           ; and reset Port B if pressed
00000014,1906,,        BTFSC   PORTB,2         ; Test step button
00000015,2812,,        GOTO    start           ; and repeat if not pressed
,,,
00000016,0181,,        CLRF    TMR0            ; Reset timer
00000017,1D0B,wait,wait    BTFSS   INTCON,2        ; Check for time out
00000018,2817,,        GOTO    wait            ; Wait if not
00000019,1D06,stepin,stepin  BTFSS   PORTB,2         ; Check step button
0000001A,2819,,        GOTO    stepin          ; and wait until released
0000001B,0A88,,        INCF    PORTD           ; Increment output at Port B
0000001C,2812,,        GOTO    start           ; Repeat main loop always
,,,
,,,        END                     ; Terminate source code......

⌨️ 快捷键说明

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