永发信息网

ADC0832数据读出后的处理问题

答案:1  悬赏:10  手机版
解决时间 2021-04-21 14:57

请看我程序

#include "reg52.h"
#include "intrins.h"

#define uchar unsigned char
#define uint unsigned int

#define DM P0
#define WM P1

sbit CS = P2^0;
sbit CLK = P2^1;
sbit DO = P2^2;
sbit DI = P2^3;

uchar code SMG_DM[]={0xC0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
uchar code SMG_WM[]={0x01,0x02};

uchar dis[2];
uchar temp;
uchar adc0832_data()
{
uchar i,Dat1=0,Dat2=0;
CLK = 0;DI = 1;CS = 0;
CLK = 1;CLK = 0;
DI = 1;CLK = 1;CLK = 0;
DI = 0;CLK = 0;CLK = 1;
for(i=0;i<8;i++)
{
CLK = 1;
CLK = 0;
_nop_();_nop_();
if(DO) Dat1|=0x80>>i;
}
for(i=0;i<8;i++)
{
if(DO) Dat2|=0x01<<i;
CLK = 1;
CLK = 0;
_nop_();_nop_();
}
CS = 1;DI = 1; CLK = 1;
if(Dat1==Dat2)
return Dat1;
}
//-------延时程序-------------------------------------------------------------------------------
void delay(uint k)
{
uint i;
for(i=0;i<k;i++);
}
//-------数码管数据拆分-------------------------------------------------------------------------
void SMG_data(uchar tmp)
{
dis[1] = tmp/10;
dis[0] = tmp%10;
}
//-------中断初始化-----------------------------------------------------------------------------
void InitTimer0(void)
{
TMOD = 0x01;
TH0 = 0x0FC;
TL0 = 0x18;
EA = 1;
ET0 = 1;
TR0 = 1;
}
//========主程序================================================================================
void main()
{
InitTimer0();
while(1)
{
temp=adc0832_data();
temp=(temp/127.0*50.0);
SMG_data(temp);
//delay(60000);
}
}
//========中断程序==============================================================================
void Timer0Interrupt(void) interrupt 1
{
static uchar i;
TH0 = 0x0FC;
TL0 = 0x18;
if(i==1)
{
WM=SMG_WM[i];DM=SMG_DM[dis[i]]&0x7f;
}
else
{
WM=SMG_WM[i];DM=SMG_DM[dis[i]];
}
i++;
if(i>1)
i = 0;
}

主程序里面对ADC0832读出的数据进行处理 按理说ADC0832是8位分辨率 读出的数除以255再乘5 (我乘的50是为了方便数码管现实)得出的就是当前电压值, 为什么我的程序除以255 最大就能显示到24 而不是50 而除以127却可以正常显示?

最佳答案
你好 楼主。

很幸运的看到你的问题。
但是又很遗憾到现在还没有人回答你的问题。也可能你现在已经在别的地方找到了答案,那就得恭喜你啦。
可能是你问的问题有些专业了,没人会。或者别人没有遇到或者接触过你的问题,所以帮不了你。建议你去问题的相关论坛去求助,那里的人通常比较多,也比较热心,可能能快点帮你解决问题。
希望我的回答也能够帮到你!
祝你好运。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
鑫雅服饰地址在什么地方,想过去办事
挂手机QQ时,自动掉线了,提示:密码错误.这是怎
医院有没有 激光科室 啊?
魔卡少女樱召唤台词,《魔卡少女樱》里的经典
自主招生面试时需注意的问题有哪些?
谁有海派甜心上达浪的手机铃声?
民心大药房在什么地方啊,我要过去处理事情
寻仙我把东西放到快捷栏里了,怎么拿出来啊,
飞马国际明天如何操作?
谁能告诉我是什么歌,今夜写信忘了告诉你是什
女人为什么有第六感
PS高手请进,帮忙P张照片,追加多少分都行。
请帮忙把下面的句子翻译成英文.谢谢
李记酸菜鸡总店地址在哪,我要去那里办事
刚刚开通的超级QQ在帝国OL中可以领礼品吗?
推荐资讯
手机该不该带进校园?
男生和女生的感情區別在哪裏?
为什么我家的DNF打不开?
那里能下载APE格式音乐
什么叫创意?
我鼻子有时右边不通气,有时左边不通,怎么回
网友们说说你们买的是什么品牌,什么型号的LE
NPC是什么的缩写啊
有关夕阳的唯美短句子,第六段划线句,描写大
如何改变图片大小?
轴承盖有什么作用,轴肩、半联轴器在圆锥圆柱
怎么样禁止设置Dell笔记本BIOS密码?
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?