用混合编程实现两个LED交替闪烁

用混合编程实现两个LED交替闪烁,第1张

目录标题
  • 要求
  • C语言部分
  • 汇编部分
  • 资料部分

要求

LED是程序开发中最常用的状态指示设备。


开发板上有两个用户可编程LED,他们直接与CPU的GPIO连接,低电平有效(点亮),通过对G口的 *** 作控制CPU板左下角的LED1和LED2实现轮流闪烁。


详细的资源用如下表。


LED1
GPIOLIG口的第8位指示
LED2
GPIOIIG口的第9位指示
C语言部分
#define rGPGCON (*(volatile unsigned *)0x56000060)
#define rGPGDAT (*(volatile unsigned *)0x56000064)
#define rGPGUP  (*volatile unsigned *)0x56000068)


void Led_port_init(void);

#define LED1_ON   ~(1<<8)
#define LED2_ON   ~(1<<9)


#define LED1_OFF   (1<<8)
#define LED2_OFF   (1<<9)
/*************************************************
Function name: delay
Parameter    : times
Description	 : 延时函数
Return		 : void
Argument     : void
Autor & date :
**************************************************/
void delay(int times)
{
    int i;
    for(;times>0;times--)
      for(i=0;i<400;i++);
}
/*************************************************
Function name: Main
Parameter    : void
Description	 : 主功能函数
Return		 : void
Argument     : void
Autor & date :
**************************************************/
int Main()
{	
    Led_port_init();
    
    while(1)
    {
    	/* 1亮2灭 */
    	rGPGDAT = rGPGDAT&(LED1_ON)|(LED2_OFF);
    
    	delay(10000);
    
    	/* 1灭2亮 */
    	rGPGDAT = rGPGDAT|(LED1_OFF)&(LED2_ON);
    	
    	delay(10000);
    }
}	

/*************************************************
Function name: Led_port_init
Parameter    : void
Description	 : mini2440开发板有4个引脚连接了LED发光
               二极管,分别是GPB5--LED1,GPB6—LED2
               GPB7--LED3,GPB8--LED4,该函数的作用
               是对其个引脚进行初始化。


Return : void Argument : void Autor & date : Daniel **************************************************/ void Led_port_init(void) { /*设置GPG8-GPG9为输出端口*/ rGPGCON &= ~((3<<16)|(3<<18)); /* 11 0000 0000 0000 0000 1100 0000 0000 0000 0000 1111 0000 0000 0000 0000 0000 1111 1111 1111 1111 */ rGPGCON |= (1<<16)|(1<<18); /* 1 0000 0000 0000 0000 100 0000 0000 0000 0000 0101 0000 0000 0000 0000 */ }

汇编部分

		AREA Init,CODE,READONLY;
		ENTRY;
		EXPORT _ENTRY          ;
_ENTRY
ResetEntry
		MOV sp,#0x0c700000     ;
		import Main            ;
		BL     Main			   ;
		
		end
资料部分

gpio的gpg端口

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/607157.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-14
下一篇 2022-04-14

发表评论

登录后才能评论

评论列表(0条)

保存