一、 实验目的与要求
1. 认识LPC2103单片机的硬件电路;
2. 学习用C语言编写延时子程序
3. 学习用仿真软件模拟流水灯;
二、 实验设备
计算机
三、 实验原理电路
P0口控制发光二极管的阴极,则可以不需要驱动电路,直接由限流电阻控制发光二极管的亮度。
实验电路如下:
四、 实验内容与步骤 1. 编写程序,按下按键后使LED1(P0.3),LED2(P0.4)依次循环点亮; 2. 五、 实验报告要求 1. 列出程序清单; #include <LPC2103.H> #define uchar unsigned char #define uint32 unsigned int #define LED1CON (1<<22) //P0.22口为LED控制端 void delay(uchar t) { uint32 i,j; for(i=0;i<t;i++) for(j=0;j<3000;j++); } void __irq IRQ_Eint0(void) { uint32 i; i=IOSET; if((i&LED1CON)==0) { IOSET=LED1CON; delay(250); } else { IOCLR=LED1CON; delay(250); } while((EXTINT&0x01)!=0) //等待外部中断信号恢复为高电平 { EXTINT=0x01; //清除EINT0中断标志 } VICVectAddr=0; //向量中断结束 } int main (void) { PINSEL0=0x00000000; PINSEL1=0x00000001; //设置引脚连接,P0.16设置为EINT0 IODIR=LED1CON; //设置LED1控制口为输出 EXTMODE= EXTMODE|0x01; //设置EINT0为电平触发模式中断 EXTPOLAR=EXTPOLAR&0X0E; VICIntSelect=0x00000000; //设置所有中断分配为IRQ中断 VICDefVectAddr=(int)IRQ_Eint0;//设置中断服务程序地址 VICVectCntl0=0x20|14; EXTINT=0x01; //清除EINT0中断标志 VICIntEnable=0x00004000; //使能EINT0中断 while(1); //等待中断 return 0; }