标题: 可以用单片机做一个控制多路的开关吗? [打印本页]

作者: gguo2    时间: 2018-8-2 03:24
标题: 可以用单片机做一个控制多路的开关吗?
本人对电工和单片机知之甚少。
需要将函数发生器产生的100 kHz 的三角形波(2V到4V)按周期顺序送入多条并行线路。初步想法是用单片机做一个可以高速切换的开关,按照三角形波的周期时间打开不同的通道(如下图所示)。最近看了下C51教程,感觉有点像类似流水灯的东西。

问题1: 请问可以直接用单片机实现这个开关吗?
问题2: 如果可以的话,是不是只需要将单片机的引脚和线路相连,然后再编一个类似流水灯的程序就行?
问题3: 本人手头有C51 单片机 At89c2051, 请问是否可以实现这个功能?如果不行,需要什么样的单片机?
问题4: 不知道单片机是不是最好的方法,请问还有其他方法吗?






作者: yousunny    时间: 2018-8-2 08:56
单片机可以做。使用外部中断输入就可以了。具体是捕获上升沿和下降沿,
不过,你这个“100 kHz ”频率有点高,要实现有点难。
你可以找一个款高速的单片机试一下
作者: ahshmj    时间: 2018-8-2 09:11
100kHz?有点高了。用什么单片机?多少的晶振?
作者: 酷酷的腾    时间: 2018-8-2 10:03
可以的 单片机具有强大的中断功能  可以实现这个功能
作者: 杨雪飞    时间: 2018-8-2 10:12
楼主可以了解一下CD4017数字电路,但是也存在相同问题,CD4017的极限时钟频率好像只有5.5M,跟楼主要求的10M比起来差了很多
作者: 230000    时间: 2018-8-2 13:11
大多数单片机输出10us脉冲式比较难的,即使有能做到的,波形畸变也会很严重。能输出这个脉冲的单片机,工作频率会很高,成本也会很高,所以应该采用触发器分频器等,如4017之类的芯片来做。对于4017,10us输出是很容易的了,波形边沿在百纳秒级,对于10us脉冲来说,已经没什么问题。而且输出几路也是可调的。
作者: astonzorro    时间: 2018-8-2 16:18
单片机可以做。使用外部中断输入就可以了。具体是捕获上升沿和下降沿,
不过,你这个“100 kHz ”频率有点高,要实现有点难。
你可以找一个款高速的单片机试一下
作者: gguo2    时间: 2018-8-2 20:55
ahshmj 发表于 2018-8-2 09:11
100kHz?有点高了。用什么单片机?多少的晶振?

单片机的速度是不是由晶振决定的? 手头的at89c2051晶振频率是24Mhz.
作者: gguo2    时间: 2018-8-2 20:57
230000 发表于 2018-8-2 13:11
大多数单片机输出10us脉冲式比较难的,即使有能做到的,波形畸变也会很严重。能输出这个脉冲的单片机,工作 ...

谢谢回复!

我不需要单片机输出脉冲,只需要按function generator 的周期切换就行。这个跟脉冲有关系吗?
作者: gguo2    时间: 2018-8-2 20:58
astonzorro 发表于 2018-8-2 16:18
单片机可以做。使用外部中断输入就可以了。具体是捕获上升沿和下降沿,
不过,你这个“100 kHz ”频率有点 ...

什么东西可以作为外部中断?function generator 可以吗?
作者: psufhvka    时间: 2018-8-2 22:41
这个看着很简单吧
作者: qinmiss    时间: 2018-8-3 10:11
说实话,,,最好用单片机控制多选一数据选择器,,,应为单片机管脚输出电压是恒定的,51中断也是可以实现的
作者: ahshmj    时间: 2018-8-3 10:36
psufhvka 发表于 2018-8-2 22:41
这个看着很简单吧

这个不简单或者说根本做不到。10us能执行几条指令?他还是4路输出,而且每路之间下降沿和上升沿无缝衔接,一条指令都插不进去,怎么切换?
作者: CrlikenNN    时间: 2018-8-20 10:13
用中断就可以了
作者: l3537515955    时间: 2018-8-20 11:32
你这个频率有点高啊,用硬件电路好点!
作者: shybody001    时间: 2018-8-20 14:06
gguo2 发表于 2018-8-2 20:57
谢谢回复!

我不需要单片机输出脉冲,只需要按function generator 的周期切换就行。这个跟脉冲有关系 ...

单片机捕获脉冲跟时钟主频也有关系,建议使用ST或新唐的高速MCU来做。
作者: 只搭末班车    时间: 2018-8-20 16:06
使用外部中断输入捕获上升沿和下降沿

作者: gguo2    时间: 2018-8-21 04:15
qinmiss 发表于 2018-8-3 10:11
说实话,,,最好用单片机控制多选一数据选择器,,,应为单片机管脚输出电压是恒定的,51中断也是可以实现 ...

谢谢, 你说的是对的,我用4051复用器实现了
作者: 406453545    时间: 2018-8-21 08:49
使用外部中断输入
作者: 406453545    时间: 2018-8-21 08:50
使用外部中断输入
作者: 1984528951    时间: 2018-8-21 11:55
可以试试利用延时给io口供高电平通过修改io定时器提供高电平的时间来实现。
作者: yang阳    时间: 2018-8-24 13:19
个人认为如果要求的晶振比较高,而且要生成很多不同的波形,建议转用FPGA




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1