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

Posted 肥学

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用混合编程实现两个LED交替闪烁相关的知识,希望对你有一定的参考价值。

目录标题

要求

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端口

以上是关于用混合编程实现两个LED交替闪烁的主要内容,如果未能解决你的问题,请参考以下文章

arduino两个led灯交替闪烁

使用Arduino SCoop库实现三色灯交替闪烁并伴有警报声500-750HZ

cc2530控制两个LED灯交替闪烁,闪烁周期为0.5左右.其中p1_2连LED1p1-3连2

求汇编,八个led交替闪烁,汇编语言汇编语言

单片机原理及其应用——单片机控制8只发光二极管交替闪烁

单片机原理及其应用——单片机控制8只发光二极管交替闪烁