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

📄 all.txt

📁 对于BDA可调控制,有A/D功能和比较器比较输出
💻 TXT
字号:
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
			;实现功能和设计思路
	;1.  文件名〈07_12_13〉
	;2.  文件路径〈桌面〉
	;3.  时间07_12_13
	;4.  功能
		;将可调电压RN4模拟输入的信号通过A/D转换在RC1-RC4口输出
		;将VIN+和VIN—的值通过A/D转换后,相比较,将其结果通过COUT输出
		;A/D转换后的结果存放在两个地址内,值相减,如果大于就输出1,小于就输出0
		;如果CIN+〉VIN-则COUT输出为1
		;如果CIN+〈VIN-则COUT输出为0
	;5.  地址使用一览表
	;	CON_1	ORG	0X20(放CIN+A/D的值)
	;	con_2	org	0x21(放CIN-A/D的值)

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
#include<p16f676.inc>
	 __config 0x31b4                 		 ;看门狗关;内部RC振荡,RA4/RA5做I/O,MCLR脚做复位
	 AD_H	equ		0x21
	 scaler	equ		0x22
				org	00h
				nop

Main
			call	INitial					;掉用子程序
			call	AD_Convert				;RN4  A/D转换后将ADSERH中的低5位值分别给RC1-RC2输出
			call	display
			call	LMP
			GOTO	Main

INitial
			BANKSEL		ANSEL
			movlw		00h
			movwf		ANSEL
			 banksel	TRISC
			 movlw  	01h
			 MOVWF  	TRISC
			 banksel	ADCON0	
			 MOVLW		13h					;AN4 A/D 输入设置
			 movwf		ADCON0	
			 movlw		04H
		     movwf		scaler	
		     bsf		PORTC,4
		     bsf		PORTC,5
		     banksel	CMCON
		   	 movlw		07h
			 movwf		CMCON
			 banksel	TRISA
			 bcf		TRISA,2
			 bsf		TRISA,0
			 bsf		TRISA,1		 
			 return

AD_Convert
		banksel		ADCON0
		bsf			ADCON0,GO			;开始A/D转换
		WAIT
		BTFSC		ADCON0,GO			;检查A/D转换是否完成
		GOTO		WAIT				;否,继续检查					
		MOVF		ADRESH,w			;ADRESH->W
		movwf		AD_H				;放到AD_0寄存器中
		return
display
		btfss		AD_H,5				;AD_0寄存器中2位是否=0,
		GOTO		ADRESH_1			;是跳到ADRSH_1
		bsf			PORTC,1				;NO,则PORTC=1
fz_data2
		btfss		AD_H,6				;AD_0寄存器中3位是否=0,
		GOTO		ADRESH_2			;Y跳到ADRSH_2
		bsf			PORTC,2				;N,则PORTC=2
fz_data3
		btfss		AD_H,7				;AD_0寄存器中4位是否=0,
		GOTO		ADRESH_3			;Y跳到ADRSH_3
		bsf			PORTC,3				;N,则PORTC=3
		RETURN
ADRESH_1
		BCF			PORTC,1
		goto 		fz_data2
ADRESH_2
		BCF			PORTC,2
		goto 		fz_data3	
ADRESH_3
		BCF			PORTC,3
		return
LMP
		banksel	PORTA
		btfss	PORTA,0		;判断RA0是不是等于0,等于0跳到	
		GOTO	LMP_1
		BSF		PORTA,2		;否,RA2=1
		return
LMP_1	
		btfsc	PORTA,1		;判断RA1是不是等于1,等于1跳到
		GOTO	LMP_2
		bsf		PORTA,2		;否,RA2=1
		return
LMP_2	
		bcf		PORTA,2		;否,RA2=0
		return
		END

;looptime								;延时10MS
	;	btfss		scaler,7
	;	goto		looptime
	;	movlw		5
	;	addwf		scaler,f
	;	return

⌨️ 快捷键说明

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