1.数字IO共有6组,其中P1,P2可以设置外部中断。
2.通用寄存器:
PxIN,PxOUT,PxDIR,PxSEL
上电默认PxDIR为0,即默认为输入。PxSEL若为1,则表示数字IO用作外设功能,这时候P1或P2的中断功能丢失。
3.P1的寄存器:每个地址对应8位寄存器,对应IO的8个PIN.
026h P1SEL
025h P1IE: 中断使能
024h P1IES:中断响应上升沿变化(0),响应下降沿变化(1)
023h P1IFG:中断发生就置位为1,中断执行后要手动清除
022h P1DIR
021h P1OUT
020h P1IN read only
4.流水灯电路:P2端口输出低电平时二极管发光。P2DIR=0XF8,对应表示P27-P23均为输出,若这时P2OUT=0XFF,则L1-L5都会亮。
5.流水灯程序:实现流水灯以三种流动方式和四种流动速度的不同组合而进行点亮"流动"
#include typedef unsigned int uint; uint i = 0,j = 0,dir = 0; uint flag = 0,speed = 0; //flag--灯光流动方式,speed--灯光流动速度 /****************主函数****************/ void main(void) { /*给IO一个初始的状态*/ P1DIR = 0XFF;P1OUT = 0XFF; P2DIR = 0XFF;P2OUT = 0XFF; P3DIR = 0XFF;P3OUT = 0XFF; P4DIR = 0XFF;P4OUT = 0XFF; P5DIR = 0XFF;P5OUT = 0XFF; P6DIR = 0XFF;P6OUT = 0XFF; WDTCTL = WDTPW + WDTHOLD; //关闭看门狗 P6DIR |= BIT2;P6OUT |= BIT2; //关闭电平转换 P5OUT &= ~BIT7; CCTL0 = CCIE; //使能CCR0中断 CCR0 = 50000; TACTL = TASSEL_2 + ID_3 + MC_1; //定时器A的时钟源选择SMCLK,增计数模式 P2DIR = 0xff; //设置P2口方向为输出 P2OUT = 0xff; _EINT(); //使能全局中断 LPM0; //CPU进入LPM0模式 } /******************************************* 函数名称:Timer_A 功 能:定时器A的中断服务函数,在这里通过标志 控制流水灯的流动方向和流动速度 参 数:无 返回值 :无 ********************************************/ #pragma vector = TIMERA0_VECTOR __interrupt void Timer_A (void) { if(flag == 0) { P2OUT = ~(0x80>>(i++)); //灯的点亮顺序D8 -> D1 } else if(flag == 1) { P2OUT = ~(0x01<<(i++)); //灯的点亮顺序D1 -> D8 } else { if(dir) //灯的点亮顺序D8->D1,D1->D8,循环绕圈 { P2OUT = ~(0x80>>(i++)); } else { P2OUT = ~(0x01<<(i++)); } } if(i == 8) { i = 0; dir = ~dir; } j++; if(j == 40) //循环5次就改变flag改变流动方向 { i = 0; j = 0; flag++; if(flag == 4) flag = 0; switch(speed) { case 0: TACTL &=~ (ID0 + ID1); TACTL |= ID_3; break; case 1: TACTL &=~ (ID0 + ID1); TACTL |= ID_2; break; case 2: TACTL &=~ (ID0 + ID1); TACTL |= ID_1; break; case 3: TACTL &=~ (ID0 + ID1); TACTL |= ID_0; break; default: break; } if(flag != 3) speed++; if(speed == 4) speed = 0; } }
上一篇:MSP430--看门狗定时器
下一篇:MSP430-软件配置和控制电路解释
推荐阅读最新更新时间:2024-11-12 10:06
设计资源 培训 开发板 精华推荐
- 8266通过NFC控制继电器
- 具有精密使能和电源良好输出的 ADP5037 三路 1800mA 降压稳压器的典型应用电路
- tps63070
- 用于便携式消费电子产品的 1.8V DC 至 DC 单路输出电源
- TCR4S15WBG、200mA、1.5V 输出电压 CMOS 低压降稳压器的典型应用
- 使用 ROHM Semiconductor 的 BU4932 的参考设计
- 使用 Microchip Technology 的 SY88345BL 的参考设计
- OP184ESZ 仅 5V、12 位 DAC 摆幅轨到轨运算放大器的典型应用
- LTC1662CMS8 超低功耗、双 10 位 DAC 在 MSOP 中的典型应用
- 使用 Analog Devices 的 LTC3374AHFE 的参考设计