📄 lpc935dac_test.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 + -