任務(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); } }