单片机驱动ADC0832模数转换程序文档格式.docx
- 文档编号:21298575
- 上传时间:2023-01-29
- 格式:DOCX
- 页数:8
- 大小:93.58KB
单片机驱动ADC0832模数转换程序文档格式.docx
《单片机驱动ADC0832模数转换程序文档格式.docx》由会员分享,可在线阅读,更多相关《单片机驱动ADC0832模数转换程序文档格式.docx(8页珍藏版)》请在冰豆网上搜索。
Cto+70&
C?
,工业级芯片温宽为40℃to+85℃
模数转换芯片是用来模拟信号转为数字信号以便电脑处理的,可以用来对传感器的数据进行收集分析。
本来想买ADC0809的,它可以对8个模拟量进行采集,假如是一个脚用三个压力传感器,那就正好够用了。
这个ADC0832是跟单片机开发板一个淘宝店买的,因为那个淘宝店没有ADC0809。
网上搜了个ADC0832的转换函数,拼了个程序在开发板的四位数码管上显示转换过来的数据,要注意的是那个显示函数是调一次只显示四位数码管的一位的,所以不能转换显示转换显示这样,要转换,显示一次二次三次四次,转换,显示一次二次三次四次这样。
ADC0832引脚及代码如下:
(一晚没睡,等下准备回家过清明扫墓去。
归去来兮!
问西楼禁烟何处好?
绿野晴天道。
马穿杨柳嘶,人倚秋千笑,探莺花总教春醉倒。
)
//头文件:
#include;
//变量定义:
unsignedcharly_dis[4];
//定义显示缓冲区
codeunsignedchartable[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
//表:
共阳数码管0-9
unsignedcharl_posit=0;
//显示位置
//引脚定义:
sbitSMG_q=P3^4;
//定义数码管阳级控制脚(千位)
sbitSMG_b=P3^5;
//定义数码管阳级控制脚(百位)
sbitSMG_s=P3^7;
//定义数码管阳级控制脚(十位)
sbitSMG_g=P3^6;
//定义数码管阳级控制脚(个位)
sbitCS
=P0^5;
sbitClk=P0^6;
sbitDATI=P0^4;
sbitDATO=P0^4;
unsignedchardat=0x00;
//AD值
unsignedcharcount=0x00;
//定时器计数
unsignedcharCH;
//通道变量
//函数声明:
voiddisplay(void);
//显示函数,显示缓冲区内容
voiddelay(void);
//unsignedcharGetValue0832(bitChannel);
unsignedcharadc0832(unsignedcharCH);
//主函数,C语言的入口函数:
voidmain()
{
unsignedinti=0;
intltemp;
while
(1)
if(i==100)
{
ltemp=adc0832
(1);
//隔时取模数转换(0~255对应0.00-5.00的电压)
ly_dis[0]=ltemp/100;
//显示百位值
ltemp=ltemp%100;
ly_dis[1]=ltemp/10;
//显示十位值
ltemp=ltemp%10;
ly_dis[2]=ltemp/1;
//显示个位值
ly_dis[3]=0;
//显示小数点后一位0
}
i++;
if(i==3000)
i=0;
display();
//调用显示调一次只显示一位轮流显示四位
delay();
}
//显示函数,参数为显示内容
voiddisplay()
P0=0XFF;
//
switch(l_posit){
case0:
//选择千位数码管,关闭其它位
SMG_q=0;
SMG_b=1;
SMG_s=1;
SMG_g=1;
P0=table[ly_dis[0]];
//输出显示内容
break;
case1:
//选择百位数码管,关闭其它位
SMG_q=1;
SMG_b=0;
P0=table[ly_dis[1]];
case2:
//选择十位数码管,关闭其它位
SMG_s=0;
P0=table[ly_dis[2]]&
0x7f;
case3:
//选择个位数码管,关闭其它位
SMG_g=0;
P0=table[ly_dis[3]];
l_posit++;
//每调用一次将轮流显示一位
if(l_posit>
;
3)
l_posit=0;
//延时子函数,短暂延时
voiddelay(void){
unsignedchari=10;
while(i--);
/****************************************************************************
函数功能:
AD转换子程序
入口参数:
CH
出口参数:
dat
****************************************************************************/
unsignedcharadc0832(unsignedcharCH)
unsignedchari,test,adval;
adval=0x00;
test=0x00;
Clk=0;
//初始化
DATI=1;
_nop_();
CS=0;
Clk=1;
if(CH==0x00)
//通道选择
//通道0的第一位
DATI=0;
//通道0的第二位
else
//通道1的第一位
//通道1的第二位
for(i=0;
i;
>
=1;
if(DATO)
test|=0x80;
test|=0x00;
if(adval==test)
//比较前8位与后8位的值,如果不相同舍去。
若一直出现显示为零,请将该行去掉
dat=test;
CS=1;
//释放ADC0832
DATO=1;
returndat;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 驱动 ADC0832 转换 程序