乒乓球游戏机操纵电路课程的设计.docVIP

乒乓球游戏机操纵电路课程的设计.doc

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
课程设计报告 课程设计名称 乒乓球游戏机控制电路设计 专 业 通信工程 班 级 0729 姓 名 王 峰 指导教师 顾敏芬 日 期 2010年5月10日 一.基本要求: 1.设计一个由甲、乙双方参赛,有裁判的3人乒乓球游戏机。 2.用8个(或更多个)LED排成一条直线,以中点为界,两边各代表参赛双方的位置,其中一只点亮的LED指示球的当前位置,点亮的LED依此从左到右,或从右到左,其移动的速度应能调节。调 3.当“球”(点亮的那只LED)运动到某方的最后一位时,参赛者应能果断地按下位于自己一方的按钮开关,即表示启动球拍击球。若击中,则球向相反方向移动;若未击中,则对方得1分。 4.一方得分时,电路自动响铃3 s,这期间发球无效,等铃声停止后方能继续比赛。 5.设置自动记分电路,甲、乙双方各用2位数码管进行记分显示,每计满21分为1局。 6.甲、乙双方各设一个发光二极管,表示拥有发球权,每隔5次自动交换发球 摘要:为了实现模拟乒乓球比赛的过程和规则,我们采用了AT89C51单片机来控制模拟,采用用8个(或更多个)LED排成一条直线,以中点为界,两边各代表参赛双方的位置,其中一只点亮的LED指示球的当前位置,用蜂鸣器来实现响铃, 比赛双方用按钮开关来模拟启动球拍击球,用数码管来显示比赛分数, 关键词:AT89C51 LED 蜂鸣器。 系统设计 2.1 总体设计 2.1.1 乒乓球比赛系统方框图 整个过程由AT89C51单片机控制,控制器产生控制信号来控制8个LED的开关,即可模拟LED依此从左到右,或从右到左,并可完成调节速度。对分数的显示我们用LED,LED有发光亮度强的优点,能够满足我们的要求。整体电路图如下图所示: 2.1.2 单片机总体设计 AT89C51单片机有价格低,抗干扰能力强的优点,所以完成能够满足我们的要求,我们用单片机的P0控制8个LED的开关,通过对P0口的控制就能控制LED,由于P0口内部没有上拉电阻,不能驱动LED,所以我们在外部添加了上拉电阻。用P1口来控制数码管段显,用P2口的低四位控制数码管的位选,P30、P31来控制开??,PP26、P27来显示发球权。P25控制蜂鸣器,整体图如下图所示: 2.1.3 LED开关的设计 要求LED按左到右、或右到左的方向移动,我们只要把P0口的值变化即可。依次对P0口给值0X01、0X02、0X04、0x08、0x10、0X20、0X40、0X80,即可实现方向的移动。整体图如下所示: 2.1.4数码管设计 通过控制数码管的段,就可以控制数码管的数学的显示,我们采用了动态方式来控制数码,该方式是通过让数码管快速切换显示,人眼分辨不出来,不仅节约电能,而且还能够节约单片机的端口,从而减少程序的复杂性,如下图所示: 2.2程序设计 本系统的程序如下: #includereg51.h #includeabsacc.h #define uchar unsigned char #define uint unsigned int #define DB P1 sbit SB1=P3^0; //按钮1 sbit SB2=P3^1; //按钮2 sbit deng1=P2^7; //指示灯1 sbit deng2=P2^6; //指示灯2 sbit Mic=P2^5; //蜂鸣器 uchar count=0; uchar i,j,fengshu1,fengshu2; bit stall,chose,ret,flag=0; uchar ledcode[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; //0到9的段码 uchar dengcode[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80}; //从左到右移动的代码 /**************延时x毫秒程序*****************/ void delay(uint x) {uchar y; while(x--) for(y=0;y125;y++);} /**************灯移动程序******************/ void yidong(uchar fang) {for(i=0;i8;i++) {delay(100

文档评论(0)

jdy261842 + 关注
实名认证
文档贡献者

分享好文档!

1亿VIP精品文档

相关文档