基于51单片机的打地鼠实训报告.docx
《基于51单片机的打地鼠实训报告.docx》由会员分享,可在线阅读,更多相关《基于51单片机的打地鼠实训报告.docx(18页珍藏版)》请在冰豆网上搜索。
基于51单片机的打地鼠实训报告
基于51单片机的打地鼠实训报告
编号:
桂林电子科技大学信息科技学院
单片机原理及串口技术
实训论文说明书
题目:
打地鼠游戏机
系别:
机电工程系
专业:
机械电子工程
学生姓名:
朱子任
学号:
1453200122
指导教师:
莫荣
职称:
教授
题目类型:
理论研究实验研究工程设计工程技术研究软件开发应用研究
2015年6月20日
独创性声明
本人郑重声明:
所呈交的学位论文,是本人在导师的指导下,独立进行研究工作所取得的成果。
除文中已经注明引用的内容外,本论文不含任何其他个人或集体已经发表或撰写过的作品成果。
对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。
本人完全意识到本声明的法律结果由本人承担。
学位论文作者签名:
日期:
关于学位论文版权使用授权的说明
本人完全了解桂林电子科技大学信息科技学院关于收集、保存、使用学位论文的以下规定:
学院有权采用影印、缩印、扫描、数字化或其它手段保存论文;学院有权提供本学位论文全文或者部分内容的阅览服务;学院有权将学位论文的全部或部分内容编入有关数据库进行检索、交流;学院有权向国家有关部门或者机构送交论文的复印件和电子版。
学位论文作者签名:
日期:
导师签名:
日期:
摘要
随着电子科技的飞速发展,单片机在电子及自动控制领域均得到了广泛的应用。
MCS-51单片机经历了几十年的发展之后,目前在技术、配套教材及资料上均已十分成熟。
通过对51单片机进行系统设计,同学们可以更好的掌握单片机的基本原理与设计开发过程。
本次实训的内容为打地鼠游戏机的设计与制作,来实现:
利用led灯亮灭表示“地鼠”进出地鼠洞,通过光敏元件代表锤子实现信号的转化,并由单片机控制led的亮灭,数码管的显示。
实训设计制作共耗时一周,实训作品可实现“地鼠”随机出现,数码管显示,光敏原件检测是否“击中”,单片机自行判断与通关等功能,作品运行稳定,完全达到了实训要求。
通过实训,本人已对C51单片机基本了解,并有了较深刻的认识。
关键词:
led随机显示;光敏原件;数码管显示;单片机;
引言……………………………………………………………………………2
1方案设计……………………………………………………………………2
1.1软件设计方案…………………………………………………………………2
1.2硬件设计方案…………………………………………………………………2
2总设计………………………………………………………………………2
2.1软件设计……………………………………………………………………2
2.2硬件设计……………………………………………………………………3
3.硬件设计……………………………………………………………………2
3.1单片机系统设计………………………………………………………………2
3.1.1单片机的选择………………………………………………………………2
3.1.2单片机引脚功能………………………………………………………………4
3.1.3单片机最小系统……………………………………………………………5
3.2数码管显示模块设计……………………………………………………………6
3.3“地鼠洞”模块电路……………………………………………………………7
3.4信号转换模块电路…………………………………………………………………7
3.4.1LM358电压比较器…………………………………………………………………7
3.4.2光敏电阻…………………………………………………………………7
3.4.3光电信号转换…………………………………………………………………7
4.软件设计…………………………………………………………………8
4.1主程序设计…………………………………………………………………8
4.2程序展示…………………………………………………………………9
5.总结…………………………………………………………………11
辞谢…………………………………………………………………11
参考文献…………………………………………………………………11
引言
随着电子科技的飞速发展,单片机在电子及自动控制领域均得到了广泛的应用。
MCS-51单片机经历了几十年的发展之后,目前在技术、配套教材及资料上均已十分成熟。
通过对51单片机进行系统设计,同学们可以更好的掌握单片机的基本原理与设计开发过程。
本次实训作品主要由:
单片机最小系统、数码管显示模块、信号转换模块、“地鼠洞”模块组成。
本次实训的核心是C51单片机最小系统,而后是其余拓展模块。
下面就从相关方面进行论述。
1.方案设计
将51单片机作为控制核心,倒数计时、关卡序号、分数由一个静态数码管显示。
“地鼠的冒出”信号由单片机的P2端口输出到地鼠洞模块,而后相应led点亮。
此时用一光敏元件进行光信号识别,(在这里推荐使用无极性的光敏电阻),并发送给LM358比较器,再由比较器,将相应电位输送给单片机进行计算与显示。
具体操作步骤为:
1.1软件设计方案
利用keil对51单片机编程,使其在显示“地鼠”前,先利用静态数码管显示一组3-1的三秒倒数计时。
而后,利用相关算法使“地鼠们”随即从洞里钻出(既led逐一点亮),同时LM358比较器比较光敏电阻电位从而判断“锤子”(光敏电阻)是否打到地鼠,并输出相关信号给单片机P1.0端口。
单片机记录被打到的地鼠的个数,与对应时间以制作下一组“地鼠”冒出次序的数组。
当十个“地鼠”全部打完时,led停止显示,数码管显示分数。
同时单片机根据打到地鼠的个数选择是否过关。
在负责输入信号的按键按下后,下一关开始。
1.2硬件设计方案
本实训设计的“打地鼠游戏机”,由C51单片机最小系统、数码管显示模块、信号转换模块、“地鼠洞”模块组成。
“地鼠”冒出又被打回或自动缩回的原理是,在单片机控制下,led被作为“地鼠”依次点亮,当作为“锤子”的光敏电阻接触到发光的led上的时候,光敏电阻组织发生变化,LM358感应电位变化并输出低电平给单片机的P1.0端口。
“地鼠”打完后,数码管显示分数,若分数足够,让独立按键选择是否进入下一关。
本硬件可分为四大部分:
C51单片机最小系统、数码管显示模块、信号转换模块、“地鼠洞”模块。
2.总体设计
2.1软件设计
开始
单片机初始化
倒数计时
地鼠冒出
·
记录打地鼠时间
分数+1
是否打到地鼠
是
否
是否打满10只地鼠
否
是
显示分数
是否通关
分数是否够高
是是
否
2.2硬件设计
单片机最小系统
“地鼠洞”模块
信号转换模块
数码管显示模块
3硬件设计
3.1单片机系统设计
3.1.1单片机的选择
一般在系统的设计当中,能否完成设计任务最重要的就在于系统的核心器件是否选择合适,而单片机更是是系统控制的核心,所以对单片机的选择更是异常重要。
如果选择了一个合适的单片机不仅可以最大地简化系统的操作,而且其功能可能是最好的,可靠性也比较高,对整个系统来说更方便。
目前,市面上的单片机的种类繁多,并且他们在功能方面也是各自有各自的特点。
在一般的情况下来讲,在选择单片机时要需要考虑的几个方面有[5]:
(1)单片机最基本性能参数指标。
例如:
执行一条指令的速度、程序存储器的容量,I/O口的引脚数量等。
(2)单片机的某些增强的功能。
(3)单片机的存储介质。
例如:
对于程序存储器来说,最好选用的是Flash的存储器。
(4)单片机的封装形式。
封装的形式多种多样,例如:
双列直插封装、PLCC封装及表面贴附等。
(5)单片机对工作的温度范围的要求。
例如:
在进行设计户外的产品时,就必须要选用工业级的芯片,以达到温度范围的要求。
(6)单片机的功耗。
例如,如果信号线取电只能提供几mA的电流,所以为了能满足低功耗的要求这个时候选用STC的单片机是最合适的。
(7)单片机在市面上的销售渠道是否畅通、其价格是否便宜。
(8)单片机技术的支持网站如何,卖家提供的芯片资料是否足够完善,是否包含了用户手册,设计方案举例,相关范例程序等。
(9)单片机的保密性是否很好,单片机的抗干扰的性能如何等。
51系列单片机它在指令系统、硬件结构和片内资源等方面与标准的52系列的单片机可以完全的兼容。
51系列的单片机执行速率快(最高时钟频率为90MHz),功耗低,在系统、在应用可编程,不占用用户的资源[5]。
根据本系统设计的实际要求,选择AT89S51单片机做为本设计的单片机使用,它是由ATMEL公司生产的高性能、低功耗的CMOS8位单片机。
89S51单片机具有以下几个性能特点:
4k字节的闪存片内程序存储器,128字节的数据存储器,32个外部输入和输出口,2个全双工串行通信口,看门狗电路,5个中断源,2个16位可编程定时计数器,片内震荡和时钟电路且全静态工作并由低功耗的闲置和掉电模式[5]。
单片机的引脚功能图如图3.1所示。
图3.151单片机的引脚功能图
3.1.2单片机引脚功能
(1)电源引脚
Vcc(40脚):
正电源的引脚,工作电压是5V。
GND(20脚):
接地端。
(2)时钟电路的引脚XTAL1和XTAL2
为了产生时钟信号,在89S51单片机的芯片内部已经设置了一个反相放大器,其中XTAL1端口就是片内反相放大器的输入端,XTAL2端则是片内振荡器反相放大器的输出端[5]。
单片机使用的工作方式是自激振荡的方式,XTAL1和XTAL2外接的是12MHz的石英晶振,使内部振荡器按照石英晶振的频率频率进行振荡,从而就可以产生时钟信号。
时钟信号电路如图3.2所示。
图3.2时钟信号电路
(3)复位RST(9脚)
当振荡器运行时,只要有有两个机器周期即24个振荡周期以上的高电平在这个引脚出现时,那么就将会使单片机复位,如果将这个引脚保持高电平,那么51单片机芯片就会循环不断地进行复位[5]。
复位后的P0口至P3口均置于高电平,这时程序计数器和特殊功能寄存器将全部清零[5]。
本课题设计的单片机复位电路如图3.3所示。
图3.3单片机复位电路图
(4)输入输出口(I/O口)引脚
P0口是一个三态的双向口,既可以作为数据和地址的分时复用口,又可以作为通用输入输出口[5]。
P0口在有外部扩展存储器时将会被作为地址/数据总线口,此时P0口就是一个真正的双向口;而在没有外部扩展存储器时,P0口也可以作为通用的I/O接口使用,但此时只是一个准双向口;另外,P0口的输出级具有驱动8个LSTTL负载的能力即输出电流不小于800uA[5]。
P1口是一个带内部上拉电阻的8位双向I/O口,而P1口只有通用I/O接口一种功能,而且P1口能驱动4个LSTTL负载;在使用时通常不需要外接上拉电阻就能够直接驱动发光二极管;在端口置1时,其内部上拉电阻将端口拉到高电平,作输入端口用[5]。
对于输出功能,在单片机工作的时候,可以通过用程序指令控制单片机引脚输出高电平或低电平[5]。
例如:
指令CLR是清零的意思,CLRP1.0的意思就是让单片机的P1.0端口输出低电平;而指令SETB是置1的意思,SETBP1.0的意思就是让单片机P1.0端口输出高电平[5]。
P2口是一个带内部上拉电阻的8位双向I/O口,而且P2口具有驱动4个LSTTL负载的能力[5]。
P2端口置1时,内部上拉电阻将端口的电位拉到高电平,作为输入口使用;在对内部的Flash程