嵌入式

本文介绍了一个基于Micro2440平台的实验项目,通过按键控制LED的亮灭状态。使用汇编语言编程,实现了不同按键对应不同的LED亮灭组合,包括全亮、特定LED亮以及循环点亮等功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  

一、使用ADS1.2平台设计程序,并具有以下功能:(30分)

要求:在Micro 2440 平台下实现,按键控制LED发光,按键为S1,S2,S3,S4;LED为LED1,LED2,LED3,LED4

当S1按下时,4个LED全亮,松开全灭;当S2按下时LED1,LED3亮,松开全灭;当S3按下时LED2,LED4亮,松开全灭;当S4按下时LED1—LED4循环单独亮,松开全灭。

(汇编语言,C、汇编混合编程都可以)


  AREA |XIE|,CODE,READONLY 

  ENTRY 
  ldr r13, =0x1000 
  IMPORT Main 
  b Main 
  END


#define GPBCON  (*(volatile unsigned int *)0x56000010)
#define GPBDAT  (*(volatile unsigned int *)0x56000014)
#define GPGCON  (*(volatile unsigned int *)0x56000060)
#define GPGDAT  (*(volatile unsigned int *)0x56000064)
void delay(int n)
{
 int i,j;
  for(i=0;i<=n;i++)
  {   j=10000;
      while(j>0)
  j--;
  }
}
void Main()
{    int a;
   GPBCON=0X00015400;
   GPGCON=0X00405441;
   GPGCON=0X00000000;




while(1)
{  GPBDAT = 0XFFF;
   GPGDAT=0X000008E9; // 1000 1110 1001 
   a=GPGDAT;
   a=a&(0x000008E9);
if(a==0x000008E8)
   GPBDAT = 0X000;
if(a==0x000008E1)
   GPBDAT = 0X140;//F5F
if(a==0x000008C9)
   GPBDAT = 0X0A0;//EBF
if(a==0x000008A9)
   {   GPBDAT = 0XFDF;//哪一位亮哪一位为0
       delay(2000);
       GPBDAT = 0XFBF;
       delay(2000);
       GPBDAT = 0XF7F;
       delay(2000);
       GPBDAT = 0XEFF;
       delay(2000);
   }      
}
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值