zoukankan      html  css  js  c++  java
  • 单片机-引脚并行口结构讲解

    在之前我们已经能够让一个灯不停地闪烁了,此时大家应该大概了解了引脚能够接受数据信息再控制设备;

    实际上,在学习跟高级的程序之前,这些知识是不够的。我们理论知识远远不够!

        下面,我会结合操作给大家讲理论知识。

    程序如下:

    MAIN: MOV P1,#0FFH
    LCALL DELAY
    MOV P1,#00H
    LCALL DELAY
    LJMP MAIN
    DELAY:MOV R7,#250
    D1: MOV R6,#250
    D2: DJNZ R6,D2
    DJNZ R7,D1
    RET
    END

    我给出了一段程序,希望你不要一开始看我的讲解,你可以自己琢磨一下。

          (请你先思考)

    这里只有一个新名字: #0FFH;

    如果你仔细看了之前我之前的文章你会猜到#0FFH是表示高电平(1)的数字;

    你也知道MOV是什么意思!

    与原来的代码比较,不同是SETB P1.0,现在改为MOV P1,#0FFH,之前CLR P1.0,现在改为MOV P1.0,#00H

    MOV把#0FFH传递给P1,这里能知道P1代表的是从P1.0到P1.7这八个引脚。也就是这八个引脚都是高电平;

    这不是重点,重点是P1所有的引脚都是接受信息的;所以引脚有输入功能;

      现在,我把代码改成:

    MAIN: MOV P3,#0FFH
    LOOP: MOV A,P3
    MOV P1,A
    LJMP LOOP

    仔细看看什么意思。

    #0FFH传递给了P3,P3的值给了A,A的值给了P1。

    实际上是P3的八个引脚上的高电平或者低电平影响着P1的八个引脚。

    重点:引脚还有输出功能

    输出功能就有输出线,  除了输出之外,还有两根线,一根从外部管脚接入,另一根从锁存器的输出接出,分别标明读管脚和读锁存器。这两根线是用于从外部接收信号的,为什么要两根呢?原来,在51单片机中输入有两种方式,分别称为‘读管脚’和‘读锁存器’,第一种方式是将管脚作为输入,那是真正地从外部管脚读进输入的值,第二种方式是该管脚处于输出状态时,有时需要改变这一位的状态,则并不需要真正地读管脚状态,而只是读入锁存器的状态,然后作某种变换后再输出。

    上面的这句话是不是有点懵?

    我们嵌入式开发员其实现在不比过深了解。而且这方面内容以后也会讲的;

    我们主要了解怎么用,指令是什么就ok,我们操作单片机不是操作芯片,如果你想了解这方面的详细内容,私下联系我,我会把51单片机并行口及其应用PPT发给你

    其实今天讲的理论内容很少,就那两个重点;

    结合代码你会理解的清楚些,你会知道原因。

    对于里面的原理我们是不要求深层次掌握的,有兴趣可以去学习。

    下一章我们学习特殊功能寄存器,主要是理论。

    这里提醒大家做好准备,下一章开始就有些难度了。有些同学可能跟不上,不过我们不需要背,记。

    我们只要了解它的原理,所以语言不会很官方化。

  • 相关阅读:
    CSPS模拟 57
    CSPS模拟 56
    CSPS Oct目标
    CSPS模拟 55
    CSPS模拟 54
    CSPS模拟 53
    和manacher有关的乱写
    CSPS模拟 52
    CSPS模拟 51
    Git和代码规范
  • 原文地址:https://www.cnblogs.com/fire-7/p/7159287.html
Copyright © 2011-2022 走看看