📄 main.c
字号:
//-----------------------------------------------------------------
// 名称: 用带SPI接口的数模转换芯片MCP4921生成正弦波形
//-----------------------------------------------------------------
// 说明: 本例运行时,经MCP4921进行数/模转换后的输出信号经调理后的输出
// 为周期为2ms,幅值为2.5V(+/-)正弦交流信号.
//
//-----------------------------------------------------------------
#include <pic.h>
#define INT8U unsigned char
#define INT16U unsigned int
#define _XTAL_FREQ 20000000UL //20MHZ
//SPI使能与禁用,锁存使能与禁用
#define SPI_EN() RC6 = 0
#define SPI_DI() RC6 = 1
//当LDAC引脚直接连接低电平时下面的定义取消
//#define LDAC_EN() RC7 = 0
//#define LDAC_DI() RC7 = 1
//正弦波100个采样点电压对应的数字值
//幅值为(+/-)1.25V,上移2.5V,输出正弦电压区间为: +3.75 ~ +1.25V
//中心点为+2.5V,这三个点(3.75,2.5,1.25)对应的DA值为(3072,2048,1024)
const INT16U SIN_DATA[100] =
{
2048, 2112, 2176, 2239, 2302, 2364, 2424, 2483, 2541, 2596,
2649, 2700, 2748, 2794, 2837, 2876, 2912, 2945, 2974, 3000,
3021, 3039, 3053, 3063, 3069, 3072, 3069, 3063, 3053, 3039,
3021, 3000, 2974, 2945, 2912, 2876, 2837, 2794, 2748, 2700,
2649, 2596, 2541, 2483, 2424, 2364, 2302, 2239, 2176, 2112,
2048, 1984, 1920, 1857, 1794, 1732, 1672, 1613, 1555, 1500,
1447, 1396, 1348, 1302, 1259, 1220, 1184, 1151, 1122, 1096,
1075, 1057, 1043, 1033, 1027, 1024, 1027, 1033, 1043, 1057,
1075, 1096, 1122, 1151, 1184, 1220, 1259, 1302, 1348, 1396,
1447, 1500, 1555, 1613, 1672, 1732, 1794, 1857, 1920, 1984
};
INT8U d;
//SPI数据传输(启动数据传输,然后等待传输结束,最后返回SSPBUF)
#define SPI_Transmit(x) { SSPBUF = x; while(!BF); d = SSPBUF; }
//-----------------------------------------------------------------
// SPI主机初始化
//-----------------------------------------------------------------
void SPI_MasterInit()
{
}
//-----------------------------------------------------------------
// 主程序
//-----------------------------------------------------------------
void main()
{
}
//-----------------------------------------------------------------
// 定时器中断程序
//-----------------------------------------------------------------
void interrupt INT_ISR()
{
static INT8U idx = 0; //待发送的D/A传输数字索引
if (TMR2IF == 1)
{
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -