基于51单片机的贪吃蛇游戏内容摘要:
功能。 这类单片机的运算速度比标准的单片机高出 10 倍以上。 由于这类单片机有极高的指令速度,就可以用软件模拟其 I/O 功能,由此引入了虚拟外设的新概念。 小容量、低价格化 与上述相反,以 4 位、 8 位机为中心的小容量、低价格化也是发展动向之一。 这类单片机的用途是把以往用数字逻辑集成电路组成的控制电路单片化,可广泛用于家电产品。 ○ 5 外围电路内装化 这也是单片机发展的主要方向。 随着集成度的不断提高,有可能把众多的各种处围功能器件集成在片内。 除 了一般必须具有的 CPU、 ROM、RAM、定时器 /计数器等以外,片内集成的部件还有模 /数转换器、 DMA 控制器、声音发生器、监视定时器、液晶显示驱动器、彩色电视机和录像机用的锁相电路等。 ○ 6 串行扩展技术 在很长一段时间里,通用型单片机通过三总线结构扩展外围器件成为单片机应用的主流结构。 随着低价位 OTP( One Time Programble)及各种类型片内程序存储器的发展,加之处围接口不断进入片内,推动了单片机“单片”应用结构的发展。 特别是 I C、 SPI 等串行总线的引入, 可以使单片机的引脚设计得更少,单片机系统结构更加简化及规范化。 ○ 7 随着半导体集成工艺的不断发展,单片机的集成度将更高、体积将更小、功能将列强。 在单片机家族中, 80C51 系列是其中的佼佼者,加之 Intel 公司将其 MCS – 51 系列中的 80C51 内核使用权以专利互换或出售形式转让给全世界许多著名 IC 制造厂商,如 Philips、 NEC、 Atmel、 AMD、华邦等,这些公司都在保持与 80C51 单片机兼容的基础上改善了 80C51 的许多特性。 这样, 80C51 就变成有众多制造厂商 支持的、发展出上百品种的大家族,现统称为 80C51 系列。 80C51 单片机已成为单片机发展的主流。 专家认为,虽然世界上的 MCU 品种繁多,功能各异,开发装置也互不兼容,但是客观发展表明, 80C51 可能最终形成事实上的标准 MCU 芯片。 常州大学本科生毕业设计(论文) 第 3 页,共 31 页 LCD 发展状况 液晶显示器 TFT LCD,全称为薄膜晶体管液晶显示器 (Thin Film Transistor Liquid Crystal Displayer),一般简称 LCD(Liquid Crystal Display)。 超薄体形、低功耗、低辐射、无闪烁、完 全物理平面、低反光、清晰的字符显示等等,都是大家非常熟悉的液晶显示器 LCD 优点。 最简单的液体晶体管就是我们常见的小型计算器以及电子手表上面的液晶字符屏幕。 他是把有机液晶原料夹在两片透明的玻璃或者有机玻璃中。 没有电流通过的时候,长棒状的原料晶体分子是无规则排列的,光线无法随意透过玻璃,外表看上去就是黑色。 通电的时候,液晶原料排列顺序随电流极向改变,光线在规则排列的晶体分子中可以透过,液晶管由原来的非透明状态变成透明状态。 通过把液晶材料进行不同的排列,组成不同的字符形状,就能通过电流控制其开关显示,以显示出我们 说需要的字符。 液晶技术发展的早期,由于液晶管的稳定性以及生产技术,还不能大量大规模的生产,直到了英国的科学家发明了用 ”联苯 (Biphenyl)”一作为液晶管的原料,这个问题才得以解决。 1970 年,弗格森制造了第一台能够工作的 LCD,而在此之前的所谓 LCD都是耗电量大而且对比度极低的昂贵设备。 到了 1971 年,这种新的液晶显示器开始普遍地为人们接受。 当然,那时候的 LCD 还是单色产品,但是已经不是简单的字符型液晶屏幕了。 LCD 技术是把液晶灌入两片偏振玻璃之间。 所谓偏振玻璃,就是光线通过这样的玻璃之后,就会从球面波 或者高斯球面波,变成只在一个平面上振动的波,称为偏振光。 偏振光只能通过相应方向的偏振玻璃,如果偏振玻璃的偏振方向和偏振光线的有一定的夹角,就会减弱偏振光强度,甚至偏振光无法通过。 如果大家对这方面有兴趣,可以参阅有关的大学物理书籍。 夹住液晶的两片偏振玻璃,假设为 a、 b,他们的偏振方向会设置为 90 度夹角。 光线通过第一片偏振玻璃 a 后,假设这 X 方向偏振,通过液晶后,液晶通电流之后,在电场极化作用下,呈规则排列, X 偏振光不会有任何改变,投射到 b 玻璃上。 而 b 玻璃的偏振方向为 Y,就是 X+90 度, X 偏振的光线无法通过,在 b 玻璃外面看上去就是黑色了。 而如果液晶没有电场作用,就是没有通电流,通过无规则排列的液晶, X 偏振光的偏振方向会发生改变,旋转 90 度,旋转后 X 偏振光的偏振方向刚好和 b 偏振玻璃的偏振方向一样,就是 X+90=Y,光线就能通过 b 玻璃了。 课题分析 贪吃蛇游戏设计主要硬件由单片机最小系统, LCD, 4X4 矩阵键盘,整个的游戏设计外围电路比较少,主要核心在于游戏的程序设计,本设计的游戏规则也参照现在手机流行的贪吃蛇游戏的规则去设计,当蛇吃到食物时,蛇身就会自动增加一格,食物随机出现在屏幕上,当蛇碰到墙壁时,游戏结束。 本设计需要考虑的问题有以下几个: 1. 显示地图的选择 2. 保证游戏的流畅性和及时响应性 3. 游戏的设计应该接近人性化 电路连接距离应尽量短,避免信号线受外界干扰。 常州大学本科生毕业设计(论文) 第 4 页,共 31 页 2 系统主要芯片介绍 AT89S52 芯片 AT89S52 为 ATMEL 所生产的一种低功耗、高性能 CMOS8 位微控制器,具有 8K 在系统可编程 Flsah 存储器。 AT89S52 主要功能列举如下: 拥有灵巧的 8 位 CPU 和在系统可编程 Flash 晶片内部具时钟振荡器(传统最高工作频率可至 12MHz) 内部程序存储器( ROM) 为 8KB 内部数据存储器( RAM)为 256 字节 32 个可编程 I/O 口线 8 个中断向量源 三个 16 位定时器 /计数器 三级加密程序存储器 全双工 UART 串行通道 AT89S52 各引脚功能介绍: 图 AT89S52 引脚 VCC: AT89S52 电源正端输入,接 +5V。 VSS: 电源地端。 常州大学本科生毕业设计(论文) 第 5 页,共 31 页 XTAL1: 单芯片系统时钟的反相放大器输入端。 XTAL2: 系统时钟的反相放大器输出端,一般在设计上只要在 XTAL1 和 XTAL2 上接上一只石英振荡晶体系统 就可以动作了,此外可以在两引脚与地之间加入一 20PF 的小电容,可以使系统更稳定,避免噪声干扰而死机。 RESET: AT89S52 的重置引脚,高电平动作,当要对晶片重置时,只要对此引脚电平提升至高电平并保持两个机器周期以上的时间, AT89S51 便能完成系统重置的各项动作,使得内部特殊功能寄存器之内容均被设成已知状态,并且至地址 0000H处开始读入程序代码而执行程序。 EA/Vpp: EA为英文 External Access的缩写,表示存取外部程序代码之意,低电平动作,也就是说当此引脚接低电平后, 系统会取用外部的程序代码(存于外部EPROM 中)来执行程序。 因此在 8031 及 8032 中, EA 引脚必须接低电平,因为其内部无程序存储器空间。 如果是使用 8751 内部程序空间时,此引脚要接成高电平。 此外,在将程序代码烧录至 8751 内部 EPROM 时,可以利用此引脚来输入 21V 的烧录高压( Vpp)。 ALE/PROG: ALE 是英文 Address Latch Enable的缩写,表示地址锁存器启用信号。 AT89S52 可以利用这支引脚来触发外部的 8 位锁存器(如 74LS373),将端口 0的地址总线( A0~ A7)锁 进锁存器中,因为 AT89S52 是以多工的方式送出地址及数据。 平时在程序执行时 ALE 引脚的输出频率约是系统工作频率的 1/6,因此可以用来驱动其他周边晶片的时基输入。 此外在烧录 8751 程序代码时,此引脚会被当成程序规划的特殊功能来使用。 PSEN: 此为 Program Store Enable的缩写,其意为程序储存启用,当 8051 被设成为读取外部程序代码工作模式时( EA=0),会送出此信号以便取得程序代码,通常这支脚是接到 EPROM 的 OE 脚。 AT89S52 可以利用 PSEN 及 RD 引脚分别启用存在外部的 RAM 与 EPROM,使得数据存储器与程序存储器可以合并在一起而共用 64K 的定址范围。 PORT0( ~ ): 端口 0 是一个 8 位宽的开路汲极( Open Drain)双向输出入端口,共有 8 个位, 表示位 0, 表示位 1,依此类推。 其他三个 I/O 端口( P P P3)则不具有此电路组态,而是内部有一提升电路, P0 在当做 I/O 用时可以推动 8个 LS 的 TTL 负载。 如果当 EA 引脚为低电平时(即取用外部程序代码或数据存储器), P0 就以多工方式提供地址总线( A0~ A7)及数据总线( D0~ D7)。 设计者必须外加 一锁存器将端口 0 送出的地址栓锁住成为 A0~ A7,再配合端口 2所送出的 A8~ A15 合成一完整的 16 位地址总线,而定址到 64K 的外部存储器空间。 PORT2( ~ ): 端口 2 是具有内部提升电路的双向 I/O 端口,每一个引脚可以推动 4 个 LS的 TTL 负载,若将端口 2 的输出设为高电平时,此端口便能当成输入端口来使用。 P2 除了当做一般 I/O 端口使用外,若是在 AT89S52 扩充外接程序存储器或常州大学本科生毕业设计(论文) 第 6 页,共 31 页 数据存储器时,也提供地址总线的高字节 A8~ A15,这个时候 P2 便不能当做 I/O来使用了。 PORT1( ~ ): 端口 1 也是具有内部提升电路的双向 I/O 端口,其输出缓冲器可以推动 4 个LS TTL 负载,同样地若将端口 1 的输出设为高电平,便是由此端口来输入数据。 如果是使用 8052 或是 8032 的话, 又当做定时器 2 的外部脉冲输入脚,而 可以有 T2EX 功能,可以做外部中断输入的触发脚位。 PORT3( ~ ): 端口 3 也具有内部提升电路的双向 I/O 端口,其输出缓冲器可以推动 4 个TTL 负载,同时还多工具有其他的额外特殊功能,包括串行通信、外部中断控制、计时计数控制及外部数据存储器内容的读取或写入控 制等功能。 其引脚分配如下: : RXD,串行通信输入。 : TXD,串行通信输出。 : INT0,外部中断 0 输入。 : INT1,外部中断 1 输入。 : T0,计时计数器 0 输入。 : T1,计时计数器 1 输入。 : WR:外部数据存储器的写入信号。 : RD,外部数据存储器的读取信号。 此外, P3 口还接收一些用 于 FALAH 闪存 编程和程序校验的控制信号。 RST: 复位输入。 当振荡器工作时, RST 引脚出现两个机器周期以上高电平将是单片机复位。 ALE/PROG: 当访问外部程序存储器或数据存储器时, ALE(地址锁存允许)输出脉冲用于锁存地址的低 8 位字节。 一般情况下, ALE仍以时钟振荡频率的 1/6输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。 要注意的是:每当访问外部数据存储器时将跳过一个 ALE 脉冲。 对 FLASH存储器编程期间,该引脚还用于输入编程脉冲( PROG)。 如有必要,可通过对特殊功能寄存器( SFR)区中的 8EH 单元的 D0 位置位,可禁止 ALE 操作。 该位置位后,只有一条 MOVX 和 MOVC 指令才能将 ALE 激活。 此外,该引脚会被微弱拉高,单片机执行外 部程序时,应设置 ALE 禁止位无效。 PSEN: 程序储存允许( PSEN)输出是外部程序存储器的读选通信号,当 AT89S52 由外部程序存储器取指令(或数据)时,每个机器周期两次 PSEN有效,即输出两个脉冲,在此期间,当访问外部数据存储器,将跳过两次PSEN 信号。 EA/VPP: 外部访问允许,欲使 CPU 仅访问外部程序存储器(地址为0000HFFFFH), EA 端必须保持低电平(接地)。 需注意的是:如果加密位LB1 被编程,复位时内部会锁存 EA端状态。 如 EA 端为高电平(接 Vcc端),CPU 则执行内部程序存 储器的指令。 FLASH 存储器编程时,该引脚加上 +12V的编程允许电源 Vpp,当然这必须是该器件是使用 12V 编程电压 Vpp。 XTAL1: 振荡器反相放大器和内部时钟发生电路的输入端。 常州大学本科生毕业设计(论文) 第 7 页,共 31 页 XTAL2: 振荡器反相放大器的输出端。 3 系统总体设计 软件开发环境 对于 序的编写,在 C51 单片机中,可以用汇编语言编写程序,也可以用 C语言编写。 汇编语言是一种用文字助记符来表示机器指令的符号语言 ,是最接近机器码的一种语言,其主要优点是占用资源少、程序执行效率高,但是不同的CPU,其汇编语言可能有所差异 ,所以不易 移植。 C 语言是一种结构化的高级语言,其优点是可读性好 ,移植容易。基于51单片机的贪吃蛇游戏
相关推荐
,2020 年 6 期 [3] 金仁贵 .单片机应用系统的开发方法 [J].电脑知识与技术:学术交流 ,2020 年 12期 [4] 严怀龙 .基于单片机的数据采集系统 [J].广西轻工业 ,2020 年 6 期 [5] 王虎城 , 周晋军 , 皮依标 , 叶振华 . 基于光传感器和单片机的 校园 路灯控制系统设计 [J].科技广场 ,2020 年 1 期 [6] 王立红 .
] 因此,本次设计选择了 STC 公司的生产的 STC89C52 单片机。 STC89C52 是一种低功耗、高性能 CMOS8 位微控制器,是带 8K 字节闪烁可编程可檫除只读存储器。 一个芯片上拥有 8 位 CPU,并且在系统可编程 Flash。 STC89C52 提供给为众多嵌入式控制应用系统高灵活、超有效的解决方案。 STC89C52 具有以下标准功 8k 字节 Flash, 512字节
通过简单的编程实现 9~ 12 位的数字值读数方式。 可以分别在 ms和 750 ms 内完成 9 位和 12 位的数字量,并且从 DS18B20 读出的信息或写入DS18B20 的信息仅需要一根口线(单线接口 )读写 ,温度变换功率来源于数据总 线,总线本身也可以向所挂接的 DS18B20 供电,而无需额外电源。 因而使用DS18B20 可使系统结构更趋简单,可靠性更高。 DS18B20
indows 和 for Dos 的 集成开发环境 (IDE),可以完成编辑、 编译 、连接、调试、仿真等整个开发流程。 开发人员可用IDE本身或其它 编辑器 编辑 C 或汇编源文件。 然后分别由 C51及 C51编译器 编译生成目标文件( .OBJ)。 目标文件可由 LIB51创建生成库文件,也可以与库文件一起经 L51连接定位生成绝对目标文件 (.ABS)。 ABS 文件由
本课题的设计方案 本课题所设计的系统有三个原则: 操作维护方便, 为了利于系统的推广,在设计时应该充分采用操作内置或简化的方法,以尽量减少对操作人员专用知识的要求,也便于进行维修。 可靠性,本系统所有的环节中,都应该有着可靠性的思想,从选用可靠性高的元器件;供电电源采用抗干扰措施;进行多向滤波等作为出发点。 性价比,本课题所设计的系统的核心是单片机,它本身有着多个优势,要使得系统能够广泛地应用
+5V 无源蜂鸣器二个, 12MHZ晶振一个,多个按键和 开关,常用电容电阻,连接线,三极管,二极管若干,滑动变阻器一个。 2. 2 系统硬件各模块作用 2. 单片机核心控制模块 核心控制 器件选用 STC89C52 单片机。 STC89C52 单片机 为 40 管脚双列直插芯片,它是一种高性能,低功耗的 8位 CMOS 微处理器芯片,市场应用最多。 而且价格便宜,控制方便,便于应用有 4个