单片机电灯实验

单片机电灯实验

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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您好!对于单片机电灯控制,HAL(Hardware Abstraction Layer)是一个常用的库,用于对硬件进行抽象和封装,以简化编程过程。而延时函数通常用于控制电灯的亮灭时间间隔。 以下是一个示例,展示了如何使用HAL库和延时函数来控制单片机上的电灯: ```c #include "stm32f4xx_hal.h" #define LED_PIN GPIO_PIN_13 #define LED_PORT GPIOA void delay_ms(uint32_t ms) { HAL_Delay(ms); } int main(void) { HAL_Init(); GPIO_InitTypeDef GPIO_InitStruct; __HAL_RCC_GPIOA_CLK_ENABLE(); GPIO_InitStruct.Pin = LED_PIN; GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH; HAL_GPIO_Init(LED_PORT, &GPIO_InitStruct); while(1) { HAL_GPIO_TogglePin(LED_PORT, LED_PIN); // 切换LED的状态 delay_ms(1000); // 延时1秒 // 这里可以添加其他的逻辑控制 // 可以添加其他的延时或控制语句,实现不同的功能 } } ``` 这段代码展示了使用HAL库和延时函数来实现单片机上的电灯闪烁。其中,`delay_ms`函数用于延时指定的毫秒数,`main`函数中的循环部分控制LED的状态切换和延时。您可以根据具体的硬件平台和需求进行相应的修改和调整。 请注意,该示例代码是基于STM32F4系列单片机和HAL库进行开发的,如果您使用其他型号的单片机或不同的开发环境,可能需要进行适当的修改。希望对您有所帮助!如有更多问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值