可以定义一个数组用来存放采集数据
先使能AD采样,进中断清标志位,配置通道(如AN0),把采样结果存入数组
轮流进行
采集时间一结束,即可启动 A/D 转
换。 可将采集时间编程设定在 GO/DONE位置1和实际
转换启动之间。
可参考pic的PDF资料看了一下,大概没问题,因为你的是12位的AD,所以是4096分度的,所以输入25V应该是2048,但是要必须保证PIC输入的是5V稳压,
照这样看来,你得到的2200多就是输入的5V并不准确/
程序名称:hc595c
程序功能:595的应用文件,595控制数码管
程序作者:吴鉴鹰
创建时间:2013-12-7
修改时间:2013-12-9
程序版本:V02
/
/
包含头文件
/
#include
"inc/hc595h"
#include
"reg51h"
/
定义引脚
/
/
595控制数码管时钟信号线引脚定义
/
sbit
HC595CLK
=
P1^1;
/
595控制数码管片选信号线引脚定义
/
sbit
HC595RCK
=
P1^0;
/
595控制数码管数据输入引脚定义
/
sbit
HC595DATA
=
P1^4;
/
函数名称:SendData
函数功能:74HC595数据的发送
入口参数:unsigned
int
uiDataOne,
unsigned
int
uiDataTwo
出口参数:void
/
void
SendData(unsigned
int
uiDataOne,
unsigned
int
uiDataTwo)
{
unsigned
int
i
=
0;
/
将片选信号置为低电平
/
HC595RCK
=
0;
/
输入第一个数据:uiDataOne
/
for
(i
=
0;
i
<
8;
i++)
{
/
给出脉冲信号,首先将CLK置为0
/
HC595CLK
=
0;
if
(0
!=
(uiDataOne
&
0x80))
{
HC595DATA
=
1;
}
else
{
HC595DATA
=
0;
}
/
给出脉冲信号,首先将CLK置为1
/
HC595CLK
=
1;
/
准备第二个数据
/
uiDataOne
=
uiDataOne
<<
1;
}
/
输入第二个数据:uiDataTwo
/
for
(i
=
0;
i
<
8;
i++)
{
/
给出脉冲信号,首先将CLK置为0
/
HC595CLK
=
0;
if
(0
!=
(uiDataTwo
&
0x80))
{
HC595DATA
=
1;
}
else
{
HC595DATA
=
0;
}
/
给出脉冲信号,首先将CLK置为1
/
HC595CLK
=
1;
/
准备第二个数据
/
uiDataTwo
=
uiDataTwo
<<
1;
}
/
将片选信号置为高电平
/
HC595RCK
=
1;
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)