请选择 进入手机版 | 继续访问电脑版

普中开源电子分享网

 找回密码
 立即注册
搜索
查看: 7660|回复: 7

HC6800-EM3 V2.2开发板点阵显示一个汉字实验问题

 关闭 [复制链接]

1

主题

3

帖子

18

积分

新手上路

Rank: 1

积分
18
发表于 2018-6-2 17:49:55 | 显示全部楼层 |阅读模式
视频教学是用V3.0开发板讲解点阵显示一个汉字“普”实验的,而我用的是V2.2版本的开发板,点阵是8*8的。我模仿视频教学例子编写了一个程序想在8*8的点阵上显示一个“王”字,实验结果不成功,麻烦路过的大神指点一下!接线方式:H595_B接J20,H595_A接J12,实验结果是点阵全亮。程序如下:
#include "reg51.h"                         
#include "intrins.h"

typedef unsigned int u16;
typedef unsigned char u8;

sbit SRCLK=P3^6;
sbit RCLK=P3^5;
sbit SER=P3^4;

u8 code ledwei[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};

u8 code ledduan[]={0x00,0x52,0x52,0x7e,0x52,0x52,0x52,0x00};

void delay(u16 i)
{
  while(i--);
}

void hc595sendbyte(u8 dat1,u8 dat2)
{
    u8 a;

        for(a=0;a<8;a++)
        {
          SER=dat1>>7;
          dat1<<=1;

          SRCLK=0;
          _nop_();
          _nop_();
          SRCLK=1;
        }
          RCLK=0;
          _nop_();
          _nop_();
          RCLK=1;

        for(a=0;a<8;a++)
        {
          SER=dat2>>7;
          dat2<<=1;

          SRCLK=0;
          _nop_();
          _nop_();
          SRCLK=1;
        }
         RCLK=0;
          _nop_();
          _nop_();
          RCLK=1;
}

void main()
{
  u8 i;
  while(1)
  {
     for(i=0;i<8;i++)
      {
         hc595sendbyte(~ledwei[i],ledduan[i]) ;
              delay(10);
       }
  }
}

回复

使用道具 举报

0

主题

16

帖子

51

积分

注册会员

Rank: 2

积分
51
发表于 2018-6-2 23:31:57 | 显示全部楼层
#include "reg51.h"                          #include "intrins.h"  typedef unsigned int u16; typedef unsigned char u8;  sbit SRCLK=P3^6; sbit RCLK=P3^5; sbit SER=P3^4;  u8 code ledwei[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};  u8 code ledduan[]={0x00,0x52,0x52,0x7e,0x52,0x52,0x52,0x00};  void delay(u16 i) {   while(i--); }  void hc595sendbyte(u8 dat1) {     u8 a;          for(a=0;a<8;a++)         {           SER=dat1>>7;           dat1<<=1;            SRCLK=1;           _nop_();           _nop_();           SRCLK=0;         }           RCLK=1;           _nop_();           _nop_();           RCLK=0;           }  void main() {   u8 i;   while(1)   {      for(i=0;i<8;i++)       {                        P0=        ledwei[i];          hc595sendbyte(ledduan[i]) ;               delay(10);        }   } }
回复 支持 反对

使用道具 举报

0

主题

16

帖子

51

积分

注册会员

Rank: 2

积分
51
发表于 2018-6-2 23:32:10 | 显示全部楼层
#include "reg51.h"                        
#include "intrins.h"

typedef unsigned int u16;
typedef unsigned char u8;

sbit SRCLK=P3^6;
sbit RCLK=P3^5;
sbit SER=P3^4;

u8 code ledwei[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};

u8 code ledduan[]={0x00,0x52,0x52,0x7e,0x52,0x52,0x52,0x00};

void delay(u16 i)
{
  while(i--);
}

void hc595sendbyte(u8 dat1)
{
    u8 a;

        for(a=0;a<8;a++)
        {
          SER=dat1>>7;
          dat1<<=1;

          SRCLK=1;
          _nop_();
          _nop_();
          SRCLK=0;
        }
          RCLK=1;
          _nop_();
          _nop_();
          RCLK=0;

        
}

void main()
{
  u8 i;
  while(1)
  {
     for(i=0;i<8;i++)
      {                        P0=        ledwei[i];
         hc595sendbyte(ledduan[i]) ;
              delay(10);
       }
  }
}
回复 支持 反对

使用道具 举报

0

主题

16

帖子

51

积分

注册会员

Rank: 2

积分
51
发表于 2018-6-2 23:36:13 | 显示全部楼层
这样好看点。P0端口你没有定义要在 hc595sendbyte外面定义    hc595sendbyt只是进行列的输入电平
P0是行的可以看电路图你的ledwei也有问题,帮你改了(可能是你用了这个~ledwei[i]才这样写的),高电平有效
          SRCLK=1;
          _nop_();
          _nop_();
          SRCLK=0;

          SRCLK=1;
          _nop_();
          _nop_();
          SRCLK=0;
你的1和0错了
回复 支持 反对

使用道具 举报

1

主题

3

帖子

18

积分

新手上路

Rank: 1

积分
18
 楼主| 发表于 2018-6-3 10:29:40 | 显示全部楼层
ct123456 发表于 2018-6-2 23:36
这样好看点。P0端口你没有定义要在 hc595sendbyte外面定义    hc595sendbyt只是进行列的输入电平
P0是行的 ...

不能用P0口的,在这里主要应用的是HC595串口转并口功能。
回复 支持 反对

使用道具 举报

1

主题

3

帖子

18

积分

新手上路

Rank: 1

积分
18
 楼主| 发表于 2018-6-3 11:02:27 | 显示全部楼层
ct123456 发表于 2018-6-2 23:36
这样好看点。P0端口你没有定义要在 hc595sendbyte外面定义    hc595sendbyt只是进行列的输入电平
P0是行的 ...

我已调试出来了,HC595的时序出了问题,0和1并没有搞反,而是RCLK只能在第二个数据发送出去后才能来个下降沿,之前的问题是在第1个数据发送后就给出了一个RCLK下降沿。
回复 支持 反对

使用道具 举报

0

主题

16

帖子

51

积分

注册会员

Rank: 2

积分
51
发表于 2018-6-10 11:44:28 | 显示全部楼层
可能板子不一样我是上升沿有效,P0口不定义也行这是个人习惯,成功就可以
回复 支持 反对

使用道具 举报

2

主题

8

帖子

20

积分

新手上路

Rank: 1

积分
20
发表于 2018-9-6 21:07:21 | 显示全部楼层
一直在正在夏雨来在一起在
回复 支持 反对

使用道具 举报

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

本版积分规则

关闭

站长推荐上一条 /1 下一条

Archiver|手机版|小黑屋|普中开源电子分享网 粤ICP备16123577号-2

GMT+8, 2024-3-29 22:25 , Processed in 0.094049 second(s), 30 queries .

Powered by 论坛搭建 X3.4

Copyright © 2001-2021, Tencent Cloud.

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