用單片機編寫幾種跑馬燈
任務:
1、在電路板上實現(xiàn)跑馬燈,一次1匹
2、在電路板上實現(xiàn)跑馬燈,一次2匹
3、在電路板上實現(xiàn)4個二極管的同時閃爍
源程序1:
/***********************************信息****************************************
**作者:劉海濤
**版本:初始版V1.0
**描敘:用電路板實現(xiàn)跑馬燈。
**日期:2010年7月25日
*******************************************************************************/
/**********************************頭文件***************************************
**頭文件reg52.h
*******************************************************************************/
/**********************************函數(shù)名***************************************
**函數(shù)名:延時函數(shù)delay()
**輸 入:無
**輸 入:無
**宏定義:無
*******************************************************************************/
/**********************************宏定義***************************************
宏定義:#define XBYTE ((unsigned char *)0x20000L)
*******************************************************************************/
#includereg52.h
delay(unsigned int dat) // 延時函數(shù)定義
{
unsigned int i,j;
for(i=0;idat;i++)
{
for(j=0;j10000;j++);
}
}
#define XBYTE ((unsigned char *)0x20000L) //宏定義
void main(void) //主函數(shù)
{
unsigned char i;
while(1)
{
for(i=0;i4;i++)
{
XBYTE[0xd000]=(0x01i)^0xFF; //參考電路圖,點亮第一個燈,并循環(huán)左移
delay(10); //延時函數(shù)調用
}
}
}
源程序2:
/***********************************信息****************************************
**作者:劉海濤
**版本:初始版V1.0
**描敘:用電路板實現(xiàn)跑馬燈,一次移動2燈。
**日期:2010年7月25日
*******************************************************************************/
/**********************************頭文件***************************************
**頭文件reg52.h
*******************************************************************************/
/**********************************函數(shù)名***************************************
**函數(shù)名:延時函數(shù)delay()
**輸 入:無
**輸 入:無
**宏定義:無
*******************************************************************************/
/**********************************宏定義***************************************
**宏定義:#define XBYTE ((unsigned char *)0x20000L)
*******************************************************************************/
#includereg52.h // 頭文件
#define XBYTE ((unsigned char *)0x20000L) //宏定義
delay(unsigned int dat) //延時函數(shù)
{
unsigned int i,j;
for(i=0;idat;i++)
{
for(j=0;j10000;j++);
}
}
void main(void) //主函數(shù)
{
unsigned int i;
while(1)
{
for(i=0;i3;i++)
{
XBYTE[0xd000]=(0x03i)^0xff; //點亮1、2兩個燈
delay(10);
}
XBYTE[0xd000]=(0x090)^0xff; //點亮第一、第四個燈
delay(10);
}
}
源程序3:
/***********************************信息****************************************
**作者:劉海濤
**版本:初始版V1.0
**描敘:用電路板實現(xiàn)跑馬燈,四個二極管同時閃爍。
**日期:2010年7月25日
*******************************************************************************/
/**********************************頭文件***************************************
**頭文件reg52.h
*******************************************************************************/
/**********************************函數(shù)名***************************************
**函數(shù)名:延時函數(shù)delay()
**輸 入:無
**輸 入:無
*******************************************************************************/
/**********************************宏定義***************************************
**宏定義:#define XBYTE ((unsigned char *)0x20000L)
*******************************************************************************/
#includereg52.h //主函數(shù)
#define XBYTE ((unsigned char *)0x20000L) //宏定義
delay(unsigned int dat) //延時函數(shù)
{
unsigned int i,j;
for(i=0;idat;i++)
{
for(j=0;j10000;j++);
}
}
void main(void) //主函數(shù)
{
while(1)
{
XBYTE[0xd000]=(0x0f0)^0xff; //
delay(10);
XBYTE[0xd000]=(0x0f4)^0xff;
delay(10);
}
}
評論