tlight.asm

来自「1」· 汇编 代码 · 共 59 行

ASM
59
字号

;*************************************************
;* light.asm                                    **
;*************************************************
;* 本程序为光敏电阻输入处理模块程序  
;* 在A/D转换后的数字量低于设定值时开LCD背光        
;* 占用I/O     RA2,RC2  
;* 使用RAM     1个字节                          
;* 程序包括:                      
;*   - BkLight    光敏电阻输入处理函数         
;* 入口参数    无                          
;* 出口参数    无         
;当背景亮度不够时,
#include <p16f877a.inc>
;* 控制引脚定义
#define   LightCon_dir   TRISB,2
#define   LightCon_io    PORTB,2

ADRESB   EQU  0X20

ORG 0X0;
   CALL  INITLIGHT;
   CALL  LIGHTGO;
   GOTO   $-1

INITLIGHT    
	bsf 	STATUS,RP0
        movlw   0x02
	movwf	ADCON1  	;ADRESH all 8-bit,H	
	bcf     STATUS,RP0
	movlw	b'01010001'
	movwf	ADCON0	    	;select AD2,Fosc/8
	RETURN;
	
LIGHTGO
  	bsf  	ADCON0,GO
        movlw   0x10
        movwf   ADRESB
        decfsz  ADRESB,F
        goto    $-1             ;延时
	btfsc   ADCON0,GO
	goto	$-1	                      
	movf	ADRESH,W        ;READ ADRES---
	movwf	ADRESB;
	bsf 	STATUS,RP0
	bcf     LightCon_dir   ;SELECT RE0 OUTPUT    
	bcf     STATUS,RP0
	movlw   0x80	       ;critical value of lightness
	subwf	ADRESB,W
	btfsc	STATUS,C
	goto  	$+4	       ;c=0,ADRESB<critical
	bcf  	STATUS,RP0
	bsf     LightCon_io    ;c=1,亮度低,打开LED	  
	goto	$+3
	bcf 	STATUS,RP0
	bcf     LightCon_io    ;c=0,亮度高,可以关掉LED                      
	return
END

⌨️ 快捷键说明

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