基于51单片机的贪吃蛇游戏_第1页
基于51单片机的贪吃蛇游戏_第2页
基于51单片机的贪吃蛇游戏_第3页
基于51单片机的贪吃蛇游戏_第4页
基于51单片机的贪吃蛇游戏_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、学号: 07416529常 州 大 学 毕业设计(论文)(2011届)题 目 基于51单片机的贪吃蛇游戏设计 学 生 王兴兴 学 院 信息科学与工程学院 专业班级 计算机073 校内指导教师 潘操 专业技术职务 讲师 二一一年五月基于51单片机贪吃蛇游戏设计摘要:随着科技的发展,现代生活节奏越来越快,人们的工作生活压力也随之加大。设计一款操作简单,生动新颖,娱乐性强,便于携带的小游戏,在繁忙的工作生活之余玩玩这款小游戏,不仅可以调节人们的情绪,使人心情舒畅,还能健脑益智,为更好地投入工作学习做好准备。本文基于单片机设计的贪吃蛇游戏,除了具有传统意义上的贪吃蛇游戏的特点:吃豆子蛇身增长,得分;分

2、数达到一定等级进行升级以后,蛇运动速度加快等以外,本次设计加入了游戏暂停,中途退出,地图选择,背景提示音效等功能。为节省存储空间,游戏算法上进行了新的设计,定义一个一维数组,利用位操作存储读取蛇头的运动状态信息。具体实现上,硬件系统平台采用51系列单片机,搭载LCD,键盘,构成了一个轻巧便携的游戏机系统。51系列单片机技术成熟,功能强大,应用广泛。使用单片机作为控制核心,可以简化硬件电路,采用软件编程控制单片机实现硬件电路的功能,降低能耗,降低成本。软件采用C语言编程,方便灵活,大大加快了软件开发速度,缩短了开发周期,并且便于移植。为提高开发效率和硬件稳定性,采用了功能强大的硬件仿真软件Pro

3、teus,依托该软件提供的仿真环境搭配Keil作为软件开发调试环境进行仿真调试成功。文中具体介绍了使用到的各种硬件的特性,游戏的各种功能与详细设计,软件的具体设计思路,各模块的详细介绍,部分模块的程序流程图,状态迁移图,关键部分代码的详细讲解等。关键词:贪吃蛇;51单片机;游戏Greedy Snake Game Based on 51 MCU designAbstract: With the development of science and technology, modern life rhythm, people more and more quick work life pressu

4、re also will increase. Design of a simple operation, the vivid novel strong, easy to carry, entertaining the small game, in a busy work life play this paragraph small game over, not only can adjust people's sentiment, make the person in a relaxed mood, still can brain puzzle for better work stud

5、y ready.This paper based on single-chip design snake game, besides have traditionally snake game features: eat beans snakes body growth, scoring; Score reaches a certain level, upgrade snake movement speed after outside, this design such as joined the game suspension, midway exits, maps choice, back

6、ground tip sound, and other functions. To save storage space, the game has made a new algorithm design, define a one-dimensional array, using a operation state of motion debts storage reading information.Concrete realization, hardware system platform using the 51 series microcontroller, carrying LCD

7、, keyboard and speakers, constitute a lightweight portable game system. 51 series microcontroller mature technology, powerful, wide application. Using single chip microcomputer as control core can be simplified the hardware circuit and software programming control by microcontroller hardware circuit

8、 function, reduce the energy consumption and reduce the cost. The C programming language used in the software, flexibility, accelerated greatly software development speed, shorten the development cycle, and for transplantation. In order to improve the efficiency of development and hardware stability

9、, using a powerful hardware simulation software Proteus, relying on the software provides a simulation environment collocation Keil software development debug environment as simulation debugging success. The article introduces the use ofavariety of hardware features,the game features and the detaile

10、d design,software design of the specific ideas,details ofvarious modules,some modu les of the program flow chart,state transition graph,a key part ofthe code details and so onKeyWords:Greedy Snake;51MCU;Game术 语 表ALU算数逻辑单元。CPU 内负责执行数学运算(例如加、 减等运算)、逻辑运算(例如与、 或等运算)和移位操作的逻辑单元。波特率(Baud)通常用来描述串行端口的通信速率。即每

11、秒传输的位数(BPS)CPU中央处理单元。其主要功能是将指令译码、确定需要的操作数和要执行的操作。算数运算、逻辑运算和移位操作将在ALU 中执行。采集时间(Acquisition Time, TACQ)这是与模数转换器有关的一个术语。采集时间就是 A/D 转换器的采样保持电容充电到与之相连的模拟输入电压值所需要的时间。当GO 位被置1 后,模拟输入通道就与采样保持电容断开,启动A/D 转换。存储区(Bank)这是一个寻址数据存储器的方法。因为中档单片机有7 位用于直接寻址,指令可以寻址128 字节(包括特殊功能寄存器)。为寻址更大的数据存储空间,数据存储器被分成多个相邻的存储区,每个存储区12

12、8 字节。为选择存储区,需要准确设置存储区选择位(RP1 和RP0)。由于有2 个存储区选择位,所以可选实现4 个存储区。EEPROM电可擦除的可编程只读存储器。该存储器能够在线编程和擦除。EPROM可编程只读存储器。该存储器能够在线编程。可用紫外线擦除。IIC内部互联。这是一个双线的通讯接口,是SSP 模块的一种工作模式。LED发光二极管。 用于显示系统状况。RC电阻电容。 器件振荡器的默认配置。它为器件时钟源提供了一种“真正廉价的”的实现方法。这种时钟源不能提供准确的时基。支持4 MHz 时钟频率。ROM只读存储器。 它是内容固定且不能修改的存储器。摘要I目 次术 语 表1绪论11.1研究

13、背景与意义11.2选题背景11.3单片机的发展状况11.4 LCD发展状况31.5课题分析32 系统主要芯片介绍42.1 AT89S52芯片42.2.1 AT89S52主要功能列举如下:42.2.2 AT89S52各引脚功能介绍:43 系统总体设计73.1软件开发环境73.1.2软件设计工具73.2硬件仿真环境83.2.1 Proteus软件简介83.2.2 Proteus软件功能模块83.2.3 Proteus软件电路仿真103.3系统软硬件设计103.3.1系统的硬件总体设计103.3.2系统的软件总体设计114 系统硬件设计124.1键盘扫描的电路设计124.1.1键盘扫描思路设计124

14、.1.2键盘硬件电路设计134.2 LCD 12864显示模块134.2.1点阵显示原理154.2.2 LCD示驱动原理155 系统软件设计175.1 主程序设计175.2按键模块详细设计与实现185.2.1按键检测模块185.2.2按键处理模块195.3 l2864显示模块205.4蛇运动控制模块详细设计与实现226 系统调试256.1硬件连接256.2硬件调试266.3程序的下载266.4系统的运行277 总结29参 考 文 献30致 谢31IV常州大学本科生毕业设计(论文)1绪论1.1研究背景与意义随着社会的发展,人们生活的步调日益加快,越来越多的人加入了全球化的世界。人们不再拘泥于一小

15、块天地,加班,出差成了现代人不可避免的公务。而此时一款可以随时随地娱乐的游戏成了必需品。贪吃蛇这一游戏简单易行,操作方便,娱乐性较强,吸引了不少人。这一款游戏紧紧地抓住了人们的心理,虽然简单,却其乐无穷,在人们不断追求更多的欲望下,该游戏给人们带来了追逐的快感,以及成功后的满足感,对于一直处于高压下的现代人是很好的放松工具。当前科学技术飞速发展,特别是微电子技术,计算机软件与应用技术的发展,使得人们的日常生活丰富多彩。单片微型计算机(简称单片机)作为微型计算机家族的一员,以其独特的结构,良好的稳定性,便宜的价格在嵌入式领域广泛应用。与传统的PC上设计的贪吃蛇游戏不同,本次作者利用Proteus

16、硬件仿真软件,采用单片机、液晶显示屏,按键等搭建硬件平台,C语言编程,实现便携地贪吃蛇游戏。传统的贪吃蛇游戏只有单纯的吃豆子,得分,升级以后蛇运动的速度加快等功能。本次作者对贪吃蛇游戏进行了升级,出上述基本功能外,针对现有硬件条件,加入地图选择,游戏中途暂停与退出,使玩家的游戏体验更上一层楼。1.2选题背景贪吃蛇这一游戏简单易行,操作方便,娱乐性较强,吸引了不少人。这一款游戏紧紧地抓住了人们的心理,虽然简单,却其乐无穷,在人们不断追求更多的欲望下,该游戏给人们带来了追逐的快感,以及成功后的满足感,对于一直处于高压下的现代人是很好的放松工具。1.3单片机的发展状况目前,单片机正朝着高性能和多品种

17、方向发展趋势将是进一步向着CMOS化、低功耗、小体积、大容量、高性能、低价格和外围电路内装化等几个方面发展。下面是单片机的主要发展趋势。 CMOS化 近年,由于CHMOS技术的进小,大大地促进了单片机的CMOS化。CMOS芯片除了低功耗特性之外,还具有功耗的可控性,使单片机可以工作在功耗精细管理状态。这也是今后以80C51取代8051为标准MCU芯片的原因。因为单片机芯片多数是采用CMOS(金属栅氧化物)半导体工艺生产。CMOS电路的特点是低功耗、高密度、低速度、低价格。采用双极型半导体工艺的TTL电路速度快,但功耗和芯片面积较大。随着技术和工艺水平的提高,又出现了HMOS(高密度、高速度MO

18、S)和CHMOS工艺。CHMOS和HMOS工艺的结合。目前生产的CHMOS电路已达到LSTTL的速度,传输延迟时间小于2ns,它的综合优势已在于TTL电路。因而,在单片机领域CMOS正在逐渐取代TTL电路。 低功耗化 单片机的功耗已从Ma级,甚至1uA以下;使用电压在36V之间,完全适应电池工作。低功耗化的效应不仅是功耗低,而且带来了产品的高可靠性、高抗干扰能力以及产品的便携化。 低电压化 几乎所有的单片机都有WAIT、STOP等省电运行方式。允许使用的电压范围越来越宽,一般在36V范围内工作。低电压供电的单片机电源下限已可达12V。目前0.8V供电的单片机已经问世。 低噪声与高可靠性 为提高

19、单片机的抗电磁干扰能力,使产品能适应恶劣的工作环境,满足电磁兼容性方面更高标准的要求,各单片厂家在单片机内部电路中都采用了新的技术措施。 大容量化 以往单片机内的ROM为1KB4KB,RAM为64128B。但在需要复杂控制的场合,该存储容量是不够的,必须进行外接扩充。为了适应这种领域的要求,须运用新的工艺,使片内存储器大容量化。目前,单片机内ROM最大可达64KB,RAM最大为2KB。 高性能化 主要是指进一步改进CPU的性能,加快指令运算的速度和提高系统控制的可靠性。采用精简指令集(RISC)结构和流水线技术,可以大幅度提高运行速度。现指令速度最高者已达100MIPS(Million Ins

20、truction Per Seconds,即兆指令每秒),并加强了位处理功能、中断和定时控制功能。这类单片机的运算速度比标准的单片机高出10倍以上。由于这类单片机有极高的指令速度,就可以用软件模拟其I/O功能,由此引入了虚拟外设的新概念。 小容量、低价格化 与上述相反,以4位、8位机为中心的小容量、低价格化也是发展动向之一。这类单片机的用途是把以往用数字逻辑集成电路组成的控制电路单片化,可广泛用于家电产品。 外围电路内装化 这也是单片机发展的主要方向。随着集成度的不断提高,有可能把众多的各种处围功能器件集成在片内。除了一般必须具有的CPU、ROM、RAM、定时器/计数器等以外,片内集成的部件还

21、有模/数转换器、DMA控制器、声音发生器、监视定时器、液晶显示驱动器、彩色电视机和录像机用的锁相电路等。 串行扩展技术 在很长一段时间里,通用型单片机通过三总线结构扩展外围器件成为单片机应用的主流结构。随着低价位OTP(One Time Programble)及各种类型片内程序存储器的发展,加之处围接口不断进入片内,推动了单片机“单片”应用结构的发展。特别是I C、SPI等串行总线的引入,可以使单片机的引脚设计得更少,单片机系统结构更加简化及规范化。 随着半导体集成工艺的不断发展,单片机的集成度将更高、体积将更小、功能将列强。在单片机家族中,80C51系列是其中的佼佼者,加之Intel公司将其

22、MCS 51系列中的80C51内核使用权以专利互换或出售形式转让给全世界许多著名IC制造厂商,如Philips、 NEC、Atmel、AMD、华邦等,这些公司都在保持与80C51单片机兼容的基础上改善了80C51的许多特性。这样,80C51就变成有众多制造厂商支持的、发展出上百品种的大家族,现统称为80C51系列。80C51单片机已成为单片机发展的主流。专家认为,虽然世界上的MCU品种繁多,功能各异,开发装置也互不兼容,但是客观发展表明,80C51可能最终形成事实上的标准MCU芯片。  1.4 LCD发展状况液晶显示器TFT LCD,全称为薄膜晶体管液晶显示器(Thin Film T

23、ransistor Liquid Crystal Displayer),一般简称LCD(Liquid Crystal Display)。超薄体形、低功耗、低辐射、无闪烁、完全物理平面、低反光、清晰的字符显示等等,都是大家非常熟悉的液晶显示器LCD优点。最简单的液体晶体管就是我们常见的小型计算器以及电子手表上面的液晶字符屏幕。他是把有机液晶原料夹在两片透明的玻璃或者有机玻璃中。没有电流通过的时候,长棒状的原料晶体分子是无规则排列的,光线无法随意透过玻璃,外表看上去就是黑色。通电的时候,液晶原料排列顺序随电流极向改变,光线在规则排列的晶体分子中可以透过,液晶管由原来的非透明状态变成透明状态。通过把

24、液晶材料进行不同的排列,组成不同的字符形状,就能通过电流控制其开关显示,以显示出我们说需要的字符。液晶技术发展的早期,由于液晶管的稳定性以及生产技术,还不能大量大规模的生产,直到了英国的科学家发明了用”联苯(Biphenyl)”一作为液晶管的原料,这个问题才得以解决。1970年,弗格森制造了第一台能够工作的LCD,而在此之前的所谓LCD都是耗电量大而且对比度极低的昂贵设备。到了1971年,这种新的液晶显示器开始普遍地为人们接受。当然,那时候的LCD还是单色产品,但是已经不是简单的字符型液晶屏幕了。LCD技术是把液晶灌入两片偏振玻璃之间。所谓偏振玻璃,就是光线通过这样的玻璃之后,就会从球面波或者

25、高斯球面波,变成只在一个平面上振动的波,称为偏振光。偏振光只能通过相应方向的偏振玻璃,如果偏振玻璃的偏振方向和偏振光线的有一定的夹角,就会减弱偏振光强度,甚至偏振光无法通过。如果大家对这方面有兴趣,可以参阅有关的大学物理书籍。夹住液晶的两片偏振玻璃,假设为a、b,他们的偏振方向会设置为90度夹角。光线通过第一片偏振玻璃a后,假设这X方向偏振,通过液晶后,液晶通电流之后,在电场极化作用下,呈规则排列,X偏振光不会有任何改变,投射到b玻璃上。而b玻璃的偏振方向为Y,就是X+90度,X偏振的光线无法通过,在b玻璃外面看上去就是黑色了。而如果液晶没有电场作用,就是没有通电流,通过无规则排列的液晶,X偏

26、振光的偏振方向会发生改变,旋转90度,旋转后X偏振光的偏振方向刚好和b偏振玻璃的偏振方向一样,就是X+90=Y,光线就能通过b玻璃了。1.5课题分析贪吃蛇游戏设计主要硬件由单片机最小系统,LCD,4X4矩阵键盘,整个的游戏设计外围电路比较少,主要核心在于游戏的程序设计,本设计的游戏规则也参照现在手机流行的贪吃蛇游戏的规则去设计,当蛇吃到食物时,蛇身就会自动增加一格,食物随机出现在屏幕上,当蛇碰到墙壁时,游戏结束。本设计需要考虑的问题有以下几个:1. 显示地图的选择2. 保证游戏的流畅性和及时响应性3. 游戏的设计应该接近人性化电路连接距离应尽量短,避免信号线受外界干扰。2 系统主要芯片介绍2.

27、1 AT89S52芯片AT89S52为 ATMEL 所生产的一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flsah存储器。2.2.1 AT89S52主要功能列举如下:1、拥有灵巧的8位CPU和在系统可编程Flash2、晶片内部具时钟振荡器(传统最高工作频率可至 12MHz)3、内部程序存储器(ROM)为 8KB4、内部数据存储器(RAM)为 256字节5、32 个可编程I/O 口线6、8 个中断向量源7、三个 16 位定时器/计数器8、三级加密程序存储器9、全双工UART串行通道2.2.2 AT89S52各引脚功能介绍:图2.1 AT89S52引脚VCC:AT89S52电源正端

28、输入,接+5V。VSS:电源地端。XTAL1:单芯片系统时钟的反相放大器输入端。XTAL2:系统时钟的反相放大器输出端,一般在设计上只要在 XTAL1 和 XTAL2 上接上一只石英振荡晶体系统就可以动作了,此外可以在两引脚与地之间加入一 20PF 的小电容,可以使系统更稳定,避免噪声干扰而死机。RESET:AT89S52的重置引脚,高电平动作,当要对晶片重置时,只要对此引脚电平提升至高电平并保持两个机器周期以上的时间,AT89S51便能完成系统重置的各项动作,使得内部特殊功能寄存器之内容均被设成已知状态,并且至地址0000H处开始读入程序代码而执行程序。EA/Vpp:"EA&quo

29、t;为英文"External Access"的缩写,表示存取外部程序代码之意,低电平动作,也就是说当此引脚接低电平后,系统会取用外部的程序代码(存于外部EPROM中)来执行程序。因此在8031及8032中,EA引脚必须接低电平,因为其内部无程序存储器空间。如果是使用 8751 内部程序空间时,此引脚要接成高电平。此外,在将程序代码烧录至8751内部EPROM时,可以利用此引脚来输入21V的烧录高压(Vpp)。ALE/PROG:ALE是英文"Address Latch Enable"的缩写,表示地址锁存器启用信号。AT89S52可以利用这支引脚来触发外部的

30、8位锁存器(如74LS373),将端口0的地址总线(A0A7)锁进锁存器中,因为AT89S52是以多工的方式送出地址及数据。平时在程序执行时ALE引脚的输出频率约是系统工作频率的1/6,因此可以用来驱动其他周边晶片的时基输入。此外在烧录8751程序代码时,此引脚会被当成程序规划的特殊功能来使用。PSEN:此为"Program Store Enable"的缩写,其意为程序储存启用,当8051被设成为读取外部程序代码工作模式时(EA=0),会送出此信号以便取得程序代码,通常这支脚是接到EPROM的OE脚。AT89S52可以利用PSEN及RD引脚分别启用存在外部的RAM与EPRO

31、M,使得数据存储器与程序存储器可以合并在一起而共用64K的定址范围。PORT0(P0.0P0.7):端口0是一个8位宽的开路汲极(Open Drain)双向输出入端口,共有8个位,P0.0表示位0,P0.1表示位1,依此类推。其他三个I/O端口(P1、P2、P3)则不具有此电路组态,而是内部有一提升电路,P0在当做I/O用时可以推动8个LS的TTL负载。如果当EA引脚为低电平时(即取用外部程序代码或数据存储器),P0就以多工方式提供地址总线(A0A7)及数据总线(D0D7)。设计者必须外加一锁存器将端口0送出的地址栓锁住成为A0A7,再配合端口2所送出的A8A15合成一完整的16位地址总线,而

32、定址到64K的外部存储器空间。PORT2(P2.0P2.7):端口2是具有内部提升电路的双向I/O端口,每一个引脚可以推动4个LS的TTL负载,若将端口2的输出设为高电平时,此端口便能当成输入端口来使用。P2除了当做一般I/O端口使用外,若是在AT89S52扩充外接程序存储器或数据存储器时,也提供地址总线的高字节A8A15,这个时候P2便不能当做I/O来使用了。PORT1(P1.0P1.7):端口1也是具有内部提升电路的双向I/O端口,其输出缓冲器可以推动4个LS TTL负载,同样地若将端口1的输出设为高电平,便是由此端口来输入数据。如果是使用8052或是8032的话,P1.0又当做定时器2的

33、外部脉冲输入脚,而P1.1可以有T2EX功能,可以做外部中断输入的触发脚位。PORT3(P3.0P3.7):端口3也具有内部提升电路的双向I/O端口,其输出缓冲器可以推动4个TTL负载,同时还多工具有其他的额外特殊功能,包括串行通信、外部中断控制、计时计数控制及外部数据存储器内容的读取或写入控制等功能。其引脚分配如下:P3.0:RXD,串行通信输入。P3.1:TXD,串行通信输出。P3.2:INT0,外部中断0输入。P3.3:INT1,外部中断1输入。P3.4:T0,计时计数器0输入。P3.5:T1,计时计数器1输入。P3.6:WR:外部数据存储器的写入信号。P3.7:RD,外部数据存储器的读

34、取信号。此外,P3口还接收一些用于FALAH闪存编程和程序校验的控制信号。 RST:复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将是单片机复位。 ALE/PROG:当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。一般情况下,ALE仍以时钟振荡频率的1/6输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个ALE脉冲。对FLASH存储器编程期间,该引脚还用于输入编程脉冲(PROG)。如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元的D0位置位,可禁止ALE操作。该位置位后,只

35、有一条MOVX和MOVC指令才能将ALE激活。此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE禁止位无效。 PSEN:程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当AT89S52由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲,在此期间,当访问外部数据存储器,将跳过两次PSEN信号。 EA/VPP:外部访问允许,欲使CPU仅访问外部程序存储器(地址为0000H-FFFFH),EA端必须保持低电平(接地)。需注意的是:如果加密位LB1被编程,复位时内部会锁存EA端状态。如EA端为高电平(接Vcc端),CPU则执行内部程序存储器的指令。FL

36、ASH存储器编程时,该引脚加上+12V的编程允许电源Vpp,当然这必须是该器件是使用12V编程电压Vpp。 XTAL1:振荡器反相放大器和内部时钟发生电路的输入端。 XTAL2:振荡器反相放大器的输出端。3 系统总体设计3.1软件开发环境对于序的编写,在C51单片机中,可以用汇编语言编写程序,也可以用C语言编写。汇编语言是一种用文字助记符来表示机器指令的符号语言,是最接近机器码的一种语言,其主要优点是占用资源少、程序执行效率高,但是不同的CPU,其汇编语言可能有所差异,所以不易移植。C语言是一种结构化的高级语言,其优点是可读性好,移植容易3,是普遍使用的一种计算机语言,缺点是占用资源较多,执行

37、效率没有汇编高。对于目前普遍使用的RISC架构的8bit MCU来说,其内部ROM、RAM、STACK等资源都有限,如果使用C语言编写,一条C语言指令编译后,会变成很多条机器码,很容易出现ROM空间不够、堆栈溢出等问题。 综合本设计的情况,由于编写程序容量并不是很大,而且对于初学者更好理解程序的设计,故采用keilC 编译器来完成程序的编写。3.1.2软件设计工具uVision4集成开发环境 uVision4IDE是一个基于Window的开发平台包含一个高效的编辑器一个项目管理器和一个MAKE工具。uVision4支持所有的KEIL 8051工具包括C编译器,宏汇编器,连接/定位器目标代码到H

38、EX的转换器。uVision45通过以下特性加速你的嵌入式系统的开发过程:1) 全功能的源代码编辑器。2) 器件库用来配置开发工具设置。3) 项目管理器用来创建和维护你的项目。4) 集成的 MAKE 工具可以汇编 编译和连接你的嵌入式应用。5) 所有开发工具的设置都是对话框形式的。6) 真正的源代码级的对 CPU和外围器件的调试器。7) 高级 GDI(AGDI)接口用来在目标硬件上进行软件调试 以及和Monitor-51 进行通信。 8) 与开发工具手册和器件数据手册和用户指南有直接的链接。 uVision4界面提供一个菜单,一个工具条以便你快速选择命令按钮,另外还有源代码的显示窗口,对话框和

39、信息显示uVision4允许同时打开浏览多个源文件。图3.1开发环境界面菜单条提供各种操作菜单,如:编辑操作,项目维护,开发工具选项设置,调试程序,窗口选择和处理,在线帮助,工具条按钮允许你快速地执行uVision4命令。键盘快捷键(你自己可以配置)允许你执行uVision命令。3.2硬件仿真环境3.2.1 Proteus软件简介Proteus软件是英国Labcenter electronics公司出版的EDA工具软件(该软件中国总代理为广州风标电子技术有限公司)。它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件16。它是目前最好的仿真单片机及外围器件的工具。虽然目前国内推广刚

40、起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。Proteus是世界上著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2010年即将增加Cortex和DSP系列处理器,并持续增加其他系列处理器模型。在编译方面,它也支持IAR、Keil和MPLAB等多种

41、编译器14。3.2.2 Proteus软件功能模块(1)智能原理图设计(ISIS)丰富的器件库:超过27000种元器件,可方便地创建新元件; 智能的器件搜索:通过模糊搜索可以快速定位所需要的器件; 智能化的连线功能:自动连线功能使连接导线简单快捷,大大缩短绘图时间; 支持总线结构:使用总线器件和总线布线使电路设计简明清晰; 可输出高质量图纸:通过个性化设置,可以生成印刷质量的BMP图纸,可以方便地供WORD、POWERPOINT等多种文档使用15。 (2)完善的电路仿真功能(Prospice)ProSPICE混合仿真:基于工业标准SPICE3F5,实现数字/模拟电路的混合仿真; 超过27000

42、个仿真器件:可以通过内部原型或使用厂家的SPICE文件自行设计仿真器件,Labcenter也在不断地发布新的仿真器件,还可导入第三方发布的仿真器件; 多样的激励源:包括直流、正弦、脉冲、分段线性脉冲、音频(使用wav文件)、指数信号、单频FM、数字时钟和码流,还支持文件形式的信号输入; 丰富的虚拟仪器:13种虚拟仪器,面板操作逼真,如示波器、逻辑分析仪、信号发生器、直流电压/电流表、交流电压/电流表、数字图案发生器、频率计/计数器、逻辑探头、虚拟终端、SPI调试器、I2C调试器等; 生动的仿真显示:用色点显示引脚的数字电平,导线以不同颜色表示其对地电压大小,结合动态器件(如电机、显示器件、按钮

43、)的使用可以使仿真更加直观、生动; 高级图形仿真功能(ASF):基于图标的分析可以精确分析电路的多项指标,包括工作点、瞬态特性、频率特性、传输特性、噪声、失真、傅立叶频谱分析等,还可以进行一致性分析; (3)独特的单片机协同仿真功能(VSM)支持主流的CPU类型:如ARM7、8051/52、AVR、PIC10/12、PIC16、PIC18、PIC24、dsPIC33、HC11、BasicStamp、8086、MSP430等,CPU类型随着版本升级还在继续增加,如即将支持CORTEX、DSP处理器; 支持通用外设模型:如字符LCD模块、图形LCD模块、LED点阵、LED七段显示模块、键盘/按键、

44、直流/步进/伺服电机、RS232虚拟终端、电子温度计等等,其COMPIM(COM口物理接口模型)还可以使仿真电路通过PC机串口和外部电路实现双向异步串行通信; 实时仿真:支持UART/USART/EUSARTs仿真、中断仿真、SPI/I2C仿真、MSSP仿真、PSP仿真、RTC仿真、ADC仿真、CCP/ECCP仿真; 编译及调试:支持单片机汇编语言的编辑/编译/源码级仿真,内带8051、AVR、PIC的汇编编译器,也可以与第三方集成编译环境(如IAR、Keil和Hitech)结合,进行高级语言的源码级仿真和调试16; (4)实用的PCB设计平台原理图到PCB的快速通道: 原理图设计完成后,一键

45、便可进入ARES的PCB设计环境,实现从概念到产品的完整设计; 先进的自动布局/布线功能:支持器件的自动/人工布局;支持无网格自动布线或人工布线;支持引脚交换/门交换功能使PCB设计更为合理; 完整的PCB设计功能:最多可设计16个铜箔层,2个丝印层,4个机械层(含板边),灵活的布线策略供用户设置,自动设计规则检查,3D 可视化预览; 多种输出格式的支持:可以输出多种格式文件,包括Gerber文件的导入或导出,便利与其它PCB设计工具的互转(如protel)和PCB板的设计和加工17。 3.2.3 Proteus软件电路仿真在PROTEUS绘制好原理图后,调入已编译好的目标代码文件:*.HEX

46、,可以在PROTEUS的原理图中看到模拟的实物运行状态和过程。 PROTEUS不仅可将许多单片机实例功能形象化,也可将许多单片机实例运行过程形象化。前者可在相当程度上得到实物演示实验的效果,后者则是实物演示实验难以达到的效果。它的元器件、连接线路等却和传统的单片机实验硬件高度对应。这在相当程度上替代了传统的单片机实验教学的功能,例:元器件选择、电路连接、电路检测、电路修改、软件调试、运行结果等。 毕业设计是学生走向就业的重要实践环节。由于PROTEUS提供了实验室无法相比的大量的元器件库,提供了修改电路设计的灵活性、提供了实验室在数量、质量上难以相比的虚拟仪器、仪表,因而也提供了培养学生实践精

47、神、创造精神的平台 随着科技的发展,“计算机仿真技术”已成为许多设计部门重要的前期设计手段。它具有设计灵活,结果、过程的统一的特点。可使设计时间大为缩短、耗资大为减少,也可降低工程制造的风险。相信在单片机开发应用中PROTEUS也能茯得愈来愈广泛的应用。使用Proteus 软件进行单片机系统仿真设计, 是虚拟仿真技术和计算机多媒体技术相结合的综合运用,有利于培养学生的电路设计能力及仿真软件的操作能力;对单片机的学习比单纯学习书本知识更容易接受,更容易提高。实践证明,在使用 Proteus 进行系统仿真开发成功之后再进行实际制作,能极大提高单片机系统设计效率。因此,Proteus 有较高的推广利

48、用价值18。3.3系统软硬件设计3.3.1系统的硬件总体设计采用AT89S52芯片作为CPU,结合键盘芯片74CH148和汉字图形点阵液晶显示模块LCD12864,使用C51语言编写,在硬件软件上实现了这个游戏。硬件使用的是单片机,设计的主要难点为贪吃蛇运动、吃食物、死亡及放事物的算法的实现,另外,由于对LCD12864的不熟悉,对显示贪吃蛇的硬件驱动费了不少时间。为了简化显示屏电路,降低成本,单片机部分发不加字库存储器,而在PC机上编辑汉字和字符显示信息,并转换为相应的点阵显示数据,送给单片机存储并作显示处理。硬件部分:硬件设计系统框图:图3.2硬件设计系统框图3.3.2系统的软件总体设计系

49、统的程序设计分为一个主函数,3个子函数,子函数分别是键盘扫描函数,贪吃蛇运行子程序和LCD子程序。在主程序里只对LCD的初始化,中断设备的初始化,然后死循环执行贪吃蛇运行程序。系统的模块流程图如下所示:主程序模块初始化(init()模块游戏界面设计(DrawK()模块游戏进行模块(GamePlay()死亡判断模块成绩输出模块退出游戏模块图 3.3系统的模块流程图 4 系统硬件设计其主要运行原理是使用单片机的I/O口驱动LCD,向LCD的数据口写数据或指令,使LCD显示相应的游戏信息和游戏界面。单片机采用查询方式扫描键盘,当有键按下的时候,单片机读取键值,按照按键的功能进入不同的游戏状态。背景音

50、利用定时器0和定时器1的中断,查询方式产生。蛇的运动和游戏时钟则是采用定时器2中断产生的,当满足一定条件时通过单片机I/O F3送到LCD上进行显示。图4.1 硬件总体设计图系统的硬件分为三部分,微机控制模块,键盘输入模块,LCD点阵扫描驱动模块、点阵显示模块,下面主要介绍键盘的输入模块和LCD点阵扫描驱动模块、点阵显示模块。4.1键盘扫描的电路设计4.1.1键盘扫描思路设计 键盘是人机对话的一个重要的桥梁,通过按键控制单片机的操作。键盘的设计有两种方式,一种是独立键盘,就是独立每一个I/O口单独连接一个按钮,这样的设计是最简单的,可是具有很大的局限性,因为单片机的I/O口本身就很有限,而且4

51、个按键需要4个I/O口,浪费了单片机的资源。第二种方式是矩阵键盘,矩阵键盘采用行列式结构按键设置在行列的交点上。当口线数量为8时,可以将4根口线定义为行线,另4根口线的定义为列线,形成4X4键盘,可以配置16个按键。同样利用8根口线,矩阵键盘可以配置16个键,而独立键盘只能配置8个按键,从此看出,矩阵键盘比独立键盘拥有更丰富的性能。4.1.2键盘硬件电路设计图4.2 键盘硬件电路设计如图所示,矩阵键盘的行线连接P1口的前四位,列线连接P1口的后四位。矩阵键盘上某一键闭合时,该键所对应的行线和列线短接。此时该行线电平将由被短接的列线电平所决定。4.2 LCD 12864显示模块LCDl2864(

52、以后简称大屏)功能强大,5V电压驱动,带背光,内置8192个16x16个点阵、显示容量为128*64,内部由A,B两屏左右分布组成。LCD12864有18个引脚,其定义如下14:1脚CS1:片选A屏,低电平有效2 脚CS2:片选B屏,低电平有效3脚 GND:地4脚 VCC:电源5脚 VO:液晶显示对比调节端6脚 RS:寄存器选择。RS=0时,选择指令寄存器;RS=1时,选择数据寄存器 7脚R/W:读写信号线。R/W=1时,读操作:R/W=0时,写操作8脚E:显示板控制使能端916脚DB0-DB7:双向三念IO线17脚RST:复位端,低电平有效18 脚Vout: 对比度调节供电硬件电路图如下:图

53、4.3 LCD12864硬件连接图LCD12864管脚图如下:图4.4 LCD12864管脚图 LCDl2864并行方式时,数据线DB0DB7用来传送数据和命令。CSI和CS2为液晶显示器的左右半屏的选择端口。液晶的亮度可以使用改变VO的输入电压来改变。根据上述管脚功能介绍,硬件管脚相关定义如下:定义单片机与12864的接口,数据接口为p0口 sbit lcd_en=P34;sbit lcd_di=P35;sbit lcd_rw=P36;sbit cs1=P33;sbit cs2=P37;4.2.1点阵显示原理 LCDl2864显示的点阵方式是128x64。横向O一127共128个点阵,分为左

54、右两屏。各占0-63共64个点阵;纵向0-63共64个点阵,每8个纵向点阵(8个点阵可以看成8位8位为1字节)构成一页,将屏幕分成8页,并按照纵向取模,字节倒序的方式显示一字节内容。由于将4x4点阵定义为单位点阵的大小,并定义单位点阵为豆子的大小,因此将屏幕按4x4比例从128x64缩小为32x16(即将4x4点阵看成LCDl2864上的一个最小点阵)。4.2.2 LCD示驱动原理从电子学角度简述液晶显示器件的显示原理为3:在外加电场的作用下具有偶极矩的液晶棒状分子在排列状态上发生变化,使得通过液晶显示器件的光被调制,从而呈现明与暗或透过与不透过的显示效果。液晶显示器件中的每个显示像素都可以单

55、独被电场控制,不同的显示像素按照驱动信号的“指挥”在显示屏上合成各种字符,数字及图形。液晶显示驱动功能就是建立这种电场。液晶的显示效果是由于在显示像素上施加了电场的缘故,而这个电场则由显示像素前后两电极上的电位信号差所产生。在显示像素上建立直流电池是非常容易的事,但直流电场将导致液晶材料的化学反应和电极老化,从而迅速降低液晶材料的寿命,因此必须建立交流驱动电场,并要求在这个交流电场中的直流分量越小越好,通常要求直流分量小于50mV。由此要求液晶显示驱动器的驱动输出必须是交流驱动。现在液晶显示驱动器是全数字化集成电路,所以这种交流驱动是以脉冲电压形式产生的。液晶显示像素上交流电场的强弱用交流电场的有效值表示,当有效值大于液晶的ICJ值电压时,像素产生电光效应,呈显示状态;当有效值在阀值电压附近时,液晶将呈现较弱的电光效应,此态将会影响液晶显示器件的显示对比度。因此液晶显示驱动器要能够控制驱动输出的电压幅值,以实现对显示对比度的控制。液晶显示驱动器通过对其输出到液晶显示器件

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论