【2015.6.15更新内容】
之前是我的疏忽,我以为迷你板的蜂鸣器用的是单片机的P1.6口,没想到是P1.6和P1.7并联的,考虑到兼容性,把程序换到P1.7口了,这样可以解决部分板子蜂鸣器运行异常的问题。
同时修复了几个小BUG,在EEPROM中加入了默认参数,防止原来EEPROM有异常数据时菜单显示不正确。
优化了代码,减少了尺寸,加热算法目前使用金向维算法(可能版本比较老)
目前看没有其他问题。
—————————————————————————正文分割线———————————————————————
前一段时间,在ATX电源群里看见语子爸@lyzaz自己做的OLED的白光,也入手了一套,感觉原来的固件不带屏幕保护的功能,因此就想加上这个功能,问了一圈固件都不提供更别说源码了,于是就自己动手写。
整个固件从有想法到现在完成历经一个月左右,其中后半段有半个多月的时间,每天从回到家一直弄到半夜1、2点多,老婆孩子都有怨言了。
在动手之前先研究了STC15W408AS的数据手册以及OLED的编程资料,在PID加热算法上也参考了一下
@goodcode 和@金向维的代码,goodcode的代码比较简洁,但是几个参数的值不好确定,在电源电压和加热芯不确定的情况下,感觉还是金向维的方法更稳定些,不过我最后完成的代码已经几乎用完了所有的flash和eeprom空间,所以加热算法用的还是简单的单P计算,感觉效果也差不太多。
固件的特色功能主要是针对语子爸这款PCB的,提供屏幕正反向设置(因为有人说旋钮在左边不方便);还考虑的双色屏的特点,增加了标题行可以选择上下的功能;当然,最重要的是增加了屏幕保护。
先看几个菜单截图:
主菜单1-3
主菜单4-6
主菜单7-9
屏幕设置菜单有三项:
再看一段视频:
flash: http://www.iqiyi.com/w_19rrq6ulvp.html【视频不能自己嵌入,大家自己复制到浏览器里打开吧】
视频中我演示了设置屏幕正反两种显示的操作和屏幕保护的运行,屏幕正反的设置是必须关机重启才生效的。
还有其他一些功能和之前的固件类似,我就不详细介绍了。
代码用C和汇编写的,因为STC15W408AS的EEPROM有5K,字库用了4K(剩下的2个Block用来保存配置),用MOVC直接访问EEPROM比较方便和迅速,所以我用汇编实现了显示字符的函数部分。
对了,值得一提的是调试信息的功能,打开以后可以在主界面看到T12经过放大的电压,通常可以用来观察LM358的失调电压,就是在调试界面,把输出设为0%(PWM),然后短路T12的两脚,此时的T12Volt值就是失调电压,记录下来到设置里改下就可以了。
固件下载在这里:
请注意:如果你没有原来的固件,请谨慎升级。因为本人并不保证目前的固件没有任何问题,当然大的bug我会修复。
刷的时候主频要选33.177MHz,flash和eeprom都要同时刷入,看到了吧,固件的尺寸是1FE8,差不多满了。
切记:刷完以后系统参数全部恢复初始值,需要重新修改。主界面操作:左、右旋是调节设定温度,单击是增强模式,0.5秒单击进入待机模式,2秒单击进入设置模式。
设置菜单操作方法:进入菜单的方法是单击编码器旋钮,退出的方法是左旋编码器。
修改菜单配置项后单击返回菜单,长按编码器(2秒以上)保存退出。
最后,感谢语子爸提供的套件,还有goodcode和金向维的帖子给我间接的帮助,在此一并谢过。
[ 此帖被sln.1550在2015-06-16 00:01重新编辑 ]