切换到宽版
爱科技/爱创意/爱折腾/爱极致;技术知识分享平台,点击进入新版数码之家网站
  • 8486阅读
  • 20回复

[工仪]DIY简易示波器的测试-STC12C5A60S2+12864(ST7920) [复制链接]

上一主题 下一主题
离线robinwong
 

发帖
261
M币
1732
专家
9
粉丝
29
只看楼主 倒序阅读 我要置顶 楼主  发表于: 2017-11-25
— 本帖被 發騷友 执行加亮操作(2017-11-26) —
首先,要感谢@大道必行 的开源,包括硬件和软件。再则,要感谢本论坛坛友的PCB板。
本来,就是出于好奇才做这个东西。早年已经看到有些朋友在利用51单片机+12864LCD显示器来做简易的示波器,挺好玩的。一直想亲自做一个,但又动力不足。这次,在买其他东西的时候,在坛友那里顺便买了一块PCB板子,回来就拿元件搭起来,写代码测试测试。
很久没有写代码了。最近一次也应该是4年前的了。当时也发在这里了。
仿制FM收音机 http://bbs.mydigit.cn/read.php?tid=736351

具体原理我就不说了,相信大伙都比较了解了。下面说一说测试过程中的一些问题,希望能帮到后来者更上一层楼。

1、这个电路设计的确符合简易能用的目的。波形显示的确和信号很相似,但精度不要追求了。如果要进一步开发,相信大家都要增加标准参考电压源和前置电路,但STC芯片的AD精度和稳定性,也要考虑考虑。这电路作为平时玩玩低频的信号测试,是满足的。
2、因为原电路使用的12864屏是别的驱动芯片的。我手上只有ST7920驱动的,自带汉字库,当然这些功能在这里是用不上的,最多打个LOGO。也都是因为用这个芯片,所以需要改动了接口部分。串口测试时,指令速度还是可以的,问题是屏幕的清屏比较慢。
3、通信方式右串口改为并口,因为ST7920的显示器串口无法读数据。这个比较麻烦,因为线的时候需要读出一个字节数据,画完后再写回去,这样就可以保持原来的画点没有受到破坏。当然,也想过在单片机上面开一个显存,然后同步回屏幕,但,这个芯片RAW太小,存不下。如果找个大点,是个优方案。
4、软件部分,改了一些地方。1是通信部分,串改并,很简单,本来已经模块化。2是键处理部分,采用新型的键处理方式,这样调试起来就比较方便了。3是波形显示采用了划线方式,有些波形看起来就好看点。4是显示的样式和坐标方面,做了一些图,使得这个玩具更加像真的。
5、下一步的建议:采用更加优的芯片,更加优的屏幕,改善内存和刷新速度,这些都是示波器的最基本条件。前置电路一定要考虑,增加灵敏度和稳定性,减少对测试信号的影响,这个电路的迟滞比较器有点过于敏感,信号稍有不好,频率就测不准。软件部分的话,算法还可以进一步研究,曲线拟合方面和触发处理、增益处理方面还可以研究研究,我就没时间忙乎这个了。
6、电路图和代码依旧公开,支持开源精神。链接在帖子后面。


照例上图吧。
1电路图,修改了一下,串改并。



2、实际电路连接情况,测试用,就简单连接一下,有零食盒再装起来。:)



3、原版是依照前面原创电路做的PCB,串口形式。我就改一下,在单片机座的焊盘直接焊排针,很牢固,很好看。







4,看看一些显示的样式。其实做起来很方便的,用一些取模软件,耐心就好。











用的是这个信号发生器来测试的,用挺方便的。




应要求,发一个我测到还满意的133kHZ的波形。





再增加音乐曲线。



         放一个代码片段,阅读代码时,你会发现比原版加了一个键处理C文件,这次采用时近年看到的一个代码,应用在这里还算可以。但如果希望按键控制灵活一些,还要做一些调整,我就在这里打住了。年底工作多,留下来给其他同志进一步编写。代码没有严格的规格化,水平有限,阅读有困难请见谅,并不惜指教。


  1. void KeyRead(void)
  2. {
  3.       unsigned char ReadData;
  4.       Key_Input = 0xff;
  5.       ReadData = Key_Input ^ Key_Mask;                                          
  6.       dKey_Trg = ReadData & (ReadData ^ Key_Cont);
  7.       Key_Cont = ReadData;
  8. }
  9. void KeyRead2(void)  //原电路的PCB把键输入设置在两个端口上,偷懒就写两段代码来扫。
  10. {
  11.       unsigned char ReadData2;
  12.       Key_Input2 = Key_Input2|0x80;
  13.       ReadData2 = Key_Input2 ^ Key_Mask2;                                          
  14.       dKey_Trg2 = ReadData2 & (ReadData2 ^ Key_Cont2);
  15.       Key_Cont2 = ReadData2;
  16. }

  


好了,全文完。希望能帮到大家。


电路和代码:


本文内容包含图片或附件,获取更多资讯,请 登录 后查看;或者 注册 成为会员获得更多权限
本帖最近打赏记录:共7条打赏M币+187专家+1
关键词: 示波器

发帖
78
M币
545
专家
0
粉丝
2
只看该作者 1楼 发表于: 2017-11-25
请登录后查看
离线小林电子

发帖
393
M币
910
专家
6
粉丝
115
只看该作者 2楼 发表于: 2017-11-25
请登录后查看
离线qweqdw

发帖
4127
M币
8389
专家
0
粉丝
14
只看该作者 3楼 发表于: 2017-11-25
请登录后查看
离线拆x

发帖
718
M币
750
专家
2
粉丝
12
只看该作者 4楼 发表于: 2017-11-25
请登录后查看
离线robinwong

发帖
261
M币
1732
专家
9
粉丝
29
只看该作者 5楼 发表于: 2017-11-25
回 小林电子 的帖子
请登录后查看
离线robinwong

发帖
261
M币
1732
专家
9
粉丝
29
只看该作者 6楼 发表于: 2017-11-25
回 拆x 的帖子
请登录后查看
[ 此帖被robinwong在2017-11-25 20:17重新编辑 ]
本文内容包含图片或附件,获取更多资讯,请 登录 后查看;或者 注册 成为会员获得更多权限
本帖最近打赏记录:共1条打赏专家+1
离线zhkrid

发帖
26489
M币
140
专家
483
粉丝
425
只看该作者 7楼 发表于: 2017-11-25
离线robinwong

发帖
261
M币
1732
专家
9
粉丝
29
只看该作者 8楼 发表于: 2017-11-25
请登录后查看
本文内容包含图片或附件,获取更多资讯,请 登录 后查看;或者 注册 成为会员获得更多权限
本帖最近打赏记录:共1条打赏M币+20
离线azzajazz

发帖
16812
M币
153
专家
38
粉丝
271
只看该作者 9楼 发表于: 2017-11-25
快速回复
限80 字节
温馨提示:所有技术区严禁灌水,“沙发”“顶”字样;禁止广告贴;以免被删除
 
上一个 下一个