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

📄 main.c

📁 proteus 实现跑马灯等应用,
💻 C
字号:
#include  "config.h"

uint8 temp=0xaa;
/****************************************************************************
* 名称:DelayNS()
* 功能:长软件延时
* 入口参数:dly		延时参数,值越大,延时越久
* 出口参数:无
****************************************************************************/
void  delay(uint32  dly)
{  uint32  i;

   for(; dly>0; dly--) 
      for(i=0; i<500; i++);
}

__inline void enable_irq()
	{
	uint8 tmp;
	__asm
		{
		MRS tmp,CPSR
		BIC tmp,tmp,#0x80
		MSR CPSR_c,tmp
		}
	}

__inline void disable_irq()
	{
	uint8 tmp;
	__asm
		{
		MRS tmp,CPSR
		ORR tmp,tmp,#0x80
		MSR CPSR_c,tmp
		}
	}

void __irq int1(void)
	{
	temp++;
	while(EXTINT&(1<<0))
		EXTINT=1<<0;
	IOCLR=0x000000ff;
	IOSET=temp;
	VICVectAddr=0;
	}

void __irq int2(void)
	{
	temp--;
	while(EXTINT&(1<<1))
		EXTINT=1<<1;
	IOCLR=0x000000ff;
	IOSET=temp;
	VICVectAddr=0;
	}
	
void __irq int3(void)
	{
	temp=0;
	while(EXTINT&(1<<2))
		EXTINT=1<<2;
	IOCLR=0x000000ff;
	IOSET=temp;
	VICVectAddr=0;
	}
	
/****************************************************************************
* 名称:main()
* 功能:
****************************************************************************/
int  main(void)
	{
	PINSEL0=0xa0000000;
	PINSEL1=0x00000001;
	IODIR=0x000000ff;
	IOCLR=0x000000ff;
	IOSET=temp;
	VICIntSelect=0;
	VICIntEnable=0x0001c000;
	VICVectCntl0=0x0000002e;
	VICVectCntl1=0x0000002f;
	VICVectCntl2=0x00000030;
	VICVectAddr0=(int)int1;
	VICVectAddr1=(int)int2;
	VICVectAddr2=(int)int3;
	EXTINT=0x07;
	enable_irq();
	while(1);
/*		{if(EXTINT&0x07)
			{temp++;
		while(EXTINT&0x07)
		EXTINT=0x07;
			IOCLR=0x000000ff;
	IOSET=temp;}}*/
	}

⌨️ 快捷键说明

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