## 点亮流水灯,初学者粗糙笔记(1)

点亮流水灯,初学者粗糙笔记(1)

作为初学者的我最想要的是能详细不用专业术语被教,但往往教我的不知从何说起,所以下面是我听过的有用易懂的方式总结,参杂的是我学习思路,也记录我的学习过程,也许到最后,越学记的越简单,但一开始总喜欢详尽记录。
为了简便描述下面低电平用“-”表示。高电平用“+”表示
在这里插入图片描述

点亮led代码

在这里插入图片描述

锁存器打开,并做完操作以后就要关掉。
这是习惯问题,也是为了防止之后编程逻辑出错。
不加“while(1);”
你写一条代码单片机就运行超级快的一下子,你就看不到灯亮了。
而在有锁存器的板上不加也看得到因为有锁存器。
(意思就是,不加while时比如灯延时设置是1毫秒,如果同时在没有锁存器的情况下,你是看不到它亮的就是肉眼看不出结果。)
加了while(1),它就执行到while这里就一直不断得执行while。while里有条件限制除外。

用到的原理图

在这里插入图片描述

当Y4c为高电平时Q1-Q8的电平会随着
D1-D8的变化而变化。
(D1+,Q1也+);
若此时Q1为“+”
Y4c改为“-”
那么再将D1改为“-”,此时Q1 只会保持上一个状态,也就是“+”,不会随D1的变化而变化。
(所以要使Q1-Q2随D1-D2的变化而变化就需使Y4c为“+”)。

在这里插入图片描述

这上面4个是集中在下面这一个芯片上的

在这里插入图片描述
在这里插入图片描述

上面这个起取反作用,所以当要Y4c取“+”那Y4就要取“-”。

在这里插入图片描述

***上面这个图原理是将二进制转十进制

如下举例

在这里插入图片描述

如果要点亮led L1,则要这样的看图流程

在这里插入图片描述
y4c为“+”才能使Q1随D1变化而变化
在这里插入图片描述


Y4c要为“+”则
Y4要为“-”在这里插入图片描述


Y4要为“-”则Y4要为“0”
在这里插入图片描述

所以P2前三位为100
后面5位假设为00000。
所以点L1代码则为,P2=0x80;P0=0x01;


(点亮L1——Y4c要为“+”才能使——D1为0——Q1也为0

Y4c要为“+”——Y4要为“-”——Y4对应P27P26P25处二进制转十进制得结果为4,才使得Y4=0——Y4=0——Y4“-”——Y4c“+”——Q1才能随D1变化而变化——此时使D1=0则——L1一边“+”一边“-”则灯亮。)

关于P2=0x80;P0=0xff;P2=0x00;


P2=0x80打开Y4锁存器;
P0=0x00 关闭所有led灯;
P2=0x00 关闭Y4锁存器;
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

所以P2=0x80;

关于P2=0xa0;P0=0x00;P2=0x00;

在这里插入图片描述

蜂鸣器两边为正则关
N BUZZ要为正则
在这里插入图片描述

所以P0=0x00;//关闭蜂鸣器

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

P2=0xa0;//打开Y5锁存器;
P2=0x00;//关闭锁存器;
P2 对二进制顺序P27 P26 P25 P24 P23 P22 P21 P20
P0对二进制顺序P07 P06 P05 P04 P03 P02 P01 P00

如何只给P27P26P25赋值而不影响剩余几个。

在这里插入图片描述

1为真0为假;

用“|“”&“

P2=0x9f&(P2|=0xe0) ;//打开Y4

|:自我理解相当于数学中的“∪”

两个为真则真,
两个为假则假,
一个真一个假则真。

&:相当于“∩”

两个为真则真,
两个为假则假,
一真一假则为假。
假设一开始P2八个全为不知道
???? ????

或“|”上“e0”过程

?? ?? ????
1 1 1 0 0 0 0 0(e0)

或上得 1 1 1 ? ????

过程如下
在这里插入图片描述

111?????再与10011111(9f)与“&”得过程

100?????
过程如下
在这里插入图片描述

这样就只改变了前三个口,而使剩余几个口不变。

继电器

同理于蜂鸣器的使用方式

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

关于简便用法

在这里插入图片描述

简单说,关于点灯,你只需知道灯的原理图的作用,如取反,什么情况什么会随什么的变化而变化,共阳或共阴?当一端为“+”一端“-”则通。

猜你喜欢

转载自blog.csdn.net/m0_53126906/article/details/113325363