资源描述:
《乒乓球游戏机.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、学校代码:10128单片机工程实践(第二组)题目:乒乓球游戏机设计时间:2011年3月7日~2011年3月18日20一、设计目的:通过设计乒乓球游戏机的综合实验掌握单片机编程的基本思想,以及蜂鸣器,LED,键盘,中断、定时程序的基本编写方法。二、设计任务:1、用5个LED显示器作为乒乓球台,用LED显示器的中间横线“一”代表乒乓球2、用两个按键代表球拍。3、比赛规则:当“一”到了最左侧LED时,左侧要及时击球,右侧同理。4、输赢判断:当乒乓球到达某一侧时,若提前或滞后按键(击球),则为输,用声音和显示来表示。5、球速要随着比赛回
2、合的增加而加快,击球判断时间逐渐减小。6、可以显示比分。任务分工:共同完成蜂鸣器自检,黄伟钦主要负责键盘自检,张娅鑫主要负责数码管自检。主程序中黄伟钦负责采键部分,张娅鑫负责击球过程编辑,向睿负责球运动过程的编写和主程序的调试。三、框图(包括自检和任务的框图):1、硬件编程框图及相关说明蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子产品中作发声器件。LED =LightEmittingDiode,发光二极管,是一种能够将电能转化为可见光
3、的固态20的半导体器件,它可以直接把电转化为光。键盘是指经过系统安排操作一台机器或设备的一组键,主要的功能是输入资料。74LS138为3线-8线译码器,共有54/74S138和54/74LS138两种线路结构型式。其工作原理如下:①当一个选通端(E1)为高电平,另两个选通端(E2)和/(E3))为低电平时,可将地址端(A0、A1、A2)的二进制编码在Y0至Y7对应的输出端以低电平译出。比如:A0A1A2=110时,则Y6输出端输出低电平信号。 ②利用E1、E2和E3可级联扩展成24线译码器;若外接一个反相器还可级联扩展成32线
4、译码器。 ③若将选通端中的一个作为数据输入端时,74LS138还可作数据分配器。AT89C51是一种带4K字节闪存可编程可擦除只读存储器的低电压、高性能CMOS8位微处理器,俗称单片机。AT89C2051是一种带2K字节闪存可编程可擦除只读存储器的单片机。ULN2803是8个输入端,GND为接地端,VCC为电压输入端。74HC245可以用于缓冲输入,三个状态的输入/输出,输出电平与TTL相容,具有大电流的三态输入,可直接驱动总线活最多驱动15个LSTTL负载。1、主程序框图、子程序框图及相关说明20初始化,设为回数回合数是否为
5、0甲发?乙发?LCALL从右向左击球,同时判断是否提前击球LCALL从左向右击球,同时判断是否提前击球击球成功?击球成功?LCALL击球子程序(右键)LCALL击球子程序(左键)LCALL击球子程序(左键)LCALL击球子程序(右键)LCALL从左向右击球,同时判断是否提前击球LCALL从右向左击球,同时判断是否提前击球开始跳到显示比分LCALL击球子程序(右键)LCALL击球子程序(左键)击球成功?击球成功?20球到最右边利用定时器0设定击球判断时间蜂鸣器“嘟”显示“1”表示球拍时间到?键按下?Ret20送字型选中一位LED延
6、时0.9S延时0.8S采集键盘延时1S选中一位LED乙提前击球延时0.7Sret采集键盘采集键盘乙提前击球选中一位LED乙提前击球选中一位LED四、程序清单:20蜂鸣器自检:LOOP:MOVR7,#0C8HMOVR6,#0C8HMOVR5,#032HLOOP0:clrP2.3LCALLDELAYSETBP2.3LCALLDELAYDJNZR7,LOOP0lab:clrp2.3LCALLDELAY1SETBP2.3LCALLDELAY1DJNZR6,lablab1:clrp2.3LCALLDELAY2SETBP2.3LCALLDE
7、LAY2DJNZR6,lab1LJMPLOOPDELAY:MOVR0,#014HLOOP1:MOVR1,#0F8HLOOP2:DJNZR1,LOOP2DJNZR0,LOOP1RETDELAY1:MOVR0,#0AHLOOP3:MOVR1,#0F8HLOOP4:DJNZR1,LOOP4DJNZR0,LOOP3RETDELAY2:MOVR0,#028HLOOP5:MOVR1,#0F8HLOOP6:DJNZR1,LOOP6DJNZR0,LOOP5RET;/**/20键盘自检:ORG0000HLJMPmainmain:MOVP0,#0L
8、CALLSEL8MOVP1,#0FFHMOVA,P1ORLA,#0F0HcjneA,#0FFH,loop1ljmpmainloop1:LCALLDELAYcjneA,#0FFH,loop2ljmpmainloop2:clrp2.5clrp2.6clrp2.7mo