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

📄 adc1.asm

📁 PIC16F877A的一个AD转换小程序
💻 ASM
字号:
list p=16f877A
include "p16f877A.inc"
W_Temp      equ    0x20
STATUS_T    equ    0x21
AD_Status   equ    0x23
Delay1      equ    0x24
Delay2      equ    0X25
Dey         equ    0x26
            
            org    0x0000
            nop
            goto   MainLine

;*******************************************
;interupt
            org     0x04
            
            movwf   W_Temp
            swapf   STATUS,W
            movwf   STATUS_T
            
            bcf     PIR1,ADIF
            movf    ADRESH,W
            movwf   AD_Status
            movlw   0FH
            movwf   Dey
 Loop1
 			decfsz  Dey,1
 			goto    Loop1
 			bsf     ADCON0,2
 			swapf   STATUS_T,W
 			movwf   STATUS
 			swapf   W_Temp,f
 			swapf   W_Temp,W
 			retfie
 			           
;********************************************
;main programe
MainLine
			call    Initial 
MainLoop
			movf    AD_Status,W
			sublw   0E6H
			btfss   STATUS,C
            goto    S5
            movf    AD_Status,W
			sublw   0B3H  
			btfss   STATUS,C
            goto    S4
			movf    AD_Status,W
			sublw   80H
			btfss   STATUS,C
            goto    S3
			movf    AD_Status,W
			sublw   4DH
            btfss   STATUS,C
            goto    S2
			movf    AD_Status,W
			sublw   1AH
			btfss   STATUS,C
            goto    S1
            goto    S0
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
S0
            movlw  11H
            goto   output
S1
        	movlw  7DH
			goto   output
S2
        	movlw  23H
			goto   output
S3
        	movlw  29H
			goto   output
S4
        	movlw  4DH
			goto   output
S5
        	movlw  89H
			
output			
			banksel PORTC
			movwf   PORTC
			call    LoopTime
			movlw   0FH
			subwf   AD_Status,0
			btfsc   STATUS,0
			call    Display1
			goto    MainLoop

;*******************************************
;initial
Initial
			banksel TRISC
			clrf    TRISC
			banksel PORTC
			clrf    PORTC
			banksel PIE1
			bsf     PIE1,ADIE
			bsf     TRISA,0
			banksel ADCON1
			movlw   B'00000000'
			movwf   ADCON1
			banksel ADCON0
			movlw   B'10000001'
			movwf   ADCON0
			banksel INTCON
			bsf     INTCON,GIE
			bsf     INTCON,PEIE
			bsf     ADCON0,2
            return

;********************************************
;alarm
Display1
			movlw   0fh
            banksel PORTD
            movwf   PORTD
            call    LoopTime
            movwf   PORTD
            call    LoopTime
            return

;********************************************
;delay
LoopTime
            movlw   0XFF
			movwf   Delay1
            clrf    Delay2
DelayLoop
			decfsz  Delay2,F
			goto    DelayLoop
			decfsz  Delay1,F
			goto    DelayLoop
			return
end


			 

⌨️ 快捷键说明

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