ads7818.asm

来自「ads7818是一款非常实用的芯片」· 汇编 代码 · 共 101 行

ASM
101
字号
.include hardware.inc
.ram 
.external _ADS7818_DATA;

.code


.public _initial;
_initial: .proc

	//IOA0: clk;
	//IOA1: data;
	//IOA2: conv; 
	
	r1 = 0x0005;
	[P_IOA_Dir] = r1;
	[P_IOA_Attrib] = r1;
	[P_IOA_Data] = r1;
	
	r1 = 0x0080;
	[P_SystemClock] = r1;			//选择PLL频率为49.152MHZ,CPUCLK为49.152MHZ	
	
	retf;
.endp

.public _feeddog;
_feeddog:.proc
	push r1 to [sp];
	r1 = 0x0001;
	[P_Watchdog_Clear] = r1;
	pop r1 from [sp];
	retf;
.endp

.public _CONV_R;
_CONV_R:.proc
	push r1 to [sp];
	r1 = [P_IOA_Data];
	r1 &= 0xfffb;
	[P_IOA_Data] = r1;
	pop r1 from [sp];
	retf;
.endp


.public _CONV_S;
_CONV_S:.proc
	push r1 to [sp];
	r1 = [P_IOA_Data];
	r1 |= 0x0004;
	[P_IOA_Data] = r1;
	pop r1 from [sp];
	retf;
.endp

.public _CLK_R;
_CLK_R:.proc
	push r1 to [sp];
	r1 = [P_IOA_Data];
	r1 &= 0xfffe;
	[P_IOA_Data] = r1;
	pop r1 from [sp];
	retf;
.endp


.public _CLK_S;
_CLK_S:.proc
	push r1 to [sp];
	r1 = [P_IOA_Data];
	r1 |= 0x0001;
	[P_IOA_Data] = r1;
	pop r1 from [sp];
	retf;
.endp

.public _CLK;
_CLK:.proc
	push r1 to [sp];
	r1 = [P_IOA_Data];
	r1 |= 0x0001;
	[P_IOA_Data] = r1;
	r1 &= 0xfffe;
	[P_IOA_Data] = r1;
	pop r1 from [sp];
	retf;
.endp

.public _IN_DATA;
_IN_DATA: .proc
	push r1,r2 to [sp];
	r1 = [P_IOA_Data];
	r2 = [_ADS7818_DATA]; 
	r1 &= 0x0002;
	r1 = r1 asr 1;
	r2 = r2 lsl 1;
	r2 |= r1;
	[_ADS7818_DATA] = r2;
	pop r1,r2 from [sp];
	retf;
.endp

⌨️ 快捷键说明

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