微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > AVR单片机与74HC595的SPI显示程序

AVR单片机与74HC595的SPI显示程序

时间:11-29 来源:互联网 点击:

//*******************************************//            74HC595/165驱动程序//            (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为改位的状态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为端口号分别用0~3表示A~D,n该端口的引脚号0~7{switch(port){case 0x00:PORTA|=(0x01>7)==0x00);     //等待数据发送完毕return SPDR;                //返回收到的数据}//*********************OK*****************************************

总结:以上是AVR单片机使用SPI接口控制74HC595的例子,这些例子经过简单的修改就可以应用到其它具有SPI即可的芯片上,如SPI接口的Flash存储芯片AT45DB系列、SPI接口的时钟芯片DS1302、SPI接口的AD或DA芯片等等。

对于AVR mega系列单片机一般都具有硬件SPI接口,建议客户使用硬件SPI接口,这样可以占用更少的硬件和软件资源。但软件实现SPI接口,也有一定的优势,如它使用的IO口不是固定的,可以根据需要来指定,它一次发送的数据可以不是8位,而是可以根据需要来指定。

Shiftout VS Spiout

这两个语句都是SPI输出语句,与它们对应的分别是shiftin和spiin
shiftout语句可以使用在硬件spi或软件spi接口,通过config语句来确定:
Config Spi = Hard/soft
Shiftout语句使用在软件spi接口。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top