4865|9

30

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

msp430 作为游戏把柄玩俄罗斯方块 俄罗斯方块visual basic做的 源码 [复制链接]

之前做课程设计vb做的俄罗斯方块电脑运行俄罗斯方块下位机msp430的四个按键操作上下左右

[ 本帖最后由 chouchick 于 2012-6-1 23:09 编辑 ]

最新回复

很牛啊楼主!!!有触摸键就更给力咯!  详情 回复 发表于 2012-6-2 10:36
 
点赞 关注

回复
举报

30

帖子

0

TA的资源

一粒金砂(中级)

沙发
 

俄罗斯方块上位机vb部分

俄罗斯方块上位机vb部分

eluosifangkuai vb.zip

145.39 KB, 下载次数: 31

售价: 1 分芯积分  [记录]

 
 

回复

30

帖子

0

TA的资源

一粒金砂(中级)

板凳
 

msp430 下位机部分

//使用单片机的串口0
//P10~P13输入模式,接四个按键
//
#include <msp430x14x.h>

#define CPU_F ((double)8000000)
#define delay_us(x) __delay_cycles((long)(CPU_F*(double)x/1000000.0))
#define delay_ms(x) __delay_cycles((long)(CPU_F*(double)x/1000.0))

#define uchar unsigned char
#define uint  unsigned int
#define ulong unsigned long

/*当BRCLK=CPU_F时用下面的公式可以计算,否则要根据设置加入分频系数*/
#define baud           9600                                //设置波特率的大小
#define baud_setting   (uint)((ulong)CPU_F/((ulong)baud))  //波特率计算公式
#define baud_h         (uchar)(baud_setting>>8)            //提取高位
#define baud_l         (uchar)(baud_setting)               //低位
#define KeyPort         P1IN   
//*************************************************************************
//                    系统时钟初始化
//*************************************************************************
void Clock_Init()
{
  uchar i;
  BCSCTL1&=~XT2OFF;                 //打开XT振荡器
  BCSCTL2|=SELM1+SELS;              //MCLK为8MHZ,SMCLK为8MHZ
  do{
    IFG1&=~OFIFG;                   //清除震荡标志
    for(i=0;i<100;i++)
       _NOP();                      //延时等待
  }
  while((IFG1&OFIFG)!=0);           //如果标志为1,则继续循环等待
  IFG1&=~OFIFG;
}
//*************************************************************************
//              MSP430内部看门狗初始化
//*************************************************************************
void WDT_Init()
{
   WDTCTL = WDTPW + WDTHOLD;       //关闭看门狗
}

//*************************************************************************
//               MSP430串口初始化
//*************************************************************************
void UART_Init()
{
  U0CTL|=SWRST;               //复位SWRST
  U0CTL|=CHAR;                //8位数据模式
  U0TCTL|=SSEL1;              //SMCLK为串口时钟
  U0BR1=baud_h;               //BRCLK=8MHZ,Baud=BRCLK/N
  U0BR0=baud_l;               //N=UBR+(UxMCTL)/8
  U0MCTL=0x00;                //微调寄存器为0,波特率9600bps
  ME1|=UTXE0;                 //UART1发送使能
  ME1|=URXE0;                 //UART1接收使能
  U0CTL&=~SWRST;
  IE1|=URXIE0;                //接收中断使能位
 
  P3SEL|= BIT4;               //设置IO口为普通I/O模式
  P3DIR|= BIT4;               //设置IO口方向为输出
  P3SEL|= BIT5;
}

//*************************************************************************
//              串口0发送数据函数
//*************************************************************************

void Send_Byte(uchar data)
{
  while((IFG1&UTXIFG0)==0);          //发送寄存器空的时候发送数据
    U0TXBUF=data;
}

//*************************************************************************
//               处理来自串口 0 的接收中断
//*************************************************************************

#pragma vector=UART0RX_VECTOR
__interrupt void UART0_RX_ISR(void)
{

}
//*************************************************************************
//            处理来自串口 0 的发送中断,预留
//*************************************************************************

#pragma vector=UART0TX_VECTOR
__interrupt void UART0_TX_ISR(void) Send_Byte(data);
{

}


/*************************************************************************
// 初始化IO口子程序
//*************************************************************************
void Port_init()
{

  P1SEL = 0x00;                   //P1普通IO功能
  P1DIR = 0xF0;                   //P10~P13输入模式,外部电路已接上拉电阻
}

//**********************************************************************
// 键盘扫描子程序,采用逐键扫描的方式
//**********************************************************************

uchar Key_Scan(void)
{
  uchar key_check;
  uchar key_checkin;
  key_checkin=KeyPort;           //读取IO口状态,判断是否有键按下
  key_checkin&= 0x0F;            //读取IO口状态,判断是否有键按下
  if(key_checkin!=0x0F)             //IO口值发生变化则表示有键按下
    {
      delay_ms(20);                   //键盘消抖,延时20MS
      key_checkin=KeyPort;
      if(key_checkin!=0x1F)
        { 
          key_check=KeyPort;
          switch (key_check & 0x0F)
            {
              case 0x0E:key=1;Send_Byte(key);break;
              case 0x0D:key=2;Send_Byte(key);break;
              case 0x0B:key=3;Send_Byte(key);break;
              case 0x07:key=4;Send_Byte(key);break;

            }
         
        }
     
   }
  else
   {
     key=0xFF;       
   }
  return key;
}

//*************************************************************************
//           主函数
//*************************************************************************
void main(void)
{
  WDT_Init();                         //看门狗设置
  Clock_Init();                       //系统时钟设置
  UART_Init();                        //串口设置初始化
  _EINT();                            //开中断
  while(1)                            //无限循环
    {Key_Scan();
    }
}

 
 
 

回复

30

帖子

0

TA的资源

一粒金砂(中级)

4
 

vb上位机图片

vb上位机图片

eluosifangkuai.png (243.51 KB, 下载次数: 0)

eluosifangkuai.png
 
 
 

回复

2002

帖子

24

TA的资源

五彩晶圆(高级)

5
 
很给力啊
 
 
 

回复

30

帖子

0

TA的资源

一粒金砂(中级)

6
 

要是有个 ti的touchpad 触摸板代替按键

要是有一个ti的 touchpad 电容触摸板控制就给力了
ti是不是能给申请一个呢
 
 
 

回复

30

帖子

0

TA的资源

一粒金砂(中级)

7
 

键盘poteus 的仿真 (51)

用51仿真 

由于我的msp430只有四个按键 所以就只能上下左右了

原来有51仿真的是有按键不限  所以启动暂停继续 停止就都上了键盘 

把proteus仿真也传上来

eluosifangkaui keyboard.png (28.93 KB, 下载次数: 1)

eluosifangkaui keyboard.png
 
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

8
 

太赞了

 
 
 

回复

216

帖子

0

TA的资源

纯净的硅(初级)

9
 
很牛啊楼主!!!有触摸键就更给力咯!
 
 
 

回复

30

帖子

0

TA的资源

一粒金砂(中级)

10
 

回复 9楼 千里千寻 的帖子

其实很简单的你看看就懂了

希望eeworld能给个touchpad
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/6 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表