📄 text1.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 + -