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);

}

}

}

相关推荐
山荷枝6 小时前
Java学习第十天
java·学习
huibin1478523696 小时前
热缓解学习记录
android·学习
Nan_Shu_6148 小时前
学习:GSAP
学习
单片机杂货铺8 小时前
基于单片机的智能粮仓控制系统设计与实现
stm32·单片机·嵌入式硬件·物联网·计算机外设·51单片机·课程设计
指尖的爷8 小时前
RKNN转化环境搭建(rknn_toolkit2新版本)
嵌入式硬件·深度学习·物联网·目标检测
梁朝辉8 小时前
滴泪的曲线(Curved)还是直线(Line)什么区别,都应用于什么场景!
嵌入式硬件·硬件工程
我命由我123459 小时前
匈牙利命名法
java·服务器·后端·学习·java-ee·kotlin·学习方法
clear sky .10 小时前
stm32H7进入HardFault_Handler机制
stm32·单片机·嵌入式硬件
xiaoxiangsiyan10 小时前
运维之前端反调试学习
运维·前端·学习·状态模式
小僧景贤11 小时前
STM32 GPIO 详解(含寄存器、HAL 库、电气特性、低功耗深度剖析)
stm32·单片机·嵌入式硬件