找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 12004|回复: 2
打印 上一主题 下一主题
收起左侧

16×64 LED点阵屏(万年历)制作全过程

[复制链接]
跳转到指定楼层
楼主
ID:105099 发表于 2016-2-5 16:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
温馨提示:本文图片较多,图片文件较大,建议使用电脑访问查看!不然手机流量会吃不消的;如果某些图片显示不出来,请右键单击图片,选择“显示图片”即可!

       本人很喜欢各种显示器件,点阵当然不例外,2010年寒假在家里做了第一块点阵屏,虽然只是个16×16的单字屏,但是当时做出来感觉特别有成就感;后来毕业工作了,也没那么多时间去做单片机了,过了一年多突然心血来潮打算再做一块大屏,从那以后没事就去找这方面的资料,开始想的是做个16×32的,后来又想到加上其他的东西进去,最终就决定了现在这个作品,本作品从今年4月份开始构思,由于工作的原因,迟迟不能完成作品,中途断断续续停了几个月工,最终在今年8月份完成了该作品,但是遗憾的是在完成后测试的时候发现在画原理图的时候画错了几根线,导致最后用跳线来完成,但是不影响使用效果,打算重新改线制板;整体还是很满意的,虽说花了几百大洋,但是还是值得的。

       本作品是用16块8×8LED点阵模块组成的16×64(4字)单色点阵屏,采用74HC138+三极管+595动态扫描,主控芯片STC90C58AD,主控时钟22.1184MHz,主控板集成了稳压电源、程序下载接口(适用于USB转TTL)、4位独立按键、DS12C887时钟芯片、DS18B20数字量温度传感器以及串口通讯等部分,另外板子上设计有电源指示灯、温度数据传送指示灯、串口通讯指示灯、一位LED(用于程序测试)。跟主板配套的还有块扩展板,主控芯片为STC12C2052,主控时钟22.1184MHz,并集成了24C0X存储器,语音芯片,3.3V稳压电源、Nokia5110液晶屏接口以及串口(TTL)通信\下载接口等,扩展板可以跟主控板配合使用做万年历语音报时,用户设置的参数可以保存到存储器中,总之可以随意搭配,并能通过修改程序达到意想不到的效果!

作品发布前做了多种显示效果并测试通过,该显示是用开辟的数据缓冲区进行数据处理显示的。现在的成品主要是用来做万年历的,包括自定义标语、年、月、日、时、分、秒、星期、温度的显示。以后还准备加上农历、闹钟、湿度、语音等等。
目前做出来的显示效果包括:左移、右移、上移、下移、由内到外同步、由外到内同步、由上到下依次、由下到上依次、往下掉等。。。各种效果可以随意搭配、随意调用,只需要将数据送到缓冲区中,然后调用效果即可!非常方便。本文尾部附带最基层的显示驱动参考程序,效果等其它源码暂不公布。

 
关于作品的介绍请看图(图片较多较大网速不好的朋友请刷新或到相册查看):
 
显示板 电路图


显示板 PCB图
 

 显示板 3D图
 

 主控板 电路图(已更正)
 

 主控板 PCB图
 

主控板 3D图 
 

 板厂打样的显示板
 

显示板到手了 
 

 晒一下LOGO
 

显示板一角 
 

 开始安装点阵模块了
 

 板子宽度
 

 板子长度
 

点阵模块安装完毕 
 

 准备剪引脚了
 

再SHOW一下 
 

显示板完工了 
 

自己临时做的驱动板 
 

 来个全景的
 

 来个侧面的
 

 跳线好丑
 

这个更乱了 
 

 显示板全亮测试
 

来个侧面的 
 

 哈哈这才是真正的显示颜色
 

 开始测试了
 

 显示一下时间(我还没用12C887,用定时器测试)
 

 显示星期
 

 显示温度
 

 呼呼,女朋友喜欢这个
 

 主控板和扩展板收到了
 

可怜的临时驱动板被红板代替了
 

采购的元件收到了 
 

电源适配器也跟着来了 
 

立马就安装好了一块主控了 
 

底层的元件 
 

顶层的贴片终于露面了 
 

 完整了
 

通电测试  嘿嘿! 
 

小猴子。。。 
 

放我公司床头当万年历了 
 

哇,扩展板终于亮相了 
 

 测试一下
 

再来张合影


自己写的扩展板的上位机软件 
 
=========================  测   试   程   序  ========================
#include <reg52.h>
sbit  st=P1^5;   //  存储脉冲 该脉冲上升沿所有被所存的信号一起输出
sbit  sh=P1^6;   //  移位脉冲 该脉冲上升沿输出信号移位,但不一定输出
sbit  DA=P1^7;   //  待移入的数据信号
sbit oe_595=P3^6; // 595使能端
sbit oe_138=P1^4; // 138使能端
unsigned char code zf[4][32]=  //从左到右  从上到下  横向8点右高位
{
 0x00,0x10,0xFE,0x3F,0x80,0x00,0x80,0x00, //"正"
 0x80,0x00,0x80,0x00,0x88,0x08,0x88,0x1F,
 0x88,0x00,0x88,0x00,0x88,0x00,0x88,0x00,
 0x8
8,0x00,0x88,0x20,0xFF,0x7F,0x00,0x00,
 
 0x40,0x00,0x40,0x00,0x40,0x20,0xFF,0x7F, //"在"
 0x20,0x00,0x20,0x02,0x10,0x02,0x10,0x0A,
 0xC8,0x1F,0x0C,0x02,0x0A,0x02,0x09,0x02,
 0x08,0x02,0x08,0x22,0xE8,0x7F,0x08,0x00,
 
 0x00,0x00,0x02,0x22,0xE4,0x27,0x24,0x2A, //"测"
 0xA1,0x2A,0xA6,0x2A,0xA4,0x2A,0xB0,0x2A,
 0xA8,0x2A,0xA4,0x2A,0xA7,0x2A,0x84,0x20,
 0x44,0x21,0x24,0x22,0x14,0x2A,0x04,0x10,
 
 0x00,0x04,0x02,0x14,0x04,0x24,0x04,0x04, //"试"
 
0xF0,0x7F,0x00,0x04,0x07,0x04,0xE4,0x07,
 0x84,0x04,0x84,0x08,0x84,0x08,0x84,0x08,
 0x94,0x4B,0xEC,0x48,0x44,0x50,0x00,0x20
}; 
void Delay(unsigned int i)   // 延时函数
{
 while(--i)
 ;
}
void SendByte(unsigned char Dat) // 对595写入一个字节数据
{
   unsigned char a;
   for(a=0;a<8;a++)    // 分8次移位输出到锁存器
  {
    if((Dat&0x80)==0x80)  // 判断写0还是写1
  { DA=1; } 
  else
  { DA=0; }
    sh = 0; 
  st = 0;
  sh = 1;      // SH上升沿所存移位输出信号

  st = 1;      // ST上升沿输出锁存数据
    Dat=Dat<<1;     // 数据移一位
  }
}
void main(void)      // 主程序
{
 oe_595=0;oe_138=1;    // 初始化 开595 关138
  while(1)
  {unsigned char i;
    for(i=0;i<16;i++)   // 共计16次,因为共有16行要扫描
  {
  SendByte(zf[0][i*2]);
  SendByte(zf[0][i*2+1]);
  SendByte(zf[1][i*2]);
  SendByte(zf[1][i*2+1]);
  SendByte(zf[2][i*2]);
  SendByte(zf[2][i*2+1]);
  SendByte(zf[3][i*2]);
  SendByte(zf[3][i*2+1]);  // 送某行的8列显示数据
  P1=i;      // 送扫描码
  oe_138=0;     // 开138 显示该行数据
  Delay(100);     // 延时一会
  oe_138=1;     // 关138
     }
   }
}

===========================  《 完   ==========================
薛二炜    于福建·宁德
2012  年 11  月  10  日
smhacker@126.com  QQ 584939513  转载请注明出处
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏4 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:79544 发表于 2016-3-7 12:32 | 只看该作者
楼主的测试程序是显示函数把,不是移动函数?
回复

使用道具 举报

板凳
ID:104637 发表于 2016-3-21 22:06 | 只看该作者
工程量巨大啊
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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