设为首页
加入收藏
联系站长
首页 | 文章中心 | 下载中心 | 本站商品 | 学习资料 | 
您现在的位置: 电子爱好者 >> 文章中心 >> ARM入门 >> 正文 用户登录 新用户注册
lpc2103源程序--SPI          【字体:
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           : 0.0.0

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           : 0.0.0

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           : 0.0.0

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接口输出0F的数据,控制LED显示。

ENTRY  TYPE : void

RETURN TYPE : int

PURPOSE          :

VERSION           : 0.0.0

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 
  • 上一篇文章: lpc2103 串口发送数据

  • 下一篇文章: lpc2103源程序--定时器0定时
  • 发表评论】【告诉好友】【打印此文】【关闭窗口
       最新热点    最新推荐    相关文章
  • AT91SAM7S系列评估板

  • 【本站学习光盘列表】

  • 8051、ARM和DSP指令周期分析

  • 32位RISC ARM芯片的应用和选…

  • ARM7在嵌入式应用中启动程序…

  • ARM开发调试教程

  • ARM简介与编程-献给ARM初学者

  • lpc2103实验--外部中断

  • lpc2103源程序--PWM

  • lpc2103源程序--TIME1的计数…

  • 网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)  
    {$PopAnnouceWindow(400,440)}