单片机-LED实验

1、51工程模版

#include "reg52.h"

void main(){

while(1){

}

}

2、LED灯亮

#include "reg52.h"

sbit LED1=P2^0;

void main(){

while(1){

LED1=0;

}

}

3、LED闪烁

#include "reg52.h"

sbit LED1=P2^0; //P2大写,默认是高电平

typedef unsigned int u16; //0~65535

typedef unsigned char u8; //0~255

void delay_10us(u16 ten_us){

while(ten_us--); //当传入ten_su=1,大约延时10us

}

void main(){

while(1){

LED1=0; //灯亮

delay_10us(50000); //延时 //500ms 450-500

LED1=1; //灯灭

delay_10us(50000);

}

}

4、LED流水灯

4.1从左向右依次亮

方法一

#include "reg52.h"

#define LED_PORT P2

typedef unsigned int u16;

typedef unsigned char u8;

void delay_10us(u16 ten_us){

while(ten_us--);

}

void main(){

u16 i=0;

while(1){

for (i=0;i<8;i++){

LED_PORT=~(0X01<<i);

delay_10us(50000);

}

}

}

方法二 左移函数 corl

#include "reg52.h"
#include "intrins.h"

typedef unsigned int u16;

typedef unsigned char u8;

#define LED_PORT P2//宏定义

void delay_10us(u16 ten_us){

while(ten_us--);

}

void main(){

u16 i=0;

LED_PORT=0XFE; //LED_PORT=~0X01; //1111 1110

delay_10us(50000);

while(1){

for(i=0;i<7;i++){

LED_PORT=crol(LED_PORT,1);

delay_10us(50000);

}

}

}

4.2从右向左依次亮

#include "reg52.h"
#include "intrins.h"

typedef unsigned int u16;

typedef unsigned char u8;

#define LED_PORT P2//宏定义

void delay_10us(u16 ten_us){

while(ten_us--);

}

void main(){

u16 i=0;

LED_PORT=0X7F; //0111 1111

delay_10us(50000);

while(1){

for(i=0;i<7;i++){

LED_PORT=cror(LED_PORT,1);

delay_10us(50000);

}

}

}

相关推荐
憧憬一下3 小时前
stm32之输出比较OC和输入捕获IC
stm32·单片机·嵌入式硬件·嵌入式
2401_8729905312 小时前
stm32 hal库 SPI使用(二)硬件SPI的HAL库函数调用
stm32·单片机·嵌入式硬件
憧憬一下12 小时前
stm32之TIM定时中断详解
stm32·单片机·嵌入式·定时器
学习噢学个屁15 小时前
基于51单片机的红外人体感应报警器
c语言·单片机·嵌入式硬件·51单片机
技术干货贩卖机17 小时前
0基础 | STM32 | STM32F103C8T6开发板 | 项目开发
stm32·单片机·嵌入式硬件·源代码·项目开发·0基础
Leon_George17 小时前
GPIO引脚的上拉下拉以及转换速度到底怎么选
单片机·嵌入式硬件·引脚配置·上拉下拉·引脚速度
2401_8888597118 小时前
STM32 USART串口
stm32·嵌入式硬件
zhugedz18 小时前
开关电源原理
单片机·嵌入式硬件
河湾边的一亩三分地19 小时前
STM32 PulseSensor心跳传感器驱动代码
stm32·单片机·嵌入式硬件
学生小羊19 小时前
[C++] 小游戏 决战苍穹
c++·stm32·单片机