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

📄 lpc935dac_test.c

📁 飞力蒲公司的单片机P89LPC935内部集成了AD
💻 C
字号:



/*****************************************
*程序功能: 测试LPC935的内部DA功能
*作者:	www.zlgmcu.com
*日期:  14:54 04-2-20
*****************************************/
#include "Reg935.h"
#define	uchar unsigned char

void UART_Init();
void DAC_Init();
void Delay();

uchar temp;

void UART_isr() interrupt 4{
	RI=0;				//清接收标志位为0
	temp=SBUF;			//将数据存入temp

	ADCON0&=0x7F;			//清AD/DA转换完成标志位
	AD0DAT3=temp;			//AD0DAT3的值为DAC0输出的控制量
	Delay();
	ADCON0|=0x01;			//启动DA转换,立即启动方式

	TI=0;				//以下为将发送的数据反馈给串口调试器,以鉴别通讯是否正确,清发送标志位
	SBUF=temp;			//发送
	while(TI==0);			//等待发送标志为1
	TI=0;				//清发送标志
}

main()
{
	P1M1=0x00;			//设置P1端口
	P1M2=0x00;	
	P2M1=0x01;			//设置P2端口
	P2M2=0x00;
	
	DAC_Init();			//DA初始化
	UART_Init();			//串口初始化
	while(1);
}

void UART_Init()
{
	SCON=0x50;			//选择BRG作为波特率发生器,8位UART模式
	SSTAT=0x60;			//设置停止位结束产生中断,设置独立的Rx/Tx中断
	BRGR0=0xF0;			//设置内部晶振时的波特率 9600
	BRGR1=0x02;
	BRGCON = 0x03;     		//使能波特率发生器

	ES=1;				//使能串行中断
	EA=1;				//使能中断
}

void DAC_Init()
{
	ADINS=0x08;			//开转换通道3
	ADMODA=0x01;			//设置转换模式
	ADMODB=0x44;			//设置ADC模块,0.5Mhz<ADC CLK<3.3Mhz,使能DAC0
	ADCON0=0x04;			//开启DAC0模块
}

void Delay()
{
	int i;
	for(i=0;i<=1000;i++);
}

⌨️ 快捷键说明

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