篮球计时计分器单片机课程设计_第1页
篮球计时计分器单片机课程设计_第2页
篮球计时计分器单片机课程设计_第3页
篮球计时计分器单片机课程设计_第4页
篮球计时计分器单片机课程设计_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

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

文档简介

单片机课程设计姓名:指导教师:学科、专业:电气工程及其自动化班级、学号:电气级班号答辩日期:年月日

单片机课程设计任务书一、设计题目:基于C51单片机的篮球赛计时记分器二、给定条件:系统功能设计如下:1、计时部分:能记录整个赛程的比赛时间,通过四位一体7段共阳LED显示,其中2位用于显示分钟,2位用于显示秒钟。设置两个开关用于启动和暂停比赛时间。2、计分部分:能随时刷新甲、乙两队在整个赛程中的比分。用4个7段共阳LED显示比分,每队2个LED显示器显示范围可达到0~99分。3、设置六个按键K1-K6,分别为甲队加1分、2分、3分,为乙队加1分、2分、3分;4、中场交换比赛场地时,能交换甲、乙两队比分的位置。5、赛程计时采用倒计时方式,比赛开始时启动计时,直至计时到零为止。比赛时间结束时,发出报警指令。三、设计任务:1、进行按键接口电路设计;2、进行蜂鸣器接口电路设计;3、进行显示接口电路设计;4、绘制出完整的任务系统电路图;5、绘制出程序软件流程图;6、编制C语言程序(需详细注释)并利用PROTEUS软件进行仿真实验;7、给出篮球赛计时计数仿真结果。四、参考资料:1、周润景,张丽娜.基于PROTEUS的电路及单片机系统设计与仿真.北京航空航天大学出版社,20062、郭天祥.51单片机C语言教程——入门、提高、开发、拓展全攻略.电子工业出版社,2012前言最近几年来,随着科技的飞速发展,单片机领域正在不断的走向社会各个角落,还带动传统控制检测日新月异更新。在实时运作和自动控制的单片机应用到系统中,单片机如今是作为一个核心部件来使用,仅掌握单片机方面知识是不够的,还应根据其具体硬件结构,以及针对具体应用对象特点的软件结合,加以完善。“单片机原理及应用课程设计”是电子类专业的学科基础科,它是继“汇编语言程序设计”,“接口技术”等课程之后开出的实践环节课程。摘要篮球计时计分器是一种应用非常广泛比赛计时工具,对现代社会越来越重要。此篮球计时计分器在硬件方面主要采用AT89C51单片机作为主控核心,由独立按键、共阳数码管显示屏显示。AT89C51单片机是美国ATMEL公司出的,功耗小,电压可选用4~6V电压供电;所有程序编写完成后,在Keil软件中进行调试,确定没有问题后,烧写到单片机上进行测试。此设计主要由独立按键采集数据到单片机进行处理再通过数码管显示出来,本论文主要研究了数码管及独立按键,对硬件连接方案进行了详尽的介绍,在软件方面算法也进行了论述。【关键词】AT89C51数码管独立按键蜂鸣器目录第一章工作原理...................................21.1设计目标.......................................21.1.1基本功能 .....................................2第二章硬件设计与原理..............................32.1总设计框图 32.2硬件设计分析 32.2.1电源的设计 32.2.2单片机最小系统 42.2.3显示系统 102.2.4按键调整电路 122.2.5蜂鸣器电路 13第三章软件设计与分析 143.1软件设计的组成 143.2源程序 15第四章软件仿真 264.1PROTEUS简介 264.2仿真图 284.3原理图 294.4元件清单 304.5硬件结果图 31总结 32致谢 34参考文献 35第一章工作原理1.1设计目标1.1.1基本功能1、51单片机+按键+蜂鸣器+数码管2、数码管:1个4位一体共阳数码管、4个一位共阳极数码管3、具有48分钟倒计时功能,精确到秒,能够暂停4、比赛终止时,有声音和指示灯报警功能5、能记录两队分数,并且能够加减功能6、比赛中途能够交换两队比分7、具有时间暂停功能8、51单片机型号:AT89C51单片机C语言编程第二章硬件设计与原理以AT89C51单片机为核心,起着控制作用。系统包括数码管显示电路、复位电路、时钟电路、按键调整电路和蜂鸣器电路。设计思路分为六个模块:复位电路、晶振电路模、AT89C51、数码管显示电路、按键调整电路和蜂鸣器电路这六个模块。2.1总设计框图2.2硬件设计分析2.2.1电源的设计系统电源使用外接直流5伏。USB是通用串行总线(UniversalSerialBus)接口的简称。它是目前使用比较广泛的电脑接口之一,主要版本有1.0、1.1和最新的2.0三种版本。根据USB总线的工业标准,它可以提供额定功率为5V/500mA的电源供USB设备使用。2.2.2单片机最小系统51单片机是对目前所有兼容intel8031指令系统的单片机的统称。该系列单片机的始祖是intel的8031单片机,后来随着技术的发展,成为目前广泛应用的8为单片机之一。单片机是在一块芯片内集成了CPU、RAM、ROM、定时器/计数器和多功能I/O口等计算机所需要的基本功能部件的大规模集成电路,又称为MCU。51系列单片机内包含以下几个部件:一个8位CPU;一个片内振荡器及时钟电路;4KB的ROM程序存储器;一个128B的RAM数据存储器;寻址64KB外部数据存储器和64KB外部程序存储空间的控制电路;32条可编程的I/O口线;两个16位定时/计数器;一个可编程全双工串行口;5个中断源、两个优先级嵌套中断结构。如图2-2所示为AT89C51单片机基本构造,其基本性能介绍如下:图2-2AT89C51引脚图AT89C51提供以下标准功能:4k字节Flash闪速存储器,128字节内部RAM,32个I/O口线,两个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。同时,AT89C51可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。掉电方式保存RAM中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。AT89C51的主要特性如下表所示:表2-1AT89C51主要功能描述兼容MCS—51指令系统4k字节可编程闪烁存储器AT89C51为40脚双列直插封装的8位通用微处理器,采用工业标准的C51内核,在内部功能及管脚排布上与通用的89c51相同,其主要用于会聚调整时的功能控制。功能包括对会聚主IC内部寄存器、数据RAM及外部接口等功能部件的初始化,会聚调整控制,会聚测试图控制,红外遥控信号IR的接收解码及与主板CPU通信等。主要管脚有:XTAL1(19脚)和XTAL2(18脚)为振荡器输入输出端口,外接12MHz晶振。RST/Vpd(9脚)为复位输入端口,外接电阻电容组成的复位电路。VCC(40脚)和VSS(20脚)为供电端口,分别接+5V电源的正负端。P0~P3为可编程通用I/O脚,其功能用途由软件定义,在本设计中,P0端口(32~39脚)被定义为N1功能控制端口,分别与N1的相应功能管脚相连接,13脚定义为IR输入端,10脚和11脚定义为I2C总线控制端口,分别连接N1的SDAS(18脚)和SCLS(19脚)端口,12脚、27脚及28脚定义为握手信号功能端口,连接主板CPU的相应功能端,用于当前制式的检测及会聚调整状态进入的控制功能。P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P0口的管脚第一次写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)这是由于上拉的缘故。RST:复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位。ALE/PROG:当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。一般情况下,ALE仍以时钟振荡频率的1/6输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个AL脉冲。对Flash存储器编程期间,该引脚还用于输入编程脉冲(PROG)。如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元的D0位置位,可禁止ALE操作。该位置位后,只有一条MOVX和MOVC指令才能将ALE激活。此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE禁止位无效。PSEN:程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当STC89C51RC由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲。在此期间,当访问外部数据存储器,将跳过两次PSEN信号。EA/VPP:外部访问允许。欲使CPU仅访问外部程序存储器(地址为0000H—FFFFH),EA端必须保持低电平(接地)。需注意的是:如果加密位LB1被编程,复位时内部会锁存EA端状态。如EA端为高电平(接Vcc端),CPU则执行内部程序存储器中的指令。Flash存储器编程时,该引脚加上+12V的编程允许电源Vpp,当然这必须是该器件是使用12V编程电压Vpp。XTAL1:振荡器反相放大器的及内部时钟发生器的输入端。XTAL2:振荡器反相放大器的输出端。单片机最小原理图如图2-2所示:图2-3单片机最小系统单片机最小系统说明:时钟信号的产生:在MCS-51芯片内部有一个高增益反相放大器,其输入端为芯片引脚XTAL1,其输出端为引脚XTAL2。而在芯片的外部,XTAL1和XTAL2之间跨接晶体振荡器和微调电容,从而构成一个稳定的自激振荡器,这就是单片机的时钟振荡电路。时钟电路产生的振荡脉冲经过触发器进行二分频之后,才成为单片机的时钟脉冲信号。一般地,电容C2和C3取30pF左右,晶体的振荡频率范围是1.2-12MHz。如果晶体振荡频率高,则系统的时钟频率也高,单片机的运行速度也就快。单片机复位使CPU和系统中的其他功能部件都处在一个确定的初始状态下,并从这个状态开始工作。单片机复位条件:必须使9脚加上持续两个机器周期(即24个振荡周期)的高电平。2.2.3显示系统图2-4四位一体共阳极数码管图2-5一位共阳极数码管2.2.4按键调整电路图2-6按键调整电路2.2.5蜂鸣器电路图2-7蜂鸣器电路第三章软件设计与分析3.1软件设计的组成该系统由延时子函数、蜂鸣器子函数、初始化子函数、调节比赛时间数码管显示子函数、比赛开始数码管显示子函数、甲队得分数码管显示子函数、乙队得分数码管显示子函数、按键扫描子函数、定时器0中断子函数、主函数和数据定义这几部分组成。 图3-1主程序流程图图3-2子程序流程图3.2源程序#include<reg52.h> //52系列单片机头文件#defineucharunsignedchar //宏定义#defineuintunsignedintucharcodesegcode[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//数码管段码ucharcodebitcode[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80} ; //数码管位码intx=48;inty=00; //秒表计时,x用于计分钟数,y用于计秒数ints1=0;ints2=0; //甲乙两队分数控制,score1是甲队分数,score2是乙队分数charCounter=0; //用于计中断次数sbitP07=P0^7; //甲乙队交换分数sbitP10=P1^0; //开始开关sbitP11=P1^1; //甲队加一sbitP12=P1^2; //甲队加二sbitP13=P1^3; //甲队加三sbitP14=P1^4; //暂停开关sbitP15=P1^5; //乙队加一sbitP16=P1^6; //乙队加二sbitP17=P1^7; //乙队加三sbitP37=P3^7; //蜂鸣器控制voiddelay(uintn) //延时函数{ucharj; while(n--)//11.5092MHz--113 { for(j=0;j<113;j++); }}voiddisplay() //数码管显示子程序{ P0=segcode[y%10]; //秒钟个位送段码 P2=bitcode[3]; //选中秒钟个位 delay(5); //亮5msP2=0x00; //关位选,防止显示混乱 P0=segcode[y/10]; //秒钟十位送段码 P2=bitcode[2]; //选中秒钟十位 delay(5);P2=0x00; P0=segcode[x%10]; //分钟个位送段码 P2=bitcode[1]; //选中分钟个位 delay(5); P2=0x00; P0=segcode[x/10]; //分钟十位送段码 P2=bitcode[0]; //选中分钟十位 delay(5);P2=0x00; P0=segcode[s1/10]; //分数1的十位送段码 P2=bitcode[4]; //选中分数1十位 delay(5); //亮5ms P2=0x00; P0=segcode[s1%10]; //分数1的个位送段码 P2=bitcode[5]; //选中秒钟个位 delay(5);P2=0x00; P0=segcode[s2/10]; //分数2的十位送段码 P2=bitcode[6]; //选中分数十位 delay(5); P2=0x00; P0=segcode[s2%10]; //分数2的个位送段码 P2=bitcode[7]; //选中分数2个位 delay(5);P2=0x00;}voidjiafen() //定义加分程序{ if(P11==0) //当按下P11的时候 { delay(1); //延时去抖 while(P11==0) { display(); } s1++; //甲队加一分 } if(P12==0) //当按下P1_2的时候 { delay(1); while(P12==0) { display(); } s1+=2; //甲队加两分 } if(P13==0) //当按下P13的时候 { delay(1); while(P13==0) { display(); } s1+=3; //甲队加三分 } if(P15==0) //当按下P1_4的时候 { delay(1); //延时去抖 while(P15==0) { display(); } s2++; //乙队加一分 } if(P16==0) //当按下P1_5的时候 { delay(1); while(P16==0) { display(); } s2+=2; //乙队加两分 } if(P17==0) //当按下P1_6的时候 { delay(1); while(P17==0) { display(); } s2+=3;//乙队加三分 }}voidjiaohuan() //定义比分交换程序{ intt; //定义中间变量t if(P07==0) //当P1_7按下的时候 { delay(1); //延时去抖 while(P07==0) { display(); } t=s1; //利用中间变量t,将甲乙两队比分交换 s1=s2; s2=t; display(); //刷新数码管 }}voidzanting()//暂停程序{ if(P14==0) //当按下P1_5的时候 { delay(1); while(P14==0) { display(); } EA=0; //cpu不允许中断 } }voidkaishi(){ if(P10==0) { delay(1); while(P10==0) { display(); } EA=1; //cpu再次允许中断 } }voidT01()interrupt1{ TH0=0xb8; //重装 TL0=0x00; Counter++; //计次数 if(Counter==50) //每个中断20ms,计个50中断即1s { y--; //一秒钟到了,秒表数字减一 if(y<0) //如果60s减完了,减分钟数 { x--; //分钟数减一 if(x<0) //如果分钟数减完了,蜂鸣器响起 { x=0; y=0; while(1) { P37=1; //蜂鸣器想起 display();//刷新数码管 } } y=59; //秒表变59 } Counter=0;//重新再计一秒钟 }}voidmain() //主函数{ EA=1; ET0=1; //T0中断允许TMOD=0x01; //工作方式1:16位定时 TH0=0xb8; TL0=0x00; P37=0; //蜂鸣器为关闭状态 P10=1; while(P10==1) { display(); } display(); //开始的时候数码管显示初值 if(P10==0) //开始键按下 { delay(1); while(P10==0) //开始键按键防抖 { display(); } EA=1; //cup中断允许 TR0=1; //启动定时 while(1) { display(); //数码管显示子程序 zanting(); //暂停子程序 kaishi(); //暂停后重新开始子程序 jiafen(); //按键加分子程序 jiaohuan(); //分数交换子程序 } }}第四章软件仿真4.1PROTEUS简介ProteusISIS是英国Labcenter公司开发的电路分析与实物仿真软件。它运行于Windows操作系统上,可以仿真、分析(SPICE)各种模拟器件和集成电路,该软件的特点是:(1)现了单片机仿真和SPICE电路仿真相结合。具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统的仿真、RS232动态仿真、I2C调试器、SPI调试器、键盘和LCD系统仿真的功能;有各种虚拟仪器,如示波器、逻辑分析仪、信号发生器等。(2)支持主流单片机系统的仿真。目前支持的单片机类型有:68000系列、8051系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列以及各种外围芯片。(3)提供软件调试功能。在硬件仿真系统中具有全速、单步、设置断点等调试功能,同时可以观察各个变量、寄存器等的当前状态,因此在该软件仿真系统中,也必须具有这些功能;同时支持第三方的软件编译和调试环境,如KeilC51uVision2等软件。(4)具有强大的原理图绘制功能。可以仿真51系列、AVR、PIC、ARM、等常用主流单片机。还可以直接在基于原理图的虚拟原型上编程,再配合显示及输出,能看到运行后输入输出的效果。配合系统配置的虚拟逻辑分析仪、示波器等,Proteus建立了完备的电子设计开发环境。在PROTEUS绘制好原理图后,调入已编译好的目标代码文件:*.HEX,可以在PROTEUS的原理图中看到模拟的实物运行状态和过程。PROTEUS是单片机课堂教学的先进助手。PROTEUS不仅可将许多单片机实例功能形象化,也可将许多单片机实例运行过程形象化。前者可在相当程度上得到实物演示实验的效果,后者则是实物演示实验难以达到的效果。它的元器件、连接线路等却和传统的单片机实验硬件高度对应。这在相当程度上替代了传统的单片机实验教学的功能,例:元器件选择、电路连接、电路检测、电路修改、软件调试、运行结果等。课程设计、毕业设计是学生走向就业的重要实践环节。由于PROTEUS提供了实验室无法相比的大量的元器件库,提供了修改电路设计的灵活性、提供了实验室在数量、质量上难以相比的虚拟仪器、仪表,因而也提供了培养学生实践精神、创造精神的平台。4.2仿真图4.5硬件结果图总结经过近三个月的努力,终于顺利完成了毕业设计。刚开始,我们头绪不是很清楚,不知道从哪里入手,但通过老师的耐心指导并和同学认真研究设计课题,跑图书馆查资料、确定基本设计方案、对所用芯片功能进行查找、调试、上机仿真等,经历了一次次的困难,却积累了很多宝贵的经验。在整个设计的过程中遇到的问题主要有以下三点,第一:基础知识掌握的不牢固,主要表现在一些常用的电路的形式和功能不清楚,对书本上的内容理解不够透彻。第二:对一些常用的应用软件缺少应用,体现在画电路图和系统的仿真的时候,对这些软件的操作不熟练,浪费了很多时间。第三:相关知识掌握的不够全面,缺少系统设计的经验。这次设计进一步端了我的学习态度,学会了实事求是,严谨的作风,对自己要严格要求,不能够一知半解,要力求明明白白。急于求成是不好的,我有所感受。如果省略了那些必要的步骤,急于求成,不仅会浪费时间,还会适得其反。我觉得动手之前,头脑里必须清楚该怎么做,这一点是很重要的。就目前来说,我的动手能力虽然差一点,但我想,通过我的不懈努力,在

温馨提示

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

评论

0/150

提交评论