標(biāo)題:
用74HC595移位寄存器靜態(tài)顯示數(shù)碼管(參考版程序)
[打印本頁(yè)]
作者:
liuda
時(shí)間:
2015-1-22 01:58
標(biāo)題:
用74HC595移位寄存器靜態(tài)顯示數(shù)碼管(參考版程序)
#include <REG51.H>
#include <intrins.h>
#define NOP() _nop_() // 定義空指令 ,這個(gè)函數(shù)在庫(kù) <intrins.h> 中
//SPI IO
sbit MOSI = P3^4;
sbit R_CLK = P3^5;
sbit S_CLK = P3^6;
//函數(shù)聲明
void HC595SendData( unsigned char BT0);
/*************主函數(shù)*****************************/
void main(void)
{
while(1)
{
HC595SendData(0x82);//驅(qū)動(dòng)共陽(yáng)數(shù)碼管顯示6
}
}
/*********************************************************************************************************
** 函數(shù)名稱(chēng): HC595SendData
** 功能描述: 向SPI總線(xiàn)發(fā)送數(shù)據(jù)
*********************************************************************************************************/
void HC595SendData( unsigned char BT0)
{
unsigned char i;
for(i = 0; i < 16; i++)//循環(huán)十六次后,就可以用下一個(gè)移位寄存器來(lái)控制了
{
if((BT0<< i) & 0x80) //判斷最高位是0還是1
{
MOSI = 1;// 如果為真,將1送入移位寄存器
}
else
{
MOSI = 0;
}
S_CLK = 0;//移位一次
NOP();
S_CLK = 1;//上升沿有效
}
R_CLK = 0; //移位結(jié)束取出數(shù)據(jù)
NOP();
R_CLK = 1; //上升沿有效
}
復(fù)制代碼
作者:
Gerage
時(shí)間:
2015-6-16 09:51
怎么沒(méi)有電路圖呢
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1