单片机IO端口定义

您所在的位置:网站首页 端口地址怎么写 单片机IO端口定义

单片机IO端口定义

2023-08-08 04:12| 来源: 网络整理| 查看: 265

STC单片机端口定义

我们给单片机编程时,如果给端口引脚定义的时候。一个LED灯接到P26口,我们需要将其设为推挽输出,其初始电平是0,如果只需像如下这样,是不是要方便很多呢? #define P_Led0 P26 #define P26Mode PP #define P26Init 0

在写单片机程序时给端口定义是个很繁琐的事情。每次修改端口,或者改端口类型(输入还是输出)。都要算一次二进制。以STC单片机为例: 通常给端口初始化都会有一个端口初始化程序,比如:

// M1 M0 // 0 0 准双向 // 0 1 推挽输出 // 1 0 高阻输入 // 1 1 开漏输出(断开内部上拉) void Port_Init(void) { P1=0xFF; P2=0x00; P3=0x9F; P4=0xE1; P7=0x0F; P1M0 = 0x3C; P1M1 = 0x3C; P2M0 = 0xFF; P2M1 = 0x00; P0M0 = 0x00; P0M1 = 0x00; P3M0 = 0x60; P3M1 = 0x00; P4M0 = 0x1E; P4M1 = 0x00; P5M0 = 0x00; P5M1 = 0x00; P6M0 = 0x00; P6M1 = 0x00; P7M0 = 0xF0; P7M1 = 0x00; }

为了防止忘记,所以会在上面注释好,M0,M1的含义。即便如此,每次修改也是很麻烦。

如果改成这样可以能要好一些:

/*端口定义*/ // M1 M0 // 0 0 准双向 PU (Pull-up) // 0 1 推挽输出 PP (Push–pull Output) // 1 0 高阻输入 IF (IN_FLOATING) // 1 1 开漏输出(断开内部上拉) OD (Open-Drain) #define PU 0x00 #define PP 0x01 #define IF 0x02 #define OD 0x03 #define P27Mode PU #define P_Led0 P26 #define P26Mode PP #define P25Mode PU #define P24Mode PU #define P23Mode PU #define P22Mode PU #define P21Mode PU #define P20Mode PU #define P2M0Value ((P27Mode&0x01)


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3