标题: 单片机开发板点阵问题 [打印本页]

作者: 4651    时间: 2020-1-5 11:09
标题: 单片机开发板点阵问题
普中的 为什么这个代码不止点亮led点阵的一个点,同时点亮了三个点
#include<reg52.h>

#include<intrins.h>
#define uint unsigned int
#define uchar unsigned char
//74HC595芯片
sbit SER=P3^4;  //串行输入
sbit RLCK=P3^5;  //时钟移位寄存器
sbit SRCLK=P3^6; //数据移位寄存器
void Hc595Send(uchar num);
void main()
{
while(1)
{
  P0=0x7f;
  Hc595Send(0x80);
  while(1);
}
}
void Hc595Send(uchar num)
{
  uchar a;
  SRCLK=0;
  RCLK=0;
  for(a=0;a<8;a++)
  {
   SER=num>>7;  //将最高位传送
  num<<=1;  //次高位移至最高位
  SRCLK=1;
  _nop_();  //延时一个机器周期
  _nop_();
  SRCLK=0;
  }
  RCLK=1;
  _nop_();   
     _nop_();
  RCLK=0;  
}

123.png (58.5 KB, 下载次数: 58)

123.png

作者: 4651    时间: 2020-1-5 11:10
那个while循环去掉之后也还是一样的问题
作者: 青龙书生    时间: 2020-1-6 15:05
如果while去掉还是一样的话,就需要你仔细看一下板子的原理图,因为没有while语句,你的程序在空跑,什么显示都不会有,所以看看是不是引脚用在其他什么器件上了,一般开发板一个引脚都会用在很多外围器件上,你需要把短路帽或者其他外围器件去掉




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1