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发给你

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

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

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

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

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

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

  • 相关阅读:
    [LeetCode]2. Add Two Numbers链表相加
    Integration between Dynamics 365 and Dynamics 365 Finance and Operation
    向视图列添加自定义图标和提示信息 -- PowerApps / Dynamics365
    Update the Power Apps portals solution
    Migrate portal configuration
    Use variable to setup related components visible
    Loyalty management on Retail of Dynamic 365
    Modern Fluent UI controls in Power Apps
    Change screen size and orientation of a canvas app in Power App
    Communication Plan for Power Platform
  • 原文地址:https://www.cnblogs.com/fire-7/p/7159287.html
Copyright © 2011-2022 走看看