流水灯P0口,数码管位选P1口;段选P2口,数字每秒钟自动跳动,并且流水灯出现不同的闪烁效果我是在自己制作的单片机板子上完成这个实验的有兴趣的也可以做一块这里是制作资料:http://www.51hei.com/mcu/1019.html
#include"reg51.h" #include"intrins.h" #define uchar unsigned char uchar m,k; sbit WX1=P1^0; sbit WX2=P1^1; sbit WX3=P1^2; sbit WX4=P1^3; void delay(uchar a) { uchar i,j; for(i=a;i>0;i--) for(j=110;j>0;j--); } void main() { m=0x7e; while(1) { for(k=20;k>0;k--) { WX1=1; P2=0xc0; delay(100); WX1=0;WX2=0;WX3=0;WX4=0; P0=m; delay(1000); m=_crol_(m,1); } for(k=20;k>0;k--) { WX1=1; P2=0xf9; delay(100); WX1=0;WX2=0;WX3=0;WX4=0; P0=m; delay(1000); m=_cror_(m,1); } for(k=20;k>0;k--) { WX1=1; P2=0xa4; delay(100); WX1=0;WX2=0;WX3=0;WX4=0; P0=m; delay(1000); m=_crol_(m,2); } for(k=20;k>0;k--) { WX1=1; P2=0xb0; delay(100); WX1=0;WX2=0;WX3=0;WX4=0; P0=m; delay(1000); m=_cror_(m,3); } } }