51单片机学习

1.1控制一个灯亮

void main()

{

P2=0xFE;

}

1.2控制一个灯闪烁

void Delay500ms() //@12.000MHz

{

unsigned char i, j, k;

nop();

i = 4;

j = 205;

k = 187;

do

{

do

{

while (--k);

} while (--j);

} while (--i);

}

void main()

{

while(1)

{

P2=0xFE;

Delay500ms();

P2=0xFF;

Delay500ms();

}

}

1.3流水灯

void Delay500ms() //@12.000MHz

{

unsigned char i, j, k;

nop();

i = 4;

j = 205;

k = 187;

do

{

do

{

while (--k);

} while (--j);

} while (--i);

}

void main()

{

while(1)

{

P2=0xFE;

Delay500ms();

P2=0xFD;

Delay500ms();

P2=0xFB;

Delay500ms();

P2=0xF7;

Delay500ms();

P2=0xEF;

Delay500ms();

P2=0xDF;

Delay500ms();

P2=0xBF;

Delay500ms();

P2=0x7F;

Delay500ms();

}

}

2.1独立按键控制亮灭

void main()

{

while(1)

{

if(P3_1 == 0)

{

P2_0=0;

}

else

{

P2_0=1;

}

}

}

2.2独立按键控制LED状态

void Delay(unsigned int xms) //@12.000MHz

{

unsigned char i, j;

while(xms)

{

i = 2;

j = 239;

do

{

while (--j);

}

while (--i);

xms--;

}

}

void main()

{

while(1)

{

if(P3_1==0)

{

Delay(20);

while(P3_1==0);

Delay(20);

P2_0=~P2_0;

}

}

}

2.3独立按键控制LED显示二进制

void Delay(unsigned int xms) //@12.000MHz

{

while(xms)

{

unsigned char i, j;

i = 2;

j = 239;

do

{

while (--j);

}

while (--i);

xms--;

}

}

void main()

{

unsigned char LED_Num=0;//表示寄存器

while(1)

{

if(P3_1 == 0)

{

Delay(20);

while(P3_1 == 0);

Delay(20);

//默认P2后为高电平 1111 1111

LED_Num++;//0000 0001

P2=~LED_Num;//1111 1110

}

}

}

2.4独立按键控制LED移位

void Delay(unsigned int xms) //@12.000MHz

{

while(xms)

{

unsigned char i, j;

i = 2;

j = 239;

do

{

while (--j);

}

while (--i);

xms--;

}

}

unsigned char LED_Num = 0;

void main()

{

P2=~0x01;//初始化

while(1)

{

if(P3_1 == 0)

{

Delay(20);

while(P3_1 == 0);

Delay(20);

LED_Num++;

if(LED_Num>=8)

LED_Num=0;

P2=~(0x01<<LED_Num);//注意取反与括号的先后顺序

}

if(P3_0 == 0)

{

Delay(20);

while(P3_0 == 0);

Delay(20);

if(LED_Num==0)

LED_Num=7;

else

LED_Num--;

P2=~(0x01<<LED_Num);

}

}

}

相关推荐
t1987512814 分钟前
STM32通过SPI读取磁编码器AS5047P获取电机角度信息
stm32·单片机·嵌入式硬件
学嵌入式的小杨同学23 分钟前
STM32 进阶封神之路(三十二):SPI 通信深度实战 —— 硬件 SPI 驱动 W25Q64 闪存(底层时序 + 寄存器配置 + 读写封装)
c++·stm32·单片机·嵌入式硬件·mcu·架构·硬件架构
不做无法实现的梦~24 分钟前
clion配置stm32(调试,烧录的详细教程)
stm32·单片机·嵌入式硬件
蒸蒸yyyyzwd33 分钟前
后端学习笔记 day4
linux·笔记·学习
笨笨饿2 小时前
20_Git 仓库使用手册 - 初学者指南
c语言·开发语言·嵌入式硬件·mcu·学习
freshman_y3 小时前
STM32工程模板如何配置
stm32·单片机·嵌入式硬件
cqbelt3 小时前
Python 并发编程实战学习笔记
笔记·python·学习
智算菩萨3 小时前
【论文复现】Applied Intelligence 2025:Auto-PU正例无标签学习的自动化实现与GPT-5.4辅助编程实战
论文阅读·python·gpt·学习·自动化·复现
老神在在0014 小时前
【Selenium 自动化精讲】浏览器弹窗与登录界面的本质区别 & 实操指南
javascript·学习·selenium·测试工具·自动化
·醉挽清风·4 小时前
学习笔记—Linux—信号阻塞&信号捕捉
linux·笔记·学习