单片机
返回首页

PIC单片机的一个简单的SPI小程序

2019-10-30 来源:51hei

这里介绍一个简单的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

  }

}


 

进入单片机查看更多内容>>
相关视频
  • RISC-V嵌入式系统开发

  • SOC系统级芯片设计实验

  • 云龙51单片机实训视频教程(王云,字幕版)

  • 2022 Digi-Key KOL 系列: 你见过1GHz主频的单片机吗?Teensy 4.1开发板介绍

  • TI 新一代 C2000™ 微控制器:全方位助力伺服及马达驱动应用

  • MSP430电容触摸技术 - 防水Demo演示

精选电路图
  • PIC单片机控制的遥控防盗报警器电路

  • 使用ESP8266从NTP服务器获取时间并在OLED显示器上显示

  • 用NE555制作定时器

  • 如何构建一个触摸传感器电路

  • 基于ICL296的大电流开关稳压器电源电路

  • 基于TDA2003的简单低功耗汽车立体声放大器电路

    相关电子头条文章