* 程序名稱:hc595.c
* 程序功能:595的應用文件
* 程序作者:吳鑒鷹
* 創建時間:2014-3-10
* 修改時間:
* 程序版本:V0.1
******************************************************/
/*
* 包含頭文件
*/
#include "inc/hc595.h"
#include "reg51.h"
/*
* 定義引腳
*/
/* 時鐘信號線引腳定義 */
sbit HC595CLK = P0^5;
/* 片選信號線引腳定義 */
sbit HC595RCK = P0^6;
/* 數據輸入引腳定義 */
sbit HC595DATA = P0^7;
/******************************************************
* 函數名稱:SendData
* 函數功能:74HC595數據的發送
* 入口參數:unsigned int uiDataOne, unsigned int uiDataTwo
* 出口參數:void
*******************************************************/
void SendData(unsigned int uiDataOne, unsigned int uiDataTwo)
{
unsigned int i = 0;
/* 將片選信號置為低電平 */
HC595RCK = 0;
/* 輸入第壹個數據:uiDataOne */
for (i = 0; i < 8; i++)
{
/* 給出脈沖信號,首先將CLK置為0 */
HC595CLK = 0;
if (0 != (uiDataOne & 0x80))
{
HC595DATA = 1;
}
else
{
HC595DATA = 0;
}
/* 給出脈沖信號,首先將CLK置為1 */
HC595CLK = 1;
/* 準備第二個數據 */
uiDataOne = uiDataOne << 1;
}
/* 輸入第二個數據:uiDataTwo */
for (i = 0; i < 8; i++)
{
/* 給出脈沖信號,首先將CLK置為0 */
HC595CLK = 0;
if (0 != (uiDataTwo & 0x80))
{
HC595DATA = 1;
}
else
{
HC595DATA = 0;
}
/* 給出脈沖信號,首先將CLK置為1 */
HC595CLK = 1;
/* 準備第二個數據 */
uiDataTwo = uiDataTwo << 1;
}
/* 將片選信號置為高電平 */
HC595RCK = 1;
}