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

📄 lpc935dac_test.asm

📁 飞力蒲公司的单片机P89LPC935内部集成了AD
💻 ASM
字号:
/*****************************************
*程序功能: 测试LPC935的内部DA功能
*作者:	www.zlgmcu.com
*日期:  14:54 04-2-20
*****************************************/
$NOMOD51
$INCLUDE(REG935.INC)

	ORG	0000H
	AJMP	MAIN
	ORG	0023H			;串行中断服务程序入口
	AJMP	UART_ISR
	
	ORG	0100H
MAIN:	
	MOV	P1M1,#0x00		;设置P1口模式
	MOV	P1M2,#0x00
	MOV	P2M1,#0x01		;设置P2口模式,P2.0为仅为输入
	MOV	P2M2,#0x00
	
	ACALL	DAC_INIT		;调用DAC初始化程序
	ACALL	UART_INIT		;调用UART初始化程序
	SJMP	$
	RET
;--------------------------
;功能:初始化DAC
;--------------------------
DAC_INIT:
	MOV	ADINS,#0x08		;选择通道
	MOV	ADMODA,#0x01		;设置转换模式
	MOV	ADMODB,#0x44		;设置0.5Mhz < ADC CLK < 3.3Mhz; 使能DAC转换功能
	MOV	ADCON0,#0x04		;选择AD/DA转换模块,设置启动方式

	RET
;--------------------------
;功能:初始化UART
;--------------------------
UART_INIT:
	MOV	SCON,#0x50		;选择BRG作为波特率发生器
	MOV	SSTAT,#0x60		;设置停止位结束产生中断,设置独立的Rx/Tx中断
	MOV	BRGR0,#0xF0		;设置内部晶振时的波特率 9600
	MOV	BRGR1,#0x02
	MOV	BRGCON,#0x03		;使能波特率发生器
	
	SETB	ES			;使能串行中断
	SETB	EA			;使能中断
	RET
;--------------------------
;功能:UART中断服务程序
;--------------------------
UART_ISR:
	CLR	RI			;清除串行中断接收标志
	MOV	R3,SBUF			;将数据存入R3
	
	MOV	A,ADCON0		;清ADCON0完成标志位
	ANL	A,#0x7F
	MOV	ADCON0,A

	MOV	AD0DAT3,R3		;设置AD0DAT3
	ACALL	DELAY			

	MOV	A,ADCON0		;启动ADCON0,立即启动方式
	ORL	A,#0x01
	MOV	ADCON0,A

	CLR	TI			;以下为将发送的数据反馈给串口调试器,以鉴别通讯是否正确,清发送标志位
	MOV	SBUF,R3			;发送
	JNB	TI,$			;等待发送标志为1
	CLR	TI			;清发送标志
	
	RETI
;---------------------------
;功能:延时
;---------------------------
DELAY:
	MOV	R1,#0xFF
LOOP1:	MOV	R2,#0xFF
LOOP2:	DJNZ	R2,LOOP2
	DJNZ	R1,LOOP1
	RET
	END

⌨️ 快捷键说明

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