社区
下载资源悬赏专区
帖子详情
基于TL431电压基准的STC15W408AS-10位AD转换核心代码下载
AI100_小助手
2018-02-08 09:56:18
基于TL431电压基准的STC15W408AS-10位AD转换核心代码 ,有电压计算方法,没有修正,请参考
相关下载链接:
//download.csdn.net/download/stonekang/10245030?utm_source=bbsseo
...全文
237
回复
打赏
收藏
基于TL431电压基准的STC15W408AS-10位AD转换核心代码下载
基于TL431电压基准的STC15W408AS-10位AD转换核心代码 ,有电压计算方法,没有修正,请参考 相关下载链接://download.csdn.net/download/stonekang/10245030?utm_source=bbsseo
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
基于
TL431
电压
基准
的
STC15W408AS
-
10
位
AD
转换
核心
代码
基于
TL431
电压
基准
的
STC15W408AS
-
10
位
AD
转换
核心
代码
,有
电压
计算方法,没有修正,请参考
4
位
数码管
TL431
电压
模块
4
位
数码管
TL431
电压
模块 ///********************************************************************** //基于STC12C4052
AD
单片机的0-99V数字
电压
表程序 //ID:abenyao数码之家首发。 //ID:wh307 优化显示,哈哈哈~ //P1.6口为0-5V模拟量输入端,P1.5口连接
TL431
l输出的2.5V
基准
电源,4
位
串行LED数码管显示 //**********************************************************************/ //#include
AD.H> //单片机头文件 //#include
//51基本运算(包括_nop_空函数) //#define uchar unsigned char //#define uint unsigned int //#define LEDBus P3 ////a3.0-b3.1-c3.2-d3.3-e3.4-f3.5-g3.7-dp1.0 //sbit ge=P1^4; //个
位
位
选 //sbit shi=P1^3; //十
位
位
选 //sbit bai=P1^2; //百
位
位
选 //sbit qian=P1^1; //千
位
位
选 //sbit db=P1^0; //char d[5]; //uint R,M,N;//若定义成uchar型就只能显示2.5V以下的数值 //uchar code LEDTab[]={0xc0,0xf9,0x64,0x70,0x59,0x52,0x42,0xf8,0x40,0x58};//应为没有P3.6,所以这里管脚定义和普通的有点区别 //unsigned char port[4]={0xfe,0xfd,0xfb,0xf7}; ///***************************************************************** //函数名:毫秒级CPU延时函数 //调 用:delay (?); //参 数:1~65535(参数不可为0) //返回值:无 //结 果:占用CPU方式延时与参数数值相同的毫秒时间 //备 注:应用于1T单片机时i<600,应用于12T单片机时i<125 ///******************************************************************/ //void delay(uint t) //{ //uint i; //定义变量 //for(;t>0;t--) //如果t大于0,t减1(外层循环) // for(i=600;i>0;i--); //i等于124,如果i大于0,i减1 //} ///******************************************************************* //函数名:
AD
C初始化及8
位
A/D
转换
函数 //返回值:8
位
的
AD
C数据 //结 果:读出指定
AD
C接口的A/D
转换
值,并返回数值 //备 注:适用于STC12C2052
AD
系列单片机(必须使用STC12C2052
AD
.h头文件) //*******************************************************************/ //uchar Re
ad
(uchar CHA){ //uchar
AD
_FIN=0; //存储A/D
转换
标志;若在函数外定义此变量则不能得到连续变化的模拟量的显示 ///******以下为
AD
C初始化程序****************************/ // CHA &= 0x07; //选择
AD
C的8个接口中的一个(0000 0111 清0高5
位
) //
AD
C_CONTR = 0x60; //
AD
C
转换
的速度(0XX0 0000 其中XX控制速度,请根据数据手册设置) // _nop_(); //
AD
C_CONTR |= CHA; //选择A/D当前通道 // _nop_(); //
AD
C_CONTR |= 0x80; //启动A/D电源 // delay(1); //使输入
电压
达到稳定(1ms即可? ///******以下为
AD
C执行程序****************************/ //
AD
C_CONTR |= 0x08; //启动A/D
转换
(0000
10
00 令
AD
CS = 1) // _nop_(); // _nop_(); // _nop_(); // _nop_(); // while (
AD
_FIN ==0){ //等待A/D
转换
结束 //
AD
_FIN = (
AD
C_CONTR & 0x
10
); //0001 0000测试A/D
转换
结束否 // } //
AD
C_CONTR &= 0xE7; //1111 0111 清
AD
C_FLAG
位
, 关闭A/D
转换
, //return (
AD
C_DATA); //返回A/D
转换
结果(8
位
) //} ///****************************************************************** //显示函数
转换
函数: //M=模拟量采样值,N=
基准
电压
源采样值(本例为2.5V),R=模拟量输入值(待显示值) //N=256*2.5/Vcc;变形后得Vcc=256*2.5/N; 代入M=256*R/Vcc;得到M=R*N/2.5;变形后得R=M*2.5/N //1为输入端分压比。 //******************************************************************/ //void transfer(void){ //M=Re
ad
(6);//P1.6口模拟量
转换
//N=Re
ad
(5);//P1.5口2.5V
基准
电压
源采样(
转换
) //R=((M*2.5)/N)*1*
10
00;//输入模拟量换算并放大
10
00倍; ///***以下为3
位
显示
转换
***/ //d[3]=R/
10
00; //R=R00; //d[2]=R/
10
0; //R=R0; //d[1]=R/
10
; //d[0]=R; //} // ///****************************************************************** //函数功能:显示子程序 //********************************************************************/ //void xian_shi (void) //{ // P1=0xfe; //P1.3引脚输出低电平 111111
10
// P3=LEDTab[d[0]]; //显示个
位
// delay(1); // // P1=0xfd; //P1.2引脚输出低电平 11111
10
1 // P3=LEDTab[d[1]]; //显示十
位
// delay(1); // // P1=0xfb; //P1.1引脚输出低电平 // P3=LEDTab[d[2]]; //显示百
位
// delay(1); // // P1=0xf7; //P1.0引脚输出低电平 // P3=LEDTab[d[3]]; //显示千
位
// delay(1); // // P1=0xff; //关闭所有数码管 // // } // // // ///****************************************************************** //函数名:主函数 //调 用:无 //参 数:无 //返回值:无 //结 果:程序开始处,无限循环 //备 注: //******************************************************************/ //void main (void) //{ //P1M0 = 0x60; //P1.0/P1.1:0000 0011(高阻)//注意:更改
AD
C通道时须同时将对应的IO接口修改为高阻输入。 //P1M1 = 0x00; //P1.0/P1.1:0000 0000 //while(1){ //uchar i; //delay(1); //i++; //if (i==30) //{ //transfer(); //i=0; //} //xian_shi(); ////delay(
10
); //} //}
【STC15】P1.3做
AD
C-使用外部
TL431
基准
计算外部
电压
【STC15】P1.3做
AD
C-使用外部
TL431
基准
计算外部
电压
【STC15系列】P1.3做
AD
C-使用内部
基准
计算外部
电压
并串口打印
【STC15系列】P1.3做
AD
C-使用内部
基准
计算外部
电压
并串口打印
bandgap的理解(内部带隙
电压
基准
)
转载地址:http://bbs.mydigit.cn/re
ad
.php?tid=1635508 写的非常好,想把每句话都记住。 大家都知道,stc单片机的
ad
c(模数
转换
器)的
基准
是基于基于供电电源
电压
的,这样就造成了一个问题,如果供电
电压
发生变化,
ad
c读得的值也会发生变化,就出现了测不准的现象,所以大家普遍的用法就是在
ad
c的一个通道外接一个
电压
基准
,类似
tl431
,通过读
电压
基准
和测量值,换算出真实测量
电压
,但这样就会带来个问题,要占用一路
ad
c通道,占用一个io,付出
tl431
的成本,外接还要处
下载资源悬赏专区
12,794
社区成员
12,330,539
社区内容
发帖
与我相关
我的任务
下载资源悬赏专区
CSDN 下载资源悬赏专区
复制链接
扫一扫
分享
社区描述
CSDN 下载资源悬赏专区
其他
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章