‘壹’ 51单片机如何控制x9c104p数字电位器
#include"reg52.h"
#include"intrins.h"
#define uchar unsigned char
sbit inc=P0^0; //脉冲输出端
sbit ud=P0^1; //方向端
sbit cs=P0^2; //片选端
sbit led=P2^0; //指示灯
/*以下是函数声明*/
void x9c104s_inc(uchar number);
void x9c104s_dec(uchar number);
void x9c104s_set(uchar number);
/*设定初始值*/
void x9c104s_set(uchar number)
{
uchar i;
inc=1;
_nop_();
_nop_();
cs=0;
_nop_();
_nop_();
ud=0; //方向为减
_nop_();
_nop_();
for(i=0;i<100;i++) /*因为该芯片为100抽头 所以先清零*/
{
inc=1;
_nop_();
_nop_();
inc=0;
_nop_();
_nop_();
}
ud=1; //方向朝上
_nop_();
_nop_();
for(i=0;i<number;i++) //设定初始值
{
inc=1;
_nop_(); //下降沿有效
_nop_();
inc=0;
_nop_();
_nop_();
}
inc=1; //以下为保存设定值
_nop_();
_nop_();
cs=1;
_nop_();
_nop_();
ud=1;
_nop_();
_nop_();
inc=1;
}
/*函数为重新增加阻值*/
void x9c104s_inc(uchar number)
{
uchar i;
inc=1;
_nop_();
_nop_();
cs=0;
_nop_();
_nop_();
ud=1;
_nop_();
_nop_();
for(i=0;i<number;i++) //设定阻值
{
inc=1;
_nop_();
_nop_();
inc=0;
_nop_();
_nop_();
}
inc=1; //以下为保存设定值
_nop_();
_nop_();
cs=1;
_nop_();
_nop_();
ud=1;
_nop_();
_nop_();
inc=1;
}
/*函数为阻值减小*/
void x9c104s_dec(uchar number)
{
uchar i;
inc=1; //选中该芯片
_nop_();
_nop_();
cs=1;
_nop_();
_nop_();
ud=0; //方向为减小
_nop_();
_nop_();
for(i=0;i<number;i++)
{
inc=1;
_nop_();
_nop_();
inc=0;
_nop_();
_nop_();
}
inc=1; //保存设定值
_nop_();
_nop_();
cs=1;
_nop_();
_nop_();
ud=1;
_nop_();
_nop_();
inc=1;
}
void main()
{
led=0;
x9c104s_set(10);
x9c104s_inc(60); //三个函数都使用一下 防止警告
x9c104s_dec(10);
}
‘贰’ 数字电位器的内部电路原理:
数字电位器一般由角度传感器电路、数据处理电路、信号转换电路组成。角度传感器电路是数字电位器的重要组成部分,它将角度变化量采集转换成随角度变化的模拟信号。数据处理电路是一种特殊的模/数转换电路,转换后的数字量代表0~360°的角度值。信号转换电路根据需要将角度值转换成模拟量(电压/电流)信号或串行数字信号输出。
数字电位器一般带有总线接口,可通过单片机或逻辑电路进行编程。它适合构成各种可编程模拟器件,如可编程增益放大器、可编程滤波器、可编程线性稳压电源及音调/音量控制电路,真正实现了“把模拟器件放到总线上”(即单片机通过总线控制系统的模拟功能块)这一全新设计理念。
由于数字电位器可代替机械式电位器,所以二者在原理上有相似之处。数字电位器属于集成化的三端可变电阻器件其等效电路。当数字电位器用作分压器时,其高端、低端、滑动端分别用VH、VL、VW表示;而用作可调电阻器时,分别用RH、RL和RW表示。
数字电位器的数字控制部分包括加减计数器、译码电路、保存与恢复控制电路和不挥发存储器等4个数字电路模块。利用串入、并出的加/减计数器在输入脉冲和控制信号的控制下可实现加/减计数,计数器把累计的数据直接提供给译码电路控制开关阵列,同时也将数据传送给内部存储器保存。当外部计数脉冲信号停止或片选信号无效后,译码电路的输出端只有一个有效,于是只选择一个MOS管导通。
数字控制部分的存储器是一种掉电不挥发存储器,当电路掉电后再次上电时,数字电位器中仍保存着原有的控制数据,其中间抽头到两端点之间的电阻值仍是上一次的调整结果。因此,数字电位器与机械式电位器的使用效果基本相同。但是由于开关的工作采用“先连接后断开”的方式,所以在输入计数有效期间,数字电位器的电阻值与期望值可能会有一定的差别,只有在调整结束后才能达到期望值。 ◆采用传感器原理生产,具有良好的线性、精度和温度稳定性。
◆采用软件实现功能,可以根据使用要求变化进行定制。
◆工作方式为非接触,避免传统电位器的磨损,寿命长,可靠性高。
◆由于取消了传统电位器中的电刷基片,有效行程达到360°,实现无盲区测量。
◆输出信号类型多(0-5V/0-10V/4-20mA/串行数字信号输出),方便信号采集处理。
◆可以通过软件实现有效行程和输出信号的变化,满足各种特殊要求。
◆应用范围广,使用灵活。
‘叁’ 制作功放用的数字电位器用那种单片机最理想
数字电位器的控制IO一般可以连接大多单片机,控制方式及时序比较简单,没有什么特殊要求,所以建议你从整个BOM成本考虑,可用STM8S系列单片机,批量采购成本1元人民币左右,如果需要更严格的控制成本,可以采用台湾鸿晶的STC系列8位单片机,批量采购成本0.3-0.4元。
‘肆’ 如何用51单片机控制电路中电阻的大小 我想用51单片机实现数字电位器
用“数→模”转换芯片(例如DAC0832),将单片机输出的数值转换为电位。
具体电路及程序请参阅教科书或有关资料。
‘伍’ 数字电位器X9110的单片机控制程序
美国Bourns电位器一级代理稳得实业戴先生
‘陆’ 单片机控制数字电位器的c语言程序
数字电位器用的是X9C103
#include<reg51.h>
#include<stdio.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
//设定四个按键
sbit X9C102=P2^0;
sbit X9C202=P2^1;
sbit X9C302=P2^2;
sbit X9C402=P2^3;
sbit X9C103_CS=P1^0;
sbit X9C103_INC=P1^1;
sbit X9C103_UD=P1^2;
void delay_nus(uint i)
{
while(i--);
}
void delay_nms(uchar i)
{
for(i;i>0;i++)
{
delay_nus(1000);
}
}
void set_x9c103(uchar num,uchar ud,uchar save)
{
X9C103_CS=0;
delay_nus(1);
if(ud==1)
{
X9C103_UD=1;
}
else
{
X9C103_UD=0;
}
delay_nus(4);
for(num;num>0;num--)
{
X9C103_INC=1;
delay_nus(2);
X9C103_INC=0;
delay_nus(2);
}
delay_nus(2);
if(save==1)
{
X9C103_INC=1;
delay_nus(2);
X9C103_CS=1;
delay_nms(22);
}
X9C103_CS=1;
delay_nus(10);
}
void clear_down()
{
set_x9c103(100,0,1);
}
void main_init()
{
X9C103_CS=0;
clear_down();
}
void main()
{
main_init();
set_x9c103(70,1,1);
while(1)//扫描按键,对应不同倍数的输出
{
if (X9C102==0){
clear_down();
set_x9c103(10,1,1);}
if (X9C202==0){
clear_down();
set_x9c103(30,1,1);}
if (X9C302==0){
clear_down();
set_x9c103(60,1,1);}
if (X9C402==0){
clear_down();
set_x9c103(90,1,1);}
}
}
‘柒’ 用单片机控制数字电位器那么知道电位器的阻值具体被控制到了多少
单片机控制数字电位器是通过模拟量信号,根据单片机的取样位数不同,将电阻分为2的N次方,电阻的精度就是2的N次方分之一。例如:单片机取样位数是4位,电阻就可以分成2的4次方,就是16分,精度就是1/16,如果是8位,就是2的8次方,精度就是1/256。单片机位数越高,控制电位器电阻的精度就越高。
‘捌’ 单片机如何控制数字电位器
数字电位器一般都是串行或并行通信方式,在完成简单的外围电路搭建后,你还需要根据器件本身的器件手册,编写访问电位器的程序,才能控制电位器阻值的大小。
‘玖’ 哪个型号的数字电位器能和单片机相连,怎么连
现在,单片机技术这么发达,好像很少使用数字电位器了。
数字电位器完全可以由单片机来实现,何必画蛇添足呢?
数字电位器一般是接 加、减的按键,里面是简易的D/A回路(一般是2^4 或2^5,个别的能达到2^6)。如果实在要用,把数字电位器的输出接单片机的ADC端口,让单片机AD采集即可。
难道你再用单片机的ADC采集D/A的输出?
为什么不直接把加、减的按键直接接在单片机上,软件实现高精度D/A,或者根本不用D/A,直接是内部数据的运算。相对更简单、实用、精度高(轻松达到2^8,稍加处理,完全可以实现2^16)。
‘拾’ 怎么用51单片机控制数字电位器x9241
找到数字电位器x9241器件资料,根据器件定义、编程要求和波形参数等来进行51单片机程序设计。硬件可以选择I/O口,也可以选择串口或者其它,取决于你对单片机应用的实际能力。具体说就是按照器件指令要求编程,通过读写操作控制滑动端的位置。