球赛计时计分器设计35Word文件下载.docx
《球赛计时计分器设计35Word文件下载.docx》由会员分享,可在线阅读,更多相关《球赛计时计分器设计35Word文件下载.docx(13页珍藏版)》请在冰豆网上搜索。
关键词:
单片机,计时,计分,显示器,接口
第一章系统硬件电路设计
1.1
篮球赛计时计分器电路工作过程
整个篮球计时计分器的工作过程如下:
首先在比赛之前,接通电源,系统自动复位,此时计时电路与计分电路中的共阴极数码管分别显示为0000和000000;
然后我们按照计时电路图中的K1、K2、K3、K4键来设置比赛时间,K1、K2设置分位,K3、K4设置秒位。
比赛分四节进行,可以对每节比赛时间进行设置,在这里我将每节比赛时间默认为15分钟。
时间设置好时,等待赛程开始,当裁判吹响哨声时,按下K5启动计时,这时计时电路便开始工作,计时采用倒计时方式,即从15分钟减为0分钟表示第一节结束。
第一节比赛结束后,比赛进入休息时间,当第二节比赛开始时,按下K6健比赛双方交换场地和比分,时间重置为15分钟。
哨声响起时,按下K5健,倒计时开始。
第二节与第一节比赛过程一样,直至上半场比赛结束。
在整个赛程中,我们还要对两队比分进行及时刷新,这时我们通过计分电路图中的K1~K4键完成此功能,K1和K2键完成甲队加分、减分,K3和K4键完成乙队加分、减分。
按键每按一下,表示加上或者减去1分。
由于加分、减分我们采用中断完成,且加、减分的中断优先权小于计时电路中的中断优先权,所以不会对计时电路造成影响。
如果在赛程过程中,一方的教练申请暂停时,经裁判批准,我们立即按下K5键,即可以暂停计时,暂停时间到时,再按下K5键继续计时,直至整个赛程结束,蜂鸣器会发出10秒的响声。
比赛期间如果发生误判,比如两分变三分,进球无效,都可以通过减分按键对比分进行修改,非常方便。
1.2
系统硬件电路组成
1.2.1
计时电路
1.显示器及其接口
显示器是最常用的输出设备,其种类繁多,但在单片机系统设计中最常用的是发光二极管显示器(LED)和液晶显示器(LCD)两种。
由于这两种显示器结构简单,价格便宜,接口容易实现,因而得到广泛的应用。
下面介绍发光二极管显示器(LED)的结构、工作原理及其接口电路。
(1)LED结构与原理
图2-1为典型的数码管。
如图2-1,LED显示器又称为数码管,LED显示器由8个发光二极管组成。
中7个长条形的发光管排列成“日”字形,另一个点形的发光管在显示器的右下角作为显示小数点用,它能显示各种数字及部份英文字母。
LED显示器有两种不同的形式:
一种是8个发光二极管的阳极都连在一起的,称之为共阳极LED显示器;
另一种是8个发光二极管的阴极都连在一起的,称之为共阴极LED显示器。
如图2-2所示。
本设计采用的是共阴极数码管显示。
表2-1列出了共阳极与共阴极LED显示器显示数字、字母与显示代码之间的对应关系。
(2)LED显示器显示方式
点亮LED显示器有两种方式:
一是静态显示;
二是动态显示。
在本次设计中,采用的动态显示。
所谓静态显示,就是每一个显示器都要占用单独的具有锁存功能的I/O接口用于笔划段字形代码。
这样单片机只要把要显示的字形代码发送到接口电路,就不用管它了,直到要显示新的数据时,再发送新的字形码,因此,使用这种方法单片机中CPU的开销小。
这种电路的优点在于:
在同一时间可以显示不同的字符;
但缺点就是占用端口资源较多。
从图2-3可以看出,每位LED显示器需要单独占用8根端口线,因此,在数据较多的时候,往往不采用这种设计,而是采用动态显示方式。
本设计采用的便是此种显示方式。
所谓动态显示,就是将要显示的多位LED显示器采用一个8位的段选端口,然后采用动态扫描一位一位地轮流点亮各位显示器。
下图2-4为4位LED显示器动态显示电路。
在此电路中,单片机的P1口用于控制4位LED的段选码:
P2口的P2.0~~P2.3用于控制4位LED位选码。
由于所有的段选码连在一起,所以同一瞬间只能显示同一种字符。
但如果要显示不同字符,则要由位选码来控制。
(如果LED为共阴极则P2.0~~P2.3输出为高电平,如果LED为共阳极则P2.0~~P2.3输出为低电平。
)
例如,现在要显示“5678”四个数字,则首先应该将“5”的显示代码(共阴LED显示器的显示代码为6DH,共阳LED显示器的显示代码为92H)由P1.0送出,然后P2.0~~P2.3输出相应位码(LED为共阴则P2.0~~P2.3输出1000,
LED为共阳则P2.0~~P2.3输出0111)时,则可以看到在数码管1上显示的数字为“5”。
再将显示的数字“5”延时5~10ms,以造成视觉暂留效果;
同时代码由P1.0送出。
用同样的方法将其余3个数字“678”送数码管2,3,4显示,于是最后则可以在4位LED显示器上看到“5678”四个数字。
为了使显示效果更加稳定,可以使每个数码管所显示的数字不断的重复,但其中重复频率达到了一定的程度的时候,加之人眼睛本身的视觉暂留效果的作用,便可以看到相当稳定的“5678”四个数字。
如表2-2,即为模拟以上的过程表(以共阴LED设置显示代码,共阳型与此相反)。
2.报警器
(1)报警器的分类
蜂鸣器有两类3大品种。
一类是压电式,一类是电磁式,电磁式又有两大品种,铁振膜式和动圈式,二者原理一样只是结构不同。
所有蜂鸣器都有两种类型:
纯蜂鸣器和带驱动的蜂鸣器,蜂鸣器都是用音频信号驱动的,都是交流驱动。
(3)报警
器的工作原理
报警器的种类很多,比如:
扬声器,蜂鸣器等,本次设计采用的是电磁式蜂鸣器作为报警器。
电磁式蜂鸣器由振荡器、电磁线圈、磁铁、震动膜片以及外壳等组成。
接通电源后,振荡器产生的音频信号通过电磁线圈,使得电磁线圈产生了一个磁场。
振动膜片在电磁线圈和磁铁的相互作用下,周期性的振动发声。
3.
计时电路的工作原理
计时电路主要由开关K1、K2、K3、K4,单片机AT89C51,以及LED显示器构成。
在本次设计中,没有用到译码器等芯片。
很多在程序中直接实现。
其工作过程如下:
当比赛准备开始的时候,需要对时间进行调节。
当调时(分位)开关K1(增加)按下时,执行一个延时程序,为了消除按键抖动影响,检验K1是否真正被按下。
当确定K1确实被按下后,接着会进行分钟检测,当分钟数小于99时,执行程序minit+1,否则minit将保持不变为99。
当调时开关(分位)K2(减少)按下时,同样也执行一个延时程序,为了消除按键抖动影响,检验K2是否真正被按下。
当确定K2确实被按下后,接着会进行分钟检测,当分钟数大于零时,执行程序minit-1,否则minit将保持不变为零。
调时按键(分位)开关每按一次,数字自动加1或减1,直到调到需要设置的时间即可。
且开关按下不松相当于按下一次,这里由while语句来实现。
调时(秒位)的操作方法与上面一样。
时间设置完成后,启动定时器T0开始定时计数。
计时采用倒计时,比如:
设置的时间为45分钟,则在LED上显示“4500”四位数。
定时T0计数60秒后中断返回,继续定时计数下一个60秒;
同时则在4位LED显示器上显示“4459”四位数,表示时间已过去1秒钟,即为44分59秒。
这样一直持续下去,直到变为“0000”时表示赛程结束。
如果比赛中,裁判叫暂停,则只要按一下K5键,即可暂停计时。
4.振荡电路
本次设计要使用到AT89C51单片机的时钟振荡功能。
AT89C51中有一个用于构成内部震荡器的高增益反相放大器,引脚XTAL1和XTAL2分别是该放大器的输入和输出端。
这个放大器与作为反馈元件的片外石英晶体[6]或者陶瓷谐振器一同构成自激振荡器。
振荡电路如图2-6所示。
如图2-6,外接石英晶体或者陶瓷谐振器以及电容C1,C2接在放大器的反馈电路中构成并联谐振电路。
谐振器本身对外接电容C1、C2虽然没有十分严格的要求,但电容容量的大小会轻微影响振荡频率的高低、振荡器工作的稳定性、起振的难易程度以及温度的稳定性,如果使用石英晶体,推荐使用30pF,而建议若使用陶瓷谐振器选择40pF。
我们也可以使用外部时钟,采用外部时钟电路如图2-7所示。
在外接时钟的情况下,外部时钟脉冲接到XTAL1端,即内部时钟脉冲的输入端,XTAL2则悬空。
由于外部时钟信号是通过一个两分频触发器后作为内部时钟信号的,所以对外部时钟信号的占空比[8]没有特殊要求,但最小的高电平持续时间和最大的低电平持续时间应符合技术条件以及本次设计所采用硬件的要求。
本次设计使用的是石英晶体谐振器,因此采用15pF的电容,频率大小采用12MHZ与6MHZ均可,这里采用的是12MHZ晶振。
1.2.2
计分电路
其工作原理如下:
计分电路主要由单片机AT89C51,LED显示器,以及按键开关组成。
与计时电路类似,电路未采用串行/并行转换器,74LS21等芯片。
利用程序将一些器件能实现的功能直接实现。
按键开关K1、K2、K3、K4组成甲、乙两队加减分控制。
在比赛进行中时,当K1(甲队加分)被按下后,首先执行一段延时程序,目的是为了消除按键抖动,检测按键K1是否真正被按下。
若K1确实被按下,接着检验甲乙两队是否交换场地。
若K1被按下,两队未交换场地,且甲队分数小于999,执行score甲+1,否则score甲一直等于999。
若两队交换场地,且乙队分数小于999,执行程序score乙+1,否则score乙一直等于999。
当K2(甲队减分)被按下后,同样首先执行一段延时程序,目的消除按键抖动影响,检测K2是否真正被按下。
检验完毕后,检验甲乙两队是否交换场地,如未交换场地,且甲队分数大于零,执行score甲-1,否则score甲一直等于零。
若两队交换了场地,且乙队分数大于零,执行程序score乙-1,否则score乙一直等于零。
同样,对于K1、K2按下不松只相当于按下一次,由while语句来实现。
同理,对于K3、K4,同以上K1、K2控制甲队相同,程序大同小异。
都可实现对乙队的比分控制。
1.3器件选择
本系统在设计的过程中主要选取了以下一些器件:
单片机:
AT89C51
排阻:
RESPACK-8
蜂鸣器:
SPEAKER
显示器件:
八段共阴极LED显示器
按键:
欧姆龙按键
晶振:
12MHZ
第二章软件编程及调试
2.1流程图如下所示:
说明:
计时模块中,比较关键的是K5键,即开始\暂停键。
按下时,执行倒计时程序,时间到时,喇叭响起;
未按下时,执行时间设置程序。
按键是否被按下由延时程序实现,延时5-10ms,从而消除按键抖动影响。
2.3
计分系统程序设计
计分系统程序设计的流程图如下图:
加分过程必须在倒计时过程中进行,并且交换比分需在倒计时完成后进行,同时时间设置为默认15分钟。
同理,与计时模块类似,消除按键抖动影响由延时程序来实现。
仿真图如图所示:
结论:
系统电路部分设计没有原则性的错误,在制版的过程中注意了走线,因此硬件部分功能完好。
但因为软件系统编写方面的疏忽,在比分交换及计时部分没有能很好的实现。
除此之外,软件达到了系统的要求。
参考文献
[1]
徐惠民,
安德宁.
单片微型计算机原理接口及应用.
(第二版)
北京:
北京邮电大学出版社.
2000:
23-38
[2]
唐俊翟.
单片机原理与应用.
冶金工业出版社,
2003.
83]
丁明亮,
唐前辉.
51单片机应用设计与仿真-基于Keil
C和Proteus
.
北京:
北京航空航天大学出版社,
2009
[4
]彭为.
黄科,
雷道仲.
单片机典型系统设计实例精讲.
电子工业出版社.
2006:
247-273
[5]
潘永雄.
新编单片机原理与应用.
西安:
西安电子科技大学出版社.
2003
[6]
求是科技.
单片机典型模块设计实例导航.
人民邮电出版社,
2004
[7]
李广弟.
单片机基础.
2001.
7:
63-65
[8]
余发山.
单片机原理及应用技术.
徐州:
中国矿业大学出版社,
[9]
马家辰,
孙玉德,
张颖等.
MCS-51单片机原理及接口技术.哈尔滨:
哈尔滨工业大学出版社,
1997:
178-179
[10]
崔华,
蔡炎光
单片机实用技术.
清华大学出版社,
[11]
周润景,张丽娜.
基于PROTEUS的电路及单片机系统设计及仿真.
北京航空航天大学出版社,2006.
5:
3-19
[12]
宋凤娟,
廉文利,
付云强.
单片机89C51在调速系统中的应用.
微计算机信息,
2007,
12(6):
113-114
[13]
单片机应用系统开发实例导航.
[14]
何立民.
单片机应用技术选编.
2002
[15]
电子世界.
2005年9月刊.
国内邮发代号:
2-892
[16]
蒋辉平,
周国雄.
基于PROTEUS
的单片机系统设计与仿真实例.
机械工业出版社,
[17]
李东生.
Protel99
SE电路设计技术入门与应用.
第一版.
[18]
罗伯特森.
PCB设计基础.
机械工业出版社.2007.5:
15-20
[19]
金素华,
张尉.
单片机调试方法的讨论.
电子世界,
2004,
25(4):
34-65
[20]
姚四改.
Protel
99SE电子线路设计教程.
上海:
上海交通大学出版社,
2000:
30-51
[21]
崔玮.
99
SE电路原理图与电路板设计教程.
2005:
221-253
[22]
刘勇,
潘艳等译的.
机械工业出版,
2007:
80-120