单片机片内AD应用
单片机片内AD应用,单片机片内AD应用,使用STC15F手册,AD控制寄存器,AD转换后数据存放高8位,模拟信号采用实验板电位器VR1(接P1.1)产生一个0-5V电压,然后通过AD转换芯片转换为数字信号,单片机接收到。
应用介绍
单片机片内AD应用,使用STC15F手册,AD控制寄存器,AD转换后数据存放高8位,模拟信号采用实验板电位器VR1(接P1.1)产生一个0-5V电压,然后通过AD转换芯片转换为数字信号,单片机接收到。
//AD驱动,有关寄存器说明请参与STC15F手册
#include<intrins.h>
#define nop _nop_()
sfr ADC_CONTR = 0xbc; //AD控制寄存器
sfr ADC_RES = 0xbd; //AD转换后数据存放高8位
sfr ADC_RESL = 0xbe; //AD转换后数据存放低8位
sfr P1ASF = 0x9D; //用于选择P1的8个端口为模拟口
sfr PCON2 = 0x97; //时钟分频寄存器,这里只用的到PCON2中的ADRJ(转换换结果分配)
unsigned int get_ad(void)
{
unsigned int i,j;
P1ASF = 0x02; //设置P1.1为模拟输入端口,见手册P1ASF寄存器说明
PCON2 = PCON2 | 0x20; //ADRJ = 1;
ADC_CONTR = 0x00;
ADC_CONTR = ADC_CONTR | 0x80 | 0x40 | 0x01; //设置A/D电源开启|转换速度设置|输入端口P1.0;
//见手册ADC_CONTR寄存器说明
nop;nop;nop;//等待电源稳定;
ADC_CONTR = ADC_CONTR | 0x08; //开始转换
while((ADC_CONTR & 0x10) !=0x10); //等待转换标志置位
i = ADC_RES;
j = ADC_RESL;
i = i << 8;
i = i | j;
ADC_CONTR = ADC_CONTR & ~0x10; //清零转换标志位
ADC_RES = 0x00;
ADC_RESL = 0x00;
return(i);
}
©版权声明:本文内容由互联网用户自发贡献,版权归原创作者所有,本站不拥有所有权,也不承担相关法律责任。如果您发现本站中有涉嫌抄袭的内容,欢迎发送邮件至: www_apollocode_net@163.com 进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。
转载请注明出处: apollocode » 单片机片内AD应用
文件列表(部分)
名称 | 大小 | 修改日期 |
---|---|---|
15fad.c | 0.58 KB | 2019-09-03 |
15F单片机片内AD应用 | 2.23 KB | 2019-09-03 |
15F单片机片内AD应用.hex | 0.81 KB | 2019-09-03 |
15F单片机片内AD应用.lnp | 0.04 KB | 2019-09-03 |
15F单片机片内AD应用.M51 | 1.33 KB | 2019-09-03 |
15F单片机片内AD应用.Opt | 0.56 KB | 2019-09-03 |
15F单片机片内AD应用.plg | 0.31 KB | 2019-09-03 |
15F单片机片内AD应用.Uv2 | 0.89 KB | 2019-09-03 |
15F单片机片内AD应用_Opt.Bak | 0.56 KB | 2019-09-03 |
15F单片机片内AD应用_Uv2.Bak | 0.00 KB | 2019-09-03 |
display.c | 0.49 KB | 2019-09-03 |
main.c | 0.47 KB | 2019-09-03 |
main.LST | 0.88 KB | 2019-09-03 |
main.OBJ | 2.16 KB | 2019-09-03 |
程序 | 0.00 KB | 2019-09-03 |
发表评论 取消回复