[单片机][N76E003][MCP4017][MCP4018][MCP4019] 数字电位器 使用方法 例子 代码

发布者:asdfrewqpp最新更新时间:2022-10-08 来源: csdn关键字:单片机  N76E003  数字电位器 手机看文章 扫描二维码
随时随地手机看文章

在这里插入图片描述

7位:电阻分辨率-127电阻器(128步) -->W


在这里插入图片描述
在这里插入图片描述

/* -----------------------------------------宏定义-----------------------------------------*/


/* -----------------------------------------头文件-----------------------------------------*/

#include "main.h"


/* -----------------------------------------结构体定义-------------------------------------*/


/* -----------------------------------------全局变量定义-----------------------------------*/

code IIC_TYPE MCP4017 = {2, 0x5E};

/* -----------------------------------------应用程序---------------------------------------*/

void MCP4017_Init(void)

{

    IIC_Init();          // I2C初始化

}


/*********************************************

函数名:MCP4017_Write_DATA

功  能:写 地址 数据

形  参:addr 地址   dat 数据


**********************************************/

void MCP4017_Write_DATA(const uint8_t addr, const uint8_t DATA)

{

    IIC_Start();                 // 启动

    IIC_WriteByte(MCP4017.ADDR); // 设备地址

    IIC_Wait_ACK();              // 等待数据响应

//    IIC_WriteByte(addr);         // 发送寄存器地址

//    IIC_Wait_ACK();              // 等待数据响应

    IIC_WriteByte(DATA);         // 发送数据

    IIC_Wait_ACK();              // 等待数据响应

    IIC_Stop();                  // 停止

}

/*********************************************

函数名:PAJ7620U2_Read_DATA

功  能:读地址数据

形  参:addr--寄存器地址

返回值:

备  注:

作  者:薛建强

时  间:2020/03/19

**********************************************/

uint8_t MCP4017_Read_DATA(const uint8_t addr)

{

    uint8_t GET_DATA = 0;

//    IIC_Start();                     // 启动

//    IIC_WriteByte(MCP4017.ADDR);     // 发送地址

//    IIC_Wait_ACK();                  // 等待数据响应

//    IIC_WriteByte(addr);             // 发送地址

//    IIC_Wait_ACK();                  // 等待数据响应


    IIC_Start();                     // 启动

    IIC_WriteByte(MCP4017.ADDR | 1); // 发送地址

    IIC_Wait_ACK();                  // 等待数据响应


    GET_DATA = IIC_ReadByte();       // 获取数据

    IIC_Wait_ACK();                  // 等待数据响应


    IIC_Stop();                      // 停止

    return GET_DATA;

}


#ifndef _MCP4017_H

#define _MCP4017_H

/* -----------------------------------------宏定义-----------------------------------------*/


/* -----------------------------------------头文件-----------------------------------------*/

#include "main.h"


/* -----------------------------------------结构体定义-------------------------------------*/


/* -----------------------------------------全局变量定义-----------------------------------*/


/* -----------------------------------------应用程序---------------------------------------*/

void MCP4017_Write_DATA(const uint8_t addr, const uint8_t DATA);

void MCP4017_Init(void);

uint8_t MCP4017_Read_DATA(const uint8_t addr);

#endif


使用例子:


xdata uint8_t MCP_VAL_Old = 0, MCP_VAL_New = 0;

xdata uint8_t MCP_VAL_Req = 0;

MCP4017_Init();

    for (;;)

    {

        if (MCP_VAL_Old != MCP_VAL_New)

        {

            MCP4017_Write_DATA(0, MCP_VAL_New);

            os_wait(K_IVL, 50, 0);//50ms

            MCP_VAL_Req = MCP4017_Read_DATA(0);

            if (MCP_VAL_Req == MCP_VAL_New)

            {

                MCP_VAL_Old = MCP_VAL_New;

            }

        }


        os_wait(K_IVL, 50, 0);//50ms

    }



单击按键:

                    if (MCP_VAL_New < 130 && ++MCP_VAL_New > 127) MCP_VAL_New = 0;

                    if (MCP_VAL_New >= 127)

                    {

                        MCP_VAL_New = 0;

                    }


关键字:单片机  N76E003  数字电位器 引用地址:[单片机][N76E003][MCP4017][MCP4018][MCP4019] 数字电位器 使用方法 例子 代码

上一篇:单片机 ADC采集电压
下一篇:单片机 ADXL346 IIC通讯

推荐阅读最新更新时间:2024-10-27 09:20

[单片机][N76E003][MCP4017][MCP4018][MCP4019] 数字电位器 使用方法 例子 代码
7位:电阻分辨率-127电阻器(128步) -- W /* -----------------------------------------宏定义-----------------------------------------*/ /* -----------------------------------------头文件-----------------------------------------*/ #include main.h /* -----------------------------------------结构体定义------------------------------------
[单片机]
[<font color='red'>单片机</font>][<font color='red'>N76E003</font>][<font color='red'>MCP4017</font>][<font color='red'>MCP4018</font>][<font color='red'>MCP4019</font>] <font color='red'>数字电位器</font> 使用方法 例子 代码
N76E003][MCP4017][MCP4018][MCP4019] 数字电位器 使用方法
7位:电阻分辨率-127电阻器(128步) -- W /* -----------------------------------------宏定义-----------------------------------------*/ /* -----------------------------------------头文件-----------------------------------------*/ #include main.h /* -----------------------------------------结构体定义-------------------------------------
[单片机]
<font color='red'>N76E003</font>][<font color='red'>MCP4017</font>][<font color='red'>MCP4018</font>][<font color='red'>MCP4019</font>] <font color='red'>数字电位器</font> 使用方法
[单片机][N76E003][PCA9540BD][IIC扩展器] 一组IIC变两组IIC 使用方法 例子 代码
/* -----------------------------------------宏定义-----------------------------------------*/ /* -----------------------------------------头文件-----------------------------------------*/ #include main.h /* -----------------------------------------结构体定义-------------------------------------*/ code IIC_TYPE PCA9540BD =
[单片机]
[<font color='red'>单片机</font>][<font color='red'>N76E003</font>][PCA9540BD][IIC扩展器] 一组IIC变两组IIC 使用方法 例子 代码
单片机 N76E003 实现 QC2.0 QC3.0 USB Type-C协议
/*************笔记**************** 1、本QC方案采用PWM调节电压。 2、 3、 4、 5、 ***********************************/ /* -----------------------------------------宏定义-----------------------------------------*/ #define Voltage_06_PWM 18 //0.6V的占空比 /* -----------------------------------------头文件-----------------------------------------*/
[单片机]
<font color='red'>单片机</font> <font color='red'>N76E003</font> 实现 QC2.0 QC3.0 USB Type-C协议
单片机 N76E003 EC12 编码器
sbit EC_B = P0 ^ 0; // 编码器 P0.0 端口 sbit EC_A = P1 ^ 3; // 编码器 P1.3 端口 static uint8_t EC_A_Val = 0, EC_B_Val = 0; static uint8_t EC_A_old = 0, EC_B_old = 0; /********************************************* 函数名:EncoderReading 功 能:读取编码器数据 形 参: 返回值:0--无动作 1--正转 2--反转 备 注: **********************************************/ ui
[单片机]
N76E003 单片机 IIC 软模拟
/* -----------------------------------------头文件-----------------------------------------*/ #include iic.h /* -----------------------------------------宏定义-----------------------------------------*/ #define IIC_SDA(N) IIC_SDA = N #define IIC_SCL(N) IIC_SCL = N /*选择SDA的数据方向*/ #define IIC_SDA_Input() {P13_PushPull_M
[单片机]
新唐n76e003单片机遥控PWM信号检测控制航灯系统
第一次使用学习单片机编程, 使用了n76e003, 主要在检测pwm的信号问题上花了比较多的时间,最后是使用了timer2的0通道来捕捉上升缘,1通道来捕捉下降缘来检测pwm的宽度。 接收机是0-2000us pwm输出,500-1000是基础的pwm, 就是说没有信号也定期输出500(舵机)或1000(油门),这样单片机可以检测到有无信号. timer0来控制led的开关和闪烁,timer0使用10khz, timer2使用16m的时钟. #include N76E003.h #include Common.h #include Delay.h #include SFR_Macro.h #include Fu
[单片机]
新唐N76e003 单片机程序分析
在Function_define.h文件 #ifdef FOSC_160000 // if Fsys = 16MHz #define TIMER_DIV12_VALUE_10us 65536-13 //13*12/16000000 = 10 uS, // Timer divider = 12 for TM0/TM1 #define TIMER_DIV12_VALUE_100us 65536-130 //130*12/16000000 = 10 uS, // Timer divider = 12 #define TIMER_DIV12_VALUE_1ms 65536-1334 //1
[单片机]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved