单片机IO端口定义 |
您所在的位置:网站首页 › 端口地址怎么写 › 单片机IO端口定义 |
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 |