为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

乒乓球游戏机开发

2011-06-24 12页 doc 241KB 25阅读

用户头像

is_437020

暂无简介

举报
乒乓球游戏机开发单片机学习探索--嵌入式系统设计之简易乒乓球游戏机设计 硬件制作: 很想自己做一个单片机系统,但是一直怀疑自己的动手能力(学习板是请别人焊的),但是又很喜欢电子制作,并且决定以后就从事电子方面的工作,不动手能行吗?恰好实验室有几个同学在学习《嵌入式应用》的课程,有硬件制作;不懂的地方也能请教他们,那就焊吧! 于是就买了一套单片机DIY器件,按照网上的焊接教程经过一天半的焊接终于完成了硬件的制作。 原理图: 下载 (58.52 KB) 2008-11-8 14:06 下载 (41.74 KB) 2008-11-8 14:06 实...
乒乓球游戏机开发
单片机学习探索<三>--嵌入式系统之简易乒乓球游戏机设计 硬件制作: 很想自己做一个单片机系统,但是一直怀疑自己的动手能力(学习板是请别人焊的),但是又很喜欢电子制作,并且决定以后就从事电子方面的工作,不动手能行吗?恰好实验室有几个同学在学习《嵌入式应用》的课程,有硬件制作;不懂的地方也能请教他们,那就焊吧! 于是就买了一套单片机DIY器件,按照网上的焊接教程经过一天半的焊接终于完成了硬件的制作。 原理图: 下载 (58.52 KB) 2008-11-8 14:06 下载 (41.74 KB) 2008-11-8 14:06 实物: 下载 (7.53 KB) 2008-11-8 12:28 下载 (10.43 KB) 2008-11-8 12:28 在焊接的过程中有很多方面是要注意的:首先应该考虑焊接的顺序,为了便于检测和排除故障应按一下顺序:1电源电路;2单片机最小系统;3串口下载电路;4其它电路。每完成一个模块的焊接最好检测一下是否有故障! 在焊完且故障排除完后心里很高兴,但也有点遗憾,就是板子虽然电路都没错误,但在以后的使用过程中不便于检测维护和电路的扩展,为了能够做到以上两点,我想以后焊接的过程中应该注意一下几点:1、认真细致考虑电路的整体布局;2每个模块的焊接尽量用一种颜色的线,单片机的四组I/O口和时钟电路及复位电路等尽量用不同颜色的线区别开;3利用好芯片座内的连线接孔,剩下芯片外的连线接孔。 硬件电路已经焊好,下面就要进行程序设计了。 首先明白程序实现的功能 简易乒乓球游戏机实现的功能: 1、游戏有A,B,C,D,E五个等级,数码管移动速度依次加快; 2、用LED模拟乒乓球的运行轨迹; 3、由第七个LED到第八个LED转移时间为最佳击球时间,错过击球时间,对方得分自己分数不变; 4、游戏等级和得分有数码管来显示; 5、可以复位比分,复位后重新设定游戏等级; 6、裁判可以复位比分和控制游戏的开始; 7、A、B两方轮换发球; 8、没在最佳击球时间接到球,蜂鸣器报警。 程序设计: 程序: 主程序流程图:    下载 (11.9 KB) 2008-11-8 12:51 中断服务程序流程图: 下载 (16.93 KB) 2008-11-8 12:51 下载 (9.15 KB) 2008-11-8 12:56 程序: #include //流水灯表 unsigned char disp[]= {0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; /*数码管显示宏定义*/ #define LED_SEG_PORT P0  //定义数码管接口 #define LED_BIT_PORT P2 //数码管字表 unsigned char segcode[]= //{0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//共阳极 {0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x40,0x77,0x7C,0x39,0x5E,0x79};//共阴极 //数码管位表 unsigned char led_buf[]={0,0,10,10,0,0}; //6只数码管 //全局变量 unsigned char count0,count1,count2,table; char Ascore,Bscore; unsigned int temp; //流水灯全息宏定义 #define off 0xff //定义键盘 sbit KEY0 = P3^5; sbit KEY1 = P3^2; sbit KEY2 = P3^4; sbit KEY3 = P3^3; //蜂鸣器定义 sbit  K=P2^6 ; //key按键标志 bit fk2; //等级定义 unsigned int N,GRADE; //延时程序 void delay(unsigned int t) { while(--t); } /*******数码管刷新程序*********/ void ledflsh() { led_buf[0] =GRADE;   led_buf[1] =Ascore%10;   led_buf[2] =Ascore/10;   led_buf[3] =10;   led_buf[4] =Bscore%10;   led_buf[5] =Bscore/10; } void main(void) {   TMOD = (TMOD & 0xf0) | 0x1;   TH0 = 0xee;   TL0 = 0x48;     TR0 = 1;   ET0=1;   EA=1;   fk2=0;   count0=0;   count1=0;   count2=0;   table=0;   Ascore=0;   Bscore=0;   N=100;   while(1) {if(KEY3==0)    {N=N-20;     while(KEY3==0);     }    if(KEY2==0)    {Bscore=-1;     fk2=~fk2;     while(KEY2==0);     }    ledflsh(); } } void t0(void) interrupt 1 using 0 {  static unsigned char i=0;    unsigned char j=0;    TH0 = 0xee;    TL0 = 0x48;    i=++i%6;    LED_BIT_PORT = 0x0|0x00;  //关所有数码管    LED_SEG_PORT = segcode[led_buf];    LED_BIT_PORT = (1< 13) count1 = 1;         if(count1==1)   {while(KEY0)       {             P1=disp[0];       Bscore++;             ledflsh();            for(j=0;j<255;j++)               {K= 0x0;               delay(100);               K  = 0x1;               delay(100);               }              while(KEY0)             {delay(50);             i=++i%6;             LED_BIT_PORT = 0x0|0x0;  //关所有数码管             LED_SEG_PORT = segcode[led_buf];             LED_BIT_PORT = (1<
/
本文档为【乒乓球游戏机开发】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索