找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
下面是程序:
#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);
   }
   }

  }
我反复检查了几遍并没有啥问题啊,点阵显示其他汉字倒是可以。请问这是为什么?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
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一边。
回复

使用道具 举报

5#
ID:111634 发表于 2018-10-23 21:58 | 只看该作者
本帖最后由 zl2168 于 2018-10-24 09:09 编辑

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


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

以上摘自张志良编著《80C51单片机仿真设计实例教程——基于Keil CProteus》清华大学出版社ISBN 978-7-302-41682-1.书中电路和程序设计有详细说明,程序语句条条有注解
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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