




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1. 设计任务和性能指标1.1设计任务利用单片机完成篮球比赛计分器,倒计时器,能更改时间和记分。1.2性能指标(1) 计分器能实现0-99的分数显示。(2) 倒计时器能实现12分钟倒计时的准确显示,能实现暂停,时间的更改,倒计时完毕实现上下半场的自动更换。(3) 能够实现场次的手动更换。2 设计方案2.1任务分析模拟篮球比赛计分器就是用单片机来控制一个矩阵键盘和数码管,模拟真实的篮球计分器,两个LED灯来表示上下半场,利用数码管倒计数表示倒计时和记分,再使用矩阵键盘来更改分数和倒计时。2.2方案设计根据设计的要求可知,系统的硬件原理框图如下图所示。系统硬件框图单片机选用的是STC89C52RC
2、,它与8052系列单片机全兼容,但其内部带有8KB的FLASH ROM,设计时无需外接程序存储器,为设计和调试带来极大的方便。倒计时和记分使用三个数码管来显示,同时需要对三个数码管进行显示。键盘系统可以根据系统的需要设置不同的键的个数,可以选择线式键盘或矩阵式键盘,若单片机的IO口不够用时,可以考虑扩展8255或8155满足系统的要求。软件方案方面,软件可由汇编语言完成,也可由C语言完成。软件设计可以分为以下几个功能模块:主程序:初始化。键盘监控模块:实现实时的硬盘监控。场次模块:实现场次更换。时间更改模块:实现时间更改。分数更改模块:记分。倒计时模块:定时器的中断服务子程序,完成1ms的时间
3、定时,实现时间的精确倒数。3 系统硬件设计3.1单片机的最小系统STC公司生产的STC89C52RC单片机它是硬件电路的核心部分,时钟电路晶振使用11.0592MHz,复位电路采取按键复位方式。单片机系统的时钟电路单片机系统的复位电路3.2电源电路设计电源用5V直流直接供电。3.3数码管显示电路显示电路采用2个2位共阳数码管,P0作为数码管的输出,P1.1,P1.2分别作为数与位的选择。分数显示电路倒计时显示电路锁存器电路3.4矩阵键盘电路键盘电路使用12键九宫格模式,使用P2.0-P2.6进行键盘的监控。4 系统软件设计4.1 主程序设计系统程序流程图 5 调试及性能分析5.1 调试分析5.
4、1.1软件调试软件调试主要是利用proteus仿真软件完成电路的搭建,运行以发现设计中的错误及时改正。5.1.2 硬件调试硬件调试主要是检测硬件电路是否有短路、断路、虚焊等。具体步骤及测试结果如下:(1)检查电源与地线是否全部连接上,用万用表对照电路原理图测试各导线是否完全连接,对未连接的进行修复。(2)参照原理图,检查各个器件之间的连接是否连接正确,是否存在虚焊,经测试,各连接不存在问题。(3)以上两项检查并修复完后,给该硬件电路上电,电源指示灯点亮。5.1.3 系统功能调试 通过软件仿真显示,系统基本能完成要求,由于设计思路出现问题,键盘没有正确的做出来,后作出代码调整,功能成功实现。6
5、心得体会这次单片机课程设计历时两个星期的时间,在这次设计过程里我体验了从设计、画电路、编程、焊板到调试的整个过程。对于计分器这个题目,由于以前学单片机这个课程时,做过类似相关的实验,觉得这个比较简单而且做出的东西也比较直观,在确定题目之后,查阅了大量的资料,初步完成了电路设计方案。接着就是画电路,这个软件的应用学过了,但是学的时候感觉很简单,但是到了具体设计的时候,问题不断的出来,比如有的器件库里面没有封装,要自己花封装,这时候就很容易出问题,比如焊盘的大小,有的器件上焊盘大小不一样,有个别大的是用来固定的,这个很容易被忽略。接下来就是程序的设计了,虽然感觉计分器程序没什么难的,就是数码管倒计
6、时显示加分数显示就完事了,但是也许是起初想的太简单,设计时到了细节处,也出了不少问题,而且很难被检查出来,但是最后经过不断努力不断的解决BUG,还是写出来正确的代码。通过这次课设,对以前学过的知识进行了巩固,加深了理解,提高了应用的能力,而且提高了我们的发现、分析、解决问题的能力。经历了从最初的设计到最后做出产品的开发过程,提高了对专业的认识及兴趣,对于我来说,对以后就业有及其重大的影响。参考文献1李全利,单片机原理及接口技术第2版 北京高等教育出版社 2009年1月2百度文库,STC89C52RC单片机3WIKI百科附录1 系统仿真图附录3 程序清单/*-程序实验功能倒计时显示,记分,键盘更
7、改时间,记分.自动或手动更换场次.-*/89c52.h #ifndef _STC89C5xRC_RDP_H_#define _STC89C5xRC_RDP_H_/* The following is STC additional SFR */* sfr AUXR = 0x8e; */* sfr AUXR1 = 0xa2; */* sfr IPH = 0xb7; */sfr P4 = 0xe8;sbit P46 = P46;sbit P45 = P45; /ISP下载需勾选"ALE脚用作P4.5口"sbit P44 = P44;sbit P43 = P43;sbit P42
8、= P42;sbit P41 = P41;sbit P40 = P40;sfr XICON = 0xc0;sfr WDT_CONTR = 0xe1;sfr ISP_DATA = 0xe2;sfr ISP_ADDRH = 0xe3;sfr ISP_ADDRL = 0xe4;sfr ISP_CMD = 0xe5;sfr ISP_TRIG = 0xe6;sfr ISP_CONTR = 0xe7;/* Above is STC additional SFR */*-REG51F.HHeader file for 8xC31/51, 80C51Fx, 80C51Rx+Copyright (c) 1988
9、-1999 Keil Elektronik GmbH and Keil Software, Inc.All rights reserved.Modification according to DataSheet from April 1999 - SFR's AUXR and AUXR1 added for 80C51Rx+ derivatives-*/* BYTE Registers */sfr P0 = 0x80;sbit P00 = P00;sbit P01 = P01;sbit P02 = P02;sbit P03 = P03;sbit P04 = P04;sbit P05 =
10、 P05;sbit P06 = P06;sbit P07 = P07;sfr P1 = 0x90;sbit P10 = P10;sbit P11 = P11;sbit P12 = P12;sbit P13 = P13;sbit P14 = P14;sbit P15 = P15;sbit P16 = P16;sbit P17 = P17;sfr P2 = 0xA0;sbit P20 = P20;sbit P21 = P21;sbit P22 = P22;sbit P23 = P23;sbit P24 = P24;sbit P25 = P25;sbit P26 = P26;sbit P27 = P
11、27;sfr P3 = 0xB0;sbit P30 = P30;sbit P31 = P31;sbit P32 = P32;sbit P33 = P33;sbit P34 = P34;sbit P35 = P35;sbit P36 = P36;sbit P37 = P37;sfr PSW = 0xD0;sfr ACC = 0xE0;sfr B = 0xF0;sfr SP = 0x81;sfr DPL = 0x82;sfr DPH = 0x83;sfr PCON = 0x87;sfr TCON = 0x88;sfr TMOD = 0x89;sfr TL0 = 0x8A;sfr TL1 = 0x8
12、B;sfr TH0 = 0x8C;sfr TH1 = 0x8D;sfr IE = 0xA8;sfr IP = 0xB8;sfr SCON = 0x98;sfr SBUF = 0x99;/* 80C51Fx/Rx Extensions */sfr AUXR = 0x8E;sfr AUXR1 = 0xA2;sfr SADDR = 0xA9;sfr IPH = 0xB7;sfr SADEN = 0xB9;sfr T2CON = 0xC8;sfr T2MOD = 0xC9;sfr RCAP2L = 0xCA;sfr RCAP2H = 0xCB;sfr TL2 = 0xCC;sfr TH2 = 0xCD
13、;/* PCA SFRsfr CCON = 0xD8;sfr CMOD = 0xD9;sfr CCAPM0 = 0xDA;sfr CCAPM1 = 0xDB;sfr CCAPM2 = 0xDC;sfr CCAPM3 = 0xDD;sfr CCAPM4 = 0xDE;sfr CL = 0xE9;sfr CCAP0L = 0xEA;sfr CCAP1L = 0xEB;sfr CCAP2L = 0xEC;sfr CCAP3L = 0xED;sfr CCAP4L = 0xEE;sfr CH = 0xF9;sfr CCAP0H = 0xFA;sfr CCAP1H = 0xFB;sfr CCAP2H =
14、0xFC;sfr CCAP3H = 0xFD;sfr CCAP4H = 0xFE;*/* BIT Registers */* PSW */sbit CY = PSW7;sbit AC = PSW6;sbit F0 = PSW5;sbit RS1 = PSW4;sbit RS0 = PSW3;sbit OV = PSW2;sbit P = PSW0;/* TCON */sbit TF1 = TCON7;sbit TR1 = TCON6;sbit TF0 = TCON5;sbit TR0 = TCON4;sbit IE1 = TCON3;sbit IT1 = TCON2;sbit IE0 = TC
15、ON1;sbit IT0 = TCON0;/* IE */sbit EA = IE7;sbit EC = IE6;sbit ET2 = IE5;sbit ES = IE4;sbit ET1 = IE3;sbit EX1 = IE2;sbit ET0 = IE1;sbit EX0 = IE0;/* IP */ /* sbit PPC = IP6;*/sbit PT2 = IP5;sbit PS = IP4;sbit PT1 = IP3;sbit PX1 = IP2;sbit PT0 = IP1;sbit PX0 = IP0;/* P3 */sbit RD = P37;sbit WR = P36;
16、sbit T1 = P35;sbit T0 = P34;sbit INT1 = P33;sbit INT0 = P32;sbit TXD = P31;sbit RXD = P30;/* SCON */sbit SM0 = SCON7; / alternatively "FE"sbit FE = SCON7;sbit SM1 = SCON6;sbit SM2 = SCON5;sbit REN = SCON4;sbit TB8 = SCON3;sbit RB8 = SCON2;sbit TI = SCON1;sbit RI = SCON0; /* P1 */* PCAsbit
17、CEX4 = P17;sbit CEX3 = P16;sbit CEX2 = P15;sbit CEX1 = P14;sbit CEX0 = P13;sbit ECI = P12;*/sbit T2EX = P11;sbit T2 = P10;/* T2CON */sbit TF2 = T2CON7;sbit EXF2 = T2CON6;sbit RCLK = T2CON5;sbit TCLK = T2CON4;sbit EXEN2 = T2CON3;sbit TR2 = T2CON2;sbit C_T2 = T2CON1;sbit CP_RL2= T2CON0;/* CCON */* PCA
18、sbit CF = CCON7;sbit CR = CCON6;sbit CCF4 = CCON4;sbit CCF3 = CCON3;sbit CCF2 = CCON2;sbit CCF1 = CCON1;sbit CCF0 = CCON0;*/#endif/dinyi.hvoid set();void shuzi_xianshi();void delay(unsigned int ms);void key_check();void jishi();void fenshu();void changci();void time_change();void shijian_change();vo
19、id led_zhishi();#define uchar unsigned char/delay.cvoid delay(unsigned int ms) /延时char t;while(ms-)for(t = 0;t < 112;t+);/mian.c#include <89c52.h>#include <dingyi.h>char t=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71;char a=0xff,0xfe,0xfd,0xfb,0xf7,0
20、xef,0xdf,0xbf,0x7f;int mx,mod1,mod2,mod3,mod4,mod5,mod6,mod7,mod8,temp;mx = 1;mod1 = 9;mod2 = 5;mod3 = 1;mod4 = 1;mod5 = 0;mod6 = 0;mod7 = 0;mod8 = 0;temp = 0;void main()set();while(1)key_check();fenshu();changci();time_change();shijian_change(); void set() /初始化函数,设置中断触发方式,开中断EA = 1; ET1 = 1;TR1 = 1
21、;TMOD = 0x10;TH1 = 0xfc;TL1 = 0x66;EX0 = 1;IT0 = 1;void shuzi_xianshi()/数显if(mx=1)P10 = P11 = 0;P0 = tmod4;/显示字P10 = 1;P10 = P11 = 0;P0 = amx;/显示位P11 = 1;if(mx=2)P10 = P11 = 0;P0 = 0x00;P10 = 1;P10 = P11 = 0;P0 = amx-1;P11 = 1;if(mx=3)P10 = P11 = 0;P0 = tmod3;P10 = 1;P10 = P11 = 0;P0 = amx-1;P11 = 1
22、;if(mx=4)P10 = P11 = 0;P0 = 0x00;P10 = 1;P10 = P11 = 0;P0 = amx-2;P11 = 1;if(mx=5)P10 = P11 = 0;P0 = tmod2;P10 = 1;P10 = P11 = 0;P0 = amx-2;P11 = 1;if(mx=6)P10 = P11 = 0;P0 = 0x00;P10 = 1;P10 = P11 = 0;P0 = amx-3;P11 = 1;if(mx=7)P10 = P11 = 0;P0 = tmod1;P10 = 1;P10 = P11 = 0;P0 = amx-3;P11 = 1;if(mx
23、=8)P10 = P11 = 0;P0 = 0x00;P10 = 1;P10 = P11 = 0;P0 = amx-4;P11 = 1;if(mx=9)P10 = P11 = 0;P0 = tmod5;P10 = 1;P10 = P11 = 0;P0 = amx-4;P11 = 1;if(mx=10)P10 = P11 = 0;P0 = 0x00;P10 = 1;P10 = P11 = 0;P0 = amx-5;P11 = 1;if(mx=11)P10 = P11 = 0;P0 = tmod6;P10 = 1;P10 = P11 = 0;P0 = amx-5;P11 = 1;if(mx=12)
24、P10 = P11 = 0;P0 = 0x00;P10 = 1;P10 = P11 = 0;P0 = amx-6;P11 = 1;if(mx=13)P10 = P11 = 0;P0 = tmod7;P10 = 1;P10 = P11 = 0;P0 = amx-6;P11 = 1;if(mx=14)P10 = P11 = 0;P0 = 0x00;P10 = 1;P10 = P11 = 0;P0 = amx-7;P11 = 1;if(mx=15)P10 = P11 = 0;P0 = tmod8;P10 = 1;P10 = P11 = 0;P0 = amx-7;P11 = 1;if(mx=16)P1
25、0 = P11 = 0;P0 = 0x00;P10 = 1;P10 = P11 = 0;P0 = amx-8;P11 = 1;mx = 0;/shijian.c#include <89c52.h>#include <dingyi.h>extern ms,mx,mod1,mod2,mod3,mod4,temp;extern uchar chang;int j=1;void dingshiqi1() interrupt 3 /定时器1TH1 = 0xfc;TL1 = 0x66;mx+;if(j%2!=0)temp+;jishi();shuzi_xianshi();void
26、jishu_zhanting() interrupt 0 /暂停j+;void jishi()/计时if(temp=1000)mod1-;temp=0;if(mod1=-1)mod2-;mod1=9;if(mod2=-1)mod3-;mod2=5;if(mod3=-1)mod4-;mod3=9;if(mod4=-1)mod1 = 9;mod2 = 5;mod3 = 1;mod4 = 1;chang+;j+;/fenshu.c#include <89c52.h>#include <dingyi.h>extern int mod5,mod6,mod7,mod8;extern
27、 uchar keyv,temp2,in;static uchar j1,k1,j2,k2,a1,b1; uchar x;void fenshu()if(keyv=10)&&(in=0) a1 = 1;b1 = 0;x=0;if(keyv=11)&&(in=0) b1 = 1;a1 = 0;x=0;if(a1 = 1)if(temp2=1)&&(keyv!=10)&&(keyv!=11)j1 = keyv;mod5 = j1;x=1;if(temp2=2)&&(keyv!=10)&&(keyv!=1
28、1)k1 = keyv;mod6 = k1;x=0;a1 = 0;temp2 = 0;if(b1 = 1)if(temp2=1)&&(keyv!=10)&&(keyv!=11)j2 = keyv;mod7 = j2;x=1;if(temp2=2)&&(keyv!=10)&&(keyv!=11)k2 = keyv;mod8 = k2;x=0;b1 = 0;temp2 = 0;/timechange.c#include <89c52.h>#include <dingyi.h>static uchar j1,k1
29、,j2,k2,a1,b1; uchar in = 0;extern uchar keyv,temp2;extern int mod1,mod2,mod3,mod4;extern uchar x;void time_change()/时间更改按键if(P15=0)delay(10);if(P15=0)in+;P30 = 0;while(P15=0);if(in=2)in=0;P30 = 1;void shijian_change()if(keyv=10)&&(in!=0) a1 = 1;b1 = 0;x=0;if(keyv=11)&&(in!=0) b1 = 1;a1 = 0;x=0;if(a1 = 1)if(temp2=1)&&(keyv!=10)&&(keyv!=11)j1 = keyv;mod4 = j1;x=1;if(temp2=2)&&(keyv!=10)&&(keyv!=11)k1 = keyv;mod3 = k1;x=0;a1 = 0;temp2 = 0;if(b1 = 1)if(temp2=1)&&(keyv!=10)&
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 如何推动农业科技与产业融合发展
- 小区停车管理规定解析
- 化学品生产工艺技术规定
- 2025浙江金华市武义县司法局招聘4人笔试含答案
- 如何让绿植更好抵御寒冬
- 职业教育学习规范
- 心肌酶检测方法
- 2025西安国际港务区陆港第七小学招聘笔试含答案
- 2025年碳资产管理师考试题库(附答案和详细解析)
- 2025年事业单位工勤技能-广东-广东计算机信息处理员三级高级历年参考题库含答案解析
- DB21-T 4079-2024 畜禽养殖场污水贮存设施建设规范
- 地产楼盘售卖合同范例
- 诚信培训教育课件
- 人教版八年级上册历史的知识点
- 马凡氏综合征课件
- 中国共产主义青年团团章
- 《信息技术基础》高职全套教学课件
- 《 人体解剖学 》课程标准-康复治疗技术等专业(2022年修改)
- 格构柱、杯形基础钢结构工程施工组织设计
- 2024公安机关人民警察高级执法资格考试题(解析版)
- 质量为纲-华为公司质量理念与实践
评论
0/150
提交评论