58 lines
1.3 KiB
C
58 lines
1.3 KiB
C
#include "H/Function_Init.H"
|
||
|
||
#define USCI0_Mode SPI0
|
||
|
||
void Uart0_Init(uint Freq,unsigned long int baud);
|
||
void TWI0_Init(void);
|
||
void SPI0_Init(void);
|
||
|
||
bit Uart0SendFlag = 0; //Uart0发送中断标志位
|
||
bit Uart0ReceiveFlag = 0; //Uart0接收中断标志位
|
||
bit SPI0Flag = 0; //SPI0数据传输完成标志位
|
||
bit TWI0Flag = 0; //TWI0中断标志位
|
||
|
||
/*****************************************************
|
||
*函数名称:void USCI0_Test(void)
|
||
*函数功能:USCI0测试
|
||
*入口参数:void
|
||
*出口参数:void
|
||
*****************************************************/
|
||
void USCI0_Test(void)
|
||
{
|
||
SPI0_Init();
|
||
while(1)
|
||
{
|
||
US0CON2 = 0xAA;
|
||
while(!SPI0Flag);
|
||
SPI0Flag = 0;
|
||
Delay(1000);
|
||
}
|
||
}
|
||
/*****************************************************
|
||
*函数名称:void SPI0_Init(void)
|
||
*函数功能:SPI0初始化
|
||
*入口参数:void
|
||
*出口参数:void
|
||
*****************************************************/
|
||
void SPI0_Init(void)
|
||
{
|
||
OTCON |= 0X10; //选择SPI0模式
|
||
US0CON0 = 0x3F; //设置SPI0为主设备,SCK空闲时间为高电平,SCK周期第二沿采集数据,时钟速率为Fsys/128
|
||
US0CON1 = 0x01; //MSB优先发送,8位传输,允许发送中断
|
||
US0CON0 |= 0x80; //开启SPI0
|
||
IE1 |= 0x01;
|
||
EA = 1;
|
||
}
|
||
|
||
void Spi0_Int(void) interrupt 7 //SPI0中断函数
|
||
{
|
||
if(US0CON1&0X08) //发送缓存器空标志判断
|
||
{
|
||
US0CON1 &= ~0X08;
|
||
}
|
||
if(US0CON1&0X80) //数据传输标志位判断
|
||
{
|
||
US0CON1 &= ~0X80;
|
||
SPI0Flag = 1;
|
||
}
|
||
} |