51单片机驱动MAX5414输出具体的阻值的代码
时间: 2024-01-11 16:05:20 浏览: 56
以下是51单片机驱动MAX5414输出具体阻值的示例代码:
```c
#include <reg51.h>
sbit SDA = P1^1; //定义IIC总线数据线引脚
sbit SCL = P1^0; //定义IIC总线时钟线引脚
void delay_us(unsigned int us) //延时函数
{
while(us--);
}
void IIC_start() //IIC总线起始信号
{
SDA = 1;
SCL = 1;
delay_us(5);
SDA = 0;
delay_us(5);
SCL = 0;
}
void IIC_stop() //IIC总线停止信号
{
SDA = 0;
SCL = 1;
delay_us(5);
SDA = 1;
delay_us(5);
}
void IIC_write_byte(unsigned char dat) //IIC总线发送一个字节
{
unsigned char i;
for(i=0;i<8;i++)
{
SDA = dat & 0x80;
SCL = 1;
delay_us(5);
SCL = 0;
dat <<= 1;
}
}
unsigned char IIC_read_byte() //IIC总线读取一个字节
{
unsigned char i, dat = 0;
for(i=0;i<8;i++)
{
SCL = 1;
delay_us(5);
dat <<= 1;
dat |= SDA;
SCL = 0;
delay_us(5);
}
return dat;
}
void MAX5414_write(unsigned int res) //向MAX5414写入具体的阻值
{
IIC_start();
IIC_write_byte(0x2A); //设定器件地址
IIC_write_byte((unsigned char)(res >> 8)); //写入高8位
IIC_write_byte((unsigned char)res); //写入低8位
IIC_stop();
}
void main()
{
unsigned int res = 2000; //设定阻值为2000Ω
MAX5414_write(res); //向MAX5414写入具体的阻值
}
```
注意:以上代码仅供参考,具体实现需要根据具体的硬件连接和所使用的51单片机型号进行修改。
阅读全文