找回密码
 立即注册

QQ登录

只需一步,快速开始

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

单片机+74HC138驱动的16*16LED点阵显示屏仿真与源程序

  [复制链接]
跳转到指定楼层
楼主
ID:365178 发表于 2018-7-4 21:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
2个74HC138芯片驱动的16*16led点阵显示仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)


制作出来的实物图:


单片机源程序如下:
  1. #include<reg51.h>
  2. #include<intrins.h>
  3. #define uchar unsigned char
  4. #define uint unsigned int
  5. #define data1 P0
  6. #define data2 P2
  7. sbit s1=P3^6;
  8. sbit s2=P3^7;
  9. bit fangxiang;
  10. uint alt=0,net=0,sl=288;
  11. bit mode;
  12. uchar code tab[]={
  13. //  (0)  (1) 老(2) 师(3) ,(4) 你(5) 辛(6) 苦(7) 了(8) !
  14. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*" ",0*/
  15. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*" ",1*/

  16. 0x02,0x10,0x22,0x10,0x22,0x20,0x22,0x20,0x22,0x40,0x22,0x7C,0xFE,0x92,0x23,0x12,
  17. 0x23,0x22,0x22,0x22,0x26,0x42,0x2A,0x42,0x72,0x02,0x22,0x0E,0x02,0x00,0x00,0x00,/*"老",2*/

  18. 0x00,0x02,0x3F,0xE4,0x00,0x08,0x00,0x70,0xFF,0x80,0x00,0x00,0x4F,0xF0,0x48,0x00,
  19. 0x48,0x00,0x48,0x00,0x7F,0xFF,0x48,0x00,0x48,0x20,0x48,0x10,0x4F,0xE0,0x00,0x00,/*"师",3*/

  20. 0x00,0x00,0x00,0x00,0x00,0x1A,0x00,0x1C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  21. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*",",4*/

  22. 0x01,0x00,0x02,0x04,0x0C,0x1C,0x3F,0xC0,0xC0,0x1C,0x09,0x02,0x16,0x02,0x60,0x92,
  23. 0x20,0x4A,0x2F,0x82,0x20,0x02,0x24,0x0E,0x22,0x00,0x31,0x90,0x20,0x0C,0x00,0x00,/*"您",5*/

  24. 0x01,0x00,0x21,0x20,0x21,0x20,0x29,0x20,0x25,0x20,0x23,0x20,0xA1,0x20,0x61,0xFF,
  25. 0x21,0x20,0x23,0x20,0x25,0x20,0x29,0x20,0x21,0x20,0x21,0x00,0x01,0x00,0x00,0x00,/*"辛",6*/

  26. 0x02,0x00,0x22,0x00,0x22,0x00,0x22,0x7E,0x22,0x44,0xFA,0x44,0x22,0x44,0x2F,0xC4,
  27. 0x22,0x44,0x22,0x44,0xFA,0x44,0x22,0x7E,0x22,0x00,0x22,0x00,0x22,0x00,0x00,0x00,/*"苦",7*/

  28. 0x00,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x40,0x02,0x40,0x01,0x4F,0xFE,
  29. 0x48,0x00,0x50,0x00,0x50,0x00,0x60,0x00,0x60,0x00,0x40,0x00,0x00,0x00,0x00,0x00,/*"了",8*/

  30. 0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0xFA,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  31. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*"!",9*/

  32. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*" ",14*/
  33. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*" ",15*/
  34. };

  35. void delay(uint z)           //延时子函数
  36. {
  37.    uchar x;
  38.    for(;z>0;z--)
  39.    for(x=110;x>0;x--);
  40. }

  41. void xianshi()                        //显示
  42. {
  43.         uchar aa,i;
  44.         for(i=0;i<16;i++)
  45.         {
  46.                 P1=i; //列扫描
  47.                 data1=tab[net+aa]; //取出上8行数据输出
  48.                 aa++;
  49.                 data2=tab[net+aa]; //取出下8行数据输出
  50.                 aa++;
  51.                 delay(5);        //延时
  52.                 data1=0;  //清屏
  53.                 data2=0;  //清屏
  54.                 P1=0x00;  //消除余辉
  55.                 if(aa>30) aa=0;  //字模地址
  56.         }        
  57.         
  58. }

  59. void main()         //主函数
  60. {
  61.    ET1=1;         //使能定时器0
  62.    EA=1;         //开启总中断
  63.    TR1=1;        //开始计数
  64.    while(1)         //无限循环
  65.    {
  66.            xianshi();  //显示
  67.            if(s1==0)   //检测按键
  68.            {
  69.               delay(30);  //延时消抖
  70.                   TR1=~TR1;          //按下暂停  ,暂按继续
  71.                   while(!s1)xianshi();
  72.                   delay(30);
  73.            }
  74.            if(s2==0)        //检测按键
  75.            {
  76.                delay(30);                        //延时消抖
  77.                    fangxiang=~fangxiang;  //方向取反
  78.                    while(!s2)xianshi();
  79.                    delay(30);
  80.            }
  81.          }
  82. }

  83. void timer1() interrupt 3
  84. {

  85.    alt++;
  86.    if(alt==10)                   //到一定的时间加以实现左移
  87.    {
  88.      alt=0;
  89.          if(fangxiang==0)         //如果是正向 正向移动
  90.          {
  91.                  net=net+2;
  92.              if(net>sl)  //字移动数量
  93.              net=0;
  94.          }
  95.          else                           //否则反向移动
  96.          {
  97.              net=net-2;
  98.                  if(net<2)
  99.                  net=sl;          //字移动数量
  100.          }
  101.    }
  102.    
  103. }
复制代码


所有资料51hei提供下载:

71-138LED点阵.zip (103.22 KB, 下载次数: 224)


评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏7 分享淘帖 顶1 踩
回复

使用道具 举报

沙发
ID:365178 发表于 2018-7-4 21:35 | 只看该作者
有什么问题可以问我
回复

使用道具 举报

板凳
ID:110875 发表于 2018-12-9 11:00 | 只看该作者
楼主,您好,能不能发一份焊接图,谢谢
回复

使用道具 举报

地板
ID:441717 发表于 2018-12-9 14:01 | 只看该作者
王欣250 发表于 2018-7-4 21:35
有什么问题可以问我

字模咋去的?
我咋都上呢?
回复

使用道具 举报

5#
ID:441717 发表于 2018-12-9 14:23 | 只看该作者
王欣250 发表于 2018-7-4 21:35
有什么问题可以问我

能来份电路图?
回复

使用道具 举报

6#
ID:442642 发表于 2018-12-9 14:27 来自手机 | 只看该作者
可以加QQ问你么
回复

使用道具 举报

7#
ID:441717 发表于 2018-12-10 15:10 | 只看该作者
王欣250 发表于 2018-7-4 21:35
有什么问题可以问我

共阳还是共阴?
回复

使用道具 举报

8#
ID:59552 发表于 2018-12-10 23:21 | 只看该作者
这不是我设计的点阵么,
回复

使用道具 举报

9#
ID:348399 发表于 2018-12-16 16:53 | 只看该作者
楼主,你好,你的这个点阵如何取模啊,我用平常的取模软件后发现显示错误。请问你是如何取模的
回复

使用道具 举报

10#
ID:348399 发表于 2018-12-16 16:59 | 只看该作者
王欣250 发表于 2018-7-4 21:35
有什么问题可以问我

楼主你好,你的这个是怎么取模的
回复

使用道具 举报

11#
ID:353060 发表于 2019-1-4 22:45 | 只看该作者
谢谢大佬                        
回复

使用道具 举报

12#
ID:398209 发表于 2019-3-31 17:50 | 只看该作者
楼主你好,请问程序之中为什么aa>30   有点不明白
回复

使用道具 举报

13#
ID:691884 发表于 2020-2-10 23:06 | 只看该作者
你好,想具体询问下138和599两个芯片在电路中具体有什么作用呢。想加QQ具体聊
回复

使用道具 举报

14#
ID:778635 发表于 2020-6-21 15:45 | 只看该作者
下载了,谢谢分享
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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