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

   名称:main()
   功能:主函数,将x9015设置为中间档位(16),则测量出来的值约为实际的电压信号的一半。
***********************************************************************/
 int main(void)
{ uint32 data;
x9015_Init();
NumbTube_Init(); //数码管初始化
AD_Init();
x9015_Step(,); //先将数字电位器x9015的档数设为0
x9015_Step(,); //再将数字电位器x9015的档数设为16
while()
{
data = AD_Read(AIN4); //AD转换(AIN4)
NumbTube_Display(data*,); //数码管显示
}
return();
}

单击全速运行按钮(快捷键F5),程序会运行并停留在main()主函数处;继续全速运行,测量到的电压信号在数码管上进行显示。

 //-----------引脚定义----------------
#define x9015_INC (1<<29) //P2.29
#define x9015_UpDown (1<<28) //P2.28
#define x9015_CS (1<<18) //P1.18
/********************************************************************
* 名称:x9015_Init()
* 功能:初始化x9015的引脚配置
********************************************************************/
void x9015_Init(void)
{
// 设置引脚连接 x9015_CS(P1.18)为GPIO
PINSEL2 = PINSEL2 & 0xfffffff7;
IO2DIR = IO2DIR | x9015_INC | x9015_UpDown;
IO1DIR = IO1DIR | x9015_CS;
}
/****************************************************************************
* 名称:x9015_Step(uint8 UpDown, uint8 level)
* 功能:改变x9015数字电位器的内部档数
* 入口参数:UpDown 增加档数或减少档数, level 变化的档数值
****************************************************************************/
void x9015_Step(uint8 UpDown, uint8 level)
{
uint8 i;
IO1CLR = x9015_CS;
if(UpDown == ) IO2SET = x9015_UpDown; //内部挡数增加
else IO2CLR = x9015_UpDown; //内部挡数减少
for(i=;i<;i++) ; //小段延时
for(;level>;level--)
{ IO2SET = x9015_INC;
for(i=;i<;i++) ;
IO2CLR = x9015_INC;
for(i=;i<;i++) ;
}
IO1SET = x9015_CS;
}
 /*************************************/
/* X9313W驱动程序 */
/* 版本号:V1.0 */
/*************************************/ /*************************************/
/* 文件包含 */
/*************************************/
#include <REG51.h>
#include <INTRINS.h> /*************************************/
/* IO口地址定义 */
/*************************************/
sbit X9313W_INC = P3^; //计数脉冲输入端,下降沿触发
sbit X9313W_UPDN = P3^; //方向,高电平加、低电平减
sbit X9313W_CS = P3^; //片选,低电平有效 /*************************************/
/* 调整电阻到第RNumber阶阻值 */
/*入口:RNumber:阶阻值0~31 */
/*出口:无 */
/*************************************/
void X9313W_SetVol(unsigned char RNumber)
{
unsigned char i; X9313W_INC = ;
_nop_();
_nop_();
X9313W_CS = ;
_nop_();
_nop_();
X9313W_UPDN = ; //先调到0
for(i=;i<;i++){
X9313W_INC = ;
_nop_();
_nop_();
X9313W_INC = ;
_nop_();
_nop_();
} X9313W_UPDN = ; //调到指定值
for(i=;i<RNumber;i++){
X9313W_INC=;
_nop_();
_nop_();
X9313W_INC=;
_nop_();
_nop_();
} X9313W_INC = ; //电阻值保存
_nop_();
_nop_();
X9313W_CS = ;
_nop_();
_nop_();
X9313W_UPDN = ;
_nop_();
_nop_();
X9313W_INC = ;
} /*************************************/
/* 调整电阻增加RNumber阶阻值 */
/*入口:RNumber:阶阻值0~31 */
/*出口:无 */
/*************************************/
/*
void X9313W_IncVol(unsigned char RNumber)
{
unsigned char i; X9313W_INC = 1;
_nop_();
_nop_();
X9313W_CS = 0;
_nop_();
_nop_();
X9313W_UPDN = 1; //加RNumber个指定值
for(i=0;i<RNumber;i++){
X9313W_INC=1;
_nop_();
_nop_();
X9313W_INC=0;
_nop_();
_nop_();
} X9313W_INC = 1; //电阻值保存
_nop_();
_nop_();
X9313W_CS = 1;
_nop_();
_nop_();
X9313W_UPDN = 1;
_nop_();
_nop_();
X9313W_INC = 1;
}
/*************************************/
/* 调整电阻减少RNumber阶阻值 */
/*入口:RNumber:阶阻值0~31 */
/*出口:无 */
/*************************************/
/*
void X9313W_DecVol(unsigned char RNumber)
{
unsigned char i; X9313W_INC = 1;
_nop_();
_nop_();
X9313W_CS = 0;
_nop_();
_nop_();
X9313W_UPDN = 0; //减RNumber个指定值
for(i=0;i<RNumber;i++){
X9313W_INC=1;
_nop_();
_nop_();
X9313W_INC=0;
_nop_();
_nop_();
} X9313W_INC = 1; //电阻值保存
_nop_();
_nop_();
X9313W_CS = 1;
_nop_();
_nop_();
X9313W_UPDN = 1;
_nop_();
_nop_();
X9313W_INC = 1;
}

x9015数字电位器应用的更多相关文章

  1. SPI应用 用SPI控制一个数字电位器

    Controlling a Digital Potentiometer Using SPI In this tutorial you will learn how to control the AD5 ...

  2. 「雕爷学编程」Arduino动手做(9)——火焰传感器模块

    37款传感器和模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的.鉴于本人手头积累了一些传感器与模块,依照实践出真知(动手试试)的理念,以学习和交流为目的,这里准备 ...

  3. 自制导纳信号发生器 [原创cnblogs.com/helesheng]

    最近正在研制一种通过测量人体导纳,估算体内血液变化率,进而评估心血管系统泵血功能的医疗仪器.为测量人体导纳,我们设计了一套巧妙的激励信号幅度反馈电路,该电路由于涉及商业机密就不在这里讨论了.这里主要分 ...

  4. 【雕爷学编程】Arduino动手做(53)---土壤湿度传感器

    37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的.鉴于本人手头积累了一些传感器和模块,依照实践(动手试试)出真知的理念,以学习和交流为目的,这里准备 ...

  5. 「雕爷学编程」Arduino动手做(30)——光敏二极管模块

    37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的.鉴于本人手头积累了一些传感器和模块,依照实践出真知(动手做)的理念,以学习和交流为目的,这里准备逐 ...

  6. 「雕爷学编程」Arduino动手做(11)——金属触摸模块

    37款传感器和模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的.鉴于本人手头积累了一些传感器与模块,依照实践出真知(动手试试)的理念,以学习和交流为目的,这里准备 ...

  7. 【雕爷学编程】Arduino动手做(6)---声音传感器模块

    37款传感器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的.鉴于本人手头积累了一些传感器,依照实践(动手试试)出真知的理念,以学习和交流为目的,这里准备逐一做做实验 ...

  8. [TPYBoard-Micropython之会python就能做硬件 4] 学习使用电位器和1602显示屏

    一.实验器材 1.TPYboard V102板  一块 2.电位器   一个 3.1602 屏 一块 4.杜邦线:若干 二.电位器的使用 电位器 (英文:Potentiometer)是可变电阻器的一种 ...

  9. 利用XPT2046制作一个电位器AD转换装置

    XPT2046是一款四线制电阻触摸屏控制芯片,内含12位分辨率125KHz转换速率逐步逼近型A/D转换器,支持从1.5V到5.25V的低电压I/O接口. 所谓逐步逼近型,就是输入一个模拟量,其与100 ...

随机推荐

  1. Protocol and Delegate

    为什么使用委托? 答:比如,我上班的工作主要内容包括 (1)写代码(2)写文档(3)测试程序(4)接电话(5)会见客户 (1)(2)我自己全权负责,但是后面(3)(4)(5)我不想或者不方便自己做,所 ...

  2. [转]AppCompat 22.1,Goole暴走,MD全面兼容低版本

    AppCompat 22.1,Goole暴走,MD全面兼容低版本 分类: Android2015-04-24 09:48 1354人阅读 评论(0) 收藏 举报 android   目录(?)[+] ...

  3. http请求和http响应详细解析

    HTTP请求格式 当浏览器向Web服务器发出请求时,它向服务器传递了一个数据块,也就是请求信息,HTTP请求信息由3部分组成: l   请求方法URI协议/版本 l   请求头(Request Hea ...

  4. html5向左滑动删除特效

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  5. Android仿QQ窗口的抖动的动画效果

    就是仿照QQ窗口的抖动效果,在项目的res下创建anim文件夹,再创建两个xml文件:cycle.xml  . myanim.xml   cycle.xml  :   <?xml version ...

  6. MongoDB时间类型

    mongdb时间类型 Date() 显示当前的时间 new Date 构建一个格林尼治时间   可以看到正好和Date()相差8小时,我们是+8时区,也就是时差相差8,所以+8小时就是系统当前时间 I ...

  7. asp.net treeview 异步加载

    在使用TreeView控件的时候,如果数据量太大,这个TreeView控件加载会很慢,有时甚至加载失败, 为了更好的使用TreeView控件加载大量的数据,采用异步延迟加载TreeView. 在Tre ...

  8. eclipse JAVA实现AES的加密和解密算法

    import javax.crypto.Cipher; import javax.crypto.spec.IvParameterSpec; import javax.crypto.spec.Secre ...

  9. 数据库调优过程(二):找到IO不存在问题,而是sqlserver单表写入IO瓶颈

    物理机上测试IO是否为瓶颈: 使用一个死循环insert into测试数据库最大写入速度: use [iTest]; declare @index int; ; begin ; INSERT into ...

  10. 免费VPN 实测可用

    vpngate.net 的镜像站点列表 (更新于 2014-05-18 03:06:00 UTC): http://121.135.220.121:26633/cn/ (Mirror location ...