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

📄 text1.c

📁 几个关于lpc2103开发板的keil例程
💻 C
字号:
#include<stdio.h>
#include<lpc2103.h>
#define f (15000000/115200/16)

void init()
{
	PINSEL0=0x00|1<<30|0x5;						   //选中串行、GPIO、中断口
	PINSEL1=0x00;
	U0FCR=0x7;									   //设置串口
	U0LCR=0x83;
	U0DLL=f%256;
	U0DLM=f/256;
	U0LCR=0x3;
	IODIR|=1<<11|1<<12|1<<25|1<<26;
	IOCLR|=1<<11|1<<12|1<<25|1<<26;
//	EXTMODE=0x00;
//	EXTPOLAR=0x04;
//	VICIntSelect=0x0;	
//	VICVectCntl0=0x20|0x10;
}

void send(char q)
{
	U0THR=q;
	while((U0LSR&0x40)==0);
}
void sends(char const *s)
{
		int n=4;
	   while(n)
	   {
	   		send(*s++);
			n--;
	   }
}
void delay(int a)
{
	int i,j;
	for(i=0;i<a;i++)
		for(j=0;j<5000;j++);
}
void __irq initpro(void)					   //中断服务程序 其中__irq必需加上
{
	while((((EXTINT&1<<2)<<9)&(IOPIN&1<<11))!=0)	//key0
	 	{
//			delay(100) ;
			sends("key0");
			delay(1000) ;
			IOCLR|=1<<11;
		}
	while((((EXTINT&1<<2)<<10)&(IOPIN&1<<12))!=0)	 //key1
	 	{
//			delay(100) ;
			sends("key1");
			delay(1000) ;
			IOCLR|=1<<12;
		}
	while((((EXTINT&1<<2)<<23)&(IOPIN&1<<25))!=0)	   //key2
		{
//			delay(100) ;
			sends("key2");
			delay(1000) ;
			IOCLR|=1<<25;
		}
	 while((((EXTINT&1<<2)<<24)&(IOPIN&1<<26))!=0)		//key3
	   	{
//			delay(100);
			sends("key3");
			delay(1000) ;
			IOCLR|=1<<26;
		}


	 EXTINT=0x04;				//清除中断标志
	 VICVectAddr=0;			   //中断结束
}
int main()
{
	init();
	EXTMODE=0x00;			   //电平触发
	EXTPOLAR=0x04;			   //高电平有效
	EXTINT=4;					//一定要清零,否则一按REstart就进入中断
//	EXTINT=0x04	 ;
	VICIntSelect=0x0;			 //设置所有中断分配为IRQ中断
	VICIntEnable=1<<16;			 //十六通道 使能中断2
	VICVectCntl0|=0x20|16;		   // 分配外部中断0到向量0
	VICVectAddr0=(unsigned int)initpro;		//将中断服务程序地址赋给中断向量0
	while(1)
	{
/*		IOSET|=1<<11;					 
		IOCLR|=1<<12|1<<25|1<<26;		  //这种写法是错误的,代码执行时间过长					  //
		IOSET|=1<<12;
		IOCLR|=1<<11|1<<25|1<<26;
		IOSET|=1<<25;
		IOCLR|=1<<11|1<<12|1<<26;
		IOSET|=1<<26;
		IOCLR|=1<<11|1<<12|1<<25;
		IOCLR|=1<<11|1<<12|1<<25|1<<26;			*/
	IOSET|=1<<11;		   //key0  置高
	IOCLR|=1<<12;
	IOCLR|=1<<25;
	IOCLR|=1<<26;


	IOCLR|=1<<11;			  //KEY1 置高
	IOSET|=1<<12;
	IOCLR|=1<<25;
	IOCLR|=1<<26;

	IOCLR|=1<<11;			 //KEY2 置高
	IOCLR|=1<<12;
	IOSET|=1<<25;
	IOCLR|=1<<26;


	IOCLR|=1<<11;			   //KEY3 置高
	IOCLR|=1<<12;
	IOCLR|=1<<25;	
	IOSET|=1<<26;
		  

	IOCLR|=1<<11;				//复位
	IOCLR|=1<<12;
	IOCLR|=1<<25;
	IOCLR|=1<<26;

	}
	return 0;
}

⌨️ 快捷键说明

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