📄 led1h.asm
字号:
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; 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
__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
NOP ; For ICD mode
GOTO init ; Jump to main program
; Interrupt Service Routine ................................
ORG 004
BCF INTCON,2 ; Reset TMR0 interrupt flag
RETFIE ; Return from interrupt
; Initialise Port D (Port B defaults to inputs).............
init NOP ; BANKSEL cannot be labelled
BANKSEL TRISD ; Select bank 1
MOVLW b'00000000' ; Port B Direction Code
MOVWF TRISD ; Load the DDR code into F86
; Initialise Timer0 ........................................
MOVLW b'11011000' ; TMR0 initialisation code
MOVWF OPTREG ; Int clock, no prescale
BANKSEL PORTD ; Select bank 0
MOVLW b'10100000' ; INTCON init. code
MOVWF INTCON ; Enable TMR0 interrupt
; Start main loop ...........................................
reset CLRF PORTD ; Clear Port B Data
start BTFSS PORTB,1 ; Test reset button
GOTO reset ; and reset Port B if pressed
BTFSC PORTB,2 ; Test step button
GOTO start ; and repeat if not pressed
CLRF TMR0 ; Reset timer
wait BTFSS INTCON,2 ; Check for time out
GOTO wait ; Wait if not
stepin BTFSS PORTB,2 ; Check step button
GOTO stepin ; and wait until released
INCF PORTD ; Increment output at Port B
GOTO start ; Repeat main loop always
END ; Terminate source code......
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -