//80C51程序——單片機的流水燈顯示//發光二極管的閃爍
本文引用地址:http://www.104case.com/article/201611/319716.htm-------------------------------------------------------------------
#include //包含reg52.h頭文件
#define uint unsigned int //宏定義uint的數據類型為unsigned int型
sbit D1=P1^2; //定義P1^2位
void main()
{
uintnum=50000;//定義num數據類型,并附初值
D1=0; //點亮發光二極管
while(num--);//延時
num=50000;//定義num數據類型,并附初值
D1=1; //點亮發光二極管
while(num--);//延時
}
--------------------------------------------------------------------
//發光二極管的閃爍
--------------------------------------------------------------------
#include //包含reg52.h頭文件
#define uint unsigned int //宏定義uint的數據類型為unsigned int型
#define uchar unsigned char //宏定義uchar的數據類型為unsigned char型
sbit D1=P1^0; //定義P1^0位
void delay(uint); //聲明延時子函數
void main()
{
while(1) //進入死循環
{
D1=0; //點亮
delay(100); //延時(注:由于軟件延時誤差比較大,這里不寫具體時間,大家可以在keil里調試測出)
D1=1; //熄滅
delay(100);//延時
}
}
void delay(uint z)
{
uint x;//在子函數中定義局部變量x
uchar y; //在子函數中定義局部變量y
for(x=z;x>0;x--)
for(y=20;y>0;y--); //進入一次嵌套循環
}
-------------------------------------------------------------------
//流水顯示
-------------------------------------------------------------------
#include //包含reg52.h頭文件
#include //包含intrins.h頭文件
#define uint unsigned int//宏定義uint的數據類型為unsigned int型
#define uchar unsigned char //宏定義uchar的數據類型為unsigned char型
uchar temp,num,num1; //定義temp,num1,num2
void delay(uint); //聲明延時子函數
void main()
{
temp=0xfe; //定義臨時變量temp
while(1)//進入死循環
{
for(num1=0;num1<3;num1++) //循環三個來回
{
for(num=0;num<8;num++) //每一趟亮八次
{
P1=temp; //點亮第一個燈,即給P1^0低電位
delay(100);//延時
temp=_crol_(temp,1); //用左移函數左移一位
P1=0xff; //關閉燈
delay(100); //延時
}
}
for(num1=0;num1<3;num1++) //循環三個來回
{
for(num=0;num<8;num++)//每一趟亮八次
{
P1=temp; //點亮第一個燈,即給P1^0低電位
delay(100);//延時
temp=_cror_(temp,1); //用右移函數右移一位
P1=0xff; //關閉燈
delay(100); //延時
}
}
while(1);//以上程序死循環
}
}
void delay(uint z) //延時子函數
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--); //進入一次嵌套程序
}
評論