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

   名称: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. SQL Server中的Image数据类型的操作

    原文:SQL Server中的Image数据类型的操作 准备工作,在库Im_Test中建立一张表Im_Info,此表中有两个字段,分别为Pr_Id (INT),Pr_Info (IMAGE),用来存储 ...

  2. 用字体在网页中画icon小图标

    HTML结构: <i class="icons icon-ui"> 㐺 <i> <i class="icons icon-ui"& ...

  3. Android笔记:利用InputStream和BufferedReader 进行字节流 字符流处理

    通过socket获取字节流处理时最初使用的是BufferedReader和PrintWriter  这种方式在解析字符串时是比较方便的 但是在处理字节时不够方便最终还是回归到InputStream和O ...

  4. maven3创建多模块web项目

    实现步骤 创建项目目录 进入“工作空间”目录,创建名为treasure的文件夹,切换至控制台,进入该文件夹. 配置模块 生成各个模块  maven-archetype-quickstart 默认的Ar ...

  5. Tomcat 处理请求时的中文乱码问题

    利用Tomcat8作为服务器,采用servlet接收前端请求后进行处理的过程中,前台请求中有中文时,中文信息变成了乱码. 经过调试和查阅,发现Tomcat在处理get请求和post请求是有区别的.参照 ...

  6. iOS开发中 在MRC中让某些类使用ARC编译 或者相反

    如果你的工程是MRC 想让某些类使用ARC进行编译的话 那么需要在Build Phases中Complile Sourse 把该类后面 写上如下命令:-fobjc-arc  反之 写上如下命令:-fn ...

  7. http://www.cnblogs.com/zhaoyang/archive/2012/01/07/2315436.html

    http://www.cnblogs.com/zhaoyang/archive/2012/01/07/2315436.html

  8. 热门WEB前端职业你只需要掌握这些

    在知名的互联网企业里工作是一件很美好的事情,有很多的工作机会,而且企业们通过高薪以及令人羡慕的福利来争夺最优秀的人才.但是如果你花了大量的时间在招聘网站上和公司的帖子上,你可能会注意到在网页设计这个工 ...

  9. onRetainNonConfigurationInstance和getLastNonConfigurationInstance

    很多网友可能知道Android横竖屏切换时会触发onSaveInstanceState,而还原时会产生 onRestoreInstanceState,但是Android的Activity类还有一个方法 ...

  10. Flask 与 Celery 在 windows 下的集成问题

    Flask 与 Celery 在 windows 下的集成问题 所有的 Web 框架内部的视图中不适合执行需要长时间运行的任务,包括 Flask .Django 等.这类型的任务会阻塞 Web 的响应 ...