《单片机原理及应用》课程设计报告题目:俄罗斯方块游戏机专业:电子信息工程技术班级:电子B1512班学号:姓名:指导老师:2017-12-01目录1.设计题目、要求及分工....................................................................................21.1设计题目............................................................................................................21.2设计要求............................................................................................................21.3分工....................................................................................................................22.设计方案..........................................................................................................23.系统硬件电路设计...........................................................................................23.1硬件设计整体方框图.........................................................................................23.2电源系统.............................................................................................................23.3STC89C52单片机介绍.......................................................................................33.4复位电路设计....................................................................................................43.5时钟电路设计.....................................................................................................53.6液晶屏显示模块.................................................................................................63.7按键电路设计.....................................................................................................64.软件系统的分析与设计....................................................................................74.1系统界面整体分析..............................................................................................75.调试结果记录及分析........................................................................................75.1仿真结果.............................................................................................................85.2实物调试结果.....................................................................................................86.心得体会..........................................................................................................9参考文献.............................................................................................................11附录1..................................................................................................................12附录2..................................................................................................................13附录3......................................................................................错误!未定义书签。421.设计题目、要求及分工1.1设计题目本课程设计题目是基于51单片机的俄罗斯方块游戏机。1.2设计要求本课程设计主要器件是STC89C52单片机和液晶12864,通过单片机发生信号控制液晶屏的显示,使用按键实现游戏的开始、暂停、移动、翻转等。1.3分工在本次设计中,张荣俊同学主要负责软件的设计与分析,汤青红同学负责硬件电路的设计。2.设计方案本次设计采用STC89C52单片机控制模块,USB电源模块来提供电源,复位模块,12864LCD显示屏进行屏显,晶振与电容实现时钟电路,按键直接接入I/O口,这样可以简化电路。另外我们还采用了6个按键,分别是左移,右移,下移、方块变化键、确定按键与暂停按键。3.系统硬件电路设计3.1硬件设计整体方框图图3.1硬件设计框图3.2电源系统本设计的电源系统比较简单,由USB电源输出5V电源进行供电,具体电路如下图所示:图3.2电源电路STC89C52单片机复位电路按键电路电源模块显示电路时钟电路33.3STC89C52单片机介绍图3.3STC89C52引脚图P1口P1是一个带内部上拉电阻的8位双向I/O口,P1的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口写1,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。与AT89C51不同之处是,P1.0和P1.1还可分别作为定时/计数器2的外部计数输入(P1.0/T2)和(P1.1/T2EX)。P2口P2是一个带有内部上拉电阻的8位双向I/O口,P2的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口P2写1,通过内部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。在访问外部程序存储器或16位地数据存储器(例如执行MOVX@DPTR指令)时,P2口送出高8位地址数据。在访问8位地址的外部数据存储器(如执行MOVX@RI指令)时,P2口输出P2锁存器的内容。Flash编程或校验时,P2亦接收高位地址和一些控制信号。P3口P3口是一组带有内部上拉电阻的8位双向I/O口。P3口输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对P3口写入1时,它们被内部上拉电阻拉高并可作为输入端口。此时,被外部拉低的P3口将用上拉电阻输出电流(IIL)。P3口除了作为一般的I/O口线外,更重要的用途是它的第二功能P3口还接收一些用于Flash闪速存储器编程和程序校验的控制信号。RST4复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位。ALE/PROG当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。一般情况下,ALE仍以时钟振荡频率的1/6输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个ALE脉冲。对Flash存储器编程期间,该引脚还用于输入编程脉冲(PROG)。如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元的D0位置位,可禁止ALE操作。该位置位后,只有一条MOVX和MOVC指令才能将ALE激活。此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE禁止位无效。PSEN程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当AT89C52由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲。在此期间,当访问外部数据存储器,将跳过两次PSEN信号。EA/VPP外部访问允许。欲使CPU仅访问外部程序存储器(地址为0000H-FFFFH),EA端必须保持低电平(接地)。需注意的是:如果加密位LB1被编程,复位时内部会锁存EA端状态。如EA端为高电平(接Vcc端),CPU则执行内部程序存储器中的指令。Flash存储器编程时,该引脚加上+12V的编程允许电源Vpp,当然这必须是该器件是使用12V编程电压Vpp。XTAL1振荡器反相放大器及内部时钟发生器的输入端。XTAL2振荡器反相放大器的输出端。3.4复位电路设计单片机在启动时都需要复位,以使CPU及系统各部件处于确定的初始状态,并从初态开始工作。89系列单片机的复位信号是从RST引脚输入到芯片内的施密特触发器中的。当系统处于正常工作状态时,且振荡器稳定后,如果RST引脚上有一个高电平并维持2个机器周期(24个振荡周期)以上,则CPU就可以响应并将系统复位。单片机系统的复位方式有:手动按钮复位和上电复位。手动按钮复位需要人为在复位输入端RST上加入高电平(图1)。一般采用的办法是在RST端和正电源Vcc之间接一个按钮。当人为按下按钮时,则Vcc的+5V电平就会直接加到RST端。手动按钮复位的电路如所示。由于人的动作再快也会使按钮保持接通达数十毫秒,所以,完全能够满足复位的时间要求。复位电路连接如图所示:5图3.4复位电路3.5时钟电路设计8XX51系列单片机的时钟信号通常用两种电路形式得到:内部振荡方式和外部振荡方式。在引脚XTAL1和XTAL2外接晶振,就构成了内部振荡方式。由于单片机内部有一个高增益反相放大器,当外接晶振后,就构成了自激振荡器,并产生振荡时钟脉冲。晶振通常选用6MHz、12MHz或24MHz。本次设计中我们选用了12MHz的晶振,晶振与锁相环电路配合使用,以提供系统所需的时钟频率。设计中STC89C52使用12MHz晶体振荡器作为振荡源,由于单片机内部带有振荡电路,所以外部只要连接一个晶振和两个电容即可,电容容量一般在15pF到50pF之间,我们选用电容容量为33pF的电容,如图所示即为本设计的振荡电路。图3.5时钟电路6