找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3485|回复: 4
收起左侧

这是我写的一个51单片机led点阵显示大字的程序,为啥植入单片机中点阵并未显示呢

[复制链接]
ID:371529 发表于 2018-10-22 20:59 | 显示全部楼层 |阅读模式
下面是程序:
#include "reg51.h"
#include "intrins.h"
typedef unsigned char u8;
typedef unsigned int u16;
sbit SRCLK=P3^6;
sbit RCLK=P3^5;
sbit SER=P3^6;
u8 ledduan[]={0x00,0x00,0x48,0x50,0xe0,0x50,0x48,0x00};
u8 ledwei[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};
void delay(u16 i)
{
while(i--);
}

  void Hc595SendByte(u8 dat)
  {
   u8 a;
SRCLK=0;
RCLK=0;
for(a=0;a<8;a++)
{
    SER=dat>>7;
    dat<<=1;
    SRCLK=1;
    _nop_();
    _nop_();
    SRCLK=0;
}
RCLK=1;
_nop_();
    _nop_();
RCLK=0;
  }

  void main()
  {
  u8 i;
   while(1)
   {
       P0=0x7f;
      for(i=0;i<8;i++)
   {
      P0=ledwei[i];
   Hc595SendByte(ledduan[i]);
   delay(100);
   Hc595SendByte(0x00);
   }
   }

  }
我反复检查了几遍并没有啥问题啊,点阵显示其他汉字倒是可以。请问这是为什么?
回复

使用道具 举报

ID:155507 发表于 2018-10-22 21:56 | 显示全部楼层
#include "reg51.h"
#include "intrins.h"
typedef unsigned char u8;
typedef unsigned int u16;
sbit SRCLK=P3^6;
sbit RCLK=P3^5;
sbit SER=P3^4;    //P3^6; 红字这里错了

回复

使用道具 举报

ID:330816 发表于 2018-10-22 22:54 | 显示全部楼层
感觉没有什么问题
回复

使用道具 举报

ID:164602 发表于 2018-10-23 08:24 | 显示全部楼层
程序正确,就是没有调好路线冒。
JP595要接上,JOE要接到GND一边。
回复

使用道具 举报

ID:111634 发表于 2018-10-23 21:58 | 显示全部楼层
本帖最后由 zl2168 于 2018-10-24 09:09 编辑

实例66  LED 16×16点阵扫描显示汉字
⒈ 电路设计…
⒉ 汉字编码…
⑴ 汉字编码概述…
⑵ 汉字点阵显示代码…
⑶ 汉字点阵取模软件…
⒊ 电路设计…
16×16点阵显示电路.jpg

说明:用一片1544-16译码器)代替21383-8译码器),性价比更高。
LED显示来说,164595性价比更高(都是串入并出移位寄存器,164控制更简单)
⒋程序设计 …⒌Keil调试…
6. Proteus仿真…
Proteus仿真一下,确认有效。
实例66a LED 16×16点阵汉字显示.rar (48.21 KB, 下载次数: 6)
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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