PIC单片机内部模数转换器AD的使用方法

发布者:温暖心绪最新更新时间:2016-11-03 来源: eefocus关键字:PIC单片机  模数转换器 手机看文章 扫描二维码
随时随地手机看文章
#include
#define uchar unsigned char
#define uint  unsigned int
__CONFIG(0x3B31);
const uchar table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,
                        0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
const uchar table1[]={0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,
                        0x87,0xff,0xef};
void delay(uint x);
void init();
void disp(uchar num1,uchar num2,uchar num3,uchar num4);
uint get_ad();
void main()
{
 uint lednum;
 uchar a1,a2,a3,a4;
 init();
 while(1)
 {
  lednum=get_ad();
  a1=lednum/1000;
  a2=lednum%1000/100;
  a3=lednum%100/10;
  a4=lednum%10;
  disp(a1,a2,a3,a4);
 } 
}
void delay(uint x)
{
 uint a,b;
 for(a=x;a>0;a--)
  for(b=110;b>0;b--);
}
void init()
{
 TRISA=0x01;
 TRISD=0;
 PORTA=0;
 PORTD=0;
 ADCON0=0x41;
 ADCON1=0x8e;
 delay(10);
}
uint get_ad()
{
 uint adval;
 float advalf;
 ADGO=1;
 while(ADGO);
 adval=ADRESH;//00000000 00000011
 adval=adval<<8|ADRESL;//00000011 11111111
 advalf=adval/1023.0*5.0;//==2.3843
 adval=advalf*1000;
 return (adval); 
}
void disp(uchar num1,uchar num2,uchar num3,uchar num4)
{
 PORTD=table1[num1];//显示第一个数码管
 PORTA=0x20;//0010 0000
 delay(2);
 PORTD=table[num2];//显示第二个数码管
 PORTA=0x10;//0001 0000
 delay(2);
 PORTD=table[num3];//显示第三个数码管
 PORTA=0x08;//0000 1000
 delay(2);
 PORTD=table[num4];//显示第四个数码管
 PORTA=0x04;//0000 0100
 delay(2);
}
关键字:PIC单片机  模数转换器 引用地址:PIC单片机内部模数转换器AD的使用方法

上一篇:PIC单片机内部SPI通信接口的使用方法
下一篇:PIC单片机定时器2的使用方法

推荐阅读最新更新时间:2024-03-16 15:19

PIC单片机C语言延时程序和循环子程序
很多朋友说C中不能精确控制延时时间,不能象汇编那样直观。 其实不然,对延时函数深入了解一下就能设计出一个理想的框价出来。 一般的我们都用 for(x=100;--x;){;}此句等同与x=100;while(--x){;}; 或for(x=0;x 100;x++){;} 来写一个延时函数。 在这里要特别注意:X=100,并不表示只运行100个指令时间就跳出循环。 可以看看编译后的汇编: x=100;while(--x){;} 汇编后: movlw 100 bcf 3,5 bcf 3,6 movwf_delay l2 decfsz _delay goto l2 return 从代码可以看出总的
[单片机]
ADC0832实现输出频率为50HZ的正弦波
//----------------------------- 功能: ADC0832实现输出频率为50HZ的正弦波 1、P0口送数据, 2、P2。0口作为片选信号 P21是DAC启动信号; #include reg51.h #define uint unsigned int #define uchar unsigned char uchar code table ={ //正弦波的数据 128,130,132,135,137,139,141,144,146,148,150,152,155,157,159,161 163,165,168,170,172,174,176,178,180,182,184
[单片机]
TI推出采样率200 MSPS 的16 位模数转换器
日前,德州仪器 (TI) 宣布推出采样率 200 MSPS 的业界首款 16 位单通道模数转换器 (ADC) ,从而可实现此前只有低分辨率 ADC 才能实现的超快速度。该款全新数据转换器可为通信、测试与测量以及国防等应用带来更高的性能水平,而评估板 (EVM) 则不仅可显著简化设计流程,还可实现这些复杂系统的快速评估 。 Databeans 公司首席分析师 Susie Inouye 指出: “ 医疗、无线通信以及宽带基础设施都需要更高的速度与分辨率,这推动了高速转换器的发展。事实上,从 2008 年到 2013 年,采样率为 50 MSPS 或更高
[模拟电子]
基于ADC采集和数据处理系统实现二氧化碳检测仪的设计
引言 在石油勘探过程中,二氧化碳检测是一项重要的录井工作,为后续的地质解释评价提供参考依据。从钻井液脱出的气体包括多种烃类气体、氢气、二氧化碳等,在采用红外光谱吸收法之前一般采用热导法检测二氧化碳,这种方法的缺点是易受其他气体的干扰。随着工艺的发展,红外发光源和红外传感器变得更加小巧,红外光谱吸收法逐渐取代了热导法。为了实现准确稳定的检测,除了采用性能优良的红外发光源和红外传感器外,信号采集处理部分也至关重要。其中,稳定可靠的ADC采集和高效的数据处理是二氧化碳检测系统的关键。 1 红外光谱吸收法原理 红外光谱吸收法是利用被测气体对红外光的特征吸收来实现气体成分的浓度分析。当对应某一气体具有特征吸收的光波通过这一被测气体时,其
[测试测量]
基于<font color='red'>ADC</font>采集和数据处理系统实现二氧化碳检测仪的设计
stm32 adc计算
用STM32自带的ADC读取引脚电压值,读回来的数据怎么转换成单位为V的数值??? V(ADC) = Value(ADC) * V(ref)/4096 (stm32的ADC是12位的,所以ad字的最大值是4096) 其中V(ADC)为算出的电压值;Value(ADC)为采集的AD值;V(ref)为参考电压,一般为3.3V。 比如你STM32的参考电压为3.3v,采集的AD值为1024,那么转换为电压V(ADC) = 1024×3.3/4096 = 0.825V
[单片机]
微功耗高速串行数模转换器AD5300及其应用
摘要: AD5300是美国AD公司产生的CMOS单电源串行8位数据转换器,它具有体积小、功耗低、接口简单宽工作电压等优点,特别适用于电池供电的便携式仪器。文中介绍了AD5300的特点、功能和工作时序。同时给出了由AD5300组成的双极性电压输出D/A转换器的应用电路。 1 AD5300的特点及功能 AD5300是美国ANALOG DEVICES公司生产的具有电压缓冲输出的高速串行8位DAC,它与10位数模转换器AD5310和12位数模转换器AD5320在引脚功能上完全兼容。 AD5300具有如下特点: ●采用单电源供电,电压范围为2.7~5.5V; ●微功耗,正常模式下的典型功耗为0.7mW(VDD=5V)或0.3
[模拟电子]
全球首款双通道S波段的宇航应用ADC - EV12AD550A
多年来,Teledyne e2v一直是新型UWB转换器行业的专家和先驱,一直努力突破带宽的限制。Teledyne e2v专注于数据链路的上行侧和下行侧的高速数据转换器的设计。对于上行链路,新的双通道12-bit 1.5Gsps ADC EV12AD550一定会为用户带来惊喜。 这款ADC是单核非交织的设计,有着业内领先的动态性能指标。两个转换核心,与一个灵活的输入信号多路复用器配对,使其可以同相或反相采样。它同时也支持单通道交织,将采样率翻倍(3Gsps)。 EV12AD550A是迄今为止首款双通道S波段宇航级ADC,其针对简化系统而设计,可降低宇航应用的成本。 EV12AD550A支持S波段直接数字化,便于移除宇航系统中的下
[电源管理]
全球首款双通道S波段的宇航应用<font color='red'>ADC</font> - EV12<font color='red'>AD</font>550A
如何实现大信号输出的硅应变计与模数转换器的接口
     电桥是精密测量电阻或其他模拟量的一种有效的方法。本文介绍了如何实现具有较大信号输出的硅应变计与模数转换器(ADC)的接口,特别是Σ-Δ ADC,当使用硅应变计时,它是一种实现压力变送器的低成本方案   硅应变计   硅应变计的优点在于高灵敏度,它通过感应由应力引发的硅材料体电阻变化来检测压力。相比于金属箔或粘贴丝式应变计,其输出通常要大一个数量级。这种 硅应变计的输出信号较大,可以与较廉价的电子器件配套使用。但是,这些小而脆器件的安装和连线非常困难,因而增加了成本,限制了它们在粘贴式应变计应用中 的使用。   不过,用MEMS工艺制作的硅压力传感器却克服了这些弊病。这种MEMS压力传感器采用了标准的半导体工艺
[嵌入式]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
  • 学习ARM开发(17)
    因为嵌入式系统里全部要使用中断的,那么我的S3C44B0怎么样中断流程呢?那我就需要了解整个流程了。要深入了解,最好的方法,就是去写程序 ...
  • 学习ARM开发(18)
    上一次已经了解ARM的中断处理过程,并且可以设置中断函数,那么它这样就可以工作了吗?答案是否定的。因为S3C44B0还有好几个寄存器是控制中 ...
  • 嵌入式系统调试仿真工具
    嵌入式硬件系统设计出来后就要进行调试,不管是硬件调试还是软件调试或者程序固化,都需要用到调试仿真工具。 随着处理器新品种、新 ...
  • 最近困扰在心中的一个小疑问终于解惑了~~
    最近在驱动方面一直在概念上不能很好的理解 有时候结合别人写的一点usb的例子能有点感觉,但是因为arm体系里面没有像单片机那样直接讲解引脚 ...
  • 学习ARM开发(1)
    做任何事情之前,一定要想好目标。没有目标的事情是做不好的,也做不成。我的目标就是学习ARM开发,当然是深入的学习。目标如下 :1、学习A ...
  • 学习ARM开发(2)
  • 学习ARM开发(4)
  • 学习ARM开发(6)
  • 学习ARM开发(7)
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved