前段时间在论坛里淘了个示波器玩。没有探头,也没说明书。自己不怎么会用。看见其他论坛是有个做波形信号发生器的帖子,手头正好有材料,学习一下做了个简单的波形信号发生器。
材料:STC15F104(这个是之前买的,很喜欢这种8脚芯片,不过买的A版的,有缺陷。),74HC595,10K、20K电阻若干,电容。原理是用电阻组成R/2R电路作简单的D / A转换。用单片机通过74HC595扩展,控制电压。电源部分用了个USB,这样可以直接插到usb接口取电。一个按钮,选择波形,用两个信号灯显示当前波形。电路图:
电路图:
制作中:
制作完成:
每个波使用了30等分,即一个周期取样30次。换句话说就是,一个周期是由30个点组成的。能生成常见的 正玄波、方波、锯齿波、三角波。
正弦波:
方波:
三角波:
锯齿波:
那个方波很不方,应该是我的探头的问题。我用视频线+电阻分压做的1:10的探头,似乎效果很不好。这个是接机器自身的校准信号:
应该是标准的方波,网上查,应该是需要电容校正,但不知该怎么搞。想去买个探头,又不便宜。
波的频率可以由单片机的时钟来决定,STC15F104E时钟频率能从4.5M到45M,程序中使用一个定时器,做16位自动填充,起始值设定为0XFF00,使用1T模式。计算的频率应该是 SYSCLOCK/256*30,所以4.5M时钟时应该是约586hz,最高应该能上到5860hz。频率不高。可以降低每个周期采样数据,但这做波形就会变粗糙。如果不求所有波都同频率,则方波可以做到很高的频率。
这个是4.5M时钟的正玄波,示波器的读数不太会看。希望有人能指点一下。
上几张调程序时的波形图。
示波仪内部。
附上代码:
[ 此帖被aramy在2012-07-05 21:36重新编辑 ]