找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4045|回复: 5
收起左侧

8X8点阵点亮左上角第一个点,JP595短接了,JOE也接GND了,但就是没有显示

[复制链接]
ID:349594 发表于 2018-6-11 16:37 | 显示全部楼层 |阅读模式
  1. #include "reg51.h"
  2. #include<intrins.h>

  3. typedef unsigned int u16;
  4. typedef unsigned char u8;

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


  8. void Hc595SendByte(u8 dat)
  9. {
  10.         u8 a;
  11.         SRCLK=0;
  12.         RCLK=0;
  13.         for(a=0;a<8;a++)
  14.         {
  15.                 SER=dat>>7;
  16.                 dat<<=1;

  17.                 SRCLK=1;
  18.                 _nop_();
  19.                 _nop_();
  20.                 SRCLK=0;       
  21.         }

  22.         RCLK=1;
  23.         _nop_();
  24.         _nop_();
  25.         RCLK=0;
  26. }

  27. void main()
  28. {               
  29.         Hc595SendByte(0x80);
  30.         P0=0x7f;
  31.         while(1);               
  32. }
复制代码


回复

使用道具 举报

ID:349594 发表于 2018-6-11 21:58 | 显示全部楼层
求大伙帮忙看看,感激
回复

使用道具 举报

ID:349594 发表于 2018-6-11 22:01 | 显示全部楼层
希望路过的帮忙看看我这问题
回复

使用道具 举报

ID:164602 发表于 2018-6-12 07:31 | 显示全部楼层
程序没问题,但——所有的教程都没说这个——595必须先发送一次0x00进行初始化,以后才能正常工作。
所以,你的程序中,主函数第一句加上:Hc595SendByte(0x00);保证就好了。我已经在我的板子上试验通过。
回复

使用道具 举报

ID:349594 发表于 2018-6-12 14:08 | 显示全部楼层
HC6800-ES-V2.0 发表于 2018-6-12 07:31
程序没问题,但——所有的教程都没说这个——595必须先发送一次0x00进行初始化,以后才能正常工作。
所以 ...

好的呢,谢谢你。不过我发现只要去掉while(1)也能点亮,这个是什么原因?
回复

使用道具 举报

ID:372251 发表于 2018-7-16 07:20 | 显示全部楼层
楼主 JOE如何接地啊 我找了半天没找到,还有你那单片机上如何接线的,这问题一直没搞懂 头晕晕的
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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