新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 80C51單片機程序(2)

80C51單片機程序(2)

作者: 時間:2016-11-22 來源:網(wǎng)絡(luò) 收藏
//80C51程序——單片機流水燈顯示

//發(fā)光二極管的閃爍

本文引用地址:http://m.butianyuan.cn/article/201611/319716.htm

-------------------------------------------------------------------

#include //包含reg52.h頭文件

#define uint unsigned int //宏定義uint的數(shù)據(jù)類型為unsigned int型
sbit D1=P1^2; //定義P1^2位
void main()
{

uintnum=50000;//定義num數(shù)據(jù)類型,并附初值
D1=0; //點亮發(fā)光二極管

while(num--);//延時

num=50000;//定義num數(shù)據(jù)類型,并附初值
D1=1; //點亮發(fā)光二極管

while(num--);//延時
}

--------------------------------------------------------------------

//發(fā)光二極管的閃爍

--------------------------------------------------------------------

#include //包含reg52.h頭文件
#define uint unsigned int //宏定義uint的數(shù)據(jù)類型為unsigned int型
#define uchar unsigned char //宏定義uchar的數(shù)據(jù)類型為unsigned char型
sbit D1=P1^0; //定義P1^0位
void delay(uint); //聲明延時子函數(shù)
void main()
{
while(1) //進(jìn)入死循環(huán)
{
D1=0; //點亮
delay(100); //延時(注:由于軟件延時誤差比較大,這里不寫具體時間,大家可以在keil里調(diào)試測出)
D1=1; //熄滅
delay(100);//延時
}
}
void delay(uint z)
{
uint x;//在子函數(shù)中定義局部變量x
uchar y; //在子函數(shù)中定義局部變量y
for(x=z;x>0;x--)
for(y=20;y>0;y--); //進(jìn)入一次嵌套循環(huán)

}

-------------------------------------------------------------------

//流水顯示

-------------------------------------------------------------------

#include //包含reg52.h頭文件
#include //包含intrins.h頭文件
#define uint unsigned int//宏定義uint的數(shù)據(jù)類型為unsigned int型
#define uchar unsigned char //宏定義uchar的數(shù)據(jù)類型為unsigned char型
uchar temp,num,num1; //定義temp,num1,num2
void delay(uint); //聲明延時子函數(shù)

void main()
{
temp=0xfe; //定義臨時變量temp
while(1)//進(jìn)入死循環(huán)
{
for(num1=0;num1<3;num1++) //循環(huán)三個來回
{
for(num=0;num<8;num++) //每一趟亮八次
{
P1=temp; //點亮第一個燈,即給P1^0低電位
delay(100);//延時
temp=_crol_(temp,1); //用左移函數(shù)左移一位
P1=0xff; //關(guān)閉燈
delay(100); //延時
}
}
for(num1=0;num1<3;num1++) //循環(huán)三個來回
{
for(num=0;num<8;num++)//每一趟亮八次
{
P1=temp; //點亮第一個燈,即給P1^0低電位
delay(100);//延時
temp=_cror_(temp,1); //用右移函數(shù)右移一位
P1=0xff; //關(guān)閉燈
delay(100); //延時
}
}
while(1);//以上程序死循環(huán)
}
}

void delay(uint z) //延時子函數(shù)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--); //進(jìn)入一次嵌套程序
}



關(guān)鍵詞: 80C51單片機程

評論


技術(shù)專區(qū)

關(guān)閉