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接口。
AVR单片机74HC595SP 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)