找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2543|回复: 13
打印 上一主题 下一主题
收起左侧

C51单片机双电压显示电路编程采集切换及显示问题求教

[复制链接]
跳转到指定楼层
楼主
ID:970242 发表于 2021-10-7 10:47 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
想要用STC90C52单片机和XPT2046AD芯片与显示屏采用8位共阴数码管,做一个双电压显示(可以不用小数点),现象:如数码管前4位显示电压1:2.212V   后4位数码管电压2:2.354V,实际电压是变化的这是举个例子,在写程序时,如何实现,现在最不清楚的是AD采集一路电压1后,如何切到电压2,这个切换之间编写的时候需要注意什么?请高手指导下,万分感谢!
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

来自 2#
ID:624769 发表于 2021-10-7 17:12 | 只看该作者
随风逐流 发表于 2021-10-7 16:53
就是读取电压1之后再读取电压2,这个两者之间是否要做延迟处理?若需要延迟对延迟时间是否有要求?您这里 ...

具体读取 x 之后,读取 Y 是否需要延迟,可以参考 XPT2046 手册,
再说……,做个试验,读取X之后直接读Y, 那么直接读有没有问题,不是马上就能知道了么?

用定时器,主要是确保你数码管的正常显示,反正你得到 电压后,就放到 LED_BUF[] 数组, 然后,定时器就不停把LED_BUF[] 数组里的值 赋值给数码管。
回复

使用道具 举报

板凳
ID:624769 发表于 2021-10-7 15:31 | 只看该作者
我觉得没啥好切换的啊.............

你的ADC采集是 XPT2046 完成的,你STC90C52 只是读取 XPT2046的值, XPT2046 本来就是双ADC的,你分别读取 X, Y , 然后 LED[0~3] 显示 X   LED[4~7] 显示 Y , LED 利用定时器 反复刷新 0~7 位 动态扫描。 主程序里, 反复读取 XY, 更新 LED[0~7] 不就好了么? 你能成功读取 电压1 那么,照猫画虎,就能读取电压2,不知道你的困难在哪里?
回复

使用道具 举报

地板
ID:970242 发表于 2021-10-7 16:53 | 只看该作者
188610329 发表于 2021-10-7 15:31
我觉得没啥好切换的啊.............

你的ADC采集是 XPT2046 完成的,你STC90C52 只是读取 XPT2046的值, ...

就是读取电压1之后再读取电压2,这个两者之间是否要做延迟处理?若需要延迟对延迟时间是否有要求?您这里说的利用定时器与不用定时器的的利弊是什么?小白一枚,望不吝赐教,谢谢!
回复

使用道具 举报

5#
ID:94031 发表于 2021-10-7 17:17 | 只看该作者
随风逐流 发表于 2021-10-7 16:53
就是读取电压1之后再读取电压2,这个两者之间是否要做延迟处理?若需要延迟对延迟时间是否有要求?您这里 ...

不需要延迟,在内部把两路AD转换好后放入内部寄存器,你读的是内部寄存器值。
回复

使用道具 举报

6#
ID:970242 发表于 2021-10-7 17:40 | 只看该作者
188610329 发表于 2021-10-7 17:12
具体读取 x 之后,读取 Y 是否需要延迟,可以参考 XPT2046 手册,
再说……,做个试验,读取X之后直接读 ...

好的,谢谢
回复

使用道具 举报

7#
ID:401564 发表于 2021-10-7 20:21 | 只看该作者
如果只是单一的使用ADC功能,可以直接采用STC8A系列,反正都是12位的ADC
回复

使用道具 举报

8#
ID:477534 发表于 2021-10-7 21:11 | 只看该作者
在主循环程序里,读通道1和通道2,就可以
回复

使用道具 举报

9#
ID:970242 发表于 2021-10-8 22:23 | 只看该作者
xuyaqi 发表于 2021-10-7 17:17
不需要延迟,在内部把两路AD转换好后放入内部寄存器,你读的是内部寄存器值。

明白了,谢谢
回复

使用道具 举报

10#
ID:970242 发表于 2021-10-8 22:24 | 只看该作者
Y_G_G 发表于 2021-10-7 20:21
如果只是单一的使用ADC功能,可以直接采用STC8A系列,反正都是12位的ADC

我是直接使用51开发板的
回复

使用道具 举报

11#
ID:970242 发表于 2021-10-8 22:26 | 只看该作者
nsiec1995 发表于 2021-10-7 21:11
在主循环程序里,读通道1和通道2,就可以

在字节读取语句中直接对数据进行处理可以吗?
回复

使用道具 举报

12#
ID:123289 发表于 2021-10-9 14:51 | 只看该作者
1、采样1放于A中,限4位。
2、采样2放于B中,限4位。
3、C是8位的,让C=A*10000+B。
4、在8位LED上,显示C。
回复

使用道具 举报

13#
ID:624769 发表于 2021-10-9 15:54 | 只看该作者
andy2165 发表于 2021-10-9 15:41
1、采样1放于A中,限4位。
2、采样2放于B中,限4位。
3、C是8位的,让C=A*10000+B。

?????    直接复制楼上的,真的好么?
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表