|
||||||
| | 首页 | 文章中心 | 下载中心 | 本站商品 | 学习资料 | | ||||||
| 广告载入中... | ||||||
| 您现在的位置: 电子爱好者 >> 文章中心 >> ARM入门 >> 正文 |
|
|||||
| lpc2103源程序--SPI | |||||
| 作者:未知 文章来源:互连网 点击数: 更新时间:2007-4-28 | |||||
| /*------------------------------------------------------------ FILE NAME : SPI.C DEscrīptION : 使用硬件SPI接口输出显示。 --------------------------------------------------------------*/ //--------------------Include files-------------------------// #include <lpc2103.h> //-----------------------------------------------------------Variable ------------------------------------------------// /* 此表为0--F的字模 */ unsigned char const DISP_TAB[16] = { 0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90, 0x88,0x83,0xC6,0xA1,0x86,0x8E }; //--------------------------------------------Function prototype--------------------------------------------------// //-------------------------------------------------------Function ---------------------------------------------------// //-------------------------------------------------------Define-----------------------------------------------------// #define HC164_CS 0x00000010 /*-------------------------------------------------------------------------------------------------------------------- NAME : delay() FUNCTION : 长软件延时 ENTRY TYPE : unsigned int RETURN TYPE : void PURPOSE : VERSION : DEscrīptION : CREATE DATE : 12.07.2006 LOGS :--\ - 1.create; -----------------------------------------------------------------------------------------------*/ void delay(unsigned int dly) { unsigned int i; for(; dly>0; dly--) for(i=0; i<50000; i++); } /*------------------------------------------------------------------------------------------------ NAME : mspi_ini() FUNCTION : 初始化spi接口模式,MSTR=1,CPOL=1,CPHA=0,LSBF=0 ENTRY TYPE : void RETURN TYPE : void PURPOSE : VERSION : DEscrīptION : CREATE DATE : 12.07.2006 LOGS :--\ - 1.create; --------------------------------------------------------------------------------------------------*/ void mspi_ini(void) { S0SPCCR = 0x52; // 设置SPI时钟分频 S0SPCR = (0<<3)| //CPHA=0,数据在SCK的第一个时钟采样 (1<<4)| //CPOL=1,SCK低电平有效 (1<<5)| //MSTR=1,SPI处于主模式 (0<<6)| //LSBF=0,SPI数据传输MSB(bit7)在先 (0<<7); //SPIE=0,SPI中断禁止 } /*------------------------------------------------------------------------------------------------- NAME : msend_data() FUNCTION : 向SPI总线发送数据 ENTRY TYPE : char RETURN TYPE : char PURPOSE : VERSION : DEscrīptION : CREATE DATE : 12.07.2006 LOGS :--\ - 1.create; -------------------------------------------------------------------------------------------------*/ unsigned char msend_data(unsigned char data) { IOCLR = HC164_CS; // 片选 S0SPDR = data; while( 0==(S0SPSR&0x80) ); // 等待SPIF置位,即等待数据发送完毕 IOSET = HC164_CS; return(S0SPDR); } /*---------------------------------------------------------------------------------------------------------------- NAME : main() FUNCTION : 使用硬件SPI接口输出0-F的数据,控制LED显示。 ENTRY TYPE : void RETURN TYPE : int PURPOSE : VERSION : DEscrīptION : CREATE DATE : 12.07.2006 LOGS :--\ - 1.create; ---------------------------------------------------------------------------------------------------------------*/ int main(void) { unsigned char rcv_data; unsigned char i; PINSEL0 = 0x00005500; // 设置SPI管脚连接 PINSEL1 = 0x00000000; IODIR = HC164_CS; mspi_ini(); // 初始化SPI接口 while(1) { for(i=0; i<16; i++) { rcv_data = msend_data(DISP_TAB[i]); // 发送显示数据 delay(50); } } return(0); } //---------------------------------------------- End of file -----------------------------------------------------------// |
|||||
| 文章录入:admin 责任编辑:admin | |||||
| 【发表评论】【告诉好友】【打印此文】【关闭窗口】 | |||||
| 最新热点 | 最新推荐 | 相关文章 | ||
| |
| | 设为首页 | 站点地图|<产品开发服务|光盘刻录服务| 广告合作 | 访问记录 |汇款方法 | 关于VIP会员 | | |
![]() |
|