lcd1602篮球比赛计时计分器本科毕业设计_第1页
lcd1602篮球比赛计时计分器本科毕业设计_第2页
lcd1602篮球比赛计时计分器本科毕业设计_第3页
lcd1602篮球比赛计时计分器本科毕业设计_第4页
lcd1602篮球比赛计时计分器本科毕业设计_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

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

文档简介

本科毕业设计题目LCD1602篮球比赛计时计分器学院管理科学与工程学院专业电子信息工程

摘要本课题设计采用单片机AT89C51为核心,设计出篮球计分计时系统,可以实现单节比赛12分钟倒计时、24秒进攻时间倒计时、开始/暂停倒计时、改变节次、单节结束报警、两队比分分别加1分、加2分、加3分等各种显示效果。本系统利用LCD1602液晶显示器作为显示器件,显示节次、12分钟倒计时、24秒倒计时、主客队双方比分,通过3*3矩阵键盘来控制计时器和计数器工作,单节比赛结束时LED发光二极管闪烁报警。该设计采用LCD1602液晶显示器,因为其微功耗、小体积、使用灵活等诸多优点在袖珍式仪表和低功耗应用系统中得到越来越广泛的应用,通过仿真基本上实现了上述功能,操作简单,性能稳定,符合一般篮球计分器的工作要求。关键词:AT89C51;矩阵键盘;LCD1602;计数器;计时器AbstractThisdesignprojectusingAT89C51microcontrollerasthecore,designbasketballscoringtimingsystem,countdowntoasinglegameof12minutes,24secondsshotclockcountdown,start/pauseandchangethesection,asingleendalarm,theteamswere,respectively,add1point,2points,plus3gradingavarietyofdisplay.ThissystemusestheLCD1602LCDmonitorasadisplay,DisplaySession,12minutes24secondsofthecountdown,countdowntothemainvisitingteamscoreby3*3matrixkeyboardtocontrolthetimerandcounter,LEDblinkswhenasingleendofthegamealarm.ThedesignusesLCD1602LCDdisplaytogetmoreandmorewidelyinthepocket-sizedinstrumentandlow-powerapplicationsbecauseofitsmicro-power,smallsize,theuseofflexibleandmanyotheradvantagesthroughsimulationbasicallyrealizetheabovefunctions,theoperationsimple,stableperformance,inlinewiththegeneralbasketballscoringrequirements.Keyword:AT89C51;MatrixKeyboard;LCD1602;Counter;Timer目录1引言 11.1本课题选取的目的及意义 11.2本系统的主要研究内容 22系统分析 32.1系统构成 32.2系统工作原理 33系统硬件设计 43.1系统硬件总体设计 43.2AT89C51单片机 53.2.1AT89C51简介 53.2.2主要特性 63.2.3管脚说明 73.2.4芯片擦出 93.2.5空闲节电模式 93.2.6掉电模式 103.2.7程序储存器的加密 113.2.8AT89C51的极限参数 113.3LCD1602液晶显示模块 113.3.1 显示器介绍 113.43*3矩阵键盘模块 153.5时钟电路模块 163.6复位电路模块 173.7元件清单 174系统软件设计 185ProtuesISIS软件仿真 225.1Proteus运行流程 225.2Proteus功能仿真 225.3Proteus仿真结果 236结论 24参考文献 25致谢 26附录 27安徽财经大学管理科学与工程学院本科毕业设计PAGE351引言进入21世纪,伴随着电子、信息技术的应用与迅速普及,人们对电子技术的要求越来越高。当今社会,科学技术日新月异,时代前进的步伐越迈越宽,应用自动化设备,计算机处理,现代化通讯,数字化信息,现代化显示设备等高新技术而建立的现代化智能。目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC卡,民用豪华轿车的安全保障系统,录像机、摄像机、全自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开单片机。更不用说自动控制领域的机器人、智能仪表、医疗器械了。因此,单片机的学习、开发与应用将造就一批计算机应用与智能化控制的科学家、工程师。通过此次基于单片机设计的篮球计时计分系统,我们可以更清楚详细的了解单片机程序设计的基本指令功能、编程步骤和技巧来讲述单片机编程,并对AT89S51单片机的结构和原理进行讲述,以及基于单片机开发应用的相关芯片的工作原理,和相关外围电路的设计和调试过程进一步了解,有助于今后的工作和学习生活。1.1本课题选取的目的及意义体育比赛计时计分系统是对体育比赛过程中所产生的时间,比分等数据信息进行快速采集记录、加工处理、传递和利用的系统。根据运动项目的不同,比赛规则要求也不同,体育比赛的计时计分系统包括测量类,评分类,命中类,制胜类和得分类等多种类型。篮球比赛是根据运动队员在规定的比赛时间里得分多少来决定胜负的,因此,篮球比赛的计时计分系统是一种得分类型的系统。篮球比赛的计时计分系统由计时器、计分器等多种电子设备组成的,同时,根据目前高水平篮球比赛要求,完善的篮球比赛计时计分系统设备应能够与现场成绩处理,现场大屏幕,电视转播车等多种设备相联,以便实现激烈的比赛现场感和表演娱乐等功能目标。由于单片机的集成度高,功能强,通用性好,特别是它具有体积小,重量轻,能耗低,价格便宜,可靠性高,抗干扰能力强和使用方便等独特的优点,使单片机迅速得到了推广应用,目前已经成为测量控制应用系统中的优选机种和新电子产品的关键部位。世界各大电气厂家,测控技术企业,机电行业,竞相把单片机应用于产品更新,作为实现数字化,智能化的核心部件。篮球计时计分器就是以单片机为核心的计时计分系统,由计时器,计分器,综合控制器和24秒控制器等组成。1.2本系统的主要研究内容随着单片机在各个领域的广泛应用,许多用单片机做控制的球赛计时计分系统也应运而产生,如用单片机控制LCD液晶显示器计时计分器,用单片机控制LED七段显示器计时计分器等。篮球比赛计时计分器是为了解决篮球比赛时计分与计时准确的问题。此装置利用单片机AT89C51完成了计时和计分的功能。本文详细地介绍了系统硬件与软件的设计过程,采用该装置可根据实际情况进行比分修改和时间的准确显示,具有低功耗,可靠性,安全性以及低成本等特点。本次设计用由AT89C51编程控制LCD作显示的球赛计时计分系统。该系统具有赛程时间倒计时、通过本次基于C51系列篮球计时计分器的设计,可以了解、熟悉有关单片机开发设计的过程,并加深对单片机的理解和应用以及掌握单片机与外围接口的一些方法和技巧,这主要表现在以下一些方面:(1)篮球赛计时计分系统包含了8051系列单片机的最小应用系统的构成,同时在此基础上扩展了一些使用性强的外围接口。(2)可以了解到LCD显示器的结构、工作原理以及这种显示器的接口实例与具体连接与编程方法。(3)怎样利用串行口来扩展显示接口等。2系统分析2.1系统构成主机主机显示电路复位电路键盘电路时钟电路报警电路图2.1系统构成框图本系统的基本电路模块有:51单片机控制模块,时钟电路模块,复位电路模块,3*3矩阵键盘电路模块,LCD显示电路模块。2.2系统工作原理打开proteus仿真电路图,按下软件下方的“开始”图标,启动系统,再按下矩阵键盘上第一行第一列的“开始”按键,系统开始工作,这时,LCD1602液晶显示器依次从上到下分别显示“1”、“12:00”、“24”、“A:000—B:000”,分别表示“第1节”、“每一节的比赛时间12分钟倒计时”、“每一队的进攻时间倒计时24秒”、“A和B两队的比分”。当按下第一行第二列的“暂停”键时,两个倒计时都暂停,再按下“开始”按键,倒计时继续进行,当第一节比赛结束时,12分钟倒计时和24秒倒计时到0,这是LED发光二极管快速地闪烁几次,这时按下第一行第三列的“改变节次”按键,节次加1,到第二节,依次可以显示3系统硬件设计3.1系统硬件总体设计ATAT89C51控制器时钟电路复位电路3*3矩阵键盘电路LCD液晶显示电路LED二极管报警图3.1系统整体电路图将设计的通信系统硬件进行模块化设计,主要由以下模块构成:A:AT89C51单片机最小系统,控制的核心部件;B:3*3矩阵键盘电路;C:LCD1602液晶显示电路;D:LED发光二极管报警电路;E:复位电路;F:时钟电路。3.2AT89C51单片机3.2.1AT89C51简介MCS51是指由美国INTEL公司生产的一系列单片机的总称,这一系列单片机包括了很多品种,如8031,8051,8751,8032,8052,8752等,其中8051是最早最典型的产品,该系列其它单片机都是在8051的基础上进行功能的增、减、改变而来的,所以人们习惯于用8051来称呼MCS51系列单片机,而8031是前些年在我国最流行的单片机,所以很多场合会看到8031的名称。INTEL公司将MCS51的核心技术授权给了很多其它公司,所以有很多公司在做以8051为核心的单片机,当然,功能或多或少有些改变,以满足不同的需求,其中89C51就是这几年在我国非常流行的单片机,它是由美国ATMEL公司开发生产的。本课题中用到的芯片就是AT系列中的AT89C51单片机芯片。AT89C51是一个低电压,高性能CMOS8位单片机,片内含4kbytes的可反复擦写的Flash只读程序存储器和128bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,内置功能强大的微型计算机的AT89C51提供了高性价比的解决方案。AT89C51具有PDIP、PQFP/TQFP及PLCC等三种封装形式,以适应不同产品的需求。它是一个低功耗高性能单片机,40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,2个16位可编程定时计数器,2个全双工串行通信口,AT89C51可以按照常规方法进行编程,也可以在线编程。其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发成本。如图所示,图3.2为AT89C51单片机基本构造,其基本性能介绍如下:图3.2AT89C51引脚图AT89C51本身内含40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中端口,2个16位可编程定时计数器,2个全双工串行通信口,AT89C51可以按照常规方法进行编程,也可以在线编程。其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发成本。3.2.2主要特性AT89C51的主要特性如下表所示:兼容MCS—51指令系统4k可反复擦写(>1000次)FlashROM32个双向I/O口可编程UARL通道两个16位可编程定时/计数器全静态操作0-24MHz1个串行中断128x8bit内部RAM两个外部中断源共6个中断源可直接驱动LED3级加密位低功耗空闲和掉电模式软件设置睡眠和唤醒功能表3.1AT89C51主要功能描述3.2.3VCC:供电电压。GND:接地。P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”P3口也可作为AT89C51的一些特殊功能口,如下表所示:表3-2AT89C51特殊功能表:端口引脚第二功能P3.0RXD(串行输入口)P3.1TXD(串行输出口)P3.2/INT0(外部中断0)P3.3/INT1(外部中断1)P3.4T0(记时器0外部输入)P3.5T1(记时器1外部输入)P3.6/WR(外部数据存储器写选通)P3.7/RD(外部数据存储器读选通)P3口同时为闪烁编程和编程校验接收一些控制信号。RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡器的输出。3.2.4芯片擦出整个PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms来完成。在芯片擦操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。此外,AT89C51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。在闲置模式下,CPU停止工作。但RAM,定时器,计数器,串口和中断系统仍在工作。在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。3.2.5空闲节电模式AT89C51有两种可用软件编程的省电模式,它们是空闲模式和掉电工作模式。这两种方式是控制专用寄存器PCON(电源控制寄存器)中的PD(PCON.1)和IDL(PCON.0)位来实现的。PD是掉电模式,当PD=1时,激活掉电工作模式,单片机进入掉电工作状态,IDL是空闲等待状态,当IDL=1时,激活空闲工作模式,单片机进入睡眠状态,如需同时进入两种工作模式,即PD和IDL同时为1,则先激活掉电工作模式。在空闲工作模式状态,CPU保持睡眠状态而所有片内的外设仍保持激活状态,这种方式由软件产生。此时,片内RAM和所有特殊功能寄存器的内容保持不变。空闲模式可由任何允许的中断请求或者硬件复位终止。终止空闲工作模式的方法有两种其一是任何一条被允许中断的事件被激活,IDL(PCON.0)被硬件清除,即刻终止空闲工作模式。程序会首先响应中断,进入中断服务程序,执行完中断服务程序并紧随RETI(中断返回)指令后,下一条要执行的指令就是使单片机进入空闲模式那条指令后面的一条指令。其二是通过硬件复位也可以将空闲工作模式终止。需要注意的是,当由硬件复位来终止空闲工作模式时,CPU通常是从激活模式那条指令的下一条指令开始继续执行程序的,要完成内部复位操作,硬件复位脉冲要保持两个机器周期(24个时钟周期)有效,在这种情况下,内部禁止CPU访问片内RAM,而允许访问其他端口。为了避免对端口产生意外写入,激活空闲模式的那条指令的后一条指令不应是一条对端口或者外部存储器的写入指令。3.2.6掉电模式在掉电模式下,振荡器停止工作,进入掉电模式的指令是最后一条被执行的指令,片内RAM和特殊功能寄存器的内容在终止掉电模式前被冻结。推出掉电模式的唯一方法是硬件复位。复位后将重新定义全部特殊功能寄存器但不改变RAM中的内容,在VCC恢复到正常工作电平前,复位应无效,且必须保持一定时间以使振荡器重新启动并且稳定的工作。空闲和掉电模式外部引脚状态如表2-3所示:表3-3外部引脚状态表模式空闲模式空闲模式掉电模式掉电模式程序存储器内部外部内部外部ALE1100/PROG1100P0数据浮空数据浮空P1数据数据数据数据P2数据数据数据数据P3浮空浮空数据数据3.2.7程序储存器的加密AT89C51可使用对芯片上的三个加密位LB1、LB2、LB3[2]进行编程(P)或者不进行编程(U)。当加密位LB1被编程时,在复位期间,EA断的逻辑电平被采样并锁存,如果单片机上电后一直没有服位,则锁存起的初始值是一个随机数,这个随机数会保存到真正复位为止。3.2.8AT89C51的极限参数表3-4极限参数表工作温度-55°C储藏温度-65°C任一引脚对地电压-1.0Vto+7.0V最高工作电压6.0V直流输出电流15.0mA3.3LCD1602液晶显示模块显示器介绍显示器是最常用的输出设备,其种类繁多,但在单片机系统设计中最常用的是发光二极管显示器(LED)和液晶显示器(LCD)两种。由于这两种显示器结构简单,价格便宜,接口容易实现,因而得到广泛的应用。发光二极管LED,组成的显示屏,每个点都是一个或多个发光二极管,通过控制电路控制二极管的亮与灭来控制点的发光,从而使整个大屏幕显示图案。液晶显示器LCD最常见的就是TFT类型的,它是由光源,液晶光栅,和控制芯片组成,他的光源是常亮的白色强光,当光线通过液晶光栅(液晶屏)的时候,通过电压改变液晶颗粒滤光方向,从而改变每个点的颜色和强度来显示图案。液晶显示器分很多种类,按显示方式可分为段式,行点阵式和全点阵式。段式与数码管类似,行点阵式一般是英文字符,全点阵式可显示任何信息,如汉字、图形、图表等。两者之间的区别:(1)二极本身发光,液晶本身不发光,只是透射光。(2)二极管体积大,图像质量一般,适合作室外大屏幕,价格较低。液晶成本较高,面积无法做得很大,但图像质量很好,适合做显示器。(3)二极管耗电大,液晶耗电小。(4)二极管图像刷新率低,液晶的高。二者的档次相差比较大,一般来讲在一些图像简单,对成本控制较严格的场合,用二极管,比如商场、银行等服务部门的电子提示窗,街道、百货公司外面的广告宣传窗;而液晶一般都是作计算机显示器、电视、手持设备等对图像质量要求高的场合。下面介绍LCD1602液晶显示的结构、工作原理及其接口电路。市面上字符液晶绝大多数是基于HD44780液晶芯片的,控制原理是完全相同的,因此HD44780写的控制程序可以很方便地应用于市面上大部分的字符型液晶。字符型LCD通常有14条引脚线或16条引脚线的LCD,多出来的2条线是背光电源线VCC(15脚)和地线GND(16脚),其控制原理与14脚的LCD完全一样,本设计采用LM016L同时显示16x02即32个字符(16列2行),各引脚功能定义如下表所示:管脚号名称电平功能描述1VSS0V电源地2VDD5.0V电源正极3VEE—液晶显示偏压信号4RSH/LH:数据线上为数据信号,L:数据线上为指令信号5RWH/LH:读数据模式,L:写数据信号6EH/L使能信号端7~14DB0~DB7H/L数据线表3-5LM016L引脚说明表HD44780内置了DDRAM、CGROM和CGRAM。DDRAM就是显示数据RAM,用来寄存待显示的字符代码。共80个字节,其地址和屏幕的对应关系如下表:显示位置1234567…40DDRAM地址第一行00H01H02H03H04H05H06H…27H第二行40H41H42H43H44H45H46H…67H表3-6DDRAM地址与屏幕对应关系要在LCD1602屏幕的第一行第一列显示一个"A"字,就要向DDRAM的00H地址写入“A”字的代码就行了。但具体的写入是要按LCD模块的指令格式来进行的。在1602中我们就用前16个就行了。第二行也一样用前16个地址。对应如下:00H01H02H03H04H05H06H07H08H09H0AH0BH0CH0DH0EH0FH40H41H42H43H44H45H46H47H48H49H4AH4BH4CH4DH4EH4FH表3-7DDRAM地址与显示位置的对应关系文本文件中每一个字符都是用一个字节的代码记录的。一个汉字是用两个字节的代码记录。在PC上我们只要打开文本文件就能在屏幕上看到对应的字符是因为在操作系统里和BIOS里都固化有字符字模。字模就代表了是在点阵屏幕上点亮和熄灭的信息数据。例如“A”

01110○■■■○

10001■○○○■

10001■○○○■

10001■○○○■

11111■■■■■

10001■○○○■

10001■○○○■

图3-3'A'的字模上图左边的数据就是字模数据,右边就是将左边数据用“○”代表0,用“■”代表1。在LCD模块上也固化了字模存储器,这就是CGROM和CGRAM。HD44780内置了192个常用字符的字模,存于字符产生器CGROM(CharacterGeneratorROM)中,另外还有8个允许用户自定义的字符产生RAM,称为CGRAM(CharacterGeneratorRAM)。下图说明了CGROM和CGRAM与字符的对应关系。表3-8CGROM中字符码与字模关系对照表从上图可以看出,“A”字的对应上面高位代码为0100,对应左边低位代码为0001,合起来就是01000001,也就是41H。可见它的代码与我们PC中的字符代码是基本一致的。因此我们在向DDRAM写C51字符代码程序时甚至可以直接用P1='A'这样的方法。PC在编译时就把“A”先转为41H代码了。在LCD显示电路中AT89C51的P0口作为8位数据的输出端,P1.5、P1.6、P1.7作为控制信号的输出端,连接完成的电路如图3.16所示。该显示器的RS,RW,E端与P2相连,引脚的作用分别是:RS=0输入指令,RS=1输入数据,RW=0向LCD写入指令或数据,RW=1从LCD读取信息,E是使能信号。D0~D7与P0相连是数据总线。RESPACK-8排阻,阻值为10K,作为上拉电阻。图3.4LCD1602液晶显示LED发光二极管显示电路如下,正极接P2^4,负极接地,当P2^4为低电平时,发光二极管不亮,当P2^4为高电平时,发光二极管亮。图3.5发光二极管电路3.43*3矩阵键盘模块本设计共有9个设置按键,分别为开始,暂停,改变节次,A加1分,A加2分,A加3分,B加1分,B加2分,B加3分。分别表示启动系统倒计时,暂停倒计时,改变节次显示,A队比分加1分,A队比分加2分,A队比分加3分,B队比分加1分,B队比分加2分,B队比分加3分,按键与P1口相接。其电路图如图3.6。图3.63*3矩阵键盘3输入与门AND_3用来控制P10,P11,P12三列中断,当这三列中任何一列有键按下时,产生低电平,与门输出为0,表示有键按下;反之,当这三列中没有任一按键被按下时,与门输入全1,输出为1,表示没有键被按下。其电路图如图3.7。图3.73输入与门AND_33.5时钟电路模块时钟电路在单片机系统中起着非常重要的作用,是为保证系统正常工作的基础,在一个单片机系统中,时钟是保障系统正常工作的基准震荡定时信号。图3.8是晶振电路,主要有晶振和外围电路组成,晶振频率大小决定单片机的快慢,我们这里采用的是12MHZ,另外有2个33P的电容。其中接地用来削减谐波对电路的稳定性的影响。图3.8时钟电路3.6复位电路模块单片机系统的复位电路我们采用的是上电加按钮的复位电路形式,电阻采用220欧的阻值,采用22μ的电容。其电路连接方式如图3.9。当单片机的复位引脚RESET出现2个机器周期以上的高电平时,单片机就执行复位操作。图3.9复位电路3.7元件清单单片机AT89C51×1液晶显示器LM016L×1排阻RESPACK-8×1按键×9与门AND_3×1发光二极管LED-YELLOW×1电阻10K×1晶振11.0592M×1电容33pf×2电容10uf×14系统软件设计篮球比赛计分计时器其实就是一个计数器,本课程设计就是利用单片机中的定时/计数器来实现其计时的功能,利用按键实现其计分的功能。在51单片机中有两个16位的定时/计数器TO、T1,分别由TH0、TL0和TH1、TL1组成,它们均是8位寄存器,在特殊功能寄存器中占地址8AH-8DH。它们用于存放定时或计数的初始值。此外,内部还有一个8位的方式寄存器TMOD和一个8位的控制寄存器TCON,用于选择和控制定时/计数器的工作,其格式见下面两表:表4.1方式寄存器TMODGATEC/TM1M0GATEC/TM1M0门控开关计数/定时方式选择门控开关计数/定时方式选择表4.2控制寄存器TCONTF1TR1TF0TR0IE1IT1IE0IT0T1请求有无T1工作启/停T0请求有无T0工作启/停INT1请求有无INT1方式下沿INT0请求有无INT0方式下沿篮球比赛计分器利用单片机的计数器进行工作,计数器队脉冲电平进行加一计数,直至计满回零。作为可编程器件,单片机中的定时/计数器初始化编程步骤如下:根据定时时间要求或计数要求计算计数器初值:将工作方式控制字写入TMOD寄存器;将计数初值写入THX和TLX寄存器;启动定时器/计数器,即将TRX置位。如果工作于中断方式,需置位EA(中断总开关)及ETX(允许定时/计数器中断),并编写中断服务程序。本次课程设计程序是用C语言编写的,因为设计的功能较为简单,所以程序中只用到一个主程序就实现了其功能。本单片机的按键采用矩阵形式,3*3的行列矩阵,共9个按键,可以完成多种控制功能。键盘控制流程如下:开始开始有按键?获取键值显示键值按键处理返回YN系统初始化程序包括定时器TO、T1初始化、LCD初始化、全局变量初始化,初始化步骤如下:开始开始定时器T0、T1初始化LCD初始化全局变量初始化返回系统启动时,先要进行定时器T0,T1及LCD的初始化,T0控制每一小节12分钟和24秒的倒计时时间,T1控制按键延时扫描。按键与P1口相接,读取P1口的数据判断是否有按键按下,若没有按键按下则继续返回读取P1口的数据。若有按键按下就判断是哪个键按下,各个键的作用是:开始,暂停,节次加一;A队加一分,A队加二分,A队加三分;B队加一分,B队加二分,B队加三分。等待按键释放并将时间,分数,节次经P0,P2口输出在LCD上显示。每一节12分钟和24秒倒计时结束时,LED发光二极管闪烁报警,其总的流程图如下图4.1。定时器T0,T1,LCD初始化定时器T0,T1,LCD初始化显示当前时间读取P1口的值是否有键按下?哪个键按下?Y开始暂停节次A加一A加二A加三B加一B加二B加三等按键释放将时间、分数、节次经P0、P2口输出显示N开始图4.1总的程序流程图5ProtuesISIS软件仿真5.1Proteus运行流程ProteusISIS的工作界面是一种标准的Windows界面,如图所示。包括:标题栏、主菜单、标准工具栏、绘图工具栏、状态栏、对象选择按钮、预览对象方位控制按钮、仿真进程控制按钮、预览窗口、对象选择器窗口、图形编辑窗口。运行Proteus程序后,进入软件的主界面。通过左侧工具栏中的P(从库中选择元件命令)命令,在PickDevices左侧窗口中选择所需元件的关键字,然后放置元件并调整方向和位置以及参数设置,最后进行连线。图5.1ProteusISIS的工作界面5.2Proteus功能仿真Proteus仿真时,单片机需要加载程序,加载程序为.HEX文件。本设计利用KeilμVision2,在新建Keil项目时选择AT89C52单片机作为CPU,将C语言源程序导入,在“OptionsForTarget”对话窗口中,选中“Output”选项中的“CreateHEXFile”,编译链接后就可以生成.HEX文件。在ProteusISIS中,选中AT89C51并单击鼠标左键,对AT89C51进行设置,设置单片机时钟频率为12MHz,按照正确的文件路径加载.HEX文件。对单片机设置完毕后就可以开始仿真了。仿真过程中如有硬件问题可在ProteusISIS中直接修改,如有软件问题可在KeilμVision2中直接修改,通过Keil与Proteus的联合调试就可以得到满意的结果。最后载入hex文件后可以进行模拟仿真,可以全速运行也可以单步调试运行。单击Play按钮,进入仿真状态仿真按钮如图5-2所示,其中按钮1为开始运行,按钮2为step,按钮3为暂停,按钮4为停止。图5.2仿真按钮单击运行按钮,启动ProteusISIS仿真。5.3Proteus仿真结果图5.3仿真结果6结论在本次毕业设计,我通过基于典型单片机AT89C51的设计和应用,对于单片机工作原理,功能有了宏观的了解,并对单片机汇编程序的应用有了新的、进一步的认识。在本次设计的过程中,我发现很多的问题,给我的感觉就是下手很难,很不顺手,看似很简单的电路,要动手把它给设计出来,是很难的一件事,主要原因是我们没有经常动手设计过电路。另外单片机系统的知识似懂非懂,而且很多知识当时弄明白了,现在要用的时候又不记得,造成我用了大量的时间去查阅各种资料和程序命令,因此整个过程时间安排不合理。由于设计的计划没有安排好,设计的时间极为仓促,尤其是在硬件调试的过程中出现了很大的问题。另外资料的查找也是一大难题,这就要求我们在以后的学习中,应该注意到这一点,更重要的是我们要学会把从书本中学到的知识和实际的电路联系起来,这不论是对我们以后的就业还是学习,都会起到很大的促进和帮助。在利用单片机设计LCD液晶显示屏的整个设计过程中,从电路的设计,元器件的采购,电路的调试,程序的编写以及最后的电路板的制作,我都亲自参与了设计与制作,这对我对于理论和实际相结合有了新的认识。

参考文献[1]郭天祥.新概念51单片机C语言教程:入门、提高、开发、拓展全攻略.北京:电子工业出版社,2009[2]高卫东.51单片机原理与实践.北京航空航天大学出版社,2011[3]彭伟.单片机C语言程序设计实训100例.电子工业出版社,2011[4]潘永雄.新编单片机原理及应用.西安电子科技大学出版社,2008[5]张毅刚,彭喜元.新编MCS-51单片机应用设计,2009[6]杜洋.爱上单片机.人民邮电出版社,2012[7]于永.51单片机C语言常用模块与综合系统设计.电子工业出版社,2012[8]张俊.匠人手记:一个单片机工作者的实践与思考.北京航空航天大学出版社,2008[9]周航慈.单片机应用程序设计.北京航空航天大学出版社,2003[10]牛昱光.单片机原理与接口技术.电子工业出版社,2008[11]蒋力培.单片机微机系统实用教程.机械工业出版社,2007[12]王为青,程国钢.单片机KeilCx5应用开发技术.人民邮电出版社,2007[13]贾巍.单片机仿真开发软件的应用.中国水运出版社,2007[14]唐德礼,王襄.单片机学习机及编程器的设计与制作.电子工业出版社,2005[15]俞时.单片机集成仿真系统的开发.中国纺织大学学报,2011[16]赵克刚,易帝文,张治强,万为.单片机仿真实验平台设计实践.科技咨询导报.2007

致谢值此论文完成之际,谨向给予我指导、关心和帮助的老师、同学、朋友、亲人表示最衷心的感谢。本研究及学位论文是在我的导师谢道平老师的亲切关怀和悉心指导下完成的。他严肃的科学态度,严谨的治学精神,精益求精的工作作风,以及对细节问题的深思及解决办法,深深地感染和激励着我,使我对待问题、解决问题的态度更加严谨。从课题的选择到项目的最终完成,谢老师都始终给予我细心的指导和不懈的支持。在此谨向谢老师致以诚挚的谢意和崇高的敬意!在此,我还要感谢在一起愉快的度过本科生活的信工2班各位同学,正是由于你们的帮助和支持,我才能克服一个一个的困难和疑惑,直至本文的顺利完成。在论文即将完成之际,我的心情无法平静,从开始进入课题到论文的顺利完成,有多少可敬的师长、同学、朋友给了我无言的帮助,在这里请接受我诚挚的谢意!最后我还要感谢培养我长大含辛茹苦的父母,谢谢你们!

附录主程序:#include<reg52.h>#include<intrins.h>#defineucharunsignedchar#defineuintunsignedintsbitled=P2^4;//每节结束时警报externvoidInitialize_LCD();//LCD初始化externvoidSet_LCD_POS(ucharpos); //向LCD写地址externvoidWrite_LCD_Data(uchardat);//向LCD写数据externvoidPrint_1602(); //显示固定字符uchartCount_T0=0; //定时器0的变量uchartCount_T1=0; //定时器1的变量ucharKeyboardcode[]={0xef,0xdf,0xbf};//按键扫描列charT_24=24;charT_12_fen=12;charT_12_miao=0;ucharjie=1;ucharA_bifen=0,B_bifen=0;ucharKey_Result=0;//读到的按键值0~8ucharKeyPressDown=0;//按键按下标志ucharFlag_LED=0;//灯亮标志ucharFlag_finish=0;//一节次结束标志voidDelay_S(uintms)//1ms延时{ uchari; while(ms--) for(i=0;i<120;i++);}ucharKey_Scan()//键盘扫描{ ucharResult_Temp=0; ucharLie,Hang; EX0=0; for(Lie=0;Lie<3;Lie++) { P1=Keyboardcode[Lie]; Result_Temp=P1&0x0f; if(Result_Temp!=0x0f) { switch(Result_Temp) { case0x0e:Hang=0;break; case0x0d:Hang=1;break; case0x0b:Hang=2;break; } break; } } P1=0x0f; EX0=1; returnHang*3+Lie;}voidProcess(ucharpo)//对读到的按键值进行处理{ if(Flag_finish==1) { Flag_finish=0; TR0=1; T_24=23; T_12_fen=11; T_12_miao=58; } switch(po) { case0:TR0=1;break; case3:TR0=0;break; case6:jie++;if(jie==5) jie=1;break; case1:A_bifen=A_bifen+1;break; case4:A_bifen=A_bifen+2;break; case7:A_bifen=A_bifen+3;break; case2:B_bifen=B_bifen+1;break; case5:B_bifen=B_bifen+2;break; case8:B_bifen=B_bifen+3;break; }}voidmain(){ ucharwe; Initialize_LCD(); TMOD=0x11; TH0=-50000/256; TL0=-50000%256; TR0=0; ET0=1; TH1=-50000/256; TL1=-50000%256; TR1=0; ET1=1; IT0=1; EX0=1; EA=1; Print_1602(); led=0; P1=0x0f; while(1) { if(KeyPressDown==1) { KeyPressDown=0; Key_Result=Key_Scan(); Process(Key_Result); TR1=0; } Set_LCD_POS(0x02); Write_LCD_Data('0'+jie); Set_LCD_POS(0x05); Write_LCD_Data('0'+T_12_fen/10); Set_LCD_POS(0x06); Write_LCD_Data('0'+T_12_fen%10); Set_LCD_POS(0x08); Write_LCD_Data('0'+T_12_miao/10); Set_LCD_POS(0x09); Write_LCD_Data('0'+T_12_miao%10); Set_LCD_POS(0x0c); Write_LCD_Data('0'+T_24/10); Set_LCD_POS(0x0d); Write_LCD_Data('0'+T_24%10); Set_LCD_POS(0x44); Write_LCD_Data('0'+A_bifen/100); Set_LCD_POS(0x45); Write_LCD_Data('0'+A_bifen/10%10); Set_LCD_POS(0x46); Write_LCD_Data('0'+A_bifen%10);//比分 Set_LCD_POS(0x4b); Write_LCD_Data('0'+B_bifen/100); Set_LCD_POS(0x4c); Write_LCD_Data('0'+B_bifen/10%10); Set_LCD_POS(0x4d); Write_LCD_Data('0'+B_bifen%10);//比分 if(Flag_LED==1) { Flag_LED=0; for(we=0;we<50;we++)//50:可变,变小的话,灯闪的时间变短 { led=~led; Delay_S(100); //100:可变,改变灯闪的频率 } } } }voidINT_0()interrupt0{ TR1=1;}voidT0_INT()interrupt1{ TH0=-1000/256; //理论上应该是50000,1000是为了加快倒计时速度 TL0=-1000%256; //定时50ms if(++tCount_T0!=20)return; //定时1000ms(1s) tCount_T0=0; T_24--; if(T_24==-1) T_24=23; T_12_miao--; if(T_12_miao==-1) { T_12_miao=59; T_12_fen--; if(T_12_fen==-1) { TR0=0; T_12_miao=0; T_24=0; T_12_fen=0; Flag_LED=1; Flag_finish=1; } }}voidT1_INT()interrupt3{ TH1=-50000/256; TL1=-50000%256; //定时50ms寄存器初值 if(++tCount_T1==2) //定时100ms { tCount_T1=0; KeyPressDown=1; TR1=0; } }基于C8051F单片机直流电动机反馈控制系统的设计与研究基于单片机的嵌入式Web服务器的研究MOTOROLA单片机MC68HC(8)05PV8/A内嵌EEPROM的工艺和制程方法及对良率的影响研究基于模糊控制的电阻钎焊单片机温度控制系统的研制基于MCS-51系列单片机的通用控制模块的研究基于单片机实现的供暖系统最佳启停自校正(STR)调节器单片机控制的二级倒立摆系统的研究基于增强型51系列单片机的TCP/IP协议栈的实现基于单片机的蓄电池自动监测系统基于32位嵌入式单片机系统的图像采集与处理技术的研究基于单片机的作物营养诊断专家系统的研究基于单片机的交流伺服电机运动控制系统研究与开发基于单片机的泵管内壁硬度测试仪的研制基于单片机的自动找平控制系统研究基于C8051F040单片机的嵌入式系统开发基于单片机的液压动力系统状态监测仪开发模糊Smith智能控制方法的研究及其单片机实现一种基于单片机的轴快流CO〈,2〉激光器的手持控制面板的研制基于双单片机冲床数控系统的研究基于CYGNAL单片机的在线间歇式浊度仪的研制基于单片机的喷油泵试验台控制器的研制基于单片机的软起动器的研究和设计基于单片机控制的高速快走丝电火花线切割机床短循环走丝方式研究基于单片机的机电产品控制系统开发基于PIC单片机的智能手机充电器基于单片机的实时内核设计及其应用研究基于单片机的远程抄表系统的设计与研究基于单片机的烟气二氧化硫浓度检测仪的研制基于微型光谱仪的单片机系统单片机系统软件构件开发的技术研究基于单片机的液体点滴速度自动检测仪的研制基于单片机系统的多功能温度测量仪的研制基于PIC单片机的电能采集终端的设计和应用基于单片机的光纤光栅解调仪的研制气压式线性摩擦焊机单片机控制系统的研制基于单片机的数字磁通门传感器基于单片机的旋转变压器-数字转换器的研究基于单片机的光纤Bragg光栅解调系统的研究单片机控制的便携式多功能乳腺治疗仪的研制基于C8051F020单片机的多生理信号检测仪基于单片机的电机运动控制系统设计Pico专用单片机核的可测性设计研究基于MCS-51单片机的热量计基于双单片机的智能遥测微型气象站MCS-51单片机构建机器人的实践研究基于单片机的轮轨力检测基于单片机的GPS定位仪的研究与实现基于单片机的电液伺服控制系统用于单片机系统的MMC卡文件系统研制基于单片机的时控和计数系统性能优化的研究基于单片机和CPLD的粗光栅位移测量系统研究单片机控制的后备式方波UPS提升高职学生单片机应用能力的探究基于单片机控制的自动低频减载装置研究基于单片机控制的水下焊接电源的研究基于单片机的多通道数据采集系统基于uPSD3234单片机的氚表面污染测量仪的研制基于单片机的红外测油仪的研究96系列单片机仿真器研究与设计基于单片机的单晶金刚石刀具刃磨设备的数控改造基于单片机的温度智能控制系统的设计与实现基于MSP430单片机的电梯门机控制器的研制基于单片机的气体测漏仪的研究基于三菱M16C/6N系列单片机的CAN/USB协议转换器基于单片机和DSP的变压器油色谱在线监测技术研究基于单片机的膛壁温度报警系统设计基于AVR单片机的低压无功补偿控制器的设计基于单片机船舶电力推进电机监测系统基于单片机网络的振动信号的采集系统基于单片机的大容量数据存储技术的应用研究基于单片机的叠图机研究与教学方法实践基于单片机嵌入式Web服务器技术的研究及实现基于AT89S52单片机的通用数据采集系统基于单片机的多道脉冲幅度分析仪研究机器人旋转电弧传感角焊缝跟踪单片机控制系统基于单片机的控制系统在PLC虚拟教学实验中的应用研究基于单片机系统的网络通信研究与应用HYPERLINK

温馨提示

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

评论

0/150

提交评论