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

📄 max5400drive.txt

📁 利用MEGA16中的SPI总线实现对数控电位器MAX5400的控制
💻 TXT
字号:
/*-----------------------------------------
----------------陈晓涛---------------------
-------------------------------------------
名称:SPI总路线实现数控电位器驱动程序
说明:晶振为1M
-----------------------------------------*/
#include"iom16.h"
#include"intrinsics.h"
/*-----------------------------------------
SPI接口定义
----------------------------------------*/
#define DDR_SPI DDRB  //SPI总路线接口在PORTB
#define DD_MOSI DDB5 //MOSI接口定义
#define DD_SCK  DDB7 //SCK接口定义
#define DD_SS  DDB4//SS接口定义
#define SET_SS  PORTB|=0X10;
#define CLR_SS  PORTB&=0XEF;

unsigned char data;
void SPI_MasterInit(void);
void SPI_MasterTransmit(char cData);
void write_max5400(unsigned char data1);

void SPI_MasterInit(void)
{
/* MOSI SCK /SS*/
DDR_SPI = (1<<DD_MOSI)|(1<<DD_SCK)|(1<<DD_SS);
/* SPIfck/16 */
SPCR=0X5c;  //(50 58 5C都可用,用54将播入一个0)SPI使能,主机模式,中断禁止,MSB先发,上升为起始沿,起始沿采样,SCK为Fosc/4
SPSR|=0X01;//SCK倍速为Fosc/2
}

void SPI_MasterTransmit(char cData)
{
SPDR = cData;
while(!(SPSR & (1<<SPIF)))
;
}

void write_max5400(unsigned char data1)
{
CLR_SS;
SPI_MasterTransmit(data1);
SET_SS;
}

void main()
{
SPI_MasterInit();
write_max5400(0xff);
while(1)
{
 if(data>=255)
   data=0;
 data+=5;
 write_max5400(data);
}
}

⌨️ 快捷键说明

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