单片机课程设计(比赛记分牌设计)_第1页
单片机课程设计(比赛记分牌设计)_第2页
单片机课程设计(比赛记分牌设计)_第3页
单片机课程设计(比赛记分牌设计)_第4页
单片机课程设计(比赛记分牌设计)_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

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

文档简介

课程设计任务书学生姓名: 专业班级: 指导教师: 工作单位: 题目:比赛记分牌设计一、设计要求:1.启动时显示为0分,几分范围为099分。2.得分时加上相应的分数,失分时减去相应的分数。3.刷新分数的按钮按下时,伴随提示音。2、 主要功能模块:比赛记分牌系统主要功能模块包括单片机主控模块、显示模块、按键模块、电源模块等部分组成。根据具体情况选择合适型号的单片机、蜂鸣器、数码管等硬件设备进行设计。三、要求完成的主要任务:1. 根据功能要求完成硬件电路设计,提供硬件电路图。2. 使用汇编或者C语言完成软件部分设计,实现相应功能。要求程序加注释并提供软件流程图。3. 使用Proteus软件进行系统仿真,并提供仿真截图,测试数据,误差分析。四、时间安排:2019.10.152019.10.21 收集资料,确定设计方案2019.10.222019.11.26 系统设计2019.11.272019.12.13 撰写课程设计论文及提交指导教师签名: 年 月 日 摘 要本设计是根据我们所学习的单片机课程,按照大纲要求对我们进行的一次课程检验,是进行单片机课程训练的必要任务,也对我们掌握单片机应用有很大的帮助。掌握单片机技术是一门不可或缺的技术,对我们将来的工作以及生活和学习都有很密切的联系。近年来,随着电子技术和微机计算机的迅速发展,单片机的档次不断提高,其应用领域也在不断的扩大,已在工业控制、尖端科学、智能仪器仪表、日用家电、汽车电子系统、办公自动化设备、个人信息终端及通信产品中得到了广泛的应用,成为现代电子系统中最重要的智能化的核心部件。本单片机系统采用STC89C51(仿真中用AT89C51)控制,整个硬件系统由A/D、D/A转换、LED显示、键盘、串行通信等模块组成。本设计只完成了单片机部分的开发设计,没有设计外部的采集和控制电路。因为没有外部采集电路,所以不能完成具体的测量功能,要完成具体的测量功能(如测量压力、温度、湿度)还要配上外部的各种传感器采集电路和相应的软件。若配上采集电路和相应的软件就能将测量结果用LED数码管十进制显示出来,其中包括了A/D、D/A转换,还可以用按键来控制,进行人机对话;系统中设置了6个按键,其中1个是复位键,1个是刷新键,其余的4个键,用程序来控制实现不同的功能。之所以没有设计外部采集电路是因为设计了外部采集电路系统的功能就比较单一,不方便系统功能的外部扩展。该系统还能实现单片机与PC机的串行通信和编程的下载、软件设计的时钟显示。关键词:单片机AT89C51,串行通信,A/D转换,D/A转换,LED数码管显示。 目录一、课程设计说明41.1课程设计目的41.2本次课程设计任务的主要内容和要求41.3总体方案设计4二、实验设备52.1 Proteus52.1.1 Proteus软件简介52.1.2 Proteus软件仿真12.2 汇编软件keil c5112.2.1 汇编软件12.2.2汇编编程1三、硬件说明13.1MCS-5113.2单片机的时钟电路23.3单片机复位电路工作原理23.4 单片机晶振电路工作原理13.5 按键电路的设计13.6蜂鸣器驱动电路设计13.7 数码管特性及使用1四、硬件原理24.1 电路原理图24.2硬件原理图3五、软件设计15.1软件流程图15.2软件程序1六、小结1七、结束语1设计资料及参考文献2一、课程设计说明1.1课程设计目的本次课程设计是运用单片机原理及接口技术专业基础课程进行的一次综合训练,其主要目的是加深学生对单片机软件技术和相关理论知识的理解,进一步熟悉51单片机系统设计的基本理论、方法和技能;掌握工程应用的基础和要求,力争做到理论与实际的统一;同时培养学生分析问题、解决问题的能力和独立完成系统设计的能力,并按要求编写相关的技术文档和设计报告等。1.2本次课程设计任务的主要内容和要求1、 设计内容:(1) 启动时显示为0分,几分范围为099分。(2) 得分时加上相应的分数,失分时减去相应的分数。(3) 刷新分数的按钮按下时,伴随提示音。2、 主要功能模块: 比赛记分牌系统主要功能模块包括单片机主控模块、显示模块、按键模块、电源模块等部分组成。根据具体情况选择合适型号的单片机、蜂鸣器、数码管等硬件设备进行设计。 1.3总体方案设计基于AT89C51单片机比赛计分牌由显示模块、按键模块、单片机主控模块、电源模块等组成,系统框图如图 1-1所示:图1-1 二、实验设备Proteus 8.0 Professional软件及汇编软件keil c512.1 Proteus2.1.1 Proteus软件简介Proteus不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。它是目前最好的仿真单片机及外围器件的工具。Proteus是世界上著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2010年又增加了Cortex和DSP系列处理器,并持续增加其他系列处理器模型。在编译方面,它也支持IAR、Keil和MPLAB等多种编译器。 Proteus与其它单片机仿真软件不同的是,它不仅能仿真单片机CPU的工作情况,也能仿真单片机外围电路或没有单片机参与的其它电路的工作情况。因此在仿真和程序调试时,关心的不再是某些语句执行时单片机寄存器和存储器内容的改变,而是从工程的角度直接看程序运行和电路工作的过程和结果。对于这样的仿真实验,从某种意义上讲,是弥补了实验和工程应用间脱节的矛盾和现象。2.1.2 Proteus软件仿真在PROTEUS绘制好原理图后,调入已编译好的目标代码文件:*.HEX,可以在PROTEUS的原理图中看到模拟的实物运行状态和过程。2.2 汇编软件keil c51 2.2.1 汇编软件KEILC51标准C编译器为8051微控制器的软件开发提供了C语言环境,同时保留了汇编代码高效,快速的特点。C51编译器的功能不断增强,使你可以更加贴近CPU本身,及其它的衍生产品。C51已被完全集成到uVision2的集成开发环境中,这个集成开发环境包含:编译器,汇编器,实时操作系统,项目管理器,调试器。uVision2 IDE可为它们提供单一而灵活的开发环境。 2.2.2汇编编程(1)新建工程保存工程(2)新建文件保存文件(按格式保存)(3)为source group增加文件(4)调整目标属性(5)生成HEX文件以备proteus仿真三、硬件说明3.1 MCS-51STC89C51RC是采用8051核的ISP(In System Programming)在系统可编程芯片,最高工作时钟频率为80MHz,片内含4K Bytes的可反复擦写1000次的Flash只读程序存储器,器件兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元,具有在系统可编程(ISP)特性,配合PC端的控制程序即可将用户的程序代码下载进单片机内部,省去了购买通用编程器,而且速度更快。STC89C51RC系列单片机是单时钟/机器周期(1T)的兼容8051 内核单片机,是高速/ 低功耗的新一代8051 单片机,全新的流水线/精简指令集结构,内部集成MAX810 专用复位电路。3.2单片机的时钟电路 单片机本身是一个复杂的同步时序系统,为保证同步工作方式的实现,单片机必须有时钟信号,以使其系统在时钟信号的控制下按时序协调工作。单片机的时钟电路由振荡电路和分频电路组成。其中震荡电路由反相器以及并联外接的石英晶体和电容构成,用于产生振荡脉冲。而分频电路则用于把振荡脉冲分频,以得到所需要的时钟信号。如图3-1图 3-1 单片机的晶振电路3.3单片机复位电路工作原理复位是单片机的初始化操作,其作用是使CPU中的各个部件都处于一个确定的初始状态,并从这个状态开始工作。当单片机的ALE及 两脚输出高电平,RST引脚高电平时,单片机复位。单片机的复位电路有上电复位和手动按钮复位两种形式,RST/VPD端的高电平直接由上电瞬间产生高电平则为上电复位;若通过按钮产生高电平复位信号称为手动按钮复位。在实际应用系统中,有些外围芯片也需要复位,如果这些复位端的复位电平要求与单片机的要求一致,则可以与之相连。复位后,P0P3四个并行接口全为高电平,其它寄存器全部清零,只有SBUF寄存器状态不确定。图3-2复位原理电路3.4 单片机晶振电路工作原理晶振用一种能把电能和机械能相互转化的晶体在共振的状态下工作,以提供稳定,精确的单频振荡。在通常工作条件下,普通的晶振频率绝对精度可达百万分之五十。高级的精度更高。有些晶振还可以由外加电压在一定范围内调整频率,称为压控振荡器。 晶振的作用是为系统提供基本的时钟信号。通常一个系统共用一个晶振,便于各部分保持同步。有些通讯系统的基频和射频使用不同的晶振,而通过电子调整频率的方法保持同步。 3.5 按键电路的设计图3-3按键电路本次实验用了四个按键电路:复位电路、刷新电路、加减分电路和清零电路。四个按键电路都是通过手动按下按键拉低电平来分别实现相应的清零及加减分功能。按下刷新按钮分数闪烁且蜂鸣器发出声音。3.6蜂鸣器驱动电路设计由于蜂鸣器的工作电流一般比较大,以致于单片机的I/O 口是无法直接驱动的,所以要利用放大电路来驱动,一般使用三极管来放大电流就可以了。(注:硬件这里采用的是有源蜂鸣器)如图3-4蜂鸣器驱动电路3.7 数码管特性及使用数码管按段数分为七段数码管和八段数码管,八段数码管比七段数码管多一个发光二极管单元(多一个小数点显示);按能显示多少个“8”可分为1位、2位、4位等等数码管;按发光二极管单元连接方式分为共阳极数码管和共阴极数码管。共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管。共阳数码管在应用时应将公共极COM接到+5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮。当某一字段的阴极为高电平时,相应字段就不亮。共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极(COM)的数码管。共阴数码管在应用时应将公共极COM接到地线GND上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮。当某一字段的阳极为低电平时,相应字段就不亮。数码管要正常显示,就要用驱动电路来驱动数码管的各个段码,从而显示出我们要的数字,因此根据数码管的驱动方式的不同,可以分为静态式和动态式两类。数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划a,b,c,d,e,f,g,dp的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。通过分时轮流控制各个数码管的的COM端,就使各个数码管轮流受控显示,这就是动态驱动。在轮流显示过程中,每位数码管的点亮时间为12ms,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的I/O端口,而且功耗更低。下图3-6分别为共阳极和共阴极数码管引脚图: 图3-5作为共阳极右为共阴极引脚结构四、硬件原理4.1 电路原理图 根据上述分析,设计出基于AT89C51单片机的比赛计分牌电路原理图如图4-1所示。电源电路为单片机以及其他模块提供标准5V电源。晶振模块为单片机提供时钟标准,使系统各部分能协调工作。复位电路为单片机提供复位功能。单片机作为主控制器,根据输入信号对系统进行相应的控制。数码管显示选手当前的得分。按键设置模块用来刷新选手的得分,当选手得分或者失分时可以通过这两个按钮对选手分数重新设置。蜂鸣器用作按键提示,当有按键按下时蜂鸣器发出声音,按键释放时停止发声4.2硬件原理图图4-1 仿真连线图系统板硬件连线如图4-1所示:(1) 单片机的P0口和P1口依次接到数码管的ag端,并加有驱动;(2) 18和19引脚接外部晶振的时钟电路;(3) P3口接按键电路;(4) 28引脚接蜂鸣器电路。五、软件设计5.1软件流程图图5-1 按键扫描流程图 图5-2 主流程图 5.2软件程序#include#define uchar unsigned char#define uint unsigned intsbit S1=P30;sbit S2=P31;sbit S3=P32;sbit S4=P33;sbit S5=P34;sbit S6=P35;sbit p20=P20;sbit p21=P21;sbit p22=P22;sbit p23=P23;sbit p27=P27;uchar code tab=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90;uchar key;uchar a,b;void delay(uint z) uint x,y; for(x=0;xz;x+) for(y=0;y200;y+);display1() P0=taba%10; p21=1; delay(10); p21=0; P0=taba/10; p20=1; delay(10); p20=0; return a;display2() P1=tabb%10; p23=1; delay(10); p23=0; P1=tabb/10; p22=1; delay(10); p22=0; return b;void key_scan() P3=0xff; if(P3&0x3f)!=0x3f) delay(50); if(P3&0x3f)!=0x3f) if(S1=0) key=1; if(S2=0) key=2; if(S3=0) key=3; if(S4=0) key=4; if(S5=0) key=5; if(S6=0) key=6; void one() a+; if(a=100) a=99; display1(); display2();void two() if(a!=0) a-; display1(); display2();void three() b+; if(b=100) b=99; display2(); display1();void four() if(b!=0) b-; display2(); display1();void five() a=0; display1(); b=0; display2();void six() if(S6=1) display1(); display2(); else p27=0; P0=P0; P1=P1;void main() display1(); display2(); key=0; while(P3!=0x3f) if(P3!=0x3f) if(S1=0) S1=1; else S1=0; key_scan(); switch(key) case 0:display1();display2();break; case 1:if(S1=0)one();while(!S1);display1();display2();break; case 2:if(S2=0)two();while(!S2);display1();display2();break; case 3:if(S3=0)three();while(!S3);display1();display2();break; case 4:if(S4=0)four();while(!S4);display1();display2();break; case 5:if(S5=0)five();while(!S5);display1();display2();break;default:if(S6=0)six();while(!S6);display1();display2();break; 六、小结 通过本次课程设计,通过我们的努力使我有对51单片机有了更进一步的了解,对51单片机的更能结构更记得熟悉了。课程设计是在原有的学科基础上所进行的更深层次的综合性较强的学习。在本次课程设计中,我们2个人分为一组,彼此合作,经过几天的努力,终于完成了本次课程

温馨提示

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

评论

0/150

提交评论