使用单片机开发摆动LED电子钟(三):程序设计

2017-03-16 96 0

摇棒启动:为使摇棒从静止过渡到正常运行,正式显示前加启动程序,实质是逐渐加快驱动频率直至正常摆动。通过循环 mm++ 与 Delay(120+mm) 逐级缩短延时实现。

秒闪现:数字或字符的闪现通过变量Ms与数组w[]实现,如让第八位中第4位闪现则w[3]=1;Timer0每隔一秒改变Ms状态(0或1),据此打开或关闭该位显示(含正向与反向显示两种情形)。

显示不均匀的修正:调试发现屏上字符并非等宽,原因是摇棒运动中受力随时变化。为精确调整显示,制作显示中断表Tr[],通过改变显示LED的时间段来协调显示效果。

按键去抖:采用软件去抖——检测到按键接口出现低电平后隔一段时间再测,仍是低则确认为有效,否则无效(由函数ChKey(bit Key)完成)。

显示同步:因无位置传感器,显示同步全靠时钟中断确定,因此音圈电机驱动信号改变的时刻决定显示是否居中将决定正反显示的重合,须据实际细调(由变量Ta调定)。

文中给出完整C51程序(摆动LED钟),含硬件端口定义、时钟数组、显示数组、显示中断表Tr[]、ASCII字模表ASCIIDOC[]、延时、键盘去抖、双定时中断(时钟与LED/音圈驱动)、主程序(摇棒启动、欢迎字符/时钟显示、按键加减小调整等)及调试方法(先定常Ti看摆动幅度,再调Ta使正反重合,最后恢复Tr[]使字符等宽)。详见附图。

相关文章

BTL桥式推挽功率放大器及其应用
基于MC145026/MC145027的无线鼠标改造电路
基于CD4069/CD4017/CD40174的五路平面彩灯控制器
小型变压器的设计原则和技巧
Protel 99 SE操作环境及特点
热转印法制作PCB板(一):原理与打印设置

发布评论