📄 main.c
字号:
/*******************************************************************************************************
* 文件名:main.c
* 功 能:开发板main()函数例子
* 作 者:POWER
* 日 期:2006年9月28号
* 斯凯科技主页:www.armsky.net
* 斯凯科技论坛:www.armsky.net/bbs
********************************************************************************************************/
#include "config.h"
//FILE NAME : SPI.C
//DEscrīptION : 使用硬件SPI接口输出显示。
/* 此表为0--F的字模 */
unsigned char const DISP_TAB[16] = { 0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,
0x88,0x83,0xC6,0xA1,0x86,0x8E };
#define CSN (1<<20) //p0.20 //IO0 P1.20
void delay(unsigned int dly)
{ unsigned int i;
for(; dly>0; dly--)
for(i=0; i<50000; i++);
}
void mspi_ini(void)
{
S0PCCR = 0x52; // 设置SPI时钟分频
S0PCR = (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中断禁止
}
unsigned char msend_data(unsigned char data)
{
IOCLR = CSN; // 片选
S0PDR = data;
while( 0==(S0PSR&0x80) ); // 等待SPIF置位,即等待数据发送完毕
IOSET = CSN;
return(S0PDR);
}
int main(void)
{
unsigned char rcv_data;
unsigned char i;
PINSEL0 = 0x00005500; // 设置SPI管脚连接
PINSEL1 = 0x00000000;
IODIR = CSN;
mspi_ini(); // 初始化SPI接口
while(1)
{ for(i=0; i<16; i++)
{ rcv_data = msend_data(DISP_TAB[i]); // 发送显示数据
delay(50);
}
}
return(0);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -