单片机电灯实验

单片机电灯实验

51单片机点亮一个LED灯

位方法

#include<reg52.h>
sbit D1 = P1^0;
void main(){
	D1 = 0;
	while(1);
}

总线法

二进制转16进制

灯亮二进制十六进制
第一个灯亮11111110B0xfe
第二个灯亮11111101B0xfd
第三个灯亮11111011B0xfb
全暗11111111B0xff
#include<reg52.h>
void main(){
	P1 = 0xfe; //点亮第一个灯
}
05_04_19_33_ZHuGK0

51单片机点闪烁一个LED灯

位方法

#include<reg52.h>
#include<intrins.h>   
#define uint unsigned int
void delay();
sbit D1=P1^0;

void main(){
	while(1){
		D1 = 0; //点亮第一个灯
		delay();
		D1 = 1; //熄灭所有灯
		delay();   
	}

void delay() {
	uint x,y;
	for(x = 100; x > 0; x--){
		for(y = 600; y > 0; y--);
	}
}

总线法

#include<reg52.h>
#include<intrins.h>   
#define uint unsigned int

void delay();

void main(){
	while(1){
		P1 = 0xfe;  //点亮第一个灯
		delay();
		P1 = 0xff; 	//熄灭所有灯
		delay();   
	}
}

void delay() {
	uint x,y;
	for(x=100;x>0;x--){
		for(y=600;y>0;y--);
	}
}
05_04_20_37_2

51单片机点流水灯

使用c51标准库文

其中有循环左移动

The** crol **routine rotates the bit pattern for the character c left b bits. This routine is implemented as an intrinsic function

#include<reg52.h>
#include<intrins.h>   
#define uint unsigned int
#define uchar unsigned char

uchar temp;
void delay();

void main(){
	temp = 0xfe; //11111110B   一个灯
	P1 = temp;
	while(1){
		temp = _crol_(temp,1);   //返回11111101B、11111011B...
		delay();
		P1 = temp;    
	}
}
void delay(){
	uint x,y;
	for(x = 100; x > 0; x--)
	for(y = 100; y > 0; y--);
}
05_04_20_49_1
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值