首页 » 科学 » 单片机引脚读写操作_引脚_存放器

单片机引脚读写操作_引脚_存放器

雨夜梧桐 2024-11-09 08:26:09 0

扫一扫用手机浏览

文章目录 [+]

利用单片机时肯定会用到单片机的IO引脚。
以51单片机P1口为例。
内部构造如图所示

当单片机进行写操作时,引脚锁存器(D触发器)CLK端吸收有效电平,然后内部总线上须要写的数据就会通过D触发器传输到Q'。
当写1时Q'为0,使MOSFET截止,因此外部引脚电平为1.当写0时Q'为1,MOSFET饱和导通,此时引脚可以算作接地,以是引脚为0。

单片机引脚读写操作_引脚_存放器 科学

如果对单片机IO口进行读操作。
由图可以看出读操作包括读寄存器和读引脚。
以前知道有这两种差异,但是从来没仔细区分过。
从图中可以看出读寄存器时读寄存器上的三态缓冲器打开,Q真个值直接传到了内部总线上,而下面的读引脚三台缓冲器是高阻态,读引脚时则相反。

汇编措辞中对读寄存器和读引脚做了一定的差异,但说实话我在看汇编代码时还是区分不清两者的差异。
现在大家对单片机编程该当大部分采取的都是C措辞,在我看来,C措辞中已经极大的淡化了读寄存器还是读引脚的差异。

有些人说a=P1是读引脚(a是某个字符变量),P1=P1|0x00是读寄存器(可能因此为这里P1进行了一次逻辑运算,只有寄存器中的值才能进行逻辑运算),但我在用C措辞时觉得用P1=P1|0x00也是读的引脚。
也有些人说看经由编译器编译后的汇编代码才能分辩出两者的差异,不知道这里大家怎么看读引脚和读寄存器?

在读引脚时须要先向引脚锁存器中写1。
由于如果引脚寄存器中是0的话会导通MOSFET,使外部端口一贯是低电平,纵然表面接的是高电平在读引脚的时候也读的是0。
以前知道须要这样做,但读引脚的时候一贯没写过1,创造读的也对,现在我以为这样写不符合规范。

一样平常来说单片机在上电复位后默认引脚寄存器的值是1,这样一来关断了MOSFET,而我们在利用单片机的时候如果这个引脚作为输入,也不会让它变成一下子输出一下子输入,使得能够准确的读出外部端口的值。
现在我在写程序时如果端口做为输入引脚,我会在初始化里对其写一次1。
当然,往后就不用写了,由于写了一次1后没有其他的写操作,引脚锁存器中会一贯保持这个值不变。
当然,如果某个单片机引脚同时作为输出和输入引脚复用时,则必须在输出完成后变成输入前先向其写1,再读引脚的值。

相关文章

一文看懂CAN总线_节点_缺陷

CAN收发器CAN收发器的浸染是卖力逻辑电平和旗子暗记电平之间的转换。即从CAN掌握芯片输出逻辑电平到CAN收发器,然后经由CAN...

科学 2025-01-19 阅读0 评论0