双积分测量程式编写方法_最后一句不明白啊!!!

[复制链接]
3103|16
 楼主| ming666 发表于 2007-5-12 17:09 | 显示全部楼层 |阅读模式
双积分用来测量压力,请大家给些提示指点啊!

51系列单片机具有两个以上16位双通道定时器(TIME0和TIME1),每个通道可选择为输入捕获方式来测量脉宽。我们用片内16位的定时器外接运放、比较器实现双积分A/D转换。原理图如图1所示(电源和5l单片机外围电路同常规电路),TL082是JFETINPUT运放;LM358作为比较器;MC4066是多路开关。51单片机P1口的P10、P11、P12作为输出,控制MC4066多路开关的输入选择;INT0作为中断输入口,捕捉LM358比较器的输出电平跳变。C1为积分电容,常取0.22μF左右的聚丙烯电容,R2为积分电阻,可取500k左右,U2A为积分运放, U2A、C1、R2构成了积分器,U2B是过零检测运放。VIN为输入电压,VREF为基准电压,AGND为转换器的参考零点。VREF和参考零点以 R9、R10、R11分压产生。 

  测量前,TK3=1、TK2=0、TK1=0,打开U1C、U1D模拟开关,使积分器输入等于AGND,进入调零阶段,第一次启动转换的时间为300ms;启动以后调零时间为40ms。开始转换时,TK3=0、TK2=0、TK1=1,积分器输入接至输入电压,使VIN通过积分电阻 R2向C1充电,设积分时间为T。然后,将TK3=0、TK2=1、TK1=0,即积分器输入接至基准电压VREF,电容C1开始通过R2向VREF逆向放电。当运放的输出低于C2电容电压时,比较器输出反转。然后,TK3=1、TK2=0、TK1=0,打开U1C、U1D模拟开关,又进入调零阶段。设逆向充电的时间为t,则有 


2软件结构 

  程序由初始化程序、输入捕捉中断服务程序、TIME0中断服务程序和调用该程序模块的接口程序组成。 

  程序初始化时,置TK3=1、TK2=0、TK1=0,软件300ms延时,进行初始调零;进行正向积分时,关闭INT0,置TK3= 0、TK2=0、TK1=1,开TIME0(设置TIME0工作在定时方式),进行定时正向积分;正向积分完毕,设置定时TIME0工作在输入捕获方式,打开INT0,置TK3=0、TK2=1、TK1=0,进行反向积分,TIME0进行计时,利用另一个寄存器来计数定时器溢出次数;当比较器输出反转、 INT0中断产生时,单片机自动关断TIME0,完成一次双积分A/D转换。AD值(HEX)=寄存器计数值*100+TIME0。 


 楼主| ming666 发表于 2007-5-12 17:57 | 显示全部楼层

给个原来的链接,大家一起讨论提高一下哈!!

http://www.icembed.com/info-9414.htm  这句我搞不明白啊:完成一次双积分A/D转换。AD值(HEX)=寄存器计数值*100+TIME0。 
 楼主| ming666 发表于 2007-5-14 11:48 | 显示全部楼层

大家发发言啊

 楼主| ming666 发表于 2007-5-14 12:15 | 显示全部楼层

AD值(HEX)=寄存器计数值*100+TIME0。为何*100?

kcl123 发表于 2007-5-14 13:05 | 显示全部楼层

这样的话精度是否是15位的

 楼主| ming666 发表于 2007-5-14 13:23 | 显示全部楼层

中断多少次就*多少好了,为何*100?

sjnh 发表于 2007-5-14 16:29 | 显示全部楼层

可能没计100中断一次,寄存器加1

就是:AD值(HEX)=寄存器计数值*100+TIME0
 楼主| ming666 发表于 2007-5-14 17:13 | 显示全部楼层

为何要设100溢出呢,16位的设1000也可以啊?

如果设1000,也可以得:
AD=寄存器计数值*1000+TIME0的啊!大家继续讨论哈!

哪位高手有双积分AD转换方面的资料及便子代码啊,多谢了!
dengm 发表于 2007-5-14 17:22 | 显示全部楼层

timer0 的单位为 1/100, max = 9999

kcl123 发表于 2007-5-14 23:58 | 显示全部楼层

最下面的开关和电容C2是干什么用的,不明白!

 楼主| ming666 发表于 2007-5-15 08:47 | 显示全部楼层

是调零的

是调零的
 楼主| ming666 发表于 2007-5-15 13:45 | 显示全部楼层

高手们出出手啊

kcl123 发表于 2007-5-15 13:56 | 显示全部楼层

怎么个调零法,呀?

kcl123 发表于 2007-5-16 15:50 | 显示全部楼层

楼主:有没有明白这个电路的原理呀

我搞不懂是什么意思,C2怎么参与调零的???
 楼主| ming666 发表于 2007-5-18 15:14 | 显示全部楼层

这个问题总没有人能解译啊

您需要登录后才可以回帖 登录 | 注册

本版积分规则

29

主题

93

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部