新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > AVR單片機(jī)與74HC595的SPI顯示程序

AVR單片機(jī)與74HC595的SPI顯示程序

作者: 時(shí)間:2016-11-29 來(lái)源:網(wǎng)絡(luò) 收藏

//*******************************************//            74HC595/165驅(qū)動(dòng)程序//            (165,595均為兩片)//*******************************************unsigned int LED;unsigned int KEY_DATA;void Driver_595(unsigned char Bit,unsigned char State){if(State)LED|=(0x00001<>8));set_bit(1,0);clr_bit(1,0);SPI_W_R((int)LED);set_bit(1,0);clr_bit(1,0);}void Port_Init(void){DDRB=0xff;PORTB=0x00;}//****************************************************************void Driver_165(void)            //Bite所取位0~15,State為改位的狀態(tài)0,1{ unsigned char a1;unsigned char a2;clr_bit(1,3);  set_bit(1,3); a1=SPI_W_R(0x00);                //74HC165輸入使能       a2=SPI_W_R(0x00);           //讀出鍵值KEY_DATA=a1;KEY_DATA<<=8;KEY_DATA+=a2;return;}//*******************************************************************void set_bit(unsigned char port,unsigned char n)//port為端口號(hào)分別用0~3表示A~D,n該端口的引腳號(hào)0~7{switch(port){case 0x00:PORTA|=(0x01<>7)==0x00);     //等待數(shù)據(jù)發(fā)送完畢return SPDR;                //返回收到的數(shù)據(jù)}//*********************OK*****************************************


總結(jié):以上是AVR單片機(jī)使用SPI接口控制74HC595的例子,這些例子經(jīng)過(guò)簡(jiǎn)單的修改就可以應(yīng)用到其它具有SPI即可的芯片上,如SPI接口的Flash存儲(chǔ)芯片AT45DB系列、SPI接口的時(shí)鐘芯片DS1302、SPI接口的AD或DA芯片等等。

對(duì)于AVR mega系列單片機(jī)一般都具有硬件SPI接口,建議客戶使用硬件SPI接口,這樣可以占用更少的硬件和軟件資源。但軟件實(shí)現(xiàn)SPI接口,也有一定的優(yōu)勢(shì),如它使用的IO口不是固定的,可以根據(jù)需要來(lái)指定,它一次發(fā)送的數(shù)據(jù)可以不是8位,而是可以根據(jù)需要來(lái)指定。

Shiftout VS Spiout

這兩個(gè)語(yǔ)句都是SPI輸出語(yǔ)句,與它們對(duì)應(yīng)的分別是shiftin和spiin
shiftout語(yǔ)句可以使用在硬件spi或軟件spi接口,通過(guò)config語(yǔ)句來(lái)確定:
Config Spi = Hard/soft
Shiftout語(yǔ)句使用在軟件spi接口。


上一頁(yè) 1 2 下一頁(yè)

關(guān)鍵詞: AVR單片機(jī)74HC595SP

評(píng)論


技術(shù)專區(qū)

關(guān)閉