没有合适的资源?快使用搜索试试~ 我知道了~
详细的mp430程序, 及其应用,各种函数,普通口操作。
资源详情
资源评论
资源推荐
#include <MSP430X14X.h>
#include "alarm.h"
// 全局变量
int FLAG_PORT;
int PORT_INPUT;
int PORT_count;
int nADC_Flag;
int nADC_Count;
int ADC_BUF_Temp[10];
int ADC_BUF[10];
int UP;// 上门限
int DOWN; // 下门限
//////////////////////////////////////////////
// 定时器中断,完成 ADC 转换
void TimerA_ISR(void)
{
int results;
ADC12CTL0 &= ~ENC; // 关闭转换
results = ADC12MEM0; // 读出转换结果
ADC_BUF[nADC_Count] = results;
nADC_Count += 1;
if(nADC_Count == 10)
{
nADC_Flag = 1; //设置标志
nADC_Count = 0;
for(int i = 0;i < 10;i++) ADC_BUF_Temp[i] = ADC_BUF[i];
}
ADC12CTL0 |= ENC + ADC12SC; // 开启转换
}
///////////////////////////////////////
// 处理来自端口 1 的中断
void PORT_ISR(void)
{
Delay_us(100);//消除延时抖动
if(P1IFG & BIT0) // P1.0 列线上有按键输入
{
P1IFG &= ~(BIT4); // 清除中断标志位
Delay_ms(1);
for(;;)
{
if((P1IFG & BIT4) == 0) break;
}
// 获得输入值
switch(PORT_count)
{
case 0:
{
PORT_INPUT = 9;
PORT_count = 1;
break;
}
case 1:
{
PORT_INPUT = 7;
PORT_count = 2;
break;
}
case 2:
{
PORT_INPUT = 5;
PORT_count = 3;
break;
}
case 3:
{
PORT_INPUT = 3;
PORT_count = 4;
break;
}
case 4:
{
PORT_INPUT = 1;
PORT_count = 0;
break;
}
default:break;
}
FLAG_PORT = 1;
}
if(P1IFG & BIT1)//// P1.1 列线上有按键输入
{
P1IFG &= ~(BIT5); // 清除中断标志位
Delay_ms(1);
for(;;)
{
if((P1IFG & BIT5) == 0) break;
}
// 获得输入值
switch(PORT_count)
{
case 0:
{
PORT_INPUT = 0;
PORT_count = 1;
break;
}
case 1:
{
PORT_INPUT = 8;
PORT_count = 2;
break;
}
case 2:
{
PORT_INPUT = 6;
PORT_count = 3;
break;
}
case 3:
{
PORT_INPUT = 4;
PORT_count = 4;
break;
}
case 4:
{
PORT_INPUT = 2;
PORT_count = 0;
break;
}
default:break;
}
FLAG_PORT = 1;
}
}
void TimerB_ISR(void)
{
剩余10页未读,继续阅读
cellsplinterqwe
- 粉丝: 1
- 资源: 3
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0