《匠人手记》推荐网上购书渠道:
互动出版网(china-pub)购书入口   >>>
当当网(dangdang)购书入口   >>>
卓越亚马逊网 购书入口   >>>
淘宝网(taobao)购书入口   >>>
更多购书渠道……   >>> 

设为首页加入收藏联系匠人管理入口21IC首页21IC博客21IC社区侃单片机回复的贴参与的贴

天气预报
百宝日历
载入中...

百宝专栏

载入中...
最新货色

载入中...

粉丝评论

载入中...

载入中...



百宝信息

载入中...

百宝流量

(2006-07-01开始)


匠人手记

 匠人观点: 好记性不如烂笔头  
 黑色幽默:三鹿门——后世畅想

关于led显示的一点粗浅经验之谈
程序匠人 发表于 2005-9-27 10:56:00  阅读全文 | 回复(1) | 引用通告 | 编辑

 关于led显示的一点粗浅经验之谈, 大家多多指教 作者[秋雨]?
--- 摘自《C51BBS离线版光盘》---

    这段时间有不少朋友在作led显示, 问了我不少问题, 一一回答总是找不到要点在此我把我几年来作led的一点经验总结以下,
作为对大家回答, 希望对大家有点启发, 也作为抛砖引玉吧, 大虾们多谈谈自己的宝贵经验!

一: LED显示器件的基础
  LED发光器件一般常用的有2类、数码管和点阵
   1:数码管
      a,数码管常用的一般8字型,分为A B C D E F G P段,其中P位小数点
      b,数码管常用的有10根管脚(单位),每段一根管脚,另外两根管脚为公共端,2根是通的
      c,从尺寸上分的话种类很多, 常用的有0.3 0.5 0.8 1.0 1.2 1.5 1.8 2.3 3.0 4.0 5.0 等等
      d,一般小于1.0的为单管芯,(1.0有单有双),1.2~~1.5为双管芯,1.8以上为3个以上的管芯, 因而他们的供电电压要求不同,
        一般每个关芯的压降为2.1v左右, 我的经验是0.8以下5v供电,1.0~2.3为12v,3.0以上更高
      e,数码管分共阴和共阳两种

   2:点阵
      a,点阵常用的为8*8,以前还有5*8(现在不大用了)
      b,点阵都是单管芯,分(行)共阴和(行)共阳,一般都用5v供电
      c,8*8点阵为16根管脚(单色, 也有24根的, 可能是作废的双色点阵或者为了能在同一种线路板上实现单色双色都可用而设计
        的, 也比较常见)8根行8根绿,双色为24根管脚, 8根行, 8根列红, 8根列绿。
     
二: 显示基本原理
    分为静态(只有数码管能实现)和动态
  1:静态的比较好实现,在此不多讲了
  
  2:数码管动态

    a,硬件连接
      数码管一般为1/13 能扫描, 再高的话亮度损失比较大,在此假设为列为13列, 行为16行, 共阳管, 每行数码管的各段连在
      一起,每列数码管的公共段连在一起. 列开关用tip127, 他可以直接用154驱动, 达林顿管5安培, 注意127输出不要加电阻
      行用595(164不建议)+2803或者2003+一个9013, 在2003的输出要加上限流电阻,一般为56~330欧姆(如果是<1.0的数码管,
      可以直接用595加电阻驱动)

    b,软件
     
      采用89c51为cpu, 存储器可采用24c系列, 或者28c系列, 注意他们的写入速度都不是很快, 不过一般数码管的输入设备为
      键盘或遥控器, 速度足够了, 还有24c系列的读出速度也比较慢, 我发现每次读出的数据大概只有20以内才不会影响更新显
      示显示采用时钟中断1, 中断时间不能超过1.5ms, 最好为1.2ms左右, 可以在中断服务程序中读24c02, 也可以在中断的间
      隙中读取, 但必须保证能够读出所有的一列数据! 读出的数据放到一块显示区中, (在内存中定义一个数组buf[16]), 在中
      断子程序中把数据发送的595中即可, 最好采用串口发送, 编程最简单.

      发送完毕后,关掉控制行的154, 给595的RCLK(12脚)一个脉冲, 把数据从移位寄存器传输到锁存器, 而后打开154并输入列
      信号即可

  3: 点阵

       a,点阵一般采用1/16扫描,控制原理和数码管差不多

       b,硬件: 行用154+tip127,列用595加电阻(0~56欧姆)直接驱动

       c,软件: 方案比较多,见下面

三: 先说说信息的存储       
      分为2种,
     1:一种为固化的汉字, 汉字点阵信息存于27c256 中, 最多存1024个16*16 点阵汉字, 要修改只能重新写27c256, 优点是不丢
        失, 一般我们为银行做的都是这种, 他很少修改显示能容, 而且以后每次修改可以收费(哈哈~~~),缺点是不灵活
     
     2: 另一种是可以用户自己修改的, 修改方式又分为2种, 早期一般用键盘或者遥控器修改, 那样必须在主办上固化有汉字字
        库, 可用27c040固化ucdos的hzk16全角字库和asc16半角字库, 用户输入区位吗进行修改, 用户需要显示的汉字以区位码的
        方式存到一片E2POM中, 显示的时候程序根据区位吗读取点阵信息送到屏上显示, 还有一种近年来常用的方式就是利用微机
        串口进行修改,这里面还分为两种
        A,控制板上没有字库, 微机发送的是显示的点阵信息, 控制板接受后把信息存到带电池的RAM中(也可用E2PROM,但速度
          很慢), 这种的缺点是掉电池的RAM不太可靠, 常常丢失信息
        B,控制板上带字库, 微机发送汉字的机器码(内码)即可, 其他同上

四: 显示的控制
  
    信息的发送可以有好多方式, 根据采用器件的不同而不同, 有的厂家采用374控制而不采用595, 那样的话直接写一个外部端口
即可, 374级连方式, (如果用1 排374 的话在传输中必须关掉显示, 显示字较多的话影响亮度, 用2 排374 不必关掉显示但增加硬
件成本), 目前用得较少了,595的很常见。 发送可以用传口, 很简单, 也可以用别的口模拟串口发送 (因为传口还有可能随时接
受微机的信号), 也可以采用串口复用 (不过我不会,:)~~)
    我采用的是用 374+165 向595 发送数据, 硬件比较复杂, 但是在以后的显示花样中很好用! 特别是左右移位, 爽极了!
    提示一下: 最近用双龙的90S8515发现很好, 因为他还有一个SPI口, 用来送595信号更爽! 速度可到3M,(12M晶体), 强烈建议
    大家用这种芯片(靠, 也不知到双龙看到了会不会给点奖励....)

五: 一些注意事项:

    1: 显示时间,每行<1.5MS
    2: 根据经验,89C51 12M晶体最大控制48个16*16点阵,再大的话可以提高晶体频率和优化程序,(就是发送程序的时间最短)
    3: 在显示的字比较多时, 一定要注意发送子程序的代码效率, 因为发送是一个循环, 所以循环体内的处理越快越好, 大家现在
       大都用C51, 更得注意, 我可是吃过亏的。

大家看下面的例子:
if(hangno==0x10)hangno=0;             //hangno为显示的行序号
 for(i=0;i<32;i++)
    {
     PORT1=*(addr+hangno*0x600+i);    //我的汉字信息是0~600为第一行信息
                                      //600~0c00为第二行信息...
     PORT2=0x0ff;
    }

每次发送32个字节(16个字), 程序编译通过, 没有问题, 可是当显示64个汉字时(假设)显示就乱了, 后来改为 
     
if(hangno==0x10)hangno=0;             //hangno为显示的行序号
  w=hangno*0x600;
 for(i=0;i<128;i++)
    {
     PORT1=*(addr+w+i);               //我的汉字信息是0~600为第一行信息
                                      //600~0c00为第二行信息...
     PORT2=0x0ff;
    }

就没有问题了, 大家自己看看, 就知道原因了, 对吧?
  

写了这么多, 想到那些到那, 很不系统, 不过好累呀, 我下两盘军旗放松放松, 大家多提提意见, 这只是讲的小屏的控制方法
(<2m2), 大屏的完全不同, 有人感兴趣的话以后再谈.
 
 
Copyright? 2001-2003, 晓奇工作室 E-Mail:info*xiao-qi.com 
 

 

看《匠人手记》,与匠人同行!北航出版,正在热卖!

Re:关于led显示的一点粗浅经验之谈
我(游客)发表评论于2007-12-16 11:10:00  个人主页 | 引用 | 返回 | 删除 | 回复

我(游客)我顶啊

看《匠人手记》,与匠人同行!北航出版,正在热卖!

发表评论:
载入中...

芯片专题

器件专题

软件专题

硬件专题

综合专题

项目专题

原创专题

器件检测
LCD LED
按键 触摸键
E2PROM
电池 电机
电阻 电容 电感

指令系统
软件算法
编程规范
滤波算法
串行通讯

PCB设计
I2C PWM
红外遥控
充电技术
中断 ADC 

匠人手记
匠人夜话
网络心路
一周热点串烧
从零开始玩PIC
DIY旋转时钟

广告5号位 [投放]


学习板、开发板、编程器、下载器、仿真器(查看详情……)

广告3号位 [投放]

站内搜索


站外搜索


百度  google
mp3  歌词 
图片  FLASH 
知道  文档
新闻  词典 
地图  mp3 
软件  天网 
雅虎  爱问 
搜狗  讯雷 
网讯  华军 
天空 

21IC器件搜索
百宝箱分站
  • 《匠人的百宝箱》21IC站
  • 《匠人的百宝箱》21IC笔记团队
  • 《匠人手记》21IC书友会
  • 《匠人的百宝箱》MCUBLOG站
  • 《匠人的百宝箱》MCUBLOG笔记团队
  • 《匠人的百宝箱》EDN站
  • 《匠人手记》EDN书友会
  • 《匠人的百宝箱》与非网站
  • 《匠人的百宝箱》新浪站
  • 《匠人的百宝箱》百度站
  • 《匠人的百宝箱》网易126站
  • 《匠人的百宝箱》网易163站
  • 《匠人的百宝箱》互动出版网站
  • 广告4号位 [投放]

     
     

    匠人原创

    往日酷贴

     
     
     

    大千八卦

    友情连接

    新浪新闻:
    新浪财经:
    AK58新闻:
    新浪股票:
    新浪股票:
    证券之星:

     [更多酷站连接]

     

     

    [欢迎交换连接]

    [百宝箱之与非门分舵]

    [电脑圈圈的家当]

    [IC921的博客]

    [柔月阁]

    [八楼的呼吸]

    [hotpower 的水潭]

    [xwj的文君阁]

    [所长的BLOG]

    [阿摆手记]

    [电子伙伴]

    [unaided的笔记]

    [小飞的笔记]

    [单片机开发联盟]

    [网址之家]

    [好东西网址大全]

    [美萍中文精选]

    [数字电视之家]

    [SMARTCODE电子书斋]

    [软件开发之窗]

    [Armoric]

    [我爱研发网]

    [infernal的笔记]

    [雄鹰的空中加油站]

    [SunK]

    [逍遥电子]

    [ningpanda的博客]

    [C-Design]

    [一网见天下]

    [海边淘沙]

    [嵌入式365]

    [水牛的仓库]

    [股剩是怎样炼成的]

    [PIC论坛]

    [ICC AVR开发网]

    [中国高校自动化网]

     

     

     

    MCU博客-中国电子工程师博客网 

    大学生电子网 

     

     

     

     

     

    !!! 《匠人的百宝箱》 !!!