微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 80C51单片机程序(2)

80C51单片机程序(2)

时间:11-22 来源:互联网 点击:
//80C51程序——单片机流水灯显示

//发光二极管的闪烁

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

#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--); //进入一次嵌套程序
}

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top