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

📄 led.c.c

📁 频率计,用arm7实现。 核心芯片为S3C44B0, 用以实现对外部信号的频率计数
💻 C
字号:
/****************************************************************************
* 文件名:LED.C
* 功能:使用外部中断1进行B1的控制,每当有一次中断时,即取反B1控制口,以便指示中断输入。
*      使用向量中断方式。
* 说明:将跳线器JP9短接,JP4断开,然后短接/断开JP1(使EINT1为低/高电平)。
****************************************************************************/
#include  "config.h"
#include  "stdio.h"

#define   DATA_INPUT	1<<23			/* P0.23 */
#define   DATA_CLK      1<<22           /* P0.22 */


  
void  DelayNS(int  dly)
{  int  i;

   for(; dly>0; dly--) 
      for(i=0; i<5000; i++);
}
//------------------------------------------------------------------------
// 函数名	:	HC164_SendDat()
// 功  能	:	向74HC164发送一字节数据
//------------------------------------------------------------------------
void  HC164_SendDat(char data)
{  char  i;

   for(i=0; i<8; i++)					// 发送8位数据
   {  
      IO0CLR = DATA_CLK;		// CLK = 0     
										// 设置DATA移位输出
      if((data&0x80)!=0)
      	 IO0SET = DATA_INPUT ;
      else
         IO0CLR = DATA_INPUT ;      		
      data <<= 1;
      IO0SET = DATA_CLK ;		// CLK = 1
   }
}		

/****************************************************************************
* 名称:main()
* 功能:初始化外部中断1(EINT1)为向量中断,并设置为下降沿触发模式,然后等待外部中断。
* 说明:在STARTUP.S文件中使能IRQ中断(清零CPSR中的I位)。
****************************************************************************/
int  main(void)
{ 
    char data ;
    PINSEL0 = 0x0000000;
    
    while ( 1 )
    {
      for ( data = 0  ; data < 8 ; data++ )
          {
             HC164_SendDat( 1<<data ) ;
             DelayNS( 200 ) ;
          } 
      for ( data = 0  ; data < 8 ; data++ )
          {
             HC164_SendDat( 3<<data ) ;
             DelayNS( 200 ) ;
          } 
     }        

}

⌨️ 快捷键说明

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