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

📄 main.c

📁 LPC2124 + proteus 仿真 ADS v1.2编译 实现数字显字功能
💻 C
字号:
/****************************************************************************
* File: main.c
* 功能:数码管循环显示十六进制数0~F,并使用4个LED指示当前数值
****************************************************************************/
#include  "config.h"

#define SPI_CS 0x00000100
#define SPI_DATA 0x00000040
#define SPI_CLK 0x00000010
#define BEEP 0x00000080
#define SPI_IOCON 0x00003DD0

/****************************************************************************
* 名称:DelayNS()
* 功能:长软件延时
****************************************************************************/
void DelayNS(uint32 dly)
{
  uint32 i;
  for(;dly>0;dly--)
   for(i=0;i<50000;i++);
}

/****************************************************************************
* 名称:HC595_SendDat()
* 功能:向74HC595发送一字节数据
****************************************************************************/
void HC595_SendDat(uint8 dat)
{
  uint8 i;
  IO0CLR=SPI_CS;
  for(i=0;i<8;i++)
  {
    IO0CLR=SPI_CLK;
    if((dat&0x80)!=0)
    IO0SET=SPI_DATA;
    else
    IO0CLR=SPI_DATA;
    dat<<=1;
    IO0SET=SPI_CLK;
  }
IO0SET=SPI_CS;
}

/****************************************************************************
* 名称:main()
* 功能:控制LED数码管显示,并控制4个LED显示
****************************************************************************/
int main(void)
{
  const uint8 DISP_TAB[16]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E};
  uint8 i;
  PINSEL0=0x00000000;
  PINSEL1=0x00000000;
  IO0DIR=SPI_IOCON;
  while(1)
  {
    for(i=0;i<16;i++)
     {
       HC595_SendDat(DISP_TAB[i]);
       IO0SET=0x00003C00;
       IO0SET=i<<10;
       DelayNS(50);
       IO0SET=BEEP;
       DelayNS(10);
       IO0CLR=BEEP;
       DelayNS(10);
      }
  }
}

⌨️ 快捷键说明

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