这里介绍一个简单的PIC单片机SPI测试小程序,希望大家能够喜欢。
// DAC module connections
sbit Chip_Select at RC0_bit;
sbit Chip_Select_Direction at TRISC0_bit;
// End DAC module connections
unsigned int value;
void InitMain() {
TRISA0_bit = 1; // Set RA0 pin as input
TRISA1_bit = 1; // Set RA1 pin as input
Chip_Select = 1; // Deselect DAC
Chip_Select_Direction = 0; // Set CS# pin as Output
SPI1_Init(); // Initialize SPI module
}
// DAC increments (0..4095) --> output voltage (0..Vref)
void DAC_Output(unsigned int valueDAC) {
char temp;
Chip_Select = 0; // Select DAC chip
// Send High Byte
temp = (valueDAC >> 8) & 0x0F; // Store valueDAC[11..8] to temp[3..0]
temp |= 0x30; // Define DAC setting, see MCP4921 datasheet
SPI1_Write(temp); // Send high byte via SPI
// Send Low Byte
temp = valueDAC; // Store valueDAC[7..0] to temp[7..0]
SPI1_Write(temp); // Send low byte via SPI
Chip_Select = 1; // Deselect DAC chip
}
void main() {
ANSEL = 0;
ANSELH = 0;
InitMain(); // Perform main initialization
value = 2048; // When program starts, DAC gives
// the output in the mid-range
while (1) { // Endless loop
if ((RA0_bit) && (value < 4095)) { // If RA0 button is pressed
value++; // increment value
}
else {
if ((RA1_bit) && (value > 0)) { // If RA1 button is pressed
value--; // decrement value
}
}
DAC_Output(value); // Send value to DAC chip
Delay_ms(1); // Slow down key repeat pace
}
}
上一篇:基于pic16f1503单片机的电源电压不足检测和指示方法
下一篇:PIC12F675电机控制程序案例源码
推荐阅读最新更新时间:2024-11-08 11:03
设计资源 培训 开发板 精华推荐
- LT6656BIDC-4.096、4.096V 精密电流和升压基准电压源的典型应用
- LT1764AEQ-2.5 SCR 预稳压器的典型应用可提供跨线路变化的效率
- 用于编程欠压锁定的 LT3066EDE 线性稳压器的典型应用电路
- 低EMI、有源钳位、正激式Class 4用电设备(PD),为PoE应用提供高效方案
- 基于A6985F5V的38 V,0.5 A同步降压型开关稳压器评估板
- 使用 Infineon Technologies AG 的 IRU1205 的参考设计
- usb功率计mini
- REF198 精密微功率、低压差电压基准的典型应用
- stm32f446飞控
- LT1952EGN 36V 至 72V、3.3V、40A 同步正向转换器的典型应用电路