📄 led.c.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 + -