⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.c

📁 LPC213x SSI通讯实验
💻 C
字号:
/****************************************Copyright (c)**************************************************
**                               Guangzou ZLG-MCU Development Co.,LTD.
**                                      graduate school
**                                 http://www.zlgmcu.com
**
**--------------File Info-------------------------------------------------------------------------------
** File name:			main.c
** Last modified Date:  2004-09-16
** Last Version:		1.0
** Descriptions:		The main() function example template
**
**------------------------------------------------------------------------------------------------------
** Created by:			Chenmingji
** Created date:		2004-09-16
** Version:				1.0
** Descriptions:		The original version
**
**------------------------------------------------------------------------------------------------------
** Modified by:			Chenixbing
** Modified date:		2005-01-18
** Version:
** Descriptions:		SSP作SSI主机,向SSI从机发送数据。
**
********************************************************************************************************/
#include  "config.h" 
/*
*********************************************************************************************************
** 函数名称:DelayNS()
** 函数功能:长软件延时
** 入口参数:dly		延时参数,值越大,延时越久
** 出口参数:无
*********************************************************************************************************
*/
void  DelayNS(uint32  dly)
{  
    uint32  i;

    for(; dly>0; dly--) 
    {
        for(i=0; i<50000; i++);
    }
}

/*
*********************************************************************************************************
** 函数名称:SSP_Init()
** 函数功能:将SSP控制器设置为主机SSI。
** 入口参数:无
** 出口参数:无
*********************************************************************************************************
*/
void  SSP_Init(void)
{ 
  	PINSEL1 = (PINSEL1 & (~(0xFF << 2))) | (0xAA << 2);			// GPIO选择SSP口

    SSPCR0 = (0x01 << 8) |              // SCR  设置SSI时钟分频
             (0x00 << 7) |              // CPHA 时钟输出相位,仅SPI模式有效 
             (0x00 << 6) |              // CPOL 时钟输出极性,仅SPI模式有效
             (0x01 << 4) |              // FRF  帧/格式 00=SPI,01=SSI,10=Microwire,11=保留
             (0x07 << 0);               // DSS  数据长度,0000-0010=保留,0011=4位,0111=8位,1111=16位

    SSPCR1 = (0x00 << 3) |              // SOD  从机输出禁能,1=禁止,0=允许
             (0x00 << 2) |              // MS   主从选择,0=主机,1=从机
             (0x01 << 1) |              // SSE  SSP使能,1=允许SSP与其它设备通信
             (0x00 << 0);               // LBM  回写模式
             
    SSPCPSR = 0x38;                     // PCLK分频值
//    SSPIMSC = 0x07;                     // 中断屏蔽寄存器
    SSPICR  = 0x03;                     // 中断清除寄存器
}

/*
*********************************************************************************************************
* 函数名称:SSP_SendData()
* 函数功能:SSP接口向SSI总线发送数据。
* 入口参数:data        待发送的数据
* 出口参数:返回值为读取的数据
*********************************************************************************************************
*/
uint8  SSP_SendData(uint8 data)
{  
    SSPDR = data;
    while( (SSPSR & 0x01) == 0 );	    // 等待TFE置位,即发送FIFO空  
     
    return(SSPDR);
}


/* 此表为LED0~F以及L、P的字模 */
uint8 const DISP_TAB[19] = {
//	  0	   1     2    3    4    5    6    7    8    9    
	0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8, 0x80,0x90,
//	  A    b      C    d    E      F
	0x88, 0x83, 0xC6, 0xA1,0x86, 0x8E,
// 	 L     P    C
 	0xC7, 0x8C,0xC6 };
/*
*********************************************************************************************************
* 函数名称:main
* 函数功能:SSP作SSI主机,向SSI从机发送数据。
*********************************************************************************************************
*/
volatile uint8 rcv;
int  main(void)
{     
    uint8 i;                                   
   	
    SSP_Init();                                                 // 初始化SSP接口
    while(1)	
    {  
        for(i=0;i<16;i++)
        {
            rcv = SSP_SendData(DISP_TAB[i]);	                // 发送显示数据,到SSI从机
            DelayNS(100);	                                    // 延时
        }
    }
    
    return(0);
}
/*********************************************************************************************************
**                            End Of File
********************************************************************************************************/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -