找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4018|回復: 5
收起左側

msp430f5529初始化oled,單個按鍵中斷實現(xiàn)oled顯示數字增加

[復制鏈接]
ID:432757 發(fā)表于 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下降沿觸發(fā)
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狀態(tài)取反,試的時候按第一下燈不亮,按第二下開始才亮滅正常,我的想法是如果這里能使a的值增加1,就實現(xiàn)了按鍵控制加減
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 發(fā)表于 2019-10-12 09:45 | 顯示全部樓層
沒說清楚問題是什么?問題的表象是什么?
回復

使用道具 舉報

ID:432757 發(fā)表于 2019-10-12 16:19 | 顯示全部樓層
這不是問題啊,這是一個有效的代碼,利用按鍵中斷能實現(xiàn)msp430f5529驅動的oled上數字的加減
回復

使用道具 舉報

ID:716691 發(fā)表于 2020-6-5 19:51 | 顯示全部樓層
求問怎么接線啊
回復

使用道具 舉報

ID:825314 發(fā)表于 2020-10-3 17:38 | 顯示全部樓層
感謝分享,調試ok了
回復

使用道具 舉報

ID:952671 發(fā)表于 2021-7-16 08:32 | 顯示全部樓層
調試通過。!
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表