//--定义使用的 IO 口--//
sbit SRCLK=P3^6;//74HC595 11脚SHCP
sbit RCLK=P3^5;// 74HC595 12脚STCP
sbit SER=P3^4; // 74HC595 14脚DS
/*******************************************************************************
* 函 数 名 : Hc595SendByte(u8 dat)
* 函数功能 : 想 74H595 发送一个字节的数据
* 输 入 : 无
* 输 出 : 无
*******************************************************************************/
void Hc595SendByte(u8 dat)
{
u8 a;
SRCLK = 1;
RCLK = 1;
for(a=0;a<8;a++) //发送 8 位数
{
SER = dat >> 7; //从最高位开始发送
dat <<= 1;
SRCLK = 0; //发送时序
_nop_();
_nop_();
SRCLK = 1;
}
RCLK = 0;
_nop_();
_nop_();
RCLK = 1;
}
/********************************************************************
***********
* 函 数 名 : 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;
普中 51 单片机开发攻略
www.prechin.cn
131
SRCLK = 0; //发送时序
_nop_();
_nop_();
SRCLK = 1;
}
RCLK = 0;
_nop_();
_nop_();
RCLK = 1;
}
« emqx 命令
|
c语言修改二进制数据位»
|