天天看点

MCS-51单片机指令系统“读-改-写”方式指令

        51 单片机有四个 8 位的并行接口。由于内部结构的特点,并行接口在输出 0、1 的时候,能力是不一样的。输出 0 的时候,能力较强,但输出 1 的时候,能力就很差了,而 P0 口,则要外接上拉电阻才能输1。

        单片机从端口读入数据的通道有两个,一个是从锁存器引入,一个是从输出引脚处引入,分别叫做“读锁存器”和“读引脚”。单片机在进行端口输出时,经常要参考其上一次的输出状态。 

        Example:使一个LED灯闪烁。编程序时需要从输出引脚读前一次的输出状态,然后将其求反输出。如果上次是输出“1”使LED点亮,这时候虽然端口上输出逻辑是“1”,但是由于LED的二极管作用将输出高电平拉至“0”电平(0.7V左右),通过引脚读进来就是“0”而非“1”了。这样,将“0”求反后输出还是“1”,就起不到使灯闪烁的目的了。但是,如果这时读的不是端口而是锁存器的输出端Q,则实现闪烁的功能就正常。上述例子很好地说明了为什么单片机在设置读端口功能后还要设置读锁存器这一功能。

        而对于LED的二极管作用将输出高电平拉至“0”电平,实际上外接电路,很容易把引脚的电平拉低,这也就是为什么二极管能将输出高电平拉至“0”电平。

         读引脚由传送指令MOV实现 

         读锁存器用到的“读-改-写”指令用 ANL P0,A等实现

部分内容转载:https://blog.csdn.net/baidu_33836580/article/details/50579098

                          https://blog.csdn.net/AndyNikolas/article/details/72594215

继续阅读