<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > PIC MSSP_SPI_74HC595

PIC MSSP_SPI_74HC595

作者: 時(shí)間:2016-11-21 來(lái)源:網(wǎng)絡(luò ) 收藏
我覺(jué)得74HC595相當于是一個(gè)你看得見(jiàn)的寄存器,數據的輸入只能是串行的8位輸入,輸出可以選擇串行輸出,也可以選擇并行輸出。
如果把兩個(gè)74HC595連在一起,就會(huì )有譯碼器和掃描的結合的作用,夸張一點(diǎn),如果時(shí)間允許,可以3接口擴展為16接口,雖然輸入數據不同時(shí),但是可以讓輸出數據同時(shí)。
#include //調用頭文件,可以去PICC18軟件下去查找PIC18FXX2.H
__CONFIG(1,XT) ; //晶振為外部4M
__CONFIG(2,WDTDIS) ; //看門(mén)狗關(guān)閉
__CONFIG(4,LVPDIS) ; //禁止低電壓編程
#define rck RC2
#define sck RC3
#define si RC5
#define uchar unsigned char
#define uint unsigned int
#define nop NOP()
void delayms(uint x)
{
uint i,j;
for(i=0;i<=110;i++)
for(j=0;j<=x;j++);
}
char shuma[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
char led[18]={
0B10000000,
0B01000000,
0B00100000,
0B00010000,
0B00001000,
0B00000100,
0B00000010,
0B00000001,
0B00000000,
0B00000001,
0B00000010,
0B00000100,
0B00001000,
0B00010000,
0B00100000,
0B01000000,
0B10000000,
0B00000000
};
void write595(uchar dat1,uchar dat2)
{
rck=0; //rck為并行輸出的控制時(shí)鐘,當有上升沿的時(shí)候并行輸出移位寄存器中的數
SSPBUF=dat1; //往移位寄存器里存數據
while(SSPIF==0) //往移位寄存器里存數據需要時(shí)間
{ ;}
SSPIF=0; //當移位寄存器里的8位數都存滿(mǎn)的時(shí)候,會(huì )發(fā)生中斷請求
SSPBUF=dat2;
while(SSPIF==0)
{ ;}
SSPIF=0;
nop;
rck=1;
}
void main()
{
uchar i=0,j=0;
ADCON1=0x06;
TRISC=0xd3;
PIR1=0x00; //PIR1寄存器里有關(guān)于SSP1IF的寄存器,即移位寄存器存滿(mǎn)的中斷標志位軟件清零
SSPSTAT=0xc0;
SSPCON1=0x20;
while(1)
{
write595(led[j],shuma[i]); //用兩個(gè)參數是因為我的開(kāi)發(fā)板上把兩個(gè)74HC595連在了一起,第一個(gè)74HC595的SO是第二個(gè)的SI,第一個(gè)595可以最快輸出存入的數,但是第二個(gè)595的數據必須是從第一個(gè)595中移出來(lái)的數
delayms(800);
i++;
if(i>9)
i=0;
j++;
if(j>17)
j=0;
}
}



關(guān)鍵詞: PICSPI74HC59

評論


技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>