电子记分牌
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
单片机综合实验
实验报告
学院计算机与电子信息学院
专业电子信息工程班级电信14-2班
姓名学号
实验题目电子记分牌的设计
系统环境自制开发板指导教师左敬龙实验时间 2016年10月24日至 2016年10月28日
实验报告评分:_______
电子记分牌的设计
班级:电信14-2 姓名:陈文广
摘要:
本设计是采用AT89C51单片机设计的一个用于比赛的计时计分器。本设计采用定时器T1中断进行计时,显示部分分为计分显示和计秒显示两部分,均采用数码管显示器显示,用于显示整个比赛赛程的比赛时间和两队的比分情况。采用9个按键实现输入功能,用于赛前调节时间、比赛过程中计分、暂停和开始、比赛时间结束以后报警等功能。
关键词:AT89C51 计时计分数码管
1 课题意义
大多数比赛中都需要向观众和选手展示比赛得分情况,需要用到记分牌。在目前的市场上,普通记分牌系统都需要几百块,价格比较高。本项目设计的记分牌系统,电路简单,成本较低,灵敏可靠,操作方便,具有较高的推广价值。
本设计采用AT89C51单片机作为核心部件,整个系统结构简单、实用性强、操作简便、具有低功耗,可靠性,安全性以及低成本等特点,该设计方案完全满足篮球计分器的设计要求。现在比赛计时计分器的设计大都比较的复杂,所用芯片太多,造成整体的价格提高,而且软件设计比较的复杂。导致性价比不是很高,很难得到广泛的推广。我所设计的这个比赛计时计分器一改他们的缺点,硬件比较的简单,软件也很容易。因此,实用性比较大。
2 总体设计方案
2.1 设计思路
1)设计一个比赛记分牌,用4位LED显示比赛两方的分数(每方分数用2位LED表示)。比赛开始时显示零分。
2)每方都有得分按键和减分按键,得分按键每按一次加一分,减分按键每按一次减一分,并用数码管显示累计的分数。
扩展要求:
3)设置补时按键(例如足球比赛有补时提示)。补时时间可自己设置,时间方式为分分秒秒(即最大为59.99,最少为1秒)。
2.2 设计方案
单片机的选用AT89C51单片机,AT89C51单片机具有指令简单,易学易懂,外围电路简单,硬件设计方便,i/o口操作简单,无方向寄存器,资源丰富,价格便宜、容易购买,资料丰富容易查到,程序烧写简单等优点。
软件控制利用AT89C51单片机内部的定时器/计数器进行中断定时,配合软件延时实现计时。该方案节省硬件成本,并且可综合运用定时器/计数器、中断以及程序设计的知识。
显示电路采用2片2位的数码管分别显示双方比分数和1片4位数码管显示比赛时间。
2.3 设计方框图
3 设计原理分析
3.1 总电路图
图 1
如图1所示本设计包括时钟和复位电路、显示电路、响铃电路和按键电路组成。整体工作流程图如下:
Y
3.2 时钟和复位电路
在单片机系统中起着非常重要的作用,是保证系统正常工作的基础,晶振的频率决定了整个系统工作的快慢。单片机有两种时钟产生方式,一种是外部时钟方式,一种是内部时钟方式。外
部时钟方式虽然精度高,稳定性好,但是成本高,需要额外提供一个外部震荡信号。这次设计采用内部震荡方式。设计要使用到AT89C51单片机的时钟振荡功能。其中有一个用于构成内部震荡器的高增益反相放大器,引脚XTAL1和XTAL2分别是该放大器的输入和输出端。这个放大器与作为反馈元件的片外石英晶体或者陶瓷谐振器一起构成自激振荡器。
外接石英晶体或者陶瓷谐振器以及电容C1,C2接在放大器的反馈电路中构成并联谐振电路。谐振器本身对外接电容C1、C2虽然没有十分严格的要求,但电容容量的大小会轻微影响振荡频率的高低、振荡器工作的稳定性、起振的难易程度以及温度的稳定性,如果使用石英晶体,推荐使用30pF,而使用陶瓷谐振器建议选择40pF。
复位电路,51单片机在时钟电路工作以后,在RST端持续给出2个机器周期的高电平就可以完成复位操作,复位分为上电复位和外部复位两种方式。主要功能是把系统初始化,当程序运行错误或者进入死循环的时候,为摆脱困境,可以按复位键以重新启动。
本设计采用上电复位加按钮方式,通过调整按钮的状态,是单片机能够可靠的上电复位,当需要外部复位时,按下复位按钮就能达到复位的目的,由于人的动作再快也会保持接通数十毫秒,所以完全能够满足单片机复位的要求。
图 2
3.3 显示电路
本次设计采用共阴极数码管,共阴极接低电平,其他管脚借段驱动电路输出端。当某段驱动电路的输出端为高电平时,该端所连接的字符导通并发亮,根据发光字段的不同组合可显示出各种数字或者字符。同样,要求段驱动电路能提供额定的导通电压或者电流,还需要根据需要设定响应的限流电阻。本次设计的显示电路部分采用2个2位一体共阴极数码管和一个4位一体共阴极数码管,共8个代码输入口和8个位选输入口。
显示方式采用动态驱动,使各位数码管逐一轮流点亮,由于扫描速度极快,显示效果与静态显示效果相同。从理论上说,不论显示图形还是文字,只要控制与组成这些图形和文字的各个点所在位置对应的LED器件发光,就能得到结果。
所谓动态显示,就是将要显示的多位LED显示器采用一个8位的段选端口,然后采用动态扫描一位一位地轮流点亮各位显示器,对于显示器的每一位而言,每隔一段时间点亮一次,虽然在同一时刻只有一位显示器在工作,但利用人眼的视觉暂留和发光二极管的余辉效应,看到的却是多个字符“同时显示”。
动态显示的优点在于:节省硬件资源,占用的端口较少,成本较低。缺点是在系统运行过程中,要保证显示器正常显示,CPU必须每隔一段时间执行一次显示子程序,占用了CPU大量的时间,降低了CPU的工作效率,同时显示亮度较低。
图 3
关键代码:
void display(){
P3=0xfe; //显示开始
P1=TABLE[p];
P2=TABLE[a];
delay(10);
P3=0xfd;
P1=TABLE[v];
P2=TABLE[b];
delay(10);
P3=0xbf;
P1=TABLE[i];
P2=TABLE[c];
delay(10);
P3=0x7f;
P1=TABLE[j];
P2=TABLE[d];
delay(10); //显示结束
}
3.4 响铃电路
部分采用的是蜂鸣报警形式。通过蜂鸣器报警告知比赛场上的裁片和球员,比赛用时已经耗尽,比赛结束。蜂鸣器报警电路是利用1个PNP三极管实现驱动的。在比赛倒计时走到0的情况下,利用软件控制P3^3端口,就能够实现高电平信号的输出。在这种状态下,三极管Q1将被导通,蜂鸣器随后将会发出声音报警信号。