proteus仿真-推箱子游戏--51单片机课设

合集下载

基于PROTEUS的推箱子游戏的设计和仿真

基于PROTEUS的推箱子游戏的设计和仿真

基于PROTEUS的推箱子游戏的设计和仿真赵巧妮【期刊名称】《自动化技术与应用》【年(卷),期】2017(036)007【摘要】基于经典的推箱子游戏适不仅用于休闲娱乐,还可用于训练人的逻辑思维和思考能力,老少皆宜.因此采用单片机仿真软件PROTEUS和AT89S52单片机设计了一款推箱子的游戏,通过PROTEUS绘制推箱子游戏的外围硬件电路,用基于T6963C内核的液晶PG160128A来做为推箱子游戏的显示屏,用keil软件设定了游戏规则,编写了相应的软件代码,通过PROTEUS仿真实验可实现箱子在显示屏上、下、左、右四个方向的任意移动,符合经典推箱子游戏的游戏规则,所以该设计方法是可行、可用、可推广的.%The classic Sokoban game suitable not only for recreation but also for training the logical thinking which suits people all ages.So a Sokoban game is designed with PROTEUS simulation software and microcontroller AT89S52,draws the Sokoban game of peripheral hardware circuit,sets the rules of the game with keil soft,writes the preparation of the corresponds software code.The game's screen is usedby liquid crystal with the type PG160128A based with T6963Ccore,enabling the box to any move down,such as left,and right directions.It corresponds with rules of the classic Sokoban game.Therefore,the design is feasible and available,promotion.【总页数】4页(P141-144)【作者】赵巧妮【作者单位】西南交通大学,四川成都610031;湖南铁道职业技术学院,湖南株洲412001【正文语种】中文【中图分类】TP317.6【相关文献】1.基于Proteus仿真软件的DVM电路的仿真与设计 [J], 赵巧妮2.基于Proteus的乒乓游戏机系统设计与仿真 [J], 聂茹;韦莉莉3.基于单片机的新型推箱子游戏设计 [J], 黄近秋;黄惠洪4.基于FPGA的推箱子游戏设计与实现 [J], 徐华伟; 林凡5.基于Proteus的井字棋游戏设计与仿真 [J], 朱其祥;徐勇;蒋宗华;陈晓玲因版权原因,仅展示原文概要,查看原文内容请购买。

基于Proteus的51系列单片机设计与仿真共55页PPT

基于Proteus的51系列单片机设计与仿真共55页PPT

46、我们若已接受最坏的,就再没有什么损失。——卡耐基 47、书到用时方恨少、事非经过不知难。——陆游 48、书籍把我们引入最美好的社会,使我们认识各个时代的伟大智者。——史美尔斯 49、熟读唐诗三百首,不会作诗也会吟。——孙洙 50、谁和我一样用功,谁就会和我一样成功。——莫扎特
基于Proteus的51系列单片机设计与仿真
11、获得的成功越大,就越令人高兴 。野心 是使人 勤奋的 原因, 节制使 人枯萎 。 12、不问收获,只问耕耘。如同种树 ,先有 根茎, 再有枝 叶,尔 后花实 ,好好 劳动, 不要想 太多, 那样只 会使人 胆孝懒 惰,因 为不实 践,甚 至不接 触社会 ,难道 你是野常看常 新。 14、我在心里默默地为每一个人祝福 。我爱 自己, 我用清 洁与节 制来珍 惜我的 身体, 我用智 慧和知 识充实 我的头 脑。 15、这世上的一切都借希望而完成。 农夫不 会播下 一粒玉 米,如 果他不 曾希望 它长成 种籽; 单身汉 不会娶 妻,如 果他不 曾希望 有小孩 ;商人 或手艺 人不会 工作, 如果他 不曾希 望因此 而有收 益。-- 马钉路 德。

单片机系统设计与仿真-基于Proteus课程设计

单片机系统设计与仿真-基于Proteus课程设计

单片机系统设计与仿真-基于Proteus课程设计概述单片机系统设计与仿真是电子信息、计算机科学与技术等专业的一门必修课程。

本课程旨在培养学生对单片机系统的整体设计与仿真的能力,以及培养学生的团队协作和实践能力。

本文将介绍单片机系统设计与仿真的基本原理、设计流程和Proteus软件的使用,并结合一个实际的课程设计案例,详细讲解如何进行单片机系统的设计与仿真。

基本原理单片机系统单片机系统是指由单片机芯片、外围电路和软件系统构成的一个整体。

其中,单片机芯片是整个系统的核心,其通过内部的计算单元、存储单元和通信单元来实现各种功能。

而外围电路则负责提供单片机芯片所需的输入、输出信号和供电等。

设计流程单片机系统的设计流程一般包括以下几个步骤:1.确定系统需求和功能:根据具体的应用需求和设计要求,确定单片机系统的功能和性能指标,例如:输入输出方式、通信协议、时序控制等。

2.选择单片机芯片和外围器件:根据系统设计要求,选择适合的单片机芯片和外围器件,例如:传感器、驱动器、电源等。

3.电路设计:根据系统需求和芯片手册的要求,设计整个系统的电路原理图和PCB电路板图。

4.编写程序:根据系统功能和需求,编写单片机程序,完成各种功能的实现。

5.系统测试和调试:在硬件和软件都构建完成后,进行系统测试和调试,确保系统的功能和性能满足要求。

Proteus软件Proteus是一款由英国Labcenter Electronics公司开发的EDA软件,可用于电子电路、嵌入式系统的设计和仿真。

其功能强大,使用方便,广泛应用于电子、通信、计算机和控制等领域。

Proteus软件的使用Proteus软件安装Proteus软件的安装较为简单,在其官网上免费下载安装包后,按照提供的安装向导即可完成安装。

Proteus软件界面Proteus软件的主界面包括菜单栏、工具栏、构建区和输出窗口。

其中,菜单栏和工具栏提供了各种工具和命令,构建区用于构建和编辑原理图和PCB电路板图,输出窗口则用于显示仿真结果和调试信息。

单片机KEIL51和proteus仿真软件的使用

单片机KEIL51和proteus仿真软件的使用

实验:KEIL51和proteus仿真软件的使用一、实验目的1、掌握KEIL51软件的使用方法2、掌握proteus仿真软件的使用方法二、实验设备及软件1、单片机实验板2、PC机3、KEIL514、proteus三、实验任务KEILC和proteus仿真软件的使用方法四、实验步骤1、Proteus ISIS 设计单片机电路的基本步骤:(1) 新建设计文件夹或打开一个现有的设计文件。

(2) 选择元器件(通过关键字或分类检索)。

(3) 将元器件放入设计窗口。

(4) 添加其他模型(电源、地线、信号源等)和相关的虚拟仪器。

(5) 编辑和连接电路。

(6) 编写单片机所需的源程序。

(7) 加入源程序,并通过构造,得到仿真程序或目标程序。

(8) 根据需要,设置对象的属性,如将单片机的”Program File”属性设置为上述仿真调试程序或目标程序。

(9) 启动仿真功能,对电路进行仿真操作,验证其功能。

2、Keil 51基本步骤(1)单击Project菜单项,选择New Project项。

此时弹出Create New Project对话框,选择合适的路径口,在文件名一栏中填入新工程的名字。

单击保存。

(2)根据所用的器件,选择CPU的型号,单击确定。

(3)Keil51询问是否生成默认的配置文件,这个可选可不选。

单击NO,观察项目文件管理窗口的变化。

(4)在File菜单下单击New选项,新建文件。

此时在代码窗口出现一“Text1”空白文档。

(5)在“Text1”中编辑完代码后,单击File菜单中的保存项,弹出保存对话框。

注意在对文件命名时必须加扩展名.asm。

(6) 在项目导航栏中Source Group 上单击右键,选Add File to Group ‘Source Group 1’。

弹出Add File 对话框。

选中刚才保存的xxxx.asm.文件,单击Add,然后关闭对话框。

此时在项目文件管理窗口中就会出现刚才所添加的文件xxxt.asm。

Proteus仿真51单片机入门

Proteus仿真51单片机入门

Proteus 7 Professional仿真51单片机入门教程初学单片机时,拿着一块实验板发呆,电路也不懂、程序也不懂,只好慢慢弄,等弄懂了,实验板也差不多报销了。

而proteus 正好可以解决这个问题,它功能强大,这里只讨论仿真MCU 的功能。

它可以在原理图上仿真,不用出PCB 板,不怕你“啥弄”。

下面就先认识一下proteus.上图是启动后的画面。

我们点中的“P”后,弹出下面的画面:在里输入at89c51 后:右侧出现AT89C51,双击它,左侧空白框中出现AT89C51.左键单击它,它上面框中显示出它的原理图,把鼠标移到右侧框中,鼠标变成铅笔形状,单击左键,框中出现一个AT89C51 原理图的轮廓图,可以移动。

鼠标移到合适的位置后,按下鼠标左键,原理图放好了。

好了,一个单片机的原理图放好了。

按这个方法依次把元件led-red、res 放到右侧的框中(单片机旁)。

这张图太小了,看得不清楚,要是大的就好了。

别着急,把鼠标放在LED 旁,向前滚动鼠标中键,图像放大,向后滚动鼠标,图像缩小。

如果你的鼠标没这个键,你可以试试上面工具栏上这二个图标,也是一样的。

选择左侧工具栏上的“箭头”图标,把鼠标移到右侧的原理图中,鼠标经过元件时会就成“手形”,把鼠标移到LED-RED 上,按下左键,LED-RED 高亮显示,鼠标变成“手形”并带有方向键头。

松开鼠标后,形状没变,指着LED-RED 按住鼠标左键,移动鼠标,哈哈!元件移动了。

好了,现在你应该明白它们了吧!不用我说你应该明白刚才用到的工具的作用了。

在任何情况下,右键单击元器件时,元件会亮显示并弹出菜单:非常直观,都是一些一目了然的图标。

从上到的几个菜单分别是:移动物体、编辑属性、删除物体、顺时针旋转90 度(后面几个就不用说了吧)。

单击鼠标左键操作。

当元件高亮显示时,再右键击它,会删掉它。

把原理图中的元件摆放好。

左键单击左侧工具栏上的元件图标,把鼠标移到LED-RED引脚上,引脚上高亮的小方框,单击左键,有一条绿色的线拉出来了。

单片机应用系统设计技术基于C51的Proteus仿真第二版教学设计

单片机应用系统设计技术基于C51的Proteus仿真第二版教学设计

单片机应用系统设计技术基于C51的Proteus仿真第二版教学设计一、前言单片机已被广泛应用于各种电气控制系统和通信系统中。

为了更好地学习单片机的应用,C51是一个较为常用的单片机,而Proteus是一种具有很好仿真和调试功能的软件,在单片机程序开发和调试方面,应用非常广泛。

本文主要探讨单片机应用系统设计技术基于C51的Proteus仿真的教学设计。

二、教学设计2.1 学生对象本教学设计主要是为电气、电子、通信等相关专业的学生和对单片机感兴趣的自学者准备的。

2.2 教学方法本教学设计主要采用讲解法和实验法相结合的教学方法。

其中,学生需要自主学习C语言、单片机的基本原理和常用电气元器件等知识,并通过实验和模拟仿真的方式深入了解单片机应用系统。

2.3 教学目标通过本教学设计,学生能够: 1. 掌握单片机应用系统设计的基本原理和技术;2. 熟练运用C51单片机进行编程和调试;3. 能够使用Proteus仿真软件进行电路仿真和调试。

2.4 教学内容本教学设计的主要内容包括以下几个方面: 1. 单片机系统的基本结构和原理;2. C51单片机的基本编程语言和编译工具;3. 单片机应用系统的仿真和调试方法;4. 基本电路设计和仿真实验。

2.5 教学流程本教学设计的具体教学流程如下: 1. 理论授课:介绍单片机应用系统的基本原理和技术,并介绍C51单片机的基本编程语言和编译工具等知识点; 2. 实验演示:利用示波器、电源等相关设备对C51单片机进行仿真和调试,同时介绍常用的单片机应用系统包括模拟电路、数字电路等的实现方法; 3. 学生自主学习:学生在教学完成后进行自主学习、实践和探究,完成基于C51的Proteus仿真实验设计。

三、教学评估为了更好地评估学生在教学过程中的学习效果和能力,本教学设计采用以下方式进行评估: 1. 实验报告:每个学生需要根据教学要求,独立完成相关实验,并撰写实验报告,以评估其对所学知识的掌握情况和实验设计能力; 2. 课堂测试:每个章节教学完成后,安排相应的测试,以测评学生对所学知识的掌握情况; 3. 学生互评:采用同伴评估的方式,让学生对其他学生的实验报告进行评估,以提高学生的互动和学习能力。

proteus单片机课程设计

proteus单片机课程设计

proteus单片机课程设计一、课程目标知识目标:1. 让学生掌握Proteus单片机的基本原理和功能,理解其内部结构及工作原理。

2. 使学生学会使用Proteus软件进行单片机电路设计与仿真,并能阅读相关电路图。

3. 帮助学生掌握单片机编程的基本语法和技巧,能够编写简单的控制程序。

技能目标:1. 培养学生运用Proteus软件进行单片机电路设计、仿真与调试的能力。

2. 培养学生具备分析和解决实际单片机应用问题的能力。

3. 提高学生的团队协作能力和动手实践能力。

情感态度价值观目标:1. 培养学生对单片机课程的兴趣,激发学生的学习热情和探究精神。

2. 培养学生严谨、认真、负责的学习态度,养成良好的学习习惯。

3. 增强学生的创新意识,培养敢于挑战、勇于实践的精神。

课程性质:本课程为实践性较强的课程,旨在让学生在实际操作中掌握单片机原理和应用。

学生特点:学生具备一定的电子基础和编程基础,对单片机有一定了解,但实践能力有待提高。

教学要求:结合课程性质、学生特点,注重理论与实践相结合,强调动手实践,提高学生的实际操作能力。

在教学过程中,分解课程目标为具体学习成果,以便于教学设计和评估。

二、教学内容1. 单片机原理概述:介绍单片机的概念、发展历程、应用领域,以及Proteus 单片机的特点。

教材章节:第一章 单片机概述2. Proteus软件使用:讲解Proteus软件的安装、界面、基本操作,以及如何进行单片机电路设计与仿真。

教材章节:第二章 Proteus软件使用3. 单片机内部结构及工作原理:详细讲解Proteus单片机的内部结构、指令系统、编程模型等。

教材章节:第三章 单片机内部结构及工作原理4. 单片机编程语言及技巧:介绍单片机编程的基本语法、编程技巧,以及常用指令的应用。

教材章节:第四章 单片机编程语言及技巧5. 单片机电路设计与仿真:结合实例,讲解如何使用Proteus软件进行单片机电路设计、仿真与调试。

毕业论文----基于单片机的推箱子游戏设计

毕业论文----基于单片机的推箱子游戏设计

本科毕业论文(设计)题目:基于单片机的推箱子游戏设计学生姓名:徐卫学号: P3******* 院(系):电子信息工程专业:微电子入学时间: 2009 年9 月导师姓名:杨宗立职称/学位:讲师导师所在单位:安徽大学完成时间:2013 年 5 月基于PROTEUS的推箱子游戏的设计摘要本论文主要介绍了基于单片机的推箱子游戏的规则、硬件结构、软件代码的编写及工作原理、基于T6963C内核的液晶模块PG160128A的详细介绍以及指令集。

模拟出Windows系统下的推箱子游戏,具有任意关数选择、难度依次加大、游戏步数记录、游戏时间记录、按键发声、系统低功耗、可实现在线调试等特点。

本系统是以单片机为其控制核心,以有源晶振构成的电路作为时钟信号,通过方向键的选择向单片机控制系统发出人物移动控制命令,控制系统接收命令后做出一系列必要的判断后,控制人物及箱子的移动。

本设计已通过了实验仿真,运行稳定,基本上没有规则方面的错误。

论文主要分为两大块:一块为游戏的硬件电路组成部分,一块为软件程序设计部分。

在硬件电路里主要包括有源晶振部分、方向控制部分及液晶显示部分等与单片机的接线设计;软件编程方面主要是子程序和主程序的编写,包括:初始化代码、液晶驱动代码、方向按键代码、过关判断代码、步数记录代码、时间记录代码、按键发声代码、关数选择代码及表格数据代码等等。

所有这些在文中都有详细说明。

关键词:单片机;推箱子;PG160128A; T6963C内核;指令集Design Of PROTEUS Sokoban Game Based On[1]AbstractThis paper introduces the single-chip based on the rules of the game Sokoban, the structure of hardware, software code writing and working principle, based on the core T6963C LCD module PG160128A, as well as details of the instruction set. Simulate the system under Windows Sokoban game, an arbitrary number of related options, in turn increase the difficulty of the game a few step-by-step record time of the game record, sound button, low-power system can achieve on-line debugging and so on. The system is based on its single-chip control of the core, consisting of active crystal clock circuit clock signal sent through the arrow keys to select the single-chip control system to control mobile command characters, the control system after receiving an order to make a Series to determine the necessary, to control the movement of people and boxes. This design has been adopted by the simulation experiments, stable, rules virtually no mistakes.The main thesis is divided into two blocks: one for the game's hardware components of the circuit, as a part of the software programming. In the hardware circuitry, including the main active part of the crystal, the direction and control of some of the liquid crystal display and other parts of the single-chip wiring design; software programming side of the main subroutine is the main program and the preparation, including: initialization code, LCD Driver code, the direction of key code, customs code to determine, step-by-step record of the number of code, record time code, voice button code, customs code and select a number of forms of data code and so on. All of these are in the text in detail.Key words:MCU; Sokoban; PG160128A; T6963C core; instruction set目录1 推箱子游戏编译介绍 (7)2 推箱子游戏的硬件部分设计 (7)2.1 PG160128A液晶屏介绍 (7)2.2 T6963C及其指令集介绍 (9)2.2.1 T6963C (9)2.3 晶振、复位电路 (10)2.3.1 晶振电路 (10)2.3.2 复位电路 (11)2.4 液晶显示屏与单片机接口电路 (11)3 推箱子游戏的软件部分设计 (13)3.1 液晶屏驱动代码设计 (15)3.1.1 读状态程序 (15)3.1.2 是否可读写程序 (15)3.1.3 是否可自动读写程序 (16)3.1.4写单参数程序 (16)3.1.5写双参数程序 (16)3.1.6写指令程序 (17)3.1.7写8字节数据程序 (17)3.1.8设置数据显示在屏幕上的坐标程序 (17)3.1.9设置数据存储起始地址 (17)3.1.10 CGRAM偏置地址设置函数 (18)3.1.11液晶初始化函数 (18)3.1.12显示一个汉字子程序 (18)3.1.13 清屏程序 (18)3.1.14 自定义字符写入CGROM函数 (19)3.1.15 设置点显示在屏幕上的坐标(以位为单位) (19)3.1.16 画圆子程序,其中x0,y0表示圆心,R表示半径 (19)3.2 初始化代码设计 (20)3.3 游戏时间代码设计 (20)3.4 游戏选关代码设计 (20)3.5 步数、关数更新代码设计 (21)3.5.1 步数更新代码设计 (21)3.5.2 关数更新代码设计 (21)3.6 过关代码设计 (21)3.7图形显示子程序 (22)3.7.1 地图显示子程序 (22)3.7.2原来位置显示子程序 (22)3.8 中断代码设计 (23)3.8.1 定时器0中断发声程序 (23)3.8.2 定时器1中断计时程序 (23)3.9 方向控制代码设计 (23)4 推箱子游戏的系统仿真 (25)4.1建立工程项目流程 (25)4.2 Proteus中原理图的绘制及文件的加载 (29)4.3 开机界面显示 (31)4.4 游戏界面显示 (31)4.5 仿真结果分析及解决方法 (33)5 总结 (34)参考文献. (34)致谢 (35)1 推箱子游戏编译介绍现如今,游戏风靡全球,各种游戏层出不穷,大到网络型的复杂游戏,小到手机游戏、单机游戏、智力游戏等简单游戏。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《MCS-51单片机》课程设计题目:基于51单片机的推箱子游戏设计姓名:学号:学院:专业:年级:起讫日期:指导教师:目录1、课程设计目的 (1)2、课程设计题目和实现目标 (1)3、设计方案 (1)4、Proteus仿真原理图 (7)5、程序设计 (9)6、调试总结 (28)7、设计心得体会 (28)参考文献 (29)附录:程序代码------------------------------------------------------------------291、课程设计目的《MCS-51单片机》课程设计是与《MCS-51单片机》课程相配套的实践教学环节。

《MCS-51单片机》是一门实践性很强的专业基础课,通过课程设计,达到进一步理解单片机的硬件、软件和综合应用方面的知识,培养实践能力和综合应用能力,开拓学习积极性、主动性,学会灵活运用已经学过的知识,并能不断接受新的知识。

培养大胆发明创造的设计理念,为今后就业打下良好的基础。

通过课程设计,掌握以下知识和技能:1.单片机应用系统的总体方案的设计;2.单片机应用系统的硬件设计;3.单片机应用系统的软件程序设计;4.单片机开发系统的应用和调试能力2、课程设计题目和实现目标2.1 课程设计题目:基于51单片机的推箱子游戏设计推箱子是一个来自日本的经典游戏,目的是在训练逻辑思考能力。

在一个规定区域中,要求把木箱放到指定的位置,稍不小心就会出现箱子无法移动或者通道被堵住的情况,所以需要巧妙的利用有限的空间和通道,合理安排移动的次序和位置,才能顺利的完成任务。

我们可以在手机,电脑等各种终端找到这款游戏。

我个人很喜欢这款游戏。

出于兴趣,借这次课设机会,我利用C语言将推箱子游戏移植到51单片机的硬件系统,选择基于51单片机的推箱子游戏设计作为本次课设的题目。

2.2实现目标设计一款在以51单片机为核心的硬件系统中运行的推箱子游戏。

游戏一共9关,功能包括:(1)显示游戏开机界面和游戏界面;(2)按键处理包括移动小人和移动箱子,通过移动上下左右键来控制小人的移动,通过小人推动箱子,把箱子推到指定的目的地为过关,箱子只能推不能拉;(3)用于可以任意选关,并能随时退出、进入游戏;(4)每一关都有时间计时,显示当前玩家的游戏耗时。

3、设计方案根据设计目标,整个系统框图如下:图1 系统框图3.1 控制模块选用ATMEL公司生产的AT89C52为主控芯片,它是是一个低电压,高性能CMOS 8位单片机,主要功能特性如下:1、兼容MCS51指令系统;2、8k可反复擦写(大于1000次)Flash ROM;3、32个双向I/O口;4、256x8bit内部RAM;5、3个16位可编程定时/计数器中断;6、时钟频率0-24MHz;7、2个串行中断,可编程UART串行通道;8、2个外部中断源,共8个中断源;9、2个读写中断口线,3级加密位;10、低功耗空闲和掉电模式,软件设置睡眠和唤醒功能;本次课设选用PDIP封装的 AT89C52芯片,其引脚功能如图2所示,图3为最小系统:图2 引脚功能图3 最小系统U1:AT89C52,DIPf封装;C1,C2:22pf瓷片电容C3:10uf电解电容;X1:12M晶振R1:10K金属膜电阻3.2 显示模块选用内置T6963C控制控制器的12864图形点阵液晶(以下简称Lcd12864)做为显示模块。

T6963C控制器的最大特点具是有硬件初始值设置功能,显示驱动所需的参数,例如:占空比系数、每行驱动传输的字节数、字符的字体选择等均由引脚电平设置。

所以,液晶显示模块在上电时T6963C控制器就进行初始化设置,软件操作的主要精力就可以全部用于显示界面的设计上。

市场上出售此控制器的液晶很多,本次课设选用深圳市晶日达科技有限公司生产KXM12864F.LCD12864和单片机以模拟方式连接,即通过模拟操作时序的方法控制液晶显示。

具体的接线图如图4所示图4 显示模块RP1:1k排阻,用于做P0口的上拉电阻;LCD1:KXM12864F3.3按键模块16个轻触按键连接成4*4矩阵键盘,做为按键模块,如图5所示图5 4*4矩阵键盘最终系统的硬件系统如下:图6 硬件系统4、Proteus仿真原理图在proteus搭建的仿真原理图如下:图7 硬件系统图8 开机画面图9 游戏画面图10 游戏画面5.程序设计5.1 Lcd12864显示驱动程序根据图11的读写指令/数据时序图,采用I/O模拟时序的方法,控制12864液晶显示图11 读写指令/数据时序图准备向Lcd12864进行操作时,首先要读取lcd12864的当前的状态,只有lcd12864不忙的时候才能读写操作和数据。

相关程序如下:/**************************************************函数名:status_bit_01()功能:状态位sta1(读/写指令),sta0(读/写数据)判断入口参数:返回值:状态值i***************************************************/unsigned char status_bit_01(){unsigned char i;P0=0xff;cd=1;rd=0;for(i=10;i>0;i--){if((P1&0x03)==0x03)break;}rd=1;return i;}/*********************************************函数名:write_data(unsigned char dat)功能:写数据入口参数:8位数据dat返回值:*********************************************/void write_data(unsigned char dat){while(status_bit_01()==0);rd=1;cd=0;wr=0;P0=dat;wr=1;cd=1;}/*********************************************函数名:write_cmd1(unsigned char cmd)功能:写命令,无参数入口参数:8位命令cmd返回值:*********************************************/void write_cmd1(unsigned char cmd){while(status_bit_01()==0);rd=1;cd=1;wr=0;P0=cmd;wr=1;cd=0;}/*********************************************函数名:write_cmd2(unsigned char cmd)功能:写单参数命令入口参数:8位数据dat,8位命令cmd返回值:*********************************************/void write_cmd2(unsigned char dat,unsigned char cmd){write_data(dat);write_cmd1(cmd);}/************************************************函数名:write_cmd2(unsigned char cmd)功能:写双参数命令入口参数:8位数据data1,8位数据data2,8位命令cmd返回值:*************************************************/void write_cmd3(unsigned char data1,unsigned char data2,unsigned char cmd) {write_data(data1);write_data(data2);write_cmd1(cmd);}图12 为Lcd12864的指令集,向Lcd12864写入相关的指令,即可控制其显示。

图12 Lcd12864的指令集使用液晶前必须对其进行初始化操作,初始化的内容包括光标指针设置,图形区首地址,图形区宽度,显示方式设置,图形方式显示,标形状设置。

相关程序如下:/************************************************函数名:init_12864()功能:初始化lcd12864入口参数:返回值:*************************************************/void init_12864(){wr=1;rd=1;cd=1;rst=1;//初始化write_cmd3(0x01,0x00,0x21);//光标指针设置write_cmd3(0x00,0x00,0x42);//图形区首地址write_cmd3(16,0x00,0x43);//图形区宽度write_cmd1(0x88);//显示方式设置,正常显示write_cmd1(0x98);//图形方式显示,不显示字母,只打点write_cmd1(0xa0);//光标形状设置1 0 1 0 0 N2 N1 N0}5.2 按键扫描程序初始P1的电平为0x0f,当有按键下时,电平发生变化,开始程序开始扫描判断哪个按键被按下,并返回按键号,相关程序如下:/********************************函数名:keys_scan()功能:按键扫描入口参数:返回值:按键号keyno*********************************/unsigned char keys_scan(){unsigned char tmp;unsigned char keyno;if(P1 != 0x0f){P1 = 0x0f;delayms(1);tmp = P1 ^ 0x0f;switch(tmp){case 1: keyno = 0;break;case 2: keyno = 1;break;case 4: keyno = 2;break;case 8: keyno = 3;break;default:keyno = 16;}P1 = 0xf0;delayms(1);tmp = (P1 >> 4)^ 0x0f;switch(tmp){case 1:keyno += 0;break;case 2:keyno += 4;break;case 4:keyno += 8;break;case 8:keyno += 12;break;}P1=0x0f;return keyno;}}5.3 游戏元素设计出现在显示画面中的游戏元素总共有6种:墙壁,箱子,小人,目的地,空白,箱子在目的地。

相关文档
最新文档