基于51单片机的乒乓游戏机设计_毕业设计(编辑修改稿)内容摘要:

端,为电路功能的扩展提供方便。 译码器 74LS138 的管脚及其功能如表 所示。 表 译码器 74LS138 管脚功能 管脚 功能 VCC 电源正 GND 地 E1 选通端 E2 /E3 选通端(低电平有效) A0~ A3 地址输入端 Y0~ Y7: 输出端(低电平有效) 74LS138 译码器的工作原理为: 当一个选通端( E1)为高电平,另两个选通端 (E2)和 (E3)为低电平时,可将地址端( A0、 A A2)的 二进制编码 在 对应的输出端以低电平译出。 74LS138 的引脚图如图。 图 74LS138 的引脚图 74LS138 的功能真值表如表。 乒乓游戏机设计 13 表 74LS138 功能真值表 输 入 输 出 E3 E2 E1 A2 A1 A0 Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7 X H X X X X H H H H H H H H X X H X X X H H H H H H H H L X X X X X H H H H H H H H H L L L L L L H H H H H H H H L L L L H H L H H H H H H H L L L H L H H L H H H H H H L L L H H H H H L H H H H H L L H L L H H H H L H H H H L L H L H H H H H H L H H H L L H H L H H H H H H L H H L L H H H H H H H H H H L 发光二极管简介 发光二极管简称为 LED,是一种能发光的半导体电子元件。 这种电子元件在 1962年出现, 由镓( Ga)与砷( As)、磷( P)的化合物组成的二极管,电子与空穴复合时能辐射出可见光。 其中,磷砷化镓二极管发红光,磷化镓二极管发绿光,碳化硅二极管发黄光。 发光二极管具有单向导通性,即发光二极管只能往一个方向通电,这种特性叫做正向偏置(正向偏压)。 发光二极管的基本结构是一块电致发光的半导体材料,置于一个有引线的架子上,然后用环氧树脂密封,起到保护内部芯片线的作用。 发光二极管的核心部分是由P 型半导体和 N 型半导 体组成的晶片,在 P型半导体和 N型半导体之间有一个过渡层,称为 PN 结。 在某些半导体材料的 PN 结中,注入少数载流子与多数数载流子复合时把多余的能量以光的形式释放出来,从而把电能转换成光能。 发光二极管的两根引线较长的一根是 正极 ,需接电源正极。 发光二极管及其构造如图 所示。 西南石油大学本科毕业设计(论文) 14 图 发光二极管及其构造 模拟球拍电路的设计 单片机 ~ 控制两个译码器的 A,B,C 端, 和 分别控制两个译码器的 E1 端,且 E E3 两个端口接地。 单片机 P2口输出信号,从而达到控制发光二极管的熄 灭与点亮。 其电路图如图。 图 显示电路 的 设计 乒乓游戏机 的数据 较为 简单,只需要显示比分和最终胜利的状态,因此 选用只显示字符和数字的 LCD1602 显示屏。 乒乓游戏机设计 15 LCD1602 简介 乒乓游戏机 显示电路设计采用 LCD1602 显示屏。 LCD1602 为工业字符型液晶,能够同时显示 32个字符。 它是专门用来显示字母、数字、符号等的点阵型液晶模块。 由若干个 5*7 或 5*11 等点阵字符位组成。 每个点阵字符位都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起 到了字符间距和行间距的作用。 LCD采用标准的 16脚接口,其管脚功能如表 所示。 表 LCD1602 的管脚功能表 管脚 功能 VSS 电源地 VCC 接 5V电源电极 V0(VEE) 液晶显示器对比度调整端,接正电源对比度最弱,接地电源最高 RS 寄存器选择。 高电平时选择数据寄存器,低电平时选择指令寄存器 RW 读写信号线。 高电平时读取信息,低电平时进行写操作 E(EN) 使能端。 高电平时读取信息,负跳变时执行指令 D0~ D7 8 位双向数据端 BLA 背光正极 BLK 背光负极 LCD1602 的特性: 或 5V工作电压,对比度可调;内含复位电路,提供各种控制命令;有 80 字节显示数据存储器 DDRAM;内建有 192个 5*7 点阵的字型的字符发生器 CGROM; 8个可由用户自定义的 5*7 的字符发生器 CGRAM; LCD1602 及其引脚图如图 所示。 图 LCD1602 及其引脚图 西南石油大学本科毕业设计(论文) 16 显示电路 的设计 此设计中的显示模块采用 LCD 来显示 乒乓游戏机 的 AB 队 比分。 LCD1602 的 DD D D7 分别 与 单片机中的 、 、 、 相连 ,用于数据 和地址的传输。 LCD1602 的 RS、 RW、 E分别 与 单片机中的 、 、 相连 ,用于写入控制。 其电路设计图如图。 图 显示电路设计图 乒乓游戏机 总电路 的 设计 本设计采用 Proteus 绘制电路设计仿真图, 乒乓游戏机 的硬件设计包括单片机电路、译码电路、发光二极管电路、按键电路、显示电路等电路的设计。 其仿真图如图。 图 总电路设计图 乒乓游戏机设计 17 乒乓游戏机 的硬件包括单片机电路、译码电路、发光二极管电路、按键电路、显示电路等电路。 其中单片机电路包括 :晶振电路,复位电 路; 由译码器接 P2的 5个I/O 口控制 16个模拟乒乓球台桌 LED 灯; 由单片机的 P0口接上拉电阻,感应按键电路的输入; 有 到 给 LCD进行数据的输入, 给 LCD 进行写入控制。 西南石油大学本科毕业设计(论文) 18 4 乒乓游戏机 的软件设计 及编程 本系统的软件主要采用模块化结构设计,具体的程序有主程序 、按键组程序 (球拍模拟和暂停 /开始子程序) 、 发球程序、 线路程序 (包括 线路选择和 LED 点阵子程序) 、 回球程序 、 LCD 显示程序。 系统流程图如图 所示。 图 系统流程图 开 始 主程序 是 B 发球 初始化 发球指示灯 是否点亮 否 A发球 AB 回球是否成功 A失败 B加 1分 B失败 A加 1分 得分 11 结 束 是 否 显示 程序 回球程序 线路程序 否 是 否 乒乓游戏机设计 19 通过程序实现的功能为:在主程序进入初始化, LCD 屏的清零,及初始化显示设置;然后进入发球程序,绿色指示灯亮起时, B得到球权,否则 A得到球权;当发球成功 后,进入线路模块,在不同的情况进入相应的线路,依据线路的选择依次点亮线路所包含的 LED 灯;而后进入回球程序,回球成功继续进入线路程序,回球失败,对手分数加 1,并进入 LCD 显示程序;当 AB 队 任 一队 11 分后进入相应 win 子程序。 暂停 /开始程序在定时扫描,当暂停键按下时,游戏暂停,在游戏暂停时当开始按下游戏继续。 主程序 的设计及功能实现 主程序的功能是进行初始化工作,并控制“乒乓球”游戏的开始。 LED 灯组接单片机的 P2 口上,按键组接单片机 P0 口上, LCD 显示屏由单片机控制。 游戏开始时,程序控制显示上行 A:0。 下行 B:0。 void main() { write_(0x01)。 //显示器清屏 P2=0。 //LED 点阵全部熄灭 fuwei()。 //数据初始化 EA=1。 EX0=1。 EX1=1。 ET0=1。 IT0=1。 IT1=1。 TMOD=0X01。 TH0=(6553650000)/256。 TL0=(6553650000)%256。 TR0=1。 //定式扫描初始化设置 qiuquan()。 //跳转到发球程序 while(1)//循环扫描并点亮相应 LED { int t=1000+w*1000。 P2=q[n]。 delay_1(t)。 //延时处理程序 xianlu()。 //线路控制程序 } } 按键组 的设计及功能实现 此程序贯穿了整个 系统框图中,包括球拍模拟子程序和暂停 /开始子程序。 西南石油大学本科毕业设计(论文) 20 球拍模拟 子 程序 单片机 P0口在相应时间段内感应来自由按键组传来的数据,如果 在 delay_1(t)中作出正确的选择,进入回球程序,否则对方加 1分。 图 按键组流程图 暂停 /开始 子 程序 当暂停键被按下后,程序进入中断,暂停灯亮起,当按下开始按键时,程序继续。 其流程图如图 所示。 图 暂停 /开始 程序流程图 发球 程序 的设计及功能实现 绿色指示灯亮起时, B得到发球球权,否则 A 得到发球球权。 void qiuquan(void) { w=1。 //球速控制变量 按下按键 回球程序 对方分数加 1 是 是否成功 否 是否暂停 继续游戏 继续暂停 是否解除 暂停 回到游戏 否 否 是 是 定时程序 乒乓游戏机设计 21 v=0。 //发球控制变量 if(f=3)//球权控制变量 03循环。 f=0。 else f++。 if(f2)//当 f小于 2 时 A 得到球权 Ajiqiu()。 else//当 f大于 2时 B得到球权 Bjiqiu()。 } 线路程序 的设计及功能实现 线路程序包括线路选择子程序和 LED 点阵子程 序。 线路 选择子 程序 游戏发球有 8个线路选择, AB 分别 4个线路选择, 发球的 4 个选择由线路 b[16]和初始点亮灯一起组成。 回球总的线路有 16 个,存在数组 b[16]中。 void xianlu(void)//线路程序按顺序给 LED 点阵输入相应数据 { if(m256)//m 取自 b[]中得数据 {n=m/256。 m=m%256。 } else if(m16) {n=m/16。 m=m%16。 } else if(m16amp。 amp。 m=0) {n=m。 m=1。 } else if(m0)//当 m取完数据时,按键都没做出正确输入时,表明 A 或 B 回球失败。 { P2=0。 if(n8) chang3()。 else if(n=8) chang1()。 qiuquan()。 } } LED点阵 子 程序 由单片机线路和 delay_1(t)控制 74LS138 译码器, 74LS138 译码器译码控制 LED点阵得点亮顺序和相应点亮时间。 q[16]寄存数组,列如 P2=q[0]时点亮 A 边的第一个灯,单片机将数据传输给 74LS138 进行译码点亮相应的 LED 实现乒乓球 的移动。 西南石油大学本科毕业设计(论文) 22 回球程序 的设计及功能实现 当球在 A边时, A可在相应 delay_1(t)中感应 A按键组的数据并作出相应处理;当球在 B 边时,同理。 这里需要对 16个灯( D2D17)进行处理。 下面对其中一个灯进行解释。 w=P0_3。 //A 的 P0_3 控制游戏的速度 //D2 if(n==0)//n==0 时 D2灯点亮 { if(x==13amp。 amp。 !P0_0)//当线路为 13时且 P0_0 按下时按以下处理。 { if(!w) x=3。 else x=0。 while(!P0_0)。 m=b[x]。 } if(x==8)//当线路为 8 时只能按以下处理 { if(!P0_0) { x=3。 while(!P0_0)。 m=b[x]。 } else if(!P0_1) { x=0。 while(!P0_1)。 m=b[x]。 } } } 乒乓游戏机设计 23 LCD显示程序 设计及功能实现 LCD1602 与单片机 P1 口相连,程序控制显示上行 A:0。 下行 B:0。 当 A 或 B 到达11 分时进入相应 win 子程序。 write_(0x80+2)。 //第一行隔两位写入以下字符‘ A’‘ :’‘ ’ ‘ 0’。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。