找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3343|回复: 5
收起左侧

msp430f5529初始化oled,单个按键中断实现oled显示数字增加

[复制链接]
ID:432757 发表于 2019-10-11 21:06 | 显示全部楼层 |阅读模式
//附件为IIC通信函数,需要添加至iarew430workplace,main.c如下
#include "msp430f5529.h"
#include "IIC.h"
long int a=2019;                                                        //定义全局变量a并赋值为2019
int main()
{
WDTCTL = WDTPW+WDTHOLD;                                                //关闭看门狗
LCD_Init();                                                                        //oled初始化
P1DIR|=BIT0;                                                                //P1.0设置为输出模式
P4DIR|=BIT7;                                                                //P4.7设置为输出模式
P2DIR&=~BIT1;                                                                //P2.1设置为输入模式
P2IFG&=~BIT1;                                                                //清除P2.1中断标志
P2IE|=BIT1;                                                                        //P2.1开启中断
P2IES=0xff;                                                                        //P2下降沿触发
P2OUT=0xff;
P2REN=0xff;                                                                        //配置上拉电阻
P1OUT=0x01;                                                                        //初始化左边LED点亮
LCD_ShowNum(1,1,a,5,16);                                        //初始化显示2019
__enable_interrupt();

while(1)
{
LCD_ShowNum(1,1,a,5,16);
}
}
#pragma vector=PORT2_VECTOR                                        //固定格式,声明中断向量地址
__interrupt void PORT2_ISR(void)
{                                                                                        //中断子程序
unsigned int temp;
int i;
for(i=0;i<12000;i++);                                                //延时消抖
if((P2IN&0xff)!=0xff)                                                //如有按键按下
{
temp=P2IFG;                                                                        //读取中断标志
P2IFG=0x00;                                                                        //标志位清零
if(temp==0x02)                                                                //如果P2.1产生中断
{

a++;                                                                                //led状态取反,试的时候按第一下灯不亮,按第二下开始才亮灭正常,我的想法是如果这里能使a的值增加1,就实现了按键控制加减
if(a%2==1)
{
P1OUT=0x01;                                                                       
P4OUT=0x00;                                                                        //a为奇数,P1.0点亮,P4.7熄灭
}
else if(a%2==0)
{
P1OUT=0x00;
P4OUT=0x80;                                                                        //a为偶数,P4.7点亮,P1.0熄灭
}
}
}
}

IIC函数.rar

5.35 KB, 下载次数: 115

回复

使用道具 举报

ID:282850 发表于 2019-10-12 09:45 | 显示全部楼层
没说清楚问题是什么?问题的表象是什么?
回复

使用道具 举报

ID:432757 发表于 2019-10-12 16:19 | 显示全部楼层
这不是问题啊,这是一个有效的代码,利用按键中断能实现msp430f5529驱动的oled上数字的加减
回复

使用道具 举报

ID:716691 发表于 2020-6-5 19:51 | 显示全部楼层
求问怎么接线啊
回复

使用道具 举报

ID:825314 发表于 2020-10-3 17:38 | 显示全部楼层
感谢分享,调试ok了
回复

使用道具 举报

ID:952671 发表于 2021-7-16 08:32 | 显示全部楼层
调试通过!!!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表