实验三 GPIO输入试验

一、 实验目的与要求

1.  认识LPC2103单片机的硬件电路;

2.  学习用C语言编写延时子程序

3.  学习用仿真软件模拟流水灯;

 

二、 实验设备

计算机

 

三、 实验原理电路

P0口控制发光二极管的阴极,则可以不需要驱动电路,直接由限流电阻控制发光二极管的亮度。

实验电路如下:

四、 实验内容与步骤

1.  编写程序,按下按键后使LED1P0.3),LED2P0.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;

}

 

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值