MC9S12XET256MMA普通IO口输入输出功能的使用:
IO口数据方向寄存器:设定0为输入模式,设定1为输出模式。复位后默认输入模式。
IO数据寄存器:输出模式下–设定1为高电平 设定0为低电平
输入模式下–检测1为高电平 检测0为低电平
上/下拉:
输入模式可以设定上/下拉功能,可以保证浮空引脚的输入值固定,对非浮空引脚可以提高响应速度,增强抗干扰能力
输出模式–禁用上下拉。
驱动能力:
输入模式–禁用
输出模式–可以降低引脚驱动功率,使驱动能力降低约50% ,降低功率消耗。

1、创建好工程后打开main.c文件,如下图所示:

esp12e运行模式_单片机


2、通过硬件原理图找到LED对应的端口号和引脚号,以及按键对应的端口号和引脚号,我这里使用PORT B 的第0脚来控制LED的亮灭 以及PORT A的第0脚来检测按键的输入。

在MC9S12XET256.c文件中可以找到PORT AB的数据寄存器以及数据方向寄存器的对应的地址,如下图所示:

esp12e运行模式_输入模式_02


在MC9S12XET256.h文件中能够找到其定义,如下图所示:

PORT B的数据寄存器:

esp12e运行模式_嵌入式硬件_03


esp12e运行模式_单片机_04


PORT AB 的数据方向寄存器:

esp12e运行模式_嵌入式硬件_05


esp12e运行模式_引脚_06


3、在main.c文件中对端口引脚进行初始化。

#include <hidef.h>      /* common defines and macros */
#include "derivative.h"      /* derivative-specific definitions */


#define LED_dir DDRB_DDRB0   //使用宏定义LED引脚方便区分
#define LED_DATA PORTB_PB0   

#define SWITCH_dir DDRA_DDRA0   //使用宏定义按键引脚方便区分
#define SWITCH_DATA PORTA_PA0 

void main(void) 
{
    /* put your own code here */
  
    LED_dir = 1;//初始化LED为输出
    LED_DATA = 0;
    SWITCH_dir = 0;//初始化按键为输入
    SWITCH_DATA = 1;
    EnableInterrupts;


    for(;;) 
    {
        
        if(SWITCH_DATA == 0)//检测到按键按下
        {
            LED_DATA = ~LED_DATA;//LED状态改变
        }
    
    } /* loop forever */
    /* please make sure that you never leave main */
}

4、编写完成后进行编译,调试。

esp12e运行模式_嵌入式硬件_07


5、运行后,按键按下可以看到LED亮,再次按下LED灭,说明程序运行正常。

esp12e运行模式_输入模式_08


这里只进行了简单的输入输出配置,如要设置上/下拉,驱动能力配置可以在MC9S12XET256.h文件中找到对应的寄存器进行配置即可;

esp12e运行模式_嵌入式硬件_09


esp12e运行模式_esp12e运行模式_10