#include "shrink.h" #include "led.h" #define SPI_CS 0x00000100 /* P0.8 */ #define SPI_DATA 0x00001000 /* P0.12 */ #define SPI_CLK 0x00000010 /* P0.4 */ #define SPI_IOCON 0x00001110 /* 定义SPI接口的I/O设置字 */ void Led_Init() { PINSEL0 = PINSEL0 & 0xFCFCFCFF; IO0DIR = SPI_IOCON; // 设置SPI控制口为输出 } /**************************************************************************** * 名称:HC595_SendDat() * 功能:向74HC595发送一字节数据 * 入口参数:dat 要发送的数据 * 出口参数:无 * 说明:发送数据时,高位先发送。 ****************************************************************************/ void HC595_SendDat(uint8 dat) { uint8 i; IO0CLR = SPI_CS; // SPI_CS = 0 for(i=0; i<8; i++) // 发送8位数据 { IO0CLR = SPI_CLK; // SPI_CLK = 0 /* 设置SPI_DATA输出值 */ if( (dat&0x80)!=0 ) IO0SET = SPI_DATA; else IO0CLR = SPI_DATA; dat <<= 1; IO0SET = SPI_CLK; // SPI_CLK = 1 } IO0SET = SPI_CS; // SPI_CS = 1,输出显示数据 }