ADC0809与AT89S52组成的数字电压表 精确到0.02V 用汇编语言怎么写?

 我来答
liug527
2014-05-26 · 超过15用户采纳过TA的回答
知道答主
回答量:76
采纳率:100%
帮助的人:24.7万
展开全部
精确与否是你的AD转换位数所决定的,程序怎么写都是一样的。
如果你的AD是8位AD,5V/2^8=5V/256=0.01953125v
这个是最小精度,所以如果你是8位精度的AD,你的数字电压表量程是5V的,那就可以达到要求精度,
如果量程为10V,那么8位AD就达不到。
至于汇编语言怎么写,这个你的老师没教给你AD转换吗?
51的单片机是不带AD的,扩展 AD芯片,然后用单片机和AD芯片通信就行了
带AD的单片机就设置相应ad通道和寄存器,然后开始转换,转换完成会产生中断或通过查询转换完成标志位就行了
读来的AD值先进行滤波,减少干扰。有好多程序滤波方法比如滑动平均值滤波,中卫值滤波,中间差值滤波,冒泡排序去掉最大和最小值,中间均值滤波等等...根据实际信号的频率,干扰的脉冲时间大小来选则滤波方法。具体怎么选可以再网上看看文献.
滤好波的AD值再用来查表显示想对应的电压值。你要先做一个AD对应电压的表。
因为电压转换是线性的,所以为了节省程序空间,可以不查表,用计算也可以。但是热敏电阻就必须查表,因为温度和电压转换不是线性的。
加入你测量的AD值是64H,那么电压就是0.01953125v*64H(100)=1.953125V,然后显示出来就OK了!
程序的话没人帮你写的,只能告诉你方法,具体要你去写,写上一遍就会了。不会的要自己钻研自己练习,自己找BUG。学单片机一定要动手,不对手写一辈子也学不会的。
至于怎么写这个太笼统了,你要自己写后发现什么不理解,卡到哪里不知道怎么写时再问别人,这样问人别人没办法回答你的!比如你问个AD芯片和单片机通讯的时序,单片机怎么清除RAM,定时器怎么设置比你这样问都好。
GUEL86
2014-05-25 · TA获得超过5856个赞
知道大有可为答主
回答量:5538
采纳率:86%
帮助的人:2732万
展开全部

这是一个C 的仿真实例,如果需要参考可以试试。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式