#include
__CONFIG(0X1F71);
#define uchar unsigned char
#define uint unsigned int
const uchar Tab[]=
{0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
const uchar Tab1[]=
{0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef};//带小数点的代码
void DisPlay(uchar date1,uchar date2,uchar date3,uchar date4);
void DelayMS(uint z)
{
uint a,b;
for(a=26;a》0;a--)
for(b=z;b》0;b--);
}
/****************************************************
端口初始化函数
*****************************************************/
void PORT_Init(void)
{
TRISB=0X00;
TRISC=0XC0;
}
/****************************************************
ADC模块初始化函数
*****************************************************/
void ADC_Init(void)
{
ADCON1=0X8E;
ADCON0=0X41;
DelayMS(1);
}
/****************************************************
ADC模块开始转换函数
*****************************************************/
uint ADC_Start(void)
{
uint uiADCTemp;
ADGO=1;
while(ADGO);//等待转换完成
uiADCTemp=ADRESH;
uiADCTemp=uiADCTemp《《8|ADRESL;
uiADCTemp=uiADCTemp/1023.0*5000.0;
returnuiADCTemp;
}
void main(void)
{
uint VolTageNum;
uchar num1,num2,num3,num4;
PORT_Init();
ADC_Init();
while(1)
{
VolTageNum=ADC_Start();
num1=VolTageNum/1000;
num2=VolTageNum%1000/100;
num3=VolTageNum%100/10;
num4=VolTageNum%10;
DisPlay(num1,num2,num3,num4);
}
}
/****************************************************
显示函数
*****************************************************/
void DisPlay(uchar date1,uchar date2,uchar date3,uchar date4)
{
PORTB=Tab1[date1];
PORTC=0XFE;
DelayMS(1);
PORTB=0X00;
PORTB=Tab[date2];
PORTC=0XFD;
DelayMS(1);
PORTB=0X00;
PORTB=Tab[date3];
PORTC=0XFB;
DelayMS(1);
PORTB=0X00;
PORTB=Tab[date4];
PORTC=0XF7;
DelayMS(1);
PORTB=0X00;
}
关键字:PIC单片机 ADC 编程设计
引用地址:
PIC单片机ADC的编程设计
推荐阅读最新更新时间:2024-11-05 10:00
一种基于FPGA的信道化接收机的研究与设计
现代电子战场的电磁环境复杂多变,信号环境朝着密集化、复杂化、占用电磁频谱宽带化的方向发展。另一方面,采用阵列天线对接收信号进行信号参数估计,是电子侦察系统中常规的技术手段之一。因此,宽带阵列接收系统有着广泛的应用前景。传统的宽带阵列接收机用多台单通道接收机并行工作,并行的同时接收不同频点上的信号来达到全频域覆盖的目的,也可以用多通道接收机多个通道并行同步的工作来实现,前者增加了系统成本和让整个并行系统同步工作的复杂度,后者当信道数比较大和指标要求比较高时,信号处理的复杂度和器件实现的可行性要求很高。基于多相滤波的数字信道化阵列接收机在通信类电子战中对跳频信号的快速搜索以及雷达对抗中对捷变频雷达信号的全概率截获等表现出很高的潜在
[嵌入式]
理解集成的ADC-Understanding Integra
Abstract: Integrating analog-to-digital converters (ADCs) provide high resolution analog-to-digital conversions, with good noise rejection. These ADCs are ideal for digitizing low bandwidth signals, and are used in applications such as digital multi-meters and panel meters. They often include LCD or LED drivers and can
[电源管理]
基于PIC单片机的可编程电源的设计与应用
随着各种电器和仪表设备的日渐丰富,对电源应用的灵活性提出了更高的要求。设计一款使用灵活、方便且价格相对便宜的通用电源,正越来越成为市场所需。现代单片机正朝着处理速度越来越快,外设资源越来越丰富,价格越来越便宜的方向发展,将单片机融入电源的设计中可以极大地提升电源的性能和灵活性。本文介绍了一种单片机加PWM芯片的开关电源设计方法,既可以保留PWM芯片带来的稳定工作性能,又可以利用单片机的控制能力提供各种人机交互和通信接口。笔者设计的电源作为通用电源使用,可以提供灵活可编程的电压电流输出,另外还可以设置成铅酸电池充电器的模式,具有广阔的应用前景。 1 系统功能 通过对电源的编程,可以方便地实现图1所示的电压输出波形。其中,V
[单片机]
可满足高性能数字接收机动态性能要求的ADC和射频器件
摘要:针对数字式接收机对其所采用器件的动态性能要求,给出了一个欠采样接收机的结构图。同时给出了满足该高性能数字接收机动态性能要求的新型器件及主要性能参数。
关键词:数字接收机;动态性能;射频器件;ADC;MAXIM
许多数字接收机都对其选用的高性能ADC及模拟器件的动态性能具有较高要求。如蜂窝基站数字接收机就要求有足够的动态范围,以便处理较大的干扰信号,从而把电平较低的有用信号解调出来。通过Maxim公司的15位65Msps模数转换器MAX1418或12位65Msps模数转换器 MAX1211配以2GHz 的MAX9993或900MHz的MAX9982集成混频器,即可为接收机的两级关键电路提供出色的动态特性,此外,Maxim公
[模拟电子]
详解STM32中的ADC
ADC简介 STM32F103系列有3个ADC,精度为12位,每个ADC最多有16个外部通道。其中ADC1和ADC2都有16个外部通道,ADC3一般有8个外部通道,各通道的A/D转换可以单次、连续、扫描或间断执行,ADC转换的结果可以左对齐或右对齐储存在16位数据寄存器中。ADC的输入时钟不得超过14MHz,其时钟频率由PCLK2分频产生。 ADC功能框图讲解 学习STM32开发板上的外设时首先要了解其外设的功能框图,如下: 功能框图可以大体分为7部分,下面一一讲解: 电压输入范围 ADC所能测量的电压范围就是VREF- ≤ VIN ≤ VREF+,把 VSSA 和 VREF-接地,把 VREF+和 VDDA 接 3V3,得
[单片机]
ADIADP185125ADC-DC降压电源解决方案
ADI 公司的ADP1851是宽输入电压同步降压控制器,输入电压从2.75V到20V,输出电压从0.6 V 到90% VIN,输出电流大于25A,输出电压可跟踪,在整个温度范围内精度为±1%,可编程频率200 kHz 到1.5 MHz,可编软起动,主要用在通信基站和网络,工业和仪表,医疗和保健.本文介绍了ADP1851主要特性,方框图,典型应用电路,电压和电流模式输出25A应用电路图,以及评估板ADP1851-EVALZ主要特性,电路图,材料清单和PCB元件布局图. The ADP1851 is a wide range input, dc-to-dc, synchronous buck controller capable of
[电源管理]
PIC单片机开发板之独立键盘扫描C语言代码
/* 为自已写的独立键盘扫描 犯的错:unsigned密写成了unsigner一直提示找不到a,b PORTD0=1;不行,要写成PORTD=0x01;才可以,如果一定要写,应写为RD0=1; PORTD=0x03;不是第三个灯亮,而是0000 0011是两个灯亮 PORTD=0x8则是0000 1000是第4个灯亮。。。。。出错因原进制转化,刚开始写程序进制转化混掉了。 */ #include pic.h #define uchar unsigned char #define uint unsigned int __CONFIG(0x3B31); const unsigned char table = {0x3f,0
[单片机]
模拟对数字:架起ADC到处理器的桥梁
作为一个模拟世界的后裔,我经常可以在走廊上听到些评论,关于数字设计师多么不理解模拟问题。数字设计师们也毫不留情地批评模拟集成电路设计师。这两个阵营泾渭分明,除非参与者们打破界限,一起进入混合信号领域的研究。 对典型的模拟精神,不是所有转换器都用相同的数据格式。一些转换器用无符号二进制数类型,其他转换器使用有符号二进制补码数据。甚至更复杂的问题,转换器输出12位或是14位数据,还有16位输出。还有另一种24位Δ-Σ转换器技术。 先不管这些模拟设计结果的目的。对于这些转换器而言,ADC最低有效位的位置是这些8位、16位或是32位字处理器的第0位。对模拟电路设计者来说,这具有重要意义。然而,12位转换器的符号位是处理器的位置
[模拟电子]