标题: AT89C51单片机LED16x16点阵显示屏程序及仿真 [打印本页]

作者: 51mcu    时间: 2017-2-5 10:45
标题: AT89C51单片机LED16x16点阵显示屏程序及仿真
        这是一款AT89C51单片机LED16x16点阵显示屏程序,使用AT89C51单片机,16*16点阵屏驱动使用了两片74HC154集成电路,整个电路非常简洁,使用的元件比较少,方便布线。压缩文件中附上了16*16点阵字模取模软件及使用示例图片,同时给出了仿真文件,方便使用学习。

AT89C51单片机LED16x16点阵显示屏程序及仿真.zip (630.88 KB, 下载次数: 375)


















单片机源程序:
  1. #include <reg51.h>
  2. #define u8 unsigned char
  3. #define u16 unsigned int
  4. sbit a=P2^4;   //154芯片使能
  5. sbit b=P2^5;
  6. u8 code led[][32]={
  7. {0x02,0x02,0xFA,0x4A,0x4A,0x4A,0x4A,0xFE,0x4A,0x4A,0x4A,0x4A,0xFE,0x0B,0x02,0x00,
  8. 0x80,0x80,0x87,0x42,0x46,0x2A,0x12,0x2F,0x22,0x42,0x42,0x42,0x87,0x80,0x80,0x00,},// 更
  9. {0x00,0x00,0x20,0x10,0x98,0xA4,0x47,0x24,0xE4,0x14,0x0C,0x04,0x00,0x00,0x00,0x00,
  10. 0x00,0x81,0x91,0x89,0x44,0x44,0x4A,0x31,0x11,0x11,0x09,0x05,0x03,0x01,0x00,0x00,},// 多
  11. {0x00,0x00,0xF8,0x49,0x4A,0x4C,0x48,0xF8,0x48,0x4C,0x4A,0x49,0xFC,0x08,0x00,0x00,
  12. 0x10,0x10,0x17,0x12,0x12,0x12,0x12,0xFF,0x12,0x12,0x12,0x12,0x13,0x18,0x10,0x00,},//单
  13. {0x00,0x00,0xFE,0x20,0x20,0x20,0x20,0x20,0x3F,0x20,0x20,0x20,0x20,0x30,0x20,0x00,
  14. 0x80,0x40,0x3F,0x01,0x01,0x01,0x01,0x01,0x01,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,},//片
  15. {0x10,0x10,0xD0,0xFF,0x90,0x10,0x00,0xFC,0x04,0x04,0x04,0xFE,0x04,0x00,0x00,0x00,
  16. 0x04,0x03,0x00,0xFF,0x80,0x41,0x20,0x1F,0x00,0x00,0x00,0x3F,0x40,0x40,0x70,0x00,},//机
  17. {0x24,0x24,0xA4,0xFE,0xA3,0x22,0x20,0x7E,0x42,0x42,0x42,0x42,0x42,0x7F,0x02,0x00,
  18. 0x08,0x06,0x01,0xFF,0x00,0x43,0x41,0x49,0x49,0x49,0x7F,0x49,0x4D,0x69,0x41,0x00,},//程
  19. {0x00,0x00,0xFC,0x04,0x14,0x14,0x14,0x55,0x96,0x54,0x34,0x14,0x16,0x04,0x00,0x00,
  20. 0x40,0x30,0x0F,0x00,0x01,0x01,0x41,0x81,0x7F,0x01,0x01,0x05,0x03,0x01,0x00,0x00,},//序
  21. {0x80,0x40,0x20,0xF8,0x07,0x10,0x10,0x10,0xF1,0x96,0x90,0x90,0xD0,0x98,0x10,0x00,
  22. 0x00,0x00,0x00,0xFF,0x00,0x80,0x40,0x30,0x0F,0x40,0x80,0x40,0x3F,0x00,0x00,0x00,},//仿

  23. {0x00,0x04,0x04,0xF4,0x54,0x54,0x54,0x5F,0x54,0x54,0x54,0xFC,0x16,0x04,0x00,0x00,
  24. 0x10,0x10,0x90,0x5F,0x35,0x15,0x15,0x15,0x15,0x15,0x35,0x5F,0xD0,0x18,0x10,0x00,},//真
  25. {0x20,0x22,0xEC,0x00,0x20,0x22,0xAA,0xAA,0xAA,0xBF,0xAA,0xAA,0xEB,0xA2,0x20,0x00,
  26. 0x00,0x00,0x7F,0x20,0x10,0x00,0xFF,0x0A,0x0A,0x0A,0x4A,0x8A,0x7F,0x00,0x00,0x00,},//请
  27. {0x00,0x62,0x52,0x4A,0xC6,0x42,0x52,0x63,0xC2,0x00,0xF8,0x00,0x00,0xFF,0x00,0x00,
  28. 0x40,0x42,0x42,0x42,0x7F,0x22,0x23,0x22,0x20,0x00,0x0F,0x40,0x80,0x7F,0x00,0x00,},//到
  29. {0x00,0xF8,0x48,0x48,0x48,0x48,0xFF,0x48,0x48,0x48,0x48,0xFC,0x08,0x00,0x00,0x00,
  30. 0x00,0x07,0x02,0x02,0x02,0x02,0x3F,0x42,0x42,0x42,0x42,0x47,0x40,0x70,0x00,0x00,},//电
  31. {0x80,0x80,0x82,0x82,0x82,0x82,0x82,0xE2,0xA2,0x92,0x8A,0x86,0x80,0xC0,0x80,0x00,
  32. 0x00,0x00,0x00,0x00,0x00,0x40,0x80,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,},//子
  33. {0x00,0x80,0xC0,0xBC,0x84,0x84,0x84,0xF4,0x82,0x82,0x83,0x82,0x80,0xC0,0x80,0x00,
  34. 0x00,0x40,0x20,0x10,0x0C,0x40,0x80,0x7F,0x00,0x00,0x04,0x08,0x30,0x60,0x00,0x00,},//乐
  35. {0x00,0x00,0xFE,0x0A,0x2A,0x2A,0xAA,0x6A,0x2A,0x2A,0xAA,0x2A,0x2F,0x22,0x00,0x00,
  36. 0x40,0x30,0x4F,0x48,0x48,0x49,0x49,0x49,0x7F,0x49,0x49,0x49,0x4C,0x68,0x40,0x00,},//屋

  37. };

  38. void delay(u16 ms)
  39. {
  40.          u8 s=0;
  41.     while(--ms)
  42.                 {
  43.                    for(s=0;s<88;s++);
  44.                 }
  45. }

  46. u8 K=0;


  47. void LedScan(u8 x)                 
  48. {  
  49.     static u8 i = 0;
  50.             
  51.     for(i=0;i<16;i++)            //上半屏显示
  52.    {a=0;
  53.     b=1;
  54.      P2 = (P2 & 0xf0) | i;
  55.                    P0=led[x][i];
  56.                  delay(2);
  57.    }
  58.     for(i=0;i<16;i++)            //下半屏显示
  59.    {
  60.                  a=1;
  61.      b=0;        
  62.      P2 = (P2 & 0xf0) | i;
  63.                    P0=led[x][i+16];
  64.                  delay(2);
  65.    }                     
  66. }

  67. void main()
  68. {   
  69.          
  70.           a=1;      
  71.           b=1;
  72.         TMOD = 0x01;      
  73.     TH0 = 0x0D8;
  74.     TL0 = 0x0F0;
  75.     EA = 1;
  76.     ET0 = 1;
  77.     TR0 = 1;

  78.     while(1)
  79.                 {
  80.                         LedScan(K);         
  81.                 }
  82. }

  83. void Timer0Interrupt(void) interrupt 1
  84. {
  85.          static u16 dd=0;
  86.     TH0 = 0x0D8;
  87.     TL0 = 0x0F0;
  88.     dd++;
  89.         if(dd==50)
  90.         { dd=0;
  91.           K++;
  92.                
  93.                 if(K==15)//显示的字数个数
  94.                 {K=0;}
  95.         }
  96. }
复制代码

作者: yuan2016    时间: 2017-2-8 09:42
正需要单片机LED16x16点阵显示屏程序资料,谢谢。
作者: lithium    时间: 2017-12-6 14:04
感谢楼主上传的仿真图及程序
作者: 六河    时间: 2017-12-13 15:44
楼主6666
作者: wwtor    时间: 2018-4-9 22:58
谢谢楼主的图和程序,受用了
作者: 任媛    时间: 2018-4-11 16:21
我需要你的原理图

作者: wmsh2018    时间: 2018-4-15 21:46
感谢楼主!!
作者: 无敌123    时间: 2018-4-16 09:41
正好需要
作者: 无敌123    时间: 2018-4-16 09:42
真的很有用,谢谢楼主。
作者: bilibili02    时间: 2018-6-6 20:41
感谢楼主!!
作者: 240148812    时间: 2018-6-7 22:52
感谢楼主 正好学到矩阵,不会用液晶屏
作者: 听雪    时间: 2018-6-12 14:42
感谢楼主,正需要
作者: 小胖子迷你版    时间: 2018-6-28 18:23
楼主protus的16*16点阵是直接连的?但是我的没有,可以用8*8的4个接一起吗
作者: xx.    时间: 2018-9-9 15:37
这个我现在正好需要,谢谢楼主
作者: falirong1234    时间: 2018-10-19 22:10
太好了,谢谢楼主!
作者: 15233576689    时间: 2018-10-24 08:07
很给力
作者: 与田祐希    时间: 2018-10-28 15:07
谢谢楼主,学习了
作者: 沙漠    时间: 2018-10-29 23:29
现在正缺这个资料,谢谢楼主了
作者: 980624020    时间: 2018-10-30 14:18

谢谢楼主,学习了
作者: 单片机小白2018    时间: 2018-12-18 17:46
大佬些,16x16led怎么连啊
作者: Shawn666    时间: 2018-12-24 14:05
正好可以用 谢谢楼主
作者: 870288202    时间: 2019-1-7 13:59
谢谢楼主
作者: fangdaye    时间: 2019-1-8 00:58
感谢楼主!!
作者: 孙同学啊    时间: 2019-5-29 15:08
问一下楼主我想改字改怎么改呀,具体教程
作者: 梦深时间你    时间: 2019-5-29 17:54
真的很好!
作者: 阿撒托斯    时间: 2019-6-21 14:22

正好可以用 谢谢楼主
作者: d917419982    时间: 2019-12-16 22:12

真的很有用,谢谢楼主。
作者: niehangshi    时间: 2020-6-18 16:12
你好,请问您想要同时显示6个汉字该怎么改呀,希望得到您的回复
作者: woyuchengxian    时间: 2020-6-18 21:26
做得很好,我觉得对我有用




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1