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

📄 tlc2543.asm

📁 12位模拟数字转换芯片
💻 ASM
字号:
;;	#include "regv51.h"

	sbit IOC=P1.0;
	sbit DI=P1.1;
	sbit DO=P1.2;
	sbit CS=P1.3;
	TLC2543 segment code
	Delay segment code
	public _TLC2543
	public _delay
;*******************************************************************	
;作者:ywg
;日期:2003-7-31
;说明:延时子程序
;*******************************************************************
	rseg Delay
_delay:
	using 0
Del0:	mov a,r7	;6
	mov r6,a	;6
Del1:	mov a,r5	;6
	mov r4,a	;6
Del2:	djnz r4,Del2	;12
	djnz r6,Del1	;12
	ret		;12
;;;;1+1+(1+1+2*r5+2)*r7+2=4+(4+2*r5)*r7=4*r7+2*r5*r7
;;;;4+(4+2*r5)*r7个机器周期
;;;;delay(1,14):r7=1;r6=14
;;;;1。4+4+2*14=36个指令周期;时间为36*(6/11.0592)us=19.53us.
;;;;2。加上lcall delay 的2个指令周期=1.08us;
;;;;1+2=20.61us
;*******************************************************************	
;作者:ywg
;日期:2003-7-31
;说明:TLC2543的采集程序
;*******************************************************************
	rseg TLC2543
	using 0
_TLC2543:
	;using 3
	mov a,r7/*读入通道数据到A*/
	mov r4,a
	clr CS/*片选有效*/
	jb acc.1,LSB
MSB:	
	mov r1,#08/*定义MSB的8位计数*/	
LOOP1:	mov c,DO
	nop
	nop
	rlc a
	mov DI,c
	setb IOC
	nop
	nop
	clr IOC
	djnz r1,LOOP1
	mov r6,a
	mov a,r4
	jb acc.1, return/*若位为1则转移*/			
	jb acc.3,LSB/*若高位为1则肯定不是8位*/
	jb acc.2,return
LSB:	mov r1,#04/*定义LSB的8位计数*/
	mov r7,#0/*v2.3*/
	mov a,#0/*v2.3*/
LOOP2:	mov c,DO
	rlc a
	mov DI,c
	setb IOC
	nop
	nop
	clr IOC
	djnz r1,LOOP2
	mov r7,a/*低4位*/
	/*处理数据*/
	mov a,r6
	swap a
	anl a,#0xf0
	orl a,r7
	mov r7,a

	mov a,r6
	swap a
	
	anl a,#0x0f
	mov r6,a
	
	mov a,r4/*可以不要*/
	jb acc.1, MSB
return:	
	setb CS/*片选有效*/
	ret
	end

⌨️ 快捷键说明

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