找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4043|回復(fù): 0
收起左側(cè)

求助各位哥哥姐姐老師幫我看下這msp430實現(xiàn)數(shù)碼管按鍵加數(shù)字的程序

[復(fù)制鏈接]
ID:291244 發(fā)表于 2018-3-16 22:06 來自觸屏版 | 顯示全部樓層 |閱讀模式
88黑幣
求助在場的各位幫我改一下這代碼把我都快改崩潰了,怎么才能實現(xiàn)按鍵加減呀。幫看一看出出主意怎么修改呀。

#include "msp430x14x.h"
#define uchar unsigned char     //數(shù)據(jù)定義類型#define uint unsigned int
#define  DUAN  P4OUT            //數(shù)碼管段端口定義
#define W1_H P5OUT|=BIT0     //位選端,w1置位1
#define W1_L P5OUT&=~BIT0    //位選端,w1置位0
#define W2_H P5OUT|=BIT1
#define W2_L P5OUT&=~BIT1
void delay(uint t);   //延時
void display(uchar x);//顯示,2位數(shù)碼管
uchar i=99; uchar led[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0xf8,0x80,0x90};//共陽極數(shù)碼管
void display(uchar x) //顯示函數(shù),顯示一個兩位數(shù)
{
W1_L;W2_H;DUAN=led[x%10];delay(1);  
//顯示個位  
W1_L;W2_L;DUAN=0xff;delay(1);      
//關(guān)閉  
W2_L;W1_H;DUAN=led[x/10];  delay(1); //顯示十位  
W1_L;W2_L;DUAN=0xff; delay(1);     
  //關(guān)閉
}
void main( void )
{  // Stop watchdog timer to prevent time out reset  WDTCTL = WDTPW + WDTHOLD;   //關(guān)閉看門狗  
P4DIR=0xff;
//Io口初始化 p4口作為輸出,數(shù)碼管段選
  P4OUT=0xff;
  P5DIR=BIT0+BIT1;
   /*****************中斷初始化*************/          P2IE|=BIT6;        
  P2IES|=BIT6;        
  P2IFG&=~BIT6;                  
      P2IE|=BIT7;         
P2IES|=BIT7;        
  P2IFG&=~BIT7;      
    _EINT();   //開總中斷允許   
while(1)  {   display(led[i]);  }
}
/****************P2中斷服務(wù)程序*************/
#pragma vector = PORT2_VECTOR__interrupt void Port_2(void)
{    if((P2IFG&BIT6)==BIT6)   
//P2.0按鍵加   
{      i++;     
if(i==99)i=0;   
  P2IFG &=~BIT6;            
    //清除中斷標(biāo)志    }   
else if((P2IFG&BIT7)==BIT7)  //P2.1按鍵減
{     i--;   
if(i==0) i=99;  
   P2IFG &=~BIT7;             //清除中斷標(biāo)志}
}
void delay(uint t)
{uint i,j;for(i=0;i<t;i++)  for(j=0;j<255;j++);}


1S502M1R74_2ZC~83%M[0QR.png
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表