一乐电子

一乐电子百科

 找回密码
 请使用微信账号登录和注册会员

QQ登录

只需一步,快速开始

快捷登录

手机号码,快捷登录

搜索
查看: 5451|回复: 31
收起左侧

分享一个32*80 LED点阵万年历程序

[复制链接]
发表于 2015-6-2 14:05 | 显示全部楼层 |阅读模式
本帖最后由 sdf15937 于 2015-6-2 19:53 编辑

刚来这个论坛时做的,那时候懵懂无知,刚跨入单片机的坑……
屏做好已经3年多了,程序啥的三年未变,虽然精度不怎么好,一天误差2秒左右,不过好歹还是家里的重要时钟源。而且稳定运行3年多没出现啥意外,说明当时程序改的还是很成功的(算是自我陶醉吧)……
https://www.yleee.com.cn/thread-12686-1-1.html
之前一直没啥闲心折腾,不料三天前手指割伤,中指一条静脉割断。好在没有伤到神经和骨头,医院缝了3针完事儿,领导准了一周的带薪休假。在家闲着没事儿做,终于还是狠下心升级了一下这个屏的程序(因为是重要时钟源,折腾起来也不是一时半会儿能搞定的,所以就需要狠心才行咯)

受伤的手指,每天都有新包装……
P50531-191230.jpg


这次改的屏,咋一眼看上去是没啥区别。实际上也没啥区别
QQ截图20150602134431.jpg

原来就有的功能就不说了。说一说改过的地方吧。
1,自动亮度调节。我用的是一块太阳能电池板,用一个二极管隔离以后,用一个电容储能,一个100K电阻放电。
mmexport1432893826188 - 副本.jpg

在晚上21点到第二天早上6点之间才能达到最低亮度(硬件PWM值为3)。其余时间最低亮度为40。最大亮度值是245。
这么做是防止晚上看电视时看不清时间,较多次试验发现40是一个比较合适的值,当然这个值不一定适合所有的屏。

2,自动换色。每20秒换一次颜色。屏用了3年了,坏点有不少了,而且可能芯片也有问题了,不过将就用了。换色能略微延长使用时间吧。

3,每日时间修正。这算是提高1302精度的一个最低成本的方法了吧。实际上本来有考虑过直接上3231芯片,无奈移植了一下午,就是无法正常运行,也不知道是啥问题


硬件连接:
ABCD连接在了P1.0~1.3

sbit  LT =P3^1;//ST        
sbit  SK =P3^2;//CK
sbit  R1 =P3^3;//R2
sbit  G1 =P3^4;
sbit  R2 =P3^5;//R1
sbit  G2 =P3^6;

sbit KEY1=P0^6;        // 按键
sbit KEY2=P0^7;        // 按键
sbit KEY3=P0^5;        // 按键

sbit DQ=P0^0;        // 18B20温度传感器


sbit T_CLK  = P2^5; //ds1302
sbit T_IO   = P2^6;   
sbit T_RST  = P2^7;


屏OE接单片机P1.4,太阳能电池板接P1.5。附上程序:
32x80万年历中文.rar (92.13 KB, 下载次数: 156, 售价: 1 人民币)

另外,最早写这个程序的一定是个大神,居然很干脆的给他开辟了一个640字节的缓冲区,虽然消耗资源多,但是速度快;每一个字都是由“点”构成,所以可以在任意地点显示任意大小,任意颜色的字,关键是程序改起来不复杂。这些都是当初还是菜鸟的我所没发现的。
发表于 2015-6-2 15:47 | 显示全部楼层
很明显 这不是一个人的手指。。。。。。  右边明显细嫩。
发表于 2015-6-2 15:55 | 显示全部楼层
这屏都是缓冲区吧........要是pwm多色缓冲区还会更大......3231是搞不下I2c还是怎么?
 楼主| 发表于 2015-6-2 16:04 | 显示全部楼层
384065902 发表于 2015-6-2 15:55
这屏都是缓冲区吧........要是pwm多色缓冲区还会更大......3231是搞不下I2c还是怎么?

见过许多32*64的,自己也写过32*64的程序,都没想到用缓冲区……
这个程序在电脑里放了3年,在翻出来的时候才觉得自己忽视了这个程序……
3231么……觉得IIC应该没问题,因为读取的时候屏幕会“跳”(读取时关中断),3231拔下来就不跳了。但是不管怎么折腾读取到的都是0。
折腾了一下午没结果。期间还以为是3231坏掉了。又重新移植了另外一个串口屏,确定3231没问题,而且就花了一小会儿……然后就内伤了……不知道啥原因。
 楼主| 发表于 2015-6-2 16:06 | 显示全部楼层
f516411213 发表于 2015-6-2 15:47
很明显 这不是一个人的手指。。。。。。  右边明显细嫩。

对啊,一个人总不可能有两只右手吧……?
发表于 2015-6-2 19:01 | 显示全部楼层
f516411213 发表于 2015-6-2 15:47
很明显 这不是一个人的手指。。。。。。  右边明显细嫩。

右边的应当是MM的
发表于 2015-6-2 19:02 | 显示全部楼层
sdf15937 发表于 2015-6-2 16:04
见过许多32*64的,自己也写过32*64的程序,都没想到用缓冲区……
这个程序在电脑里放了3年,在翻出来的 ...

读i2c放定时器中断里面.....不用严格按照i2c时序,自己按照1000位每秒读i2c都可以.读全0的的话蛋疼点.....不会是地址错了吧?
 楼主| 发表于 2015-6-2 19:50 | 显示全部楼层
384065902 发表于 2015-6-2 19:02
读i2c放定时器中断里面.....不用严格按照i2c时序,自己按照1000位每秒读i2c都可以.读全0的的话蛋疼点..... ...

试过啦~确定程序没有问题的也确定硬件没问题,因为3231转dip1302的硬件原封不动,3231相关的程序一字不改移植到串口屏上面一次过……而且就算是在串口屏里面开了中断也没问题,所以不知道问题出在了哪里。

 楼主| 发表于 2015-6-2 19:53 | 显示全部楼层
benli 发表于 2015-6-2 19:01
右边的应当是MM的

妥妥的
发表于 2015-6-2 19:59 | 显示全部楼层
有没有控制板出呢?

本版积分规则

QQ|一淘宝店|手机版|商店|电子DIY套件|一乐电子 ( 粤ICP备09076165号 ) 公安备案粤公网安备 44522102000183号

GMT+8, 2024-4-20 11:05 , Processed in 0.055913 second(s), 38 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表