微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 5x7小点阵时钟,使用了反并联技术

5x7小点阵时钟,使用了反并联技术

时间:10-02 整理:3721RD 点击:
我的起亚智跑车上的时钟被阉割了,车友一般都是买个成品小时钟加装。咱正在学习单片机就打算自己做一个。
由于安装空间有限,选择了横放的4个5x7点阵,SOP28的STC-15F2K60S2MCU直接焊接在5x7LED的12个引脚上并直接驱动(跟杜洋老师学的)。
上图:





4个5x7点阵之间使用漆包线连接。
视频地址:
http://pan.baidu.com/s/1o6OJmjS


视频转成GIF的效果较差,实际显示很稳定的。
因为车里有GPS,所以没有做设置按键,打算直接使用GPS授时(未完成)。
由于MCU的IO口数量有限,所以使用了LED反并联驱动技术,4位5x7点阵仅使用了17个IO口。见下图:


借用网上找的mini3216电路图说一下原理:


该电路使用48脚MCU STC12C5A60S2 直接驱动3216点阵,如果用传统方法直接驱动至少要用48个IO口。
图中可看出左边4块与右边4块LED模块是完全的反并联,这样只需使用16+16=32个IO口。
再看一下STC 手册中IO口模式设置:


程序借鉴了杜洋兄特色的LED逐点驱动理念。
1/   上电初始化时将相应IO口的PxM0置1,
2/   关闭显示段落中将相应IO口的PxM1置1,也就是将相应IO口全部设置为开漏输出。再将相应IO口置1(高电平)。
此时IO口等效电路如下图:


相当于是高阻状态。
当我们要点亮某一个点时,以上图D1模块的1行1列点及列共阴为例,发命令:H1端口PxM1=0,L1=0,此时H1端口模式被设置为推挽并高电平输出,L1端口为开漏的低电平。D1模块的1行1列点得到正向电压并发光,D3模块的1行1列点得到反向电压,不发光。
延时一段时间后,关闭显示。
再以上图D3模块的1行1列点为例,它是与D1模块的1行1列反并联的,发命令:L1端口PxM1=0,H1=0,此时L1端口模式被设置为推挽并高电平输出,H1端口为开漏的低电平。D3模块的1行1列点得到正向电压并发光,D1模块的1行1列点得到反向电压,不发光。
延时一段时间后,关闭显示。
由此可以看出,LED的反并联驱动充分利用了LED的单向导通发光的特性。假设每一个发光点是一个白炽灯泡的话,这个方法就不行了。
目前俺还在研究GPS授时,程序里没有设置时间的功能,仅供参考。下载:http://pan.baidu.com/s/1hq6E97I



不错!点个赞!

不错!点个赞。

有想法!  期待

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top