//SPI 初始化子程序,用于数码管显示
void spi_intial()
{
SpiaRegs.SPICCR.all =0x0047;
// 使 SPI 处于复位方式, 下降沿, 八位数据
SpiaRegs.SPICTL.all =0x0006;
//主控模式,般时钟模式,使能 talk,闭 SPI 中断
SpiaRegs.SPIBRR =0x007F;
//配置波特率
SpiaRegs.SPICCR.all =SpiaRegs.SPICCR.all|0x0080;
// 退出复位状态 EALLOW;
GpioMuxRegs.GPFMUX.all=0x000F;
// 设置通用引脚为 SPI 引脚 EDIS;
}
//IO 初始化子程序
void gpio_init()
{
EALLOW;
GpioMuxRegs.GPAMUX.bit.TDIRA_GPIOA11=0;
//GPIOA11 设置为一般 I/O 口
GpioMuxRegs.GPADIR.bit.GPIOA11=1
//把 GPIOA11 设置为输出
// 将 GPIOE0~GPIOE2 配 置 为 一 般 I/O 口 输 出 , 作 138 译 码
GpioMuxRegs.GPEMUX.all=GpioMuxRegs.GPEMUX.all&0xfff8;
GpioMuxRegs.GPEDIR.all = GpioMuxRegs.GPEDIR.all|0x0007;
//将 GPIOB8~GPIOB15 配置为一般 I/O 口,D0~D7
GpioMuxRegs.GPBMUX.all=GpioMuxRegs.GPBMUX.all&0x00ff;
EDIS;
GpioDataRegs.GPADAT.bit.GPIOA11=0;
//GPIOA11=0;该端口为 74HC595 锁存信号
}
//键扫描子程序 K1~K8
int Keyscan1(void)
{
EALLOW;
//将 GPIOB8~GPIOB15 配置为输入,D0~D7
GpioMuxRegs.GPBDIR.all=GpioMuxRegs.GPBDIR.all&0x00ff;
EDIS;
GpioDataRegs.GPEDAT.all = 0xfff8;
//选通 KEY 低 8 位
for (i=0; i<100; i++){}
//延时
//判 K1~K8 是否按下
if ((GpioDataRegs.GPBDAT.all|0x00ff)!=0xffff)