任务:
1、在电路板上实现跑马灯,一次1匹
2、在电路板上实现跑马灯,一次2匹
3、在电路板上实现4个二极管的同时闪烁
源程序1:
/***********************************信息**************************************** **作者:刘海涛 **版本:初始版V1.0 **描叙:用电路板实现跑马灯。 **日期:2010年7月25日 *******************************************************************************/ /**********************************头文件*************************************** **头文件"reg52.h" *******************************************************************************/ /**********************************函数名*************************************** **函数名:延时函数delay() **输 入:无 **输 入:无 **宏定义:无 *******************************************************************************/ /**********************************宏定义*************************************** 宏定义:#define XBYTE ((unsigned char *)0x20000L) *******************************************************************************/ #include"reg52.h" delay(unsigned int dat) // 延时函数定义 { unsigned int i,j; for(i=0;i<dat;i++) { for(j=0;j<10000;j++); } } #define XBYTE ((unsigned char *)0x20000L) //宏定义 void main(void) //主函数 { unsigned char i; while(1) { for(i=0;i<4;i++) { XBYTE[0xd000]=(0x01<<i)^0xFF; //参考电路图,点亮第一个灯,并循环左移 delay(10); //延时函数调用 } } } 源程序2: /***********************************信息**************************************** **作者:刘海涛 **版本:初始版V1.0 **描叙:用电路板实现跑马灯,一次移动2灯。 **日期:2010年7月25日 *******************************************************************************/ /**********************************头文件*************************************** **头文件"reg52.h" *******************************************************************************/ /**********************************函数名*************************************** **函数名:延时函数delay() **输 入:无 **输 入:无 **宏定义:无 *******************************************************************************/ /**********************************宏定义*************************************** **宏定义:#define XBYTE ((unsigned char *)0x20000L) *******************************************************************************/ #include"reg52.h" // 头文件 #define XBYTE ((unsigned char *)0x20000L) //宏定义 delay(unsigned int dat) //延时函数 { unsigned int i,j; for(i=0;i<dat;i++) { for(j=0;j<10000;j++); } } void main(void) //主函数 { unsigned int i; while(1) { for(i=0;i<3;i++) { XBYTE[0xd000]=(0x03<<i)^0xff; //点亮1、2两个灯 delay(10); } XBYTE[0xd000]=(0x09<<0)^0xff; //点亮第一、第四个灯 delay(10); } } 源程序3: /***********************************信息**************************************** **作者:刘海涛 **版本:初始版V1.0 **描叙:用电路板实现跑马灯,四个二极管同时闪烁。 **日期:2010年7月25日 *******************************************************************************/ /**********************************头文件*************************************** **头文件"reg52.h" *******************************************************************************/ /**********************************函数名*************************************** **函数名:延时函数delay() **输 入:无 **输 入:无 *******************************************************************************/ /**********************************宏定义*************************************** **宏定义:#define XBYTE ((unsigned char *)0x20000L) *******************************************************************************/ #include"reg52.h" //主函数 #define XBYTE ((unsigned char *)0x20000L) //宏定义 delay(unsigned int dat) //延时函数 { unsigned int i,j; for(i=0;i<dat;i++) { for(j=0;j<10000;j++); } } void main(void) //主函数 { while(1) { XBYTE[0xd000]=(0x0f<<0)^0xff; // delay(10); XBYTE[0xd000]=(0x0f<<4)^0xff; delay(10); } }