此程序的电路图下载:http://www.51hei.com/f/ks51.pdf
- /**作者:网友 孤竹翼羽 **/
- //自已修正了下,可以在我的板子上运行了
- //水滴形成,并拖尾滴落
- #include <reg52.h>
- typedef unsigned char uint8;
- sbit ENLED = P0^4;
- sbit ADDR3 = P0^3;
- sbit ADDR2 = P0^2;
- sbit ADDR1 = P0^1;
- sbit ADDR0 = P0^0;
- sbit DB0 = P1^0;
- sbit P25=P2^5;
- void main()
- {
- unsigned char i,k,p,t,j;
- char l;
- unsigned char a[]={0,1,2,4,6,16,32,64}; //亮度数组以实现拖尾效果
- unsigned char b[]={0,34,48,59,68,76,84,91,97,103,109,114,119,123,126}; //时间数组以实现加速效果
- signed char c[]={-7,-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6,7};
-
- ENLED=0;ADDR3=1;
- ADDR0=0;ADDR1=1;ADDR2=1;
- P25=1;
- P0=0xff;
- P1=0xFF;
-
- while(1)
- {
- /******************************************************************************************************/
- /****************************************水滴形成(渐变效果)******************************************/
- /******************************************************************************************************/
- k=0;
- for(i=0;i<=252;i++)
- {
- if(0==(i%4))
- k++;
- for(t=0;t<=16;t++)
- {
- DB0=0;
- for(j=0;j<=96;j++)
- if(j==k)
- DB0=1;
- }
- }
- /******************************************************************************************************/
- /***********************************水滴掉下(加速与拖尾效果)*****************************************/
- /******************************************************************************************************/
-
- for(j=0;j<=254;j++)
- {
- p=0;
- for(k=0;k<=15;k++)
- {
- if(j==b[k]) l=c[k];
- }
-
- for(i=0;i<=64;i++)
- {
- for(k=0;k<=7;k++)
- {
- if(i==a[k])
- {
- p=p|(1<<k);
- t=~p;
- if(l>=0)
- P1=~(t<<l);
- else
- P1=~(t>>-l);
- }
- }
- }
- }
- }
- }
复制代码
|