找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3072|回复: 0
打印 上一主题 下一主题
收起左侧

求助各位哥哥姐姐老师帮我看下这msp430实现数码管按键加数字的程序

[复制链接]
跳转到指定楼层
楼主
ID:291244 发表于 2018-3-16 22:06 来自手机 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
88黑币
求助在场的各位帮我改一下这代码把我都快改崩溃了,怎么才能实现按键加减呀。帮看一看出出主意怎么修改呀。

#include "msp430x14x.h"
#define uchar unsigned char     //数据定义类型#define uint unsigned int
#define  DUAN  P4OUT            //数码管段端口定义
#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位数码管
uchar i=99; uchar led[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0xf8,0x80,0x90};//共阳极数码管
void display(uchar x) //显示函数,显示一个两位数
{
W1_L;W2_H;DUAN=led[x%10];delay(1);  
//显示个位  
W1_L;W2_L;DUAN=0xff;delay(1);      
//关闭  
W2_L;W1_H;DUAN=led[x/10];  delay(1); //显示十位  
W1_L;W2_L;DUAN=0xff; delay(1);     
  //关闭
}
void main( void )
{  // Stop watchdog timer to prevent time out reset  WDTCTL = WDTPW + WDTHOLD;   //关闭看门狗  
P4DIR=0xff;
//Io口初始化 p4口作为输出,数码管段选
  P4OUT=0xff;
  P5DIR=BIT0+BIT1;
   /*****************中断初始化*************/          P2IE|=BIT6;        
  P2IES|=BIT6;        
  P2IFG&=~BIT6;                  
      P2IE|=BIT7;         
P2IES|=BIT7;        
  P2IFG&=~BIT7;      
    _EINT();   //开总中断允许   
while(1)  {   display(led[i]);  }
}
/****************P2中断服务程序*************/
#pragma vector = PORT2_VECTOR__interrupt void Port_2(void)
{    if((P2IFG&BIT6)==BIT6)   
//P2.0按键加   
{      i++;     
if(i==99)i=0;   
  P2IFG &=~BIT6;            
    //清除中断标志    }   
else if((P2IFG&BIT7)==BIT7)  //P2.1按键减
{     i--;   
if(i==0) i=99;  
   P2IFG &=~BIT7;             //清除中断标志}
}
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 (40.02 KB, 下载次数: 41)

1S502M1R74_2ZC~83%M[0QR.png
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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