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

   名称: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;
}

最新文章

  1. OC初步 (一)
  2. [转]PHP如何关闭notice级别的错误提示
  3. C#将科大讯飞语音合成文件转换为MULAW音频格式
  4. [ActionScript 3.0] AS3 实现XML转换成JSON
  5. 每天一道LeetCode--344. Reverse String
  6. Unicode 编码解码
  7. NOPI读取EXCEL
  8. VS2010与VAssistX
  9. Android退出程序
  10. 【Leetcode】Same Tree
  11. 3p
  12. linux shell中间$0,$?,$!和&amp;lt;&amp;lt;&amp;#39;END&amp;#39;
  13. WisKey的眼神
  14. Java基础——多线程(持续更新中)
  15. MySql主键不区分大小写问题、查询不区分大小写问题
  16. kettle在本地执行向远程hdfs执行转换错误&quot;Couldn&#39;t open file hdfs&quot;
  17. Bandicam录制视频
  18. 31:字符串p型编码
  19. Ubuntu 16.04 安装搜狗输入法
  20. ROS知识(6)----卸载ROS系统

热门文章

  1. 文件操作_菜单&lt;代码&gt;
  2. 创建podSpec,使用pod管理第三方库
  3. Asset Store
  4. 【转】Android M新控件之AppBarLayout,NavigationView,CoordinatorLayout,CollapsingToolbarLayout的使用
  5. cannot open /proc/bus/usb/devices, No such file or directory
  6. Ioc-Autofac实现自动的注入
  7. OPENCV3.1+VS 坑我笔记!
  8. FTP文件夹打开错误,Windows无法访问此文件夹
  9. extjs form.load()加载服务端数据
  10. cat 命令(转)