端口的使用

端口初始化

注意:以下文章所使用的单片机为IAP15W4K58S4

  在上一篇文章当中,我们介绍了编写程序控制单片机以实现流水灯的几种方法。

  在最后一种方法当中,出现了这样的几行代码:

P0M0=0X00;P0M1=0X00;   //这里对I/O口进行初始化
P1M0=0X00;P1M1=0X00;
P2M0=0X00;P2M1=0X00;
P3M0=0X00;P3M1=0X00;
P4M0=0X00;P4M1=0X00;

  相关的内容在<STC15.h>这个头文件当中已有详细说明:

sfr P0M0        =   0x94;   //0000,0000 端口0模式寄存器0
sfr P0M1 = 0x93; //0000,0000 端口0模式寄存器1
sfr P1M0 = 0x92; //0000,0000 端口1模式寄存器0
sfr P1M1 = 0x91; //0000,0000 端口1模式寄存器1
sfr P2M0 = 0x96; //0000,0000 端口2模式寄存器0
sfr P2M1 = 0x95; //0000,0000 端口2模式寄存器1
sfr P3M0 = 0xB2; //0000,0000 端口3模式寄存器0
sfr P3M1 = 0xB1; //0000,0000 端口3模式寄存器1
sfr P4M0 = 0xB4; //0000,0000 端口4模式寄存器0
sfr P4M1 = 0xB3; //0000,0000 端口4模式寄存器1
sfr P5M0 = 0xCA; //0000,0000 端口5模式寄存器0
sfr P5M1 = 0xC9; //0000,0000 端口5模式寄存器1
sfr P6M0 = 0xCC; //0000,0000 端口6模式寄存器0
sfr P6M1 = 0xCB; //0000,0000 端口6模式寄存器1
sfr P7M0 = 0xE2; //0000,0000 端口7模式寄存器0
sfr P7M1 = 0xE1; //0000,0000 端口7模式寄存器1

  上述代码在STC的官方资料当中有介绍,根据资料介绍,每一个i/o口由2个控制寄存器中的相应位控制每个引脚工作类型。

I/O口的四种工作类型

  STC15单片机最多拥有62个I/O口,相对应的,每个I/O口都有四种工作方式。分别是:准双向口、推挽输出、高阻输入和开漏。

  具体的概念介绍可以参考以下几篇文章:

  欸,其实就是我模电学的不好,本来还想细讲的,结果发现根本看不懂这几篇文章。所以这个知识点先放在这里,等我哪天把模电的坑补回来了再细说这四个工作模式。

  真是歪了个比巴卜的……