找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3333|回复: 8
收起左侧

求16*16LED点阵原理

[复制链接]
ID:99188 发表于 2016-6-19 19:17 | 显示全部楼层 |阅读模式
求哪位好心学长给基于51单片机的16*16LED点阵原理及程序。要有详细的过程讲解。
回复

使用道具 举报

ID:1 发表于 2016-6-19 21:01 | 显示全部楼层
还是先看下单片机点阵显示的详细教程吧:http://www.51hei.com/bbs/dpj-19894-1.html
回复

使用道具 举报

ID:99188 发表于 2016-6-20 08:40 | 显示全部楼层
谢谢主人。太感谢了。
回复

使用道具 举报

ID:111634 发表于 2016-6-20 21:57 | 显示全部楼层
本帖最后由 zl2168 于 2016-6-20 21:58 编辑

实例66  LED 16×16点阵显示汉字


Proteus仿真一下,确认有效。
实例66a LED 16×16点阵汉字显示.rar (48.21 KB, 下载次数: 32)
回复

使用道具 举报

ID:127660 发表于 2016-6-22 13:17 | 显示全部楼层
这个我做过,,,听简单的吧
回复

使用道具 举报

ID:99188 发表于 2017-4-22 16:18 | 显示全部楼层
谢谢学长,好久没来单片机论坛了。
回复

使用道具 举报

ID:122949 发表于 2017-4-22 18:05 | 显示全部楼层
//Note: 74HC595驱动  //      __                   __ //Note: MR 主复位接电源正极, OE 使能端,输出有效接电源负极   /*--------------------------------------------*/ #ifndef __74HC595_H__ #define __74HC595_H__    /*--------------------------------------------*/ sbit SD           = P1^4;        //串行数据输入 sbit ST_CK = P1^5;        //存储寄存器时钟输入 sbit SH_CK = P1^6;        //移位寄存器时钟输入     /*--------------------------------------------*/ //数码管断码和位码的定义 //unsigned char code seg[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,0x00,0xff};                           //0   1    2    3    4    5    6    7    8    9    a    b    c     d    e     f    8   无 //unsigned char code pos[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};                           //1    2    3   4    5    6     7   8   /*--------------------------------------------*/ //函数声明 void Ser_IN(unsigned char Data);        //串行数据输入 void Par_OUT(void);                                        //串行数据输出 //void Ser_Par(unsigned char Data);        //串行输入,并行输出    /*--------------------------------------------*/ //串行数据输入 void Ser_IN(unsigned char Data) {         unsigned char i;         for(i = 0; i < 8; i++)         {                 SH_CK = 0;                        //CLOCK_MAX=100MHz                 SD = Data & 0x80;                 Data <<= 1;                 SH_CK = 1;         } }    /*--------------------------------------------*/ //并行数据输出 void Par_OUT(void) {         ST_CK = 0;         ST_CK = 1; }    /*--------------------------------------------*/ //串行输入,并行输出 /*void Ser_Par(unsigned char Data) {         Ser_IN(Data);         Par_OUT(); } */   /*--------------------------------------------*/ #endif
回复

使用道具 举报

ID:122949 发表于 2017-4-22 18:06 | 显示全部楼层
#include <AT89X52.H>  #include "74HC595.H" unsigned char code tab[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};  unsigned char code digittab[10][8]={   //字模取模方式 阴码 逆向 逐列式 {0x00,0x00,0x3E,0x41,0x41,0x3E,0x00,0x00},/*"0",0*/  {0x00,0x00,0x42,0x7F,0x40,0x00,0x00,0x00},/*"1",1*/  {0x00,0x00,0x62,0x51,0x49,0x46,0x00,0x00},/*"2",2*/  {0x00,0x00,0x22,0x49,0x49,0x36,0x00,0x00},/*"3",3*/  {0x00,0x00,0x38,0x26,0x7F,0x20,0x00,0x00},/*"4",4*/  {0x00,0x00,0x4F,0x49,0x49,0x31,0x00,0x00},/*"5",5*/  {0x00,0x00,0x3E,0x49,0x49,0x32,0x00,0x00},/*"6",6*/  {0x00,0x00,0x03,0x71,0x09,0x07,0x00,0x00},/*"7",7*/  {0x00,0x00,0x36,0x49,0x49,0x36,0x00,0x00},/*"8",8*/  {0x00,0x00,0x26,0x49,0x49,0x3E,0x00,0x00},/*"9",9*/ }; unsigned int timecount;  unsigned char cnta;  unsigned char cntb;  void main(void)  {    TMOD=0x01;    TH0=(65536-1000)/256;    TL0=(65536-1000)%256;    TR0=1;    ET0=1;    EA=1;    while(1);  }   void t0(void) interrupt 1 using 0   {    TH0=(65536-1000)/256;    TL0=(65536-1000)%256;          Ser_IN(tab[cnta]);//8X8点阵列扫描         Ser_IN(digittab[cntb][cnta]);//8X8点阵行送扫描数据         Par_OUT();//74HC595输出显示           cnta++;    if(cnta==8)      {        cnta=0;      }     timecount++;    if(timecount==1000)      {        timecount=0;        cntb++;      if(cntb==10)          {            cntb=0;          }      }  }
回复

使用道具 举报

ID:122949 发表于 2017-4-22 18:07 | 显示全部楼层
宁波府尹 发表于 2017-4-22 18:06
#include   #include "74HC595.H" unsigned char code tab[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};  ...

这是我用595做的8*8点阵显示0-9的代码  
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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