標題:
單片機P1口4種流水燈源代碼與Proteus仿真
[打印本頁]
作者:
學生黨1325
時間:
2020-11-26 13:48
標題:
單片機P1口4種流水燈源代碼與Proteus仿真
P1口4種流水燈,東西全在附件里了。
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
51hei.png
(20.43 KB, 下載次數(shù): 60)
下載附件
2020-11-26 23:02 上傳
單片機源程序如下:
#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); //每個燈亮10ms
for(j=0;j<7;j++) //一共8位
{
led=led<<1|0x01;
delay(10); //每個燈亮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); //控制每個子程序的次數(shù)
right(1); //交替使用效果還行
flash1(1);
flash2(1);
}
}
復(fù)制代碼
所有資料51hei提供下載:
P1口4種流水燈.zip
(57.37 KB, 下載次數(shù): 19)
2020-11-26 13:46 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1