前言:本实验是在ccs开发环境下写入的。
寄存器
1_方向寄存器(PxDIR)
在 MSP430 中,每个 I/O 口都可以被单独配置成输入或者输出状态。是配置成输入还是输出 是由方向寄存器(也叫 DIR 寄存器)决定的。方向寄存器为 0 是输入,为 1是输出。例如 你想 P1.0配置成输出可以这样P1DIR |= 0x01;
如果是输入可以这样 P1DIR &= ~0x01。
2_输出寄存器(PxOUT)
在方向寄存器将 I/O 口配置为输出以后,就可以通过写输出寄存器 PxOUT 来给端口赋值了。 例如你想把P1.0 拉高,可以直接写 P1OUT |= 0x01。
3_输入寄存器(PxIN)
I/O输入这里要比输出复杂一点,因为当我们把引脚设置为输入的时候,引脚处于浮动状态,也就是说即有可能是高电平也有可能是低电平。因此一般我们在引脚作为输入时会通过一个电阻将该引脚接到电源或地,这样就形成了一个弱上拉/下拉状态,接了上拉/下拉电阻以后,输入引脚的电平将会稳定一些,而当外部电路的高/低电平接 到引脚上时,该引脚又可以根据外部电平改变状态。
操作步骤
第一步:创建新工程,打开ccs程序,点击界面处的Project,弹出如下图所示的界面,工程名字随便起一个即可,文件类型这里我们选择main.c。选择Finish,即完成工程创建。
第二步:创建完成工程后,会自动生成下图所示模板,系统会默认关闭看门狗,关闭看门狗的原因是MSP430的看门狗默认是打开的,如果在程序开始不关闭程序其执行到一定时间,就会自动复位,那样程序无法正常执行。当然你可以不关闭看门狗定时器喂狗,一般在程序调试阶段不建议开狗。
第三步:写入程序,本次实验为按键操作实验。
1、PxDIR是一个八位的寄存器,在单片机复位后,默认值是00000000,0代表输入,如果是输出的话,将某一位置。例如,如果将P1.0的IO口作为输出,那么将00000000—>00000001,即第0位置1,这里是将P4.7的IO口的第七位置1。
2、PxOUT是配置电平的,如,P1.0设置为0(低),P1.7设置为1(高),那么让第七位变为1,第0位为0,其他位不变,即1xxxxxx0。然后根据这些,我们将要设置的IO口相应的位进行简单的与或运算,即可配置完成。
3、PxREN是使能外部电阻的语句,单片机复位后是也是00000000,0代表不使能外部电阻,1代表使能外部电阻。把需要使能的那一位置1,PxOUT置0,是下拉电阻,置1是上拉电阻。这个实验中我们把P1.1的IO口置为上拉电阻。
4、Px1IN寄存器是输入寄存器,反应外部IO口的电平状态,是一个只可以读,不可以写的寄存器,不可以写在赋值语句的左边,但能放在赋值语句右边
注:BIT7为 10000000,~BIT7为01111111。
第四步:烧入程序,首先点击,锤子标志(编译),然后点击绿色蜘蛛形状的标志(下载),然后点击绿色按钮运行即可实现。
实验现象
按下P1.1按键,LED2会亮,松手会灭。