标题:
用74HC595移位寄存器静态显示数码管(参考版程序)
[打印本页]
作者:
liuda
时间:
2015-1-22 01:58
标题:
用74HC595移位寄存器静态显示数码管(参考版程序)
#include <REG51.H>
#include <intrins.h>
#define NOP() _nop_() // 定义空指令 ,这个函数在库 <intrins.h> 中
//SPI IO
sbit MOSI = P3^4;
sbit R_CLK = P3^5;
sbit S_CLK = P3^6;
//函数声明
void HC595SendData( unsigned char BT0);
/*************主函数*****************************/
void main(void)
{
while(1)
{
HC595SendData(0x82);//驱动共阳数码管显示6
}
}
/*********************************************************************************************************
** 函数名称: HC595SendData
** 功能描述: 向SPI总线发送数据
*********************************************************************************************************/
void HC595SendData( unsigned char BT0)
{
unsigned char i;
for(i = 0; i < 16; i++)//循环十六次后,就可以用下一个移位寄存器来控制了
{
if((BT0<< i) & 0x80) //判断最高位是0还是1
{
MOSI = 1;// 如果为真,将1送入移位寄存器
}
else
{
MOSI = 0;
}
S_CLK = 0;//移位一次
NOP();
S_CLK = 1;//上升沿有效
}
R_CLK = 0; //移位结束取出数据
NOP();
R_CLK = 1; //上升沿有效
}
复制代码
作者:
Gerage
时间:
2015-6-16 09:51
怎么没有电路图呢
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1