标题:
单片机Led点阵(点亮第1个)实验遇到问题
[打印本页]
作者:
喔耶
时间:
2020-3-3 22:49
标题:
单片机Led点阵(点亮第1个)实验遇到问题
代码如下,就是改变这Hc595SendByte(0xfe,0x01)两个值的时候,LED点阵上亮的灯都是不变的,总是在点阵的左下方那个位置亮,为什么会这样?感谢大佬的帮助。
#include "reg51.h" //此文件中定义了单片机的一些特殊功能寄存器
#include "intrins.h"
typedef unsigned int u16; //对数据类型进行声明定义
typedef unsigned char u8;
//--定义使用的IO口--//
sbit SRCLK=P3^6;
sbit RCLK=P3^5;
sbit SER=P3^4;
sbit LED=P0^7;
/*******************************************************************************
* 函 数 名 : Hc595SendByte(u8 dat1,u8 dat2)
* 函数功能 : 通过595发送2个字节的数据
* 输 入 : dat1:第2个595输出数值
* * dat2: 第1个595输出数值
* 输 出 : 无
*******************************************************************************/
void Hc595SendByte(u8 dat1,u8 dat2)
{
u8 a;
SRCLK = 1;
RCLK = 1;
for(a=0;a<8;a++) //发送8位数
{
SER = dat1 >> 7; //从最高位开始发送
dat1 <<= 1;
SRCLK = 0; //发送时序
_nop_();
_nop_();
SRCLK = 1;
}
for(a=0;a<8;a++) //发送8位数
{
SER = dat2 >> 7; //从最高位开始发送
dat2 <<= 1;
SRCLK = 0; //发送时序
_nop_();
_nop_();
SRCLK = 1;
}
RCLK = 0;
_nop_();
_nop_();
RCLK = 1;
}
/*******************************************************************************
* 函 数 名 : main
* 函数功能 : 主函数
* 输 入 : 无
* 输 出 : 无
*******************************************************************************/
void main()
{ //使第一列为低电平。
LED=0;
while(1)
{
Hc595SendByte(0xfe,0x01);
}
}
作者:
csmyldl
时间:
2020-3-4 13:43
因为这个函数Hc595SendByte没有真正把相应的数据送到HC595输出
作者:
喔耶
时间:
2020-3-17 09:30
csmyldl 发表于 2020-3-4 13:43
因为这个函数Hc595SendByte没有真正把相应的数据送到HC595输出
那么怎么才算是真正的输出啊其实这个函数配套资料讲解视频里他讲了一个例子
作者:
carpcarey
时间:
2020-3-17 12:33
/*******************************************************************************
* 函 数 名 : Hc595SendByte(u8 dat1,u8 dat2)
* 函数功能 : 通过595发送2个字节的数据
* 输 入 : dat1:第2个595输出数值
* * dat2: 第1个595输出数值
* 输 出 : 无
*******************************************************************************/
void Hc595SendByte(u8 dat1,u8 dat2)
{
u8 a;
SRCLK = 0;
RCLK = 0;
for(a=0;a<8;a++) //发送8位数
{
SRCLK = 0; //发送时序
SER = dat1 >> 7; //从最高位开始发送
SRCLK = 1;
dat1 <<= 1;
}
for(a=0;a<8;a++) //发送8位数
{
SRCLK = 0; //发送时序
SER = dat2 >> 7; //从最高位开始发送
SRCLK = 1;
dat2 <<= 1;
}
SRCLK = 0;
RCLK = 0;
RCLK = 1;
}
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1