找回密码
 立即注册

QQ登录

只需一步,快速开始

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

单片机16*16点阵汉字显示仿真加源码 用74hc595驱动芯片

  [复制链接]
跳转到指定楼层
楼主
单片机16*16点阵仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)

点阵由于电流比较大不能直接接单片机所以用74hc595驱动串转并芯片,还可以实现用很少的io口来控制.



单片机源程序如下:
  1. #include "reg51.h"

  2. #define uchar unsigned char
  3. #define uint  unsigned int

  4. #define Lie   P1

  5. sbit SHCP = P2^0;
  6. sbit  DS  = P2^1;
  7. sbit STCP = P2^2;

  8. uchar code led[ ] ={
  9. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

  10. 0x08,0x40,0x08,0x40,0x0A,0x48,0xEA,0x4B,0xAA,0x4A,0xAA,0x4A,0xAA,0x4A,0xFE,0x7F,
  11. 0xAA,0x4A,0xAA,0x4A,0xA9,0x4A,0xF9,0x4B,0x29,0x48,0x0C,0x60,0x08,0x40,0x00,0x00, // 重

  12. 0x00,0x40,0x00,0x20,0xFC,0x9F,0x44,0x80,0x44,0x40,0x44,0x20,0x44,0x18,0x45,0x06,
  13. 0xFE,0x01,0x44,0x06,0x44,0x18,0x44,0x20,0x66,0x40,0x44,0xC0,0x00,0x40,0x00,0x00, //庆

  14. 0x80,0x80,0x80,0x40,0xFC,0x3F,0x96,0x02,0xA5,0x44,0x84,0x80,0xFC,0x7F,0x08,0x80,
  15. 0x08,0x40,0xC9,0x3F,0x4A,0x00,0x4E,0x00,0xE8,0x3F,0x4C,0x40,0x08,0x70,0x00,0x00, //航

  16. 0x40,0x80,0x42,0x80,0x42,0x40,0x42,0x20,0x42,0x10,0x42,0x0C,0x42,0x03,0xFE,0x00,
  17. 0x42,0x03,0x42,0x0C,0x42,0x10,0x42,0x20,0x43,0x40,0x62,0xC0,0x40,0x40,0x00,0x00,         //天

  18. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

  19. };


  20. //uchar led[]={}

  21. void shift16bit(uchar dat1,uchar dat2)  //595输出16位数据
  22. {
  23. uchar i;
  24. STCP=0;        
  25. for(i=0;i<8;i++)
  26.   {
  27.    SHCP=0;
  28.    if(dat1 &0x80) DS=1;
  29.      else DS=0;
  30.     dat1<<=1;
  31.    SHCP=1;
  32.   }
  33.   for(i=0;i<8;i++)
  34.   {
  35.    SHCP=0;
  36.    if(dat2 &0x80) DS=1;
  37.      else DS=0;
  38.     dat2<<=1;
  39.    SHCP=1;
  40.   }
  41. STCP=1;
  42. }

  43. void delay(uint x)
  44. {
  45. uint i;
  46. for(i=0;i<x;i++);
  47. }

  48. void main()
  49. {
  50. uchar i,x=0;
  51. uint n;

  52. while(1)
  53. {
  54. for(n=0;n<10;n++)
  55. for(i=0;i<16;i++)
  56.   {
  57.    Lie=i;
  58.    shift16bit(led[2*i+1+2*x],led[2*i+2*x]);
  59.    delay(100);
  60.   }
  61.   x++;
  62. if(x==64) x=0;

  63. /*
  64. for(n=0;n<100;n++)
  65. ……………………

  66. …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码

所有资料51hei提供下载:
16by16点阵.rar (226.09 KB, 下载次数: 136)


评分

参与人数 1黑币 +3 收起 理由
未冬季 + 3 赞一个!

查看全部评分

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

使用道具 举报

沙发
ID:290911 发表于 2018-5-16 14:30 | 只看该作者
谢谢,正好需要
回复

使用道具 举报

板凳
ID:448139 发表于 2018-12-17 16:47 | 只看该作者
赞一个,good啊
回复

使用道具 举报

地板
ID:378732 发表于 2018-12-19 06:23 | 只看该作者
有没有四片595的程序
回复

使用道具 举报

5#
ID:550522 发表于 2019-6-10 22:50 | 只看该作者
dat1不需要初始值吗
回复

使用道具 举报

6#
ID:569367 发表于 2019-6-22 12:28 来自手机 | 只看该作者
插旗  待会回来
回复

使用道具 举报

7#
ID:529757 发表于 2019-7-8 19:06 | 只看该作者
还不错
回复

使用道具 举报

8#
ID:683656 发表于 2020-1-8 23:44 | 只看该作者
太强了
回复

使用道具 举报

9#
ID:683656 发表于 2020-1-8 23:45 | 只看该作者
太强了,谢谢楼主
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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