x9015数字电位器应用
/***********************************************************************
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数字电位器应用的更多相关文章
- SPI应用 用SPI控制一个数字电位器
Controlling a Digital Potentiometer Using SPI In this tutorial you will learn how to control the AD5 ...
- 「雕爷学编程」Arduino动手做(9)——火焰传感器模块
37款传感器和模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的.鉴于本人手头积累了一些传感器与模块,依照实践出真知(动手试试)的理念,以学习和交流为目的,这里准备 ...
- 自制导纳信号发生器 [原创cnblogs.com/helesheng]
最近正在研制一种通过测量人体导纳,估算体内血液变化率,进而评估心血管系统泵血功能的医疗仪器.为测量人体导纳,我们设计了一套巧妙的激励信号幅度反馈电路,该电路由于涉及商业机密就不在这里讨论了.这里主要分 ...
- 【雕爷学编程】Arduino动手做(53)---土壤湿度传感器
37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的.鉴于本人手头积累了一些传感器和模块,依照实践(动手试试)出真知的理念,以学习和交流为目的,这里准备 ...
- 「雕爷学编程」Arduino动手做(30)——光敏二极管模块
37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的.鉴于本人手头积累了一些传感器和模块,依照实践出真知(动手做)的理念,以学习和交流为目的,这里准备逐 ...
- 「雕爷学编程」Arduino动手做(11)——金属触摸模块
37款传感器和模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的.鉴于本人手头积累了一些传感器与模块,依照实践出真知(动手试试)的理念,以学习和交流为目的,这里准备 ...
- 【雕爷学编程】Arduino动手做(6)---声音传感器模块
37款传感器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的.鉴于本人手头积累了一些传感器,依照实践(动手试试)出真知的理念,以学习和交流为目的,这里准备逐一做做实验 ...
- [TPYBoard-Micropython之会python就能做硬件 4] 学习使用电位器和1602显示屏
一.实验器材 1.TPYboard V102板 一块 2.电位器 一个 3.1602 屏 一块 4.杜邦线:若干 二.电位器的使用 电位器 (英文:Potentiometer)是可变电阻器的一种 ...
- 利用XPT2046制作一个电位器AD转换装置
XPT2046是一款四线制电阻触摸屏控制芯片,内含12位分辨率125KHz转换速率逐步逼近型A/D转换器,支持从1.5V到5.25V的低电压I/O接口. 所谓逐步逼近型,就是输入一个模拟量,其与100 ...
随机推荐
- Windows-009-Win7 操作系统安装图文详解
此文主要讲述 Win7 操作系统的安装,配以详细的图文介绍,希望能对亲有所帮助,若有不足之处,敬请大神指正,不胜感激! 若是亲在虚拟机(VirtualBox)中安装 Win7,其前期虚拟硬件系统的操作 ...
- robot framework数据库操作
1.连接数据库 2.数据库查询操作 3.断开数据库连接 4.对数据库进行读取,实现登录功能实例
- thinkphp文章列表及删除文章
出师不利,数据一次删完了... 教程:http://www.thinkphp.cn/topic/9757.html 首先要构造mysql数据库 模板代码 </head> <body& ...
- MySQL之数据类型与操作数据表
上节回顾 一.数据类型 什么是数据类型? 数据类型是指列.存储过程参数.表达式和局部变量的数据特征,它决定了数据的存储格式,代表了不同的信息类型. 所谓数据类型,最直接的理解就是我们有些是存储数字的, ...
- Java遇见HTML——JSP篇之JavaWeb简介
一.什么是WEB应用程序 Web应用程序是一种可以通过Web(互联网)访问的应用程序.Web应用程序的一个最大好处是用户很容易访问应用程序.用户只需要有浏览器即可,不需要再安装其他软件. 为什么要学习 ...
- [QT]抄—影像显示实验
QtCreator新建一个Qt Application,命名为ImageView 在项目文件夹下添加gdal库,统一放在ImageView\gdal目录下. 右键单击项目,选择添加库命令,添加gdal ...
- ios-NSStringFromCGRect直接输出控件的frame
- CentOS安装Git
准备安装Gityum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-devel #下载git-1 ...
- openssl HeartBlood
受影响[编辑] OpenSSL 1.0.2-beta OpenSSL 1.0.1 - OpenSSL 1.0.1f 除非针对CVE-2014-0160的操作系统补丁已经安装,而没有更改库版本,如Deb ...
- MVVM框架思想
1.MVVM是什么? M:模型 V:视图 VM:视图模型 简单理解:mvc是一个cell面向一个model开发 mvvm是一个cell面向一个viewModel开发, viewModel里面又包含mo ...