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

📄 adc 0831.asm

📁 51单片机控制直流电机的程序和电路
💻 ASM
字号:
CS		BIT		P2.0
CLK		BIT		P2.4
DO		BIT		P2.5
AD_TMP	EQU		30H

PWM		BIT		P3.7			;PWM输出位
SW		BIT		P3.2			;开关状态位
DIR		BIT		P3.6			;方向控制位

		ORG		00H
MAIN:	LCALL	AD_CONV

		SETB	SW				;判断开关状态
		JB		SW,POS			;开关位为1,则正转
		AJMP	NEG				;开关位为0,则反转

POS:	SETB	DIR
		SETB	PWM			   	;PWM输出,正转
		MOV 	A,AD_TMP
		LCALL	DELAY
		CLR		PWM
		MOV		A,#255
		SUBB	A,AD_TMP
		LCALL	DELAY
		SJMP 	MAIN

NEG:	CLR		DIR
		CLR		PWM			   	;PWM输出,反转
		MOV 	A,AD_TMP
		LCALL	DELAY
		SETB	PWM
		MOV		A,#255
		SUBB	A,AD_TMP
		LCALL	DELAY
		SJMP 	MAIN

;********************************************************
;AD转换子程序,转换值存放在AD_TMP中
;转换值范围为0-255之间
;********************************************************
AD_CONV:SETB	CS		
		CLR		CLK
		NOP
		NOP
		CLR		CS
		NOP
		NOP
		SETB	CLK
		NOP
		NOP
		CLR		CLK			;片选信号有效,启动ADC0831
		NOP
		NOP
		SETB	CLK
		NOP
		NOP
		CLR		CLK			;开始转换
		NOP
		NOP
		SETB	CLK
		NOP
		MOV		R0,#08H
AD_READ:CLR		CLK			;下降沿,串行数据移出一位
		MOV		C,DO		;读取DO端数据
		RLC		A
		SETB	CLK
		NOP
		NOP
		DJNZ	R0,AD_READ
		SETB	CS			;数据读完,片选置高,结束一次转换
		MOV		AD_TMP,A	;转换结果写入AD_TMP
		RET
;*******************************************************
;延时子程序
;根据AD转换的结果,确定延时常数
;*******************************************************
DELAY:	MOV		R6,#5
D1:		DJNZ	R6,D1
		DJNZ	ACC,D1
		RET

		END





⌨️ 快捷键说明

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