机电一体化专业毕业论文43536.doc
毕 业 设 计 题 目: 篮球计分器毕业设计 设计题目: 单片机篮球计分器设计要求: 1.本次设计的篮球计时计分器,电路简单,而且易懂,使操作使用者使用非常方便,成本较低,灵敏可靠,记录准确,程序简单,具有非常高的实用价值。 2.比赛时加减分,加分按键有1分、2分、三分。在加错的情况下要求可以减分,按键一次减1分。 3.设计内容包括计分器、,可以使参加比赛的成员、裁判和观众一目了然的看到所有参加者的成绩,以最快的速度评出结果,该篮球计时计分还鞥广泛应用于各类只是竞赛。设计进度要求:第一周:选定论文题目 第二周:查找相关资料 第三周:整理资料 第四周:掌握单片机硬件、软件的组成和应用 第五周:完成论文,编程调试 第六周:经老师检查后进行修改毕业论文 第七周:打印论文,完成毕业论文 第八周:答辩目录1概述32系统设计方案42.1基本功能介绍42.2系统构成框图53系统硬件设计53.1 AT89C51简介53.2 单片机的工作条件93.2.1 时钟电路103.2.2 复位电路124软件设计134.1软件的设计134.2总的程序设计代码17致谢19参考文献20总结21附录1 硬件原理图221概述单片机把我们带入了智能化的电子领域,许多繁琐的系统若由单片机进行设计,便能收到电路更简单、功能更齐全的良好效果。若把更经典的点子系统当作一个僵死的点子系统,那么智能化的现代电子系统则是一个具有"生命"的电子系统。而随着技术的进步,单片机与串口通信的结合更多地应用到各个电子系统中已成一种趋势。单片机具有体积笑、功能强、应用面广等优点,目前正以前所未见的速度取代着传统电子线路构成的经典系统,蚕食着传统数字电路与模拟电路固有的领域。同时,一个学习与应用单片机的新高潮正在大规模地兴起。 但是,单片机并不像传统数字电路或模拟电路那样直观,原因是除了“硬件”之外,还存在一个“软件”的因素。正是这个“软件”因素的存在,使得许多初学者怎么也弄不懂单片机的工作过程,怎么也不明白为什么将几个数送来送去,就能控制一盏灯亮/灭,就能控制一个电机变速。本设计是有一种由AT89C51编程控制LED数码管现实的球赛计时计分系统。本系统具有赛程定时暂停、甲、已双方 的比分。它具有价格低廉、性能稳定、操作方便且携带等特点、广泛适合各类学校和小团体作为赛程计时计分。2系统设计方案2.1基本功能介绍在篮球比赛中,根据比赛的得分情况(得得1分、2分、3分)分别通过三个按键进行加分(加1分、2分、3分),当前总分值通过两个数码管显示出来。如有错误(多加分数)可通过第4个按键进行减分,每按一次按键减1分。2.2系统构成框图按键电路复位电路单 片 机AT89C51数码显示电路时钟电路 图2.2-13系统硬件设计3.1 AT89C51简介51单片机为单芯片微控制器,常见封装形式为40脚双列直插式塑料封装DIP-40,其引脚识别为:正面面向用户,缺口向上,左上面第一脚为1脚,然后按逆时针方向依次为240脚。通常第一脚有标志符号,如图1-1所示。图3.1-1单片机引脚图AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROMFalsh Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。AT89C2051是一种带2K字节闪烁可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除100次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。外形及引脚排列如图所示主要特性: ·与MCS-51 兼容 ·4K字节可编程闪烁存储器 ·寿命:1000写/擦循环 ·数据保留时间:10年 ·全静态工作:0Hz-24MHz ·三级程序存储器锁定 ·128×8位内部RAM ·32可编程I/O线 ·两个16位定时器/计数器 ·5个中断源 ·可编程串行通道 ·低功耗的闲置和掉电模式 ·片内振荡器和时钟电路管脚说明: VCC:供电电压。 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口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。 P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。 P3口也可作为AT89C51的一些特殊功能口,如下表所示: 口管脚 备选功能 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(外部数据存储器读选通) 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:来自反向振荡器的输出。 振荡器特性: XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。 3.2 单片机的工作条件单片机是一种微控制器,任何为控制器正常工作最基本的条件是要有正确的电源、时钟电路好复位信号,三者缺一部可。本章节着重介绍时钟电路好复位电路的结构及外部接线。 单片机正常工作最基本条件是:正确的电源、时钟好 复位信号。51系列单片机第40引脚接电源+5V,第20引脚接地。电压过高或者过低均会引起单片机CPU部工作。单片机指令执行时在时钟脉冲控制下进行的,时钟脉冲信号是由单片机内部时钟电路及18脚、19脚外接晶振和电容组成的时钟电路产生的。时钟电路异常,也会引起单片机CPU部工作,可通过测量30脚(ALE) 是否有时钟脉冲六分频信号输出来判断振荡电路是否起振。复位电路时在CPU通电后,给复位端9脚(RST)一个复位脉冲,使CPU内部处于初始工作状态。51系列单片机是高电平复位,在正确的复位后(工作状态)9脚应保持低电平。如果复位电路出现故障,CPU也将无法工作。由于CPU的复位电路只有在开机瞬间产生复位脉冲,周期一般为几毫秒,用万用表无法鉴别正常与否。对于只有上电复位的复位电路,快速判断CPU是否有故障可以采取强制复位的方法,将复位瞬时接电源正端,如果此时CPU恢复工作,说明CPU的复位电路出现故障。对于有按键复位的复位电路,按下复位键,测量复位端是否有高电平产生来判断复位电路工作是否正常。图3.2-1单片机的工作条件电路图3.2.1 时钟电路 要给单片机CPU时钟信号,就需要相关的硬件电路,即振荡器好时钟电路。51系列单片机内部有一个高增益反相放大器,这个反相放大器的作用就是构成振荡器,但是形成时钟,外部还需要加一些附加电路。51系列单片机的时钟有两种方式,一种是内部时钟方式,这种方式需在18脚和19脚外接石英晶体(或陶瓷谐振器)和电容,晶体或陶瓷谐振器的频率范围可在224MHz(具体型号有差别)范围内选取,外接石英晶体,电容的值一般取30pF;外接陶瓷谐振器时,电容的值一般取47pF,如图1-1所示。另一种是外部时钟方式,对HMOS型单片机将XTAL1接地,外部时钟信号从XTAL2脚输入,如图 1-2所示(注本设计电路图采用Protel软件绘制,有部分元件符号与电气图符号的标准不一致);对CHMOS型单片机外部时钟信号从XTAL1脚输入,XTAL2悬空,如图1-3所示。图3.2.1-1 内部时钟接法图3.2.1-2 HMOS型单片机外部时钟接法图3.2.1-3 CHMOS型单片机外部时钟接法3.2.2 复位电路 复位时单片机的初始功能化操作,单片机启动运行时,都需要先复位,其作用是使CPU和系统中其他部件处于以个确定的初始状态,并从这个状态开始工作。因而复位是一个很重要的操作,但51系列单片机本身一般不能自动进行复位,必须配合相应的外部电路才能实现。当51系列单片机的复位引脚RST出现2个机器周期以上的高电平时,单片机就执行复位操作。如果RST持续为高电平,单片机就处于循环复位状态。根据应用的要求,复位操作通常有两种基本形式,即上电复位(见图1-4)和按键复位(见图 1-5)。图3.2.2-1上电位电路图3.2.2-2 按键复位电路4软件设计4.1软件的设计程序设计 (1) 初始化用MOV R0, # 0 指令将总寄存器R0清0,用MOV DPTR, #TAP指令将七段码首地址送DPTR。(2) 判断按键是否按下 用MOV A,P0指令将接于P0口的4个按键状态读入,因只用到P0口的低4位,所以用ANL A , #0FH指令屏蔽P0口高4位,取出其低4位。根据原理图中4个按键的接线方式可知,当某按键按下时其对应位为0,没有按下时对应位为1,所以用CENJ A,#0FH, KEY1指令判断读入的按键是否等于0FH(即4个按键均没按下,对应位均为1),如相等,说明没有按键按下,程序顺序执行下一条指令 SJMP START,转到START处继续读取按键状态;如不相等,则程序转到KEY1处执行,调用12ms延时程序,以消除按键抖动。(3) 判断是否真正有键按下再次用MOV ,指令读取按键状态,运用ANL A ,#0FH 指令读取P0口低4位,运用CJNE A,#0FH ,KEY2指令再次判断是否有键按下,如A等于0FH,则表明该次是由于干扰引起的误读键操作,程序顺序执行下一条指令SJMP START ,转到START处继续读取按键状态;如不相等,是一次真正的按键操作,程序转到KEY2处执行。(4) 判断按下的是哪个键(5)按键功能执行当S1键按下时,得一分,运用MOV R1, #1给存放得分的寄存器R1送入1,然后执行LJMP ADDOPR指令,程序转到ADDOPR处;当S2键按下时,得2分,运用MOV R1,#2给R1送入2,然后执行LJMP ADDOPR指令,程序转到ADDOPR处;当S3键按下时,得3分,运用MOV R1,#3给R1送入3,然后执行LJMP ADDOPR指令,程序转到ADDOPR处。当程序转到ADDOPR处时,运用MOV A,R0指令, ADD A,R1指令将所得的分数加到总分上,然后运用MOV R0,A将总分送入存放总分得R0中。当按下S4时,用DEC R0指令将总分减1分,然后执行LJMP WAIT程序,转到WAIT处。(5) 等待按键释放 运用WAIT:MOV ,P0指令,ANL A。#0FH指令,CJNE,#0FH,WAIT指令等待按键释放,以确保每按一次按键,进行一次按键功能操作。(6) 二进制数转换为BCD码存放总分得寄存器R0中得数为二进制数,应将其转换为人们熟悉的十进制数(BCD)码。用MOV A,R0指令将R0得值(总分)送到A中,再用MOV B,#10指令给寄存器B送入10,最后用DIV AB指令将A(总分)的值除以10,则结果的十位存放在A中,结果的个位存放在B中。(7) BCD码转换为七段码并输出显示 因为总分要通过数码管显示出来,必须将BCD码在转换为七段码,运用查表法进行转换。执行MOVC A,A+DPTR指令,查的总分十位对应的七段码,执行MOV P1,A将总分十位的七段码输出至P1口,驱动SMG1 数码过显示;执行MOV A,B指令将总分送到A中,再执行MOVC A,A+DPTR指令,查的总分个位对应的七段码,最后执行MOV P3 ,A 指令,将总分个位得七段码经P3口输出,驱动SMG2 数码显示管。开 始总分寄存器R0清0七段码数据表首地址送DPTR读取P0的值取出低4位是否有键按下按键去抖动再次读取P0的值取出低4位是否真有按键按下哪个按键按下的总分加1分总分加2分总分加3分总分减1分等待按键释放将总分转换为BCD码再将BCD码转换为七段码经P1口和P3口输出显示NN4.2总的程序设计代码根据以上任务分析和任务实施过程编写的源程序如下: ORG 0000H MOV R0,#0 ;将R0(存放总分的寄存器)清0 MOV DPTR,#TAB ;将七段码数据表首地址送DPTR START:MOV A,P0 ;读取P0口(键盘状态)值 ANL A,#0FH ;取出P0 口低4位(只因有低4位接按键) CJNE A,#0FH,KEY1 ;A与0FH比较(即判断是否有键按下),不相等(有键按下,则转移至KEY1处 SJMP START ;无键按下,则转至START处,重新读取键盘状态 KEY1:LCALL DELAY ;有键按下则调用延时程序以消除按键抖动 MOV A,P0 ;再次读取P0 口(键盘状态)值 ANL A,#0FH ;取出P0口低4位 CJNE A,#0FH,KEY2 ;再次判断有键是否按下,有键按下则程序转移至KEY2处 SJMP START ;第二次判断则为无键按下,则表明是由于干扰引起的误读键 KEY2:JNB ACC.0,K0 ;进行键盘扫描,以判断按下的是哪个键,如按下的是S1 键,则程序转至K1 处 JNB ACC.1,K1 ;如按下的是S2键,则程序转至K2处 JNB ACC.2,K2 ;如按下的是S3键,则程序转至K3处 JNB ACC.3,K3 ;如按下的是S4键,则程序转至K4处 LJMP START ;如无键按下则程序转至START处,重新读取键盘 K1:MOV R1,#1 ;S1键按下时,给R1送1 LJMP ADDOPR ;程序跳转至ADDOPR处待添加的隐藏文字内容1 K2:MOV R1,#2 ;S2键按下时,给R1送2 LJMP ADDOPR ;程序跳转至ADDOPR处 K3:MOV R1,#3 ;S3键按下时,给R1送3 LJMP ADDOPR 程序跳转至ADDOPR处 K4:DEC R0 ;S4 键按下时,总分减1 LJMP WAIT ;程序跳转至WAIT处ADDOPR:MOV A,R0 ;将R0 的值(总分)送入A ADD A,R1 ;A与R1相加(总分加上该次得分) MOV R0,A ;将总分送入R0中 WAIT:MOV A,P0 ;读取P0口(键盘状态)值 ANL A,#0FH ;取出低4位 CJNE A,#0FH,WAIT ;A与0FH比较,不相等(按键还处于闭合状态)则转至WAIT处(等待按键释放) MOV A,R0 ;将R0的值送入A中 MOV B,#10 ;将10送入B中 DIV AB A除以B(以二进制数转换为BCD码),结果:A存放BCD码十位,B存放BCD码个位 MOVC A,A+DPTR ;查表得十位BCD码的七段码 MOV P1,A ; 将十位七段码送P1 口输出 MOV A,B ;将个位BCD码送入A MOVC A,A+DPTR ;在查表得个位BCD码的七段码 MOV P3,A ;将个位七段码送P3口输出 LJMP START ;程序转至START处 DELAY:MOV R6,#15 12ms延时子程序 DEL2:MOV R7,#200 DEL1:DJNZ R7,DEL1 DJNZ R6,DEL2 RET TAB: DB 0C0H,0F9H,0A4H,0B0H,99H ;七段码数据表 DB 92H,82H,0F8H,80H,90H致谢短暂几个月的毕业设计即将结束,在此,我首先感谢我的母校,在我们即将步入社会,走向工作岗位之际为我提供了这样一个良好的学习知识与动手操作的机会,并为我提供了先进实验设备。通过本次毕业设计我受益匪浅,不仅使我学会了用单片机编写程序的方法,而且对学过的相关知识得到了进一步的巩固和提高,通过阅读相关专业书籍掌握了一些以前未了解的知识;同时也熟悉了很多的硬件设备,更重要的是使我在学习和掌握这些知识的同时,能够在思维上得到提高和升华,在分析问题和解决问题的能力上得到培养和提高。这次毕业设计使我完善了知识结构、拓宽了知识面,开阔了眼界、提高了对各科知识综合应用的能力;同时也锻炼和培养了我的基本素质,它使我更加耐心、谨慎、细致。在这次毕业设计期间,指导老师老师给予了我耐心的辅导和热情的帮助。对于一些疑难问题老师更是很有耐心、不厌其烦的给予解答,并且在百忙之中对本论文进行了仔细的审阅,提出了极为宝贵的修改意见和建议,保证了论文的质量。使我在毕业之际为学校交上了一份满意的答卷。在此对老师表示衷心的感谢和崇高的敬意。参考文献1 康华光。电子技术基础(模拟部分)(第四版)。高等教育出版社。北京:1999年。2、康华光。电子技术基础(数字部分)(第三版)。高等教育出版社。北京:1999年。3赵保经,中国集成电路大全CMOS集成电路(第一版)。北京:国防工业出版社出版。20044 彭介华,电子技术课程设计指。长沙:高等教育出版社。20015曾祥富,张龙兴,童士宽。电子技术基础 (第一版)。北京:高等教育出版社,20036 中国集成电路大全编写委员会编 中国集成电路大全TTL集成电路(第一版)。北京:国防工业出版社出版,19857 梁宗善.电子技术基础课程设计中大规模集成电路应用(第一版)。武汉:华中理工大学出版社。1995总结本次设计叙述了篮球计时计分器的基本原理及使用方法,给出了一种篮球计时计分器的设计方案。利用单片机程序设计原理,来实现篮球计时计分器的各项功能。此次设计的篮球计时计分器,电路简单,而且易懂,使操作使用者使用非常方便,成本较低,灵敏可靠,计录准确,连接简单,具有非常高的使用价值。设计内容包括计时器、计分器、到时报警、比分显示等部分,可以使参加比赛的成员、裁判和观众一目了然的看到所有参加者的成绩,以最快的速度评出结果.该篮球计时计分器还能广泛应用于各类知识竞赛。本设计由AT89C51编程控制LED七段数码管作球赛计时计分系统具有赛程定时设置、赛程时间暂停、性能稳定、操作方便且易携带等特点。可广泛适合各类学校和小团体作为赛程计时计分。附录1 硬件原理图