发布: 2009-4-06 12:58 | 作者: hnrain | 查看: 17次
+i ` Mpoa44606摘 要: 单片机具有编程简单、易学、可靠性高、体积小等优点,广泛地应用于自动控制系统中。笔者设计利用AT89C2051单片机实现“乒乓球”智能游戏机系统,并且阐述了构成本系统的基本原理、硬件组成及相应的软件设计。
6~0OPA/d,q'U44606关键词:AT89C2051;“乒乓球”游戏机;智能化 电子园51单片机学习网$j}Y}*? ?!j
电子园51单片机学习网Aa R ]U-i#]2F
'm3C,g~)T)] Q`446060 前言电子园51单片机学习网%suz4Y&pB D{
日常娱乐生活中,智能化的娱乐产品非常流行。单片机具有功能强、可靠性高、使用方便、体积小及重量轻等优点。国外已广泛应用于自动化控制的各个领域。近年来,国内的单片机技术与产品开发应用方面的发展也很快,各种电子产品已越来越多地采用单片机控制系统且性价比高。本文从实用的角度以AT89C2051单片机为核心设计了一种智能“乒乓球”游戏机。实践证明,该游戏机运行状况稳定、可靠,满足了智能化要求。电子园51单片机学习网.}&yn"Om!Z
电子园51单片机学习网ZLa{,L#j0\8wV)k&H*w'[D44606 电子园51单片机学习网lW{)^nCJ
1 系统的基本工作原理
;zya5f7v"Y,Qxi44606 电子园51单片机学习网3VMDZ7u'Cl本设计中,通过5只连续排列的发光二极管的依次点亮代表“乒乓球”的运动。再用两个按键模拟左右两个球拍,键按下代表球拍击球。“左拍”按下可使发光二极管从左向右依次点亮,如同“乒乓球”从左向右飞来;“右拍”按下则可使发光二极管从右向左依次点亮,代表“乒乓球”从右向左运动。在游戏过程中,用数码显示管实时显示双方比分。游戏规则如下:
0}6dl-Q9I5d$|!A7B1a~44606 电子园51单片机学习网0N2opt*S,?zAY0V(1)“乒乓球”移动速度是固定的,设定每秒钟移动一位(发光二极管)。
1zVO$bs/_A+pmB446060gQ}#C$Y44606(2)在“乒乓球”移位一次的过程中,进行25次的测试(即每40毫秒一次),查询接球方是否有击球动作。
#K1~*fFnXYk44606 电子园51单片机学习网vOg:oE\A①安徽省教育厅基金项目。编号:2003JK093
~7E.p-[n,k p w44606 电子园51单片机学习网~9ze,Yf3vEl(3)接球方的击球动作应发生在“乒乓球”到达本方最后一位发光二极管(即点亮)一秒钟时间之内。如接球方在此一秒钟之内按键,则接球成功,接球方得分。“乒乓球”转为相反方向运动。此后,原接球方变为发球方,原发球方变为接球方。游戏继续进行。
,`&LJ%A0Zq+h44606QL,]\!p"hW44606(4)如接球方提前或滞后击球,则接球方失误。双方都不得分。这时“乒乓球”熄灭,数码显示管显示双方的比分不变。然后仍由原发球方发球。
Y1Yk] x6U`446069JE7RJ6Ec\!^44606 电子园51单片机学习网{&`Fd8Z8Y8V
R!OX*ftm&G446062 硬件组成
#C/`_N;e%V44606 电子园51单片机学习网 B6AL+}xj$T;^具体电路由单片机电路、发光二极管显示电路、按键电路和数码显示电路等部分组成。电子园51单片机学习网;~s? Y:r!SI(b7?
~d;^F"G!Dnl446062.1 单片机电路电子园51单片机学习网m$G8lV,pF` p
电子园51单片机学习网?"fi"D|0hKtAT89C2051、X1、R1、C1等组成单片机电路,R1、C1组成单片机的复位电路,接通电源的瞬间,由于电源电压通过R1对C1的充电过程,单片机AT89C2051复位端1脚获得一个高电平复位脉冲,使得单片机进入初始状态。见图1。电子园51单片机学习网T*V\^UG io K
电子园51单片机学习网r[,G*Uc-~x:J2.2 发光二极管显示和按键电路
.\}Wn I ^,x44606 电子园51单片机学习网O'mO*ou;F w~3\)S利用AT89C2051作发光二极管和按键的接口电路。P3.0~P3.4口接5只发光二极管,P3.7口接左按键,模拟左拍击球动作;P3.5口接右按键,模拟右拍击球动作。见图1。
EL7SvH.e5r1T44606 电子园51单片机学习网 rb o1|"Vf2.3 数码显示电路电子园51单片机学习网x9[8zAT.o'y
C|Q ih)e.~B)H44606利用显示译码器MC14459组成6位共阴极LED静态显示电路。当P1.4=1时,译码器74LS138开通,由P1.5~P1.7口经译码器74LS138控制各MC14459芯片依次选通各LED,同时由P1.0~P1.3口将欲显示的十六进制数直接输出到各MC14459芯片中,再使控制端为高电平,锁存P1.0~P1.3口输出的数据,并进行译码驱动显示。见图1。电子园51单片机学习网2qZ^Chp3e:C
)wixM] X0eO |a?44606电子园51单片机学习网L8z;|Q8`i D0qO
电子园51单片机学习网N b:wNV K;E图1 系统原理框图电子园51单片机学习网Z7X9c8C7O&g4~#z
电子园51单片机学习网+cc$HFmM3 软件设计
1rU{E"N,{ Y44606 电子园51单片机学习网 v!]N^EO9|/J!m为了便于调试,本系统的软件主要采用模块化结构设计,具体的程序由主程序、“乒乓球”左移子程序、“乒乓球”右移子程序和比分显示子程序等模块组成。下面给出了主程序、“乒乓球”左移子程序、“乒乓球”右移子程序及显示子程序的流程图。
8v@,BYn T5q8[#@44606SF]*Y-V7]!Pb446063.1 主程序电子园51单片机学习网.PT_~N6svo
电子园51单片机学习网:dL5b:h,y7M^主程序的功能是进行初始化工作,并控制“乒乓球”游戏的开始。模拟左拍的按键接P3.7口,模拟右拍的按键接P3.5口。游戏开始时,显示的比分是零比零,此后,如左拍按下则“乒乓球”右移;如右拍按下则“乒乓球”左移。在主程序中,需要用四个通用寄存器分别作为右方得分寄存器、左方得分寄存器、1秒计时常数寄存器及“乒乓球”移位计数器。其流程图见图2。电子园51单片机学习网+W L%qN$\hqY
6Y7RPO^q9c7M44606
U r:UqEN44606 电子园51单片机学习网;Z0I)I1^0T4x*]-Ly&[W8FFh44606 电子园51单片机学习网rL:iXyS0H
图2 主程序流程图
8L2J v#{O/D8W44606z-vOm aM*F-T'T-A-f_446063.2 “乒乓球”左移子程序
Vi/Fx;N8] n't%D/q44606AP g*K,U S44606左移子程序的主要功能是控制“乒乓球”的向左移动,并在逐位移动过程中判断是否有左拍击球动作。只有当“乒乓球”移动到最左的一秒时间内击球才是有效的,左拍得分,并转乒乓球右移子程序,使“乒乓球”向右移动,即相当于左方发球。除此之外,所有的左拍击球都算失误,重新开始“乒乓球”左移子程序,相当于由右方重新发球。其流程图见图3。
*s4s*{1U0@^pD44606A t ?1tqnD~C44606
I+T8i-r e"Q0z-P.Y44606 电子园51单片机学习网9u&bj-p0ZW图3 “乒乓球”左移子程序流程图电子园51单片机学习网*rx^6LbC}E.y:C
%@u6}bD*n?446063.3 “乒乓球”右移子程序
0yr_!I@&zr*L44606 电子园51单片机学习网 }r"\H,XE“乒乓球”的右移子程序的原理与左移子程序的原理相同,只要把左移子程序流程图中的“右”与“左”互换即可。
&D c*k k`p o44606 电子园51单片机学习网2J X ca7RU:@,J+v w1i3.4 显示子程序
}4}#F(y8qm44606 电子园51单片机学习网"G? H6X"?sA:VC3.4.1 比分显示格式
O#w Il wM%NQ44606| c;lO9Q44606比分显示用六位数码显示管进行显示。其显示格式见图4。
3]'Wx6n#efFR3DS44606 电子园51单片机学习网W }-C(J1W wL(e ?.j电子园51单片机学习网@|C oO
"?D Iy K(r(Z7E'g44606图4 “乒乓球”游戏比分显示格式电子园51单片机学习网|Xr { q,Y Y4AEW9I
xu y5L `5axm5mq446063.4.2 显示原理
3pgc'G p44606)?xfs;^N/]C![K3C44606 “乒乓球”游戏的左右拍得分分别存在左方得分寄存器和右方得分寄存器中(在主程序中已设置好两个寄存器)。首先设置初值,使二极管熄灭并使比分显示为“00——00”,然后游戏开始,如左拍或右拍正确击球,相应方的比分加1分,否则比分保持原来比分不变。其流程图见图5。电子园51单片机学习网c)iU'}{&v
电子园51单片机学习网"ev CI4E4tM-D5e"SP y电子园51单片机学习网2E yUv\5twE
电子园51单片机学习网J,N kb!mXb T图5 显示子程序流程图电子园51单片机学习网k4z.k2W,w@y/V7g3D4]
电子园51单片机学习网1?/I,^(D0H8M[-M电子园51单片机学习网x/x9]8vC
电子园51单片机学习网+s%Hl$e q l5^z4 结束语电子园51单片机学习网(r8l"Zu+Za
本文作者创新点:整个设计以AT89C2051单片机为核心,充分利用了AT89C2051有限的外围引脚资源,实现了对“乒乓球”游戏机的左右操作及比分显示的控制。整个系统通过按键可以很方便地操作。且运行稳定,抗干扰能力强。真正实现了娱乐产品的智能化。电子园51单片机学习网 }M [O| TCK
Uj.QM_ y!S44606参考文献电子园51单片机学习网^)l:o9iuV:uj,x b
VK/N pq7W9e44606[1] 李广第.单片机基础[M].北京:北京航空航天大学出版社,1993.
7U2J!L)C|FU5lm"k44606K2\,Mg1Pjv5S44606[2] 卢存伟,钱捷.微机原理及应用系统设计[M].南京:河海大学出版社,1992.电子园51单片机学习网qi$P)SG&}
b@8QJ-_ Dzz44606[3] 刘淑荣,丁录军.基于单片机控制的温度智能控制系统[J].微计算机信息,2003,19-7:29-30。
V9PeF A8Ow44606
文章评论(0条评论)
登录后参与讨论