篮球赛场计时计分器的51单片机课程设计报告.doc_第1页
篮球赛场计时计分器的51单片机课程设计报告.doc_第2页
篮球赛场计时计分器的51单片机课程设计报告.doc_第3页
篮球赛场计时计分器的51单片机课程设计报告.doc_第4页
篮球赛场计时计分器的51单片机课程设计报告.doc_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

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

文档简介

单片机课程设计报告学 院 设 计 题 目 专 业 名 称 班 级 学 号 学 生 姓 名 指 导 教 师 20 年 月 日目录1设计任务22方案设计22.1 硬件方案22.2 软件方案33系统硬件设计43.1时钟电路设计43.2复位电路设计43.3 按键电路设计53.4 LCD1602显示器电路设计53.5 蜂鸣器电路设计64系统软件设计65系统调试75.1 软件调试85.2 硬件调试85.3 篮球比赛计时计分系统的功能实现85.4 设计过程遇到的问题及解决方法96设计总结9附录A:系统电路图10附录B:源程序11附录C:作品实物图片17参考文献17篮球赛场计时计分器1 设计任务任务:设计一个适用于篮球比赛的计时计分器。本设计有三项主要功能:一.倒计时方式显示单节比赛剩余时间,可暂停。二.显示双方得分,按键输入可修改分值,设置三个按键分别加分1,2,3;如有错误可进行分值的相应修改设置一个按键每次减1分。 三.24秒倒计时显示,时间结束喇叭响;且显示每一个节次,每一小节比赛结束时有喇叭声音提示。2 方案设计2.1 硬件方案该系统包括单片机AT89C51,时钟电路,复位电路,按键控制电路,及LCD显示器五部分。该电路控制简单,清晰明了,用LCD液晶显示,避免了用LED的复杂接线,便于实体硬件电路的焊接。其系统框图如图2.1所示。 LCD显示器时钟电路AT89C51复位电路按键电路图2.1 系统框图 篮球比赛计分器单片机控制系统,显示模块计分器的定时报警按钮控制键盘模块和电源模块。通过几个模块就可以完成相应的计分器控制和显示功能的协调。2.2 软件方案 液晶显示模块是一个慢显示器件,所以在执行每一条指令前要确认模块的忙标志,低电平便是不忙,否则此指令失效。在对液晶模块的出事化中要先设置其显示模式,在液晶模块显示字符是光标是自动右移的,无需人工干预。每次输入指令前都要判断液晶模块是否处于忙状态。系统层次结构图如图2.2所示。系统开始时需要对定时器和LCD进行初始化。单片机需要对按键进行判断,判断是否有按键按下,并判断是那个按键按下,所以需要写入按键扫描函数。比赛中需要暂停或休息,所以又需要写入延时函数。另外显示器要显示数据也需要写入程序让其读取信号。写数据函数主函数定时器初始化函数化函数写指令函数写字符函数LCD初始化函数按键扫描函数延时函数显示时间函数读忙信号判断函数图2.2 系统模块层次结构图3 系统硬件设计3.1 时钟电路设计时钟电路在单片机系统中起着非常重要的作用,是为保证系统正常工作的基础,在一个单片机系统中,时钟是保障系统正常工作的基准震荡定时信号。图3.2是晶振电路,主要有晶振和外围电路组成,晶振频率大小决定单片机的快慢,我们这里采用的是12MHZ, 另外有2个33pF的电容。其中接地用来削减谐波对电路的稳定性的影响。 图3.1 时钟电路图3.2 复位电路设计 单片机系统的复位电路我们采用的是上电加按钮的复位电路形式,电阻采用51欧的阻值,采用22F的电容。其电路连接方式如图3.3。当单片机的复位引脚RESET出现2个机器周期以上的高电平时,单片机就执行复位操作。图3.2 复位电路图3.3 按键电路设计 本设计共有9个设置按键,分别为+1,+2,+3,-1,暂停,24秒复位按键。按键与P1口相接。其电路图如图3.3。图3.3 按键电路图3.4 LCD1602显示器电路设计 该显示器的RS,RW,E端与P2相连,引脚的作用分别是:RS=0输入指令,RS=1输入数据,RW=0向LCD写入指令或数据,RW=1从LCD读取信息,E是使能信号。D0D7与P0(P0口需加上拉电阻你)相连是数据总线。其电路图如图3.4。图3.4 LCD1602电路图3.5 蜂鸣器电路设计采用PNP二极管放大电路,10K欧的电阻串联P2.7口输出,输出为低电平时,蜂鸣器报警。其电路图如图3.5。图3.5 蜂鸣器电路图4 系统软件设计定时器T0,T1及LCD的初始化,T0 计每一小节的倒计时时间,T1计24秒倒计时时间。按键与P1口相接,读取P1口的数据判断是哪个键按下,各个键的作用分别是:对选中的队伍减一分,开始、暂停,24秒复位;LBJ队加一分,加二分,加三分;KOB队加一分,加二分,加三分;复位。等待按键释放并将时间,分数,节次经P0口输出在LCD上显示,P2.7输出到蜂鸣器。其总的流程图如图4。NY定时器0,1,LCD初始化显示倒计时读取P1口的值开始是否有按键按下哪个按键按下加一加二加三减一暂停复位复位经P0,P2.7口输出LCD显示时间、分数、节次,蜂鸣器报警?24秒复位24秒复位24秒复位5 系统调试 系统调试分为软件调试和硬件调试,单片机系统的硬件调试和软件调试是不能分开的,许多硬件错误是在软件调试中被发现和纠正的。但通常是先排除明显的硬件故障以后,再和软件结合起来调试以进一步排除故障。可见硬件的调试是基础,如果硬件调试不通过,软件设计则是无从做起。5.1 软件调试 软件调试主要是运用Keil和Proteus完成。在写好源程序,画出原理图之后,在电脑上进行软件仿真。Keil的使用简介:先建一个新的工程,选择处理器,这里选择AT89C51;接下来可以新建一个文档用来编辑程序,编辑完存为.asm(汇编源文件)或 .h(C语言头文件)或.c(C语言实现文件)即可;接下来把保存的.asm, .c或.h文件加入到工程里即可。然后进行工程配置。点击Project菜单下的Options for Target Target 1。 在弹出对话框的Target 项里输入晶振为12M,然后勾上Use On-chip ROM。在Output项里勾上Create HEX File。最后编译程序,keil会自动为你生成.hex文件。Proteus的使用简介: 将系统原理图在Proteus环境下画好,然后运用Proteus进行仿真,观察其功能实现情况。5.2 硬件调试硬件方面主要是对电路板焊接技术以及布线的整体把握,电路板做好后,经过对单片机烧写程序、调试等一系列工序,硬件达到了预期的效果,各个按钮均能实现其预期功能。5.3 篮球比赛计时计分系统的功能实现 一场正规的篮球赛分为4小节,每节12分钟。打开电源,此时LCD1602第一行、第二行的开头分别显示LBJ、KOB两队的计分栏,第一行的后面显示时间秒倒计时, 第二行的后面分别显示24秒倒计时和节次。 (1)比赛减分:当按下键盘第一行第一键值键时,对应的队减一分。(2)比赛加分:第二行、第三行按键按下时, LBJ队分别加一分,加二分,加三分;KOB队分别加一分,加二分,加三分。(3)开始/暂停: 当按下键盘第一行第一键值键时,比赛时间和24秒将以倒计时暂停,蜂鸣器报警,再次按下,回到计时,蜂鸣器报警。(4)24秒重置:当按下键盘第一行第一键值键时,并且24秒倒计时复位。(5)24秒违例:当不对按键进行任何操作且24秒倒计时结束时,比赛自动暂停。(6)复位:“RESET”为复位键,按下可以实现复位。复位后,LCD1602显示初始状态。5.4 设计过程遇到的问题及解决方法 遇到的问题:在LCD1602V0口接上2K欧的电阻,LCD1602无法显示。 解决方法:换成10K欧的电位器,并调节电位器使LCD1602正常显示6 设计总结 在本次课程设计中,对典型的单片机AT89C51单片机的作品和功能的设计和应用的基础上有了更深刻的认识,进一步了解单片机的编程语言设计。 在设计过程中,我发现了很多的问题入手,给我的感觉是不舒服,看似很简单的电路,把它设计并不是一件容易的事情。主要的原因是平时不经常动手设计电路。似懂非懂的另外的单片机系统的知识,和很多的知识是想通了,当你想使用你却不记得。所以,花了很多时间在代码上,所以整个过程的时间是不合理的。设计计划没安排好,设计的时候是极短时间内在硬件调试过程中,尤其是大问题。查找的信息也是一个重要的问题,这需要学习,应该指出的是,更重要的是,我们要学习学到的知识,从书本和实际的电路连接这两者的学习,甚至就业,将起到极大的促进和帮助。附录A:系统电路图附录B:源程序#include #include #define uchar unsigned char#define uint unsigned int #define Lcd_Port P0 #define KEY_IO P1 sbit RS=P20; sbit RW=P21;sbit E=P22;sbit Busy=P07;sbit speaker=P27;uchar data keytemp,key;uchar c=0;uint b=0;uchar j=0;uchar e=1;uchar d=0;uchar er=240;uchar min=12;uchar sec=0; uchar data flag=0x00;bit flag_key=0; uchar code Lcddata=0123456789:.;void Delay(int t)uchar a;while(t-) for(a=0;a120;a+);void Delayms(int t)uchar a;while(t-) for(a=0;a120;a+);void Timer0Init() TMOD=0x11;TH0=0x3c;TL0=0xb0; TH1=0x3c;TL1=0xb0; ET0=1;ET1=1;TR0=0;TR1=0;EA=1;void IsrTimer0() interrupt 1 using 1 /T0 50mS中断程序 static uchar count=0;TH0=0x3c;TL0=0xb0;count+;if(count=20) count=0; if(sec=0) if(min=0) TR0=0;TR1=0; speaker=0; Delay(1500); speaker=1;e+;min=12; sec=0;er=240; else sec=60; min-; sec-;void IsrTimer1(void) interrupt 3 using 3/T1 50mS中断程序static uchar t24ms=0; TH1=0x3c;TL1=0xb0;t24ms+;if(t24ms=2) t24ms=0;er-; if(er=0) TR1=0; TR0=0; speaker=0;Delay(1500); speaker=1; void Read_Busy(void) uchar i=50;Lcd_Port=0xff;RS=0;RW=1;E=1;while(i-)&Busy);E=0;void Write_Comm(uchar lcdcomm) Read_Busy(); RS=0; RW=0; E=1; Lcd_Port=lcdcomm; E=0;void Write_Char(uint num) Read_Busy();RS=1;RW=0;E=1;Lcd_Port = Lcddatanum;E=0;void Write_Data(uchar lcddata) Read_Busy(); RS=1; RW=0; E=1; Lcd_Port = lcddata; E=0;void Init_LCD(void) Delay(400); /稍微延时,等待LCM进入工作状态 Write_Comm(0x38); /8位2行5*8 Write_Comm(0x0c); /显示开/关,光标开闪烁开 Write_Comm(0x01); /清显示 Write_Comm(0x06); /文字不动,光标右移 Write_Comm(0x02); /光标归位void Show_Time(void)Write_Comm(0x80+0x48); Write_Char(er/100);Write_Char(er/10%10);Write_Char(11);Write_Char(er%10);Write_Comm(0x80+0x4d);Write_Char(e%10); Write_Comm(0x80+0x0a);Write_Char(min/10); /显示倒计时分钟Write_Char(min%10);Write_Char(10); /显示:Write_Char(sec/10); /显示倒计时秒Write_Char(sec%10);Write_Comm(0x80+0x44);Write_Char(d/100);Write_Char(d/10%10);Write_Char(d%10%10);Write_Comm(0x84);Write_Char(c/100);Write_Char(c/10%10);Write_Char(c%10%10); void keyscan()uchar i,t=0xef; /1110 1111 KEY_IO=0x0f;keytemp=(KEY_IO)&0x0e;if(keytemp!=0) /0000 0000 ;0000 1000; 0000 0100; 0000 0010; 0000 0001;Delay(20); for(i=0;i3;i+)KEY_IO=t; keytemp=(KEY_IO)&0x0e; if(keytemp!=0&flag_key=0) flag_key=1;switch(keytemp) case 0x08:key=0*3+i;break; case 0x04:key=1*3+i;break; case 0x02:key=2*3+i;break; default:break; switch(key) case 0:d+;j=1;b=0;break; case 1:d+;d+;j=1;b=0;break; case 2:d+;d+;d+;j=1;b=0;break; case 3:c+;b=1;j=0;break; case 4:c+;c+;b=1;j=0;break; case 5:c+;c+;c+;b=1;j=0;break; case 6:if(j=1&(d!=0) d-;if(b=1&(c!=0) c-;break; case 7:TR0=TR0;TR1

温馨提示

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

评论

0/150

提交评论