|
P1口4種流水燈,東西全在附件里了。  
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
51hei.png (20.43 KB, 下載次數(shù): 60)
下載附件
2020-11-26 23:02 上傳
單片機(jī)源程序如下:
- #include<reg51.h>
- #define led P1 //可以改為其他口
- void delay(int x);
- void left(int x);
- void right(int x);
- void flash1(int x);
- void flash2(int x);
- void delay(x) //延遲函數(shù)1ms(大概)
- {int i;
- while(x)
- {
- for(i=0;i<125;i++);
- x--;
- }
- }
- void left(x) //從最高位的最低位(我叫它左移)
- {int i,j;
- for(i=0;i<3;i++) // 循環(huán)3遍
- { led=0xfe;
- delay(10); //每個(gè)燈亮10ms
- for(j=0;j<7;j++) //一共8位
- {
- led=led<<1|0x01;
- delay(10); //每個(gè)燈亮10ms
- }
- }
- }
- void right(x) //從最低位的最高位(我叫它右移)
- {int i,j; //其他同左移
- for(i=0;i<3;i++)
- { led=0x7f;
- delay(10);
- for(j=0;j<7;j++)
- {
- led=led>>1|0x80;
- delay(10);
- }
- }
- }
- void flash1(x) //八位全閃 (可以改很多種)
- {int i;
- led=0xff;
- delay(20); //一次亮20ms
- for(i=0;i<1;i++) //可以改循環(huán)次數(shù)
- {
- led=~led;
- delay(20);
- }
- }
- void flash2(x) //隔一位閃爍(全閃改)
- {int i; //基本和全閃一樣
- led=0x55;
- delay(20);
- for(i=0;i<1;i++)
- {
- led=~led;
- delay(20);
- }
- }
- main()
- {while(1)
- {left(1); //控制每個(gè)子程序的次數(shù)
- right(1); //交替使用效果還行
- flash1(1);
- flash2(1);
- }
- }
復(fù)制代碼
所有資料51hei提供下載:
P1口4種流水燈.zip
(57.37 KB, 下載次數(shù): 19)
2020-11-26 13:46 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
|
評(píng)分
-
查看全部評(píng)分
|