📄 ex0401.asm
字号:
;
; EX0401.ASM
;
LIST P=16F877, R=DEC
#INCLUDE <P16F877.INC>
CBLOCK 0X20
ENDC
;
; DEFINE RAM
;
CBLOCK
R0 ; user's register
DATBF1,DATBF2 ; user's registers
ENDC
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; ;
; define pins (example) ;
; ;
PORTSEG EQU PORTD ; segments port ;
TRISEG EQU TRISD ;
PORTCA EQU PORTB ; common anode's port ;
TRICA EQU TRISB ;
; ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
;
ORG 0
NOP
BANKSEL TRICA ; TRICA is in bank1
MOVLW 0
MOVWF TRICA ; set common anode port to be output
MOVWF TRISEG ; set segments port to be output
BANKSEL PORTCA ; PORTCA is in bank0
MOVLW 0XFF
MOVWF PORTCA
;===============================;
MOVLW H'12' ; display '1234'
MOVWF DATBF2 ; put 12 in higher byte
MOVLW H'34' ;
MOVWF DATBF1 ; put 34 in lower byte
;===============================;
FOURLED:
MOVF DATBF1,W
CALL TABLE
MOVWF PORTSEG ; output unit digit here !
MOVLW B'11111110'
MOVWF PORTCA ; light up LED1(CA1)
CALL DLY2_5mS ; delay 2.5 mS
;
SWAPF DATBF1,W
CALL TABLE
MOVWF PORTSEG ; output ten digit here !
MOVLW B'11111101'
MOVWF PORTCA ; light up LED2(CA2)
CALL DLY2_5mS ; delay 2.5 mS
;
MOVF DATBF2,W
CALL TABLE
MOVWF PORTSEG ; output hundred digit here !
MOVLW B'11111011'
MOVWF PORTCA ; light up LED3(CA3)
CALL DLY2_5mS ; delay 2.5 mS
;
SWAPF DATBF2,W
CALL TABLE
MOVWF PORTSEG ; output thousand digit here !
MOVLW B'11110111'
MOVWF PORTCA ; light up LED4(CA4)
CALL DLY2_5mS ; delay 2.5 mS
;
GOTO FOURLED
;
; TABLE READER
;
TABLE
ANDLW B'00001111' ; only 0~F are valid
ADDWF PCL
TABLE1
RETLW H'C0' ; 0
RETLW H'F9' ; 1
RETLW H'A4' ; 2
RETLW H'B0' ; 3
RETLW H'99' ; 4
RETLW H'92' ; 5
RETLW H'82' ; 6
RETLW H'F8' ; 7
RETLW H'80' ; 8
RETLW H'90' ; 9
RETLW H'88' ; A
RETLW H'83' ; b
RETLW H'C6' ; C
RETLW H'A1' ; d
RETLW H'86' ; E
RETLW H'8E' ; F
;-----------------------------------------------;
;
#INCLUDE <DLY2_5mS.INC> ;
;
; delay 2.5 msec ;
; for 16 MHz ;
;===============================================;
;
;
;
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -