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

📄 ex0401.asm

📁 关于PIC16F877A单片机的一些源代码,比较丰富.初学者认真看看应该有收获的.
💻 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 + -