1. 程式人生 > >如何用74HC595實現流水燈

如何用74HC595實現流水燈

#include<reg51.h>
#include<intrins.h>
int i;
sbit SRCLK=P3^6;對應於圖中的ST_CP引腳(注:晶片的引腳名稱經常變化,但是功能是不變的)
sbit RCLK=P3^5;   //對應於MR    (這三條語句是他們連在微控制器的位置)
sbit SER=P3^4;    //對應於SH_CP引腳
void Hc595SendByte(unsigned char dat)  // 函式名:Hc595SendByte   函式功能:向74HC595傳送一個位元組的資料。輸入輸出:無
{
unsigned char a;
SRCLK=0;     // 將兩個引腳置於低電平
RCLK=0;  
for(a=0;a<8;a++)  // 傳送8位數
{
SER=dat>>7;   //通過資料的移位實現流水。從最高位開始傳送資料。右移七位
dat<<=1;     //  
SRCLK=1;   
_nop_();    ////延時函式,系統自帶
_nop_();
SRCLK=0;   // 傳送時序
RCLK=1;
_nop_();
_nop_();
RCLK=0;
}
}
void main()
{
unsigned char ledNum;
ledNum=0xfe;  //  燈全滅
while(1)
{
Hc595SendByte(ledNum);
ledNum=_crol_(ledNum,1);
for(i=30000;i>0;i--);
}
}