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

}

}

}

相关推荐
LCG米1 小时前
STM32 定时器主从模式输出精确脉冲数实测:TRGO 触发链拆解、多发一脉冲根因与干净停止时序落地
stm32·单片机·嵌入式硬件·嵌入式
青梅味猪大肠1 小时前
【操作系统-60】临近适应算法
java·linux·开发语言·嵌入式硬件·算法·操作系统
ChaseVLSI1 小时前
FPGA与ASIC的区别详解:内部结构、开发成本与适用场景,项目选型到底该选哪个
嵌入式硬件·fpga开发·硬件架构·硬件工程
东莞市壹星自动化设备有限公司2 小时前
透明圆瓶内部特征怎样定位:折射追踪与近远相位分支
嵌入式硬件·自动化·需求分析·几何学·骨骼绑定
Dev_XH2 小时前
【成品设计】基于物联网的配电箱智能防护系统设计
stm32·单片机·嵌入式硬件·物联网
Dev_XH4 小时前
【成品设计】基于单片机的工厂设备能耗监控与优化系统
stm32·单片机·嵌入式硬件·物联网
不脱发的程序猿4 小时前
STM32制作单手鼠标键盘
stm32·嵌入式硬件·计算机外设·usb·qmk
Z21-X4 小时前
云原生运维学习笔记:容器技术的演进、底层原理与 Docker 全生命周期管理
运维·笔记·学习·云原生
Rabitebla12 小时前
【Linux 底层原理】进程(十):进程等待详解---从僵尸进程到 wait、waitpid 与 status
linux·c++·笔记·学习·visual studio
无心水17 小时前
24、系统架构师论文写作专题 核心考点与学习笔记
笔记·学习·系统架构·架构师·安全架构·软考架构师·软考系统架构设计师