开发环境:活动开发板+12864液晶,cubesuite+
性能:实现频率测量,测量范围2Hz-7.5Mhz,测量误差(<1%,100Hz以上时)。测量更新速度,0.5s。
亮点:使用LCD12864。还有中文显示哦。(不过cubesuite+里面显示是乱码哦)。
弱点:2K rom伤不起!!,code generator生成代码+12864驱动,直接就奔0x7xx去了,离2k的0x800就剩几个字节了。考虑到AD代码例程上都有,因此保留了频率测量。而且也只是最基本测频法。这下好,按键都不用了。基本没法做什么数据处理了。哪个大神赐我几片4Krom的512吧,哈哈,应该能互换的。
介绍下12864的连接。12864就是普通st7290那货。电源和地就不说了,RS接P0.0,RW接P0.2,EN接P0.3,reset接P12.5,直接用单片机的reset信号,PSB直接接地(IO口太少,只能省着用)。对比度大家要当心,原来我觉得AD不用了,那个电位器可以直接给对比度调节脚用,倒挺好的,结果,不行。最后直接接电源了事。没看明白的看下面的标注原理图
代码就是拿普通51的改的,好像也很简单。只要把IO口给定义好就行了。
频率测量原理在上一篇心得中已经详细介绍了,这里就不多说了。最后测试发现没有能达到理论分析的1/2fsclk,也就是10Mhz,最高最后定格在7.5Mhz,不过和中断法相比,已经很好了。这里是最低2Hz是把定时0的间隔设成了500ms后实现的(前面一版用了100ms,只能到10Hz),频率测试还算准的。现在手头设备一般,上点大概的测量和效果照片。
首先是连接图和显示效果图,鳄鱼夹子是信号的输入。
然后选了2Hz到7.5Mhz若干个点对此测试了一下
调试心得:
字符串最好初始化一下,不然显示的时候可能有乱码。
Cubesuite+是不支持中文的,不过可以敲中文进字符串。隔天打开会变乱码,但是我这个碰巧还是正常显示中文。不够这个不完全保证,因为我也出现过中文变“?”的情况。大家的环境只能试试了,但是我的这几个乱码保证显示正确。
补上代码
本帖最后由 jofficer 于 2014-9-7 23:39 编辑