專注電子技術(shù)學(xué)習(xí)與研究
當(dāng)前位置:單片機(jī)教程網(wǎng) >> MCU設(shè)計實(shí)例 >> 瀏覽文章

用單片機(jī)編寫幾種跑馬燈

作者:佚名   來源:本站原創(chuàng)   點(diǎn)擊數(shù):  更新時間:2010年07月26日   【字體:

任務(wù):

1、在電路板上實(shí)現(xiàn)跑馬燈,一次1匹

2、在電路板上實(shí)現(xiàn)跑馬燈,一次2匹

3、在電路板上實(shí)現(xiàn)4個二極管的同時閃爍

源程序1:


/***********************************信息****************************************
**作者:劉海濤
**版本:初始版V1.0
**描敘:用電路板實(shí)現(xiàn)跑馬燈。
**日期:2010年7月25日
*******************************************************************************/

/**********************************頭文件***************************************
**頭文件"reg52.h"
*******************************************************************************/

/**********************************函數(shù)名***************************************
**函數(shù)名:延時函數(shù)delay()
**輸  入:無
**輸  入:無
**宏定義:無
*******************************************************************************/

/**********************************宏定義***************************************

宏定義:#define XBYTE ((unsigned char *)0x20000L)

*******************************************************************************/
#include"reg52.h"
delay(unsigned int dat)      // 延時函數(shù)定義
{
 unsigned int i,j;
 for(i=0;i<dat;i++)
 {
  for(j=0;j<10000;j++);
 }
}

 

#define XBYTE ((unsigned char *)0x20000L) //宏定義

 

void main(void)        //主函數(shù)
{
 unsigned char i;
 while(1)
    {
  for(i=0;i<4;i++)
  {
   XBYTE[0xd000]=(0x01<<i)^0xFF;   //參考電路圖,點(diǎn)亮第一個燈,并循環(huán)左移
   delay(10);      //延時函數(shù)調(diào)用

  }  
 }
}

 

 

源程序2:

/***********************************信息****************************************
**作者:劉海濤
**版本:初始版V1.0
**描敘:用電路板實(shí)現(xiàn)跑馬燈,一次移動2燈。
**日期:2010年7月25日
*******************************************************************************/

/**********************************頭文件***************************************
**頭文件"reg52.h"
*******************************************************************************/

/**********************************函數(shù)名***************************************
**函數(shù)名:延時函數(shù)delay()
**輸  入:無
**輸  入:無
**宏定義:無
*******************************************************************************/


/**********************************宏定義***************************************

**宏定義:#define XBYTE ((unsigned char *)0x20000L)

*******************************************************************************/


#include"reg52.h"       // 頭文件
#define XBYTE ((unsigned char *)0x20000L) //宏定義

delay(unsigned int dat)      //延時函數(shù)
{
 unsigned int i,j;
 for(i=0;i<dat;i++)
 {
  for(j=0;j<10000;j++);
 }
}


void main(void)         //主函數(shù)
{
 unsigned int i;
 while(1)
    {
  for(i=0;i<3;i++)
  {
 
   XBYTE[0xd000]=(0x03<<i)^0xff;  //點(diǎn)亮1、2兩個燈
   delay(10);
  }
   XBYTE[0xd000]=(0x09<<0)^0xff;  //點(diǎn)亮第一、第四個燈
   delay(10);
   
 }
} 

源程序3:

/***********************************信息****************************************
**作者:劉海濤
**版本:初始版V1.0
**描敘:用電路板實(shí)現(xiàn)跑馬燈,四個二極管同時閃爍。
**日期:2010年7月25日
*******************************************************************************/

/**********************************頭文件***************************************
**頭文件"reg52.h"
*******************************************************************************/

/**********************************函數(shù)名***************************************
**函數(shù)名:延時函數(shù)delay()
**輸  入:無
**輸  入:無
*******************************************************************************/


/**********************************宏定義***************************************

**宏定義:#define XBYTE ((unsigned char *)0x20000L)

*******************************************************************************/

#include"reg52.h"        //主函數(shù)
#define XBYTE ((unsigned char *)0x20000L)  //宏定義

delay(unsigned int dat)       //延時函數(shù)
{
 unsigned int i,j;
 for(i=0;i<dat;i++)
 {
  for(j=0;j<10000;j++);
 }
}


void main(void)         //主函數(shù)
{
 
 while(1)
    {
  
 
   XBYTE[0xd000]=(0x0f<<0)^0xff;  //
   delay(10);

   XBYTE[0xd000]=(0x0f<<4)^0xff;
   delay(10);

   
 }
}
關(guān)閉窗口

相關(guān)文章