学校课程设计必备适用于各种比赛的基于单片机的计分器proteus仿真.docx
- 文档编号:7006242
- 上传时间:2023-01-16
- 格式:DOCX
- 页数:21
- 大小:413.26KB
学校课程设计必备适用于各种比赛的基于单片机的计分器proteus仿真.docx
《学校课程设计必备适用于各种比赛的基于单片机的计分器proteus仿真.docx》由会员分享,可在线阅读,更多相关《学校课程设计必备适用于各种比赛的基于单片机的计分器proteus仿真.docx(21页珍藏版)》请在冰豆网上搜索。
学校课程设计必备适用于各种比赛的基于单片机的计分器proteus仿真
题目:
篮球比赛计分器
目录
引言2
1设计意义与要求3
1.1设计意义3
1.2设计要求3
2系统总体方案与硬件设计4
2.1AT89C51简介4
2.2数码管显示原理4
2.3系统总体方案5
3编程设计6
3.1定时/计数器6
3.2程序流程图7
4Protues软件仿真8
4.1Protues仿真软件介绍8
4.2仿真过程9
5调试分析12
参考文献13
附录一程序清单14
附录二电路原理图………………………………………………………22
引言
本系统是采用单片机AT89C51作为本设计的核心元件。
利用7段共阳LED数码管作为显示器件。
在此设计中共接入了2个7段共阳LED显示器,用于记录该队的分数,2个LED数码管显示范围可达到0~99分,基本满足赛程需要。
当比赛队得1分时,按下S1键加1分,得2分时按S2键加2分,得3分时按下S3键加3分。
如分数计错需减分时,每按一次S4键减1分。
采用单片机控制是这个系统按键操作使用简洁,LED显示,安装方便。
解决了篮球比赛计分器的安装问题,节约了线材,适合在各种规模的体育场馆使用,完全可以代替传统的用钟表进行计时的方法,当然稍加改动也可以用于其他球类比赛,是体育器材向智能化发展的一个实例。
通过去这比赛计分器的设计,更进一步对Proteus进行熟悉掌握。
关键词:
AT89C51LED数码管定时/计数器
1设计意义与要求
1.1设计意义
体育比赛计分系统是对体育比赛过程中所产生比分等数据进行快速采集记录,加工处理,传递利用的信息系统。
根据不同运动项目的不同比赛规则要求,体育比赛的计时计分系统包括测量类,评分类,命中类,制胜类得分类等多种类型。
篮球比赛是根据运动队在规定的比赛时间里得分多少来决定胜负的,因此,篮球比赛的计时系统是一种得分类型的系统。
篮球比赛的计时系统由计时器等多种电子设备组成,同时,根据目前高水平篮球比赛要求,完善的篮球比赛计时系统设备应能够与现场成绩处理,现场大屏幕,电视转播车等多种设备相联,以便实现高比赛现场感,表演娱乐观众等功能目标。
由于单片机的集成度高,功能强,通用性好,特别是它具有体积小,重量轻,能耗低,价格便宜,可靠性高,抗干扰能力强和使用方便等独特的优点,使单片机迅速得到了推广应用,目前已经成为测量控制应用系统中的优选机种和新电子产品的关键部位。
世界各大电气厂家,测控技术企业,机电行业,竞相把单片机应用于产品更新,作为实现数字化,智能化的核心部件。
篮球比赛计时计分器就是以单片机为核心的计时计分系统,通过对本次设计的制作,以达到对单片机等的进一步熟悉。
1.2设计要求
篮球比赛中,得分可分为1分、2分、3分三种情况,为防止出见加分错误要另设一减分开关,即可以实现不同的加分和纠正加分错误的功能。
同时在比赛进行到半场时,实现比赛比分的交换。
2系统总体方案及硬件设计
2.1AT89C51简介
单片机是在一块芯片中集成了CPU、RAM、ROM、定时/计数器和多功能I/O口等计算机所需要的基本部件的大规模集成电路,又称MCU。
其以体积小、功能全、性价比等诸多优点而独具特色,在工业控制、尖端武器、通信设备、家用电器等嵌入式应用领域中独占鳌头。
如果说C语言程序设计课程设计的基础课,那么单片机以其系统硬件构架完整、价格低廉、学生能动手等特点,成为工科学生硬件设计基础课。
其管脚图如右图所示。
图2.1AT89C511管脚图
2.2数码管显示原理
数码管实际上是由7个发光管组成8字形构成的,加上小数点就是8个。
我们分别把他命名为a,b,c,d,e,f,g,dp。
图2.2数码管内部结构图
假设我们要显示一个数字“2”,那么a、b、g、e、d这5个段的发光管亮就可以了,c、f、dp不亮,同时由于接法为共阳接法,那么为低电平是亮,为高电平是灭。
从高往低排列,P1.7-P1.0写成二进制为01111110,把他转化为16进制则为0x7e。
我们可以根据硬件的接线把数码管显示数字编制成一个表格,见下表,以后直接调用就行了。
表2.1共阳极数码管显示
显示
P1.7
dp
P1.6
g
P1.5
f
P1.4
e
P1.3
d
P1.2
c
P1.1
b
P1.0
a
C代码
0
0
1
0
0
0
0
0
0
0x40
1
0
1
1
1
1
0
0
1
0x79
2
0
0
1
0
0
1
0
0
0x24
3
0
0
1
1
0
0
1
0
0x32
4
0
0
0
1
1
0
0
1
0x19
5
0
0
0
1
0
0
1
0
0x12
6
0
0
0
0
0
0
1
0
0x02
7
0
1
1
1
1
0
0
0
0x78
8
0
0
0
0
0
0
0
0
0x00
9
0
0
0
1
0
0
0
0
0x10
数码管的接口有静态接口和动态接口两种。
静态接口为固定显示方式,无闪烁,其电路可采用一个并行口接一个数码管,数码管的公共端按共阳接VCC,本次课程设计由于所需数码管较少,故可用些种方法接线。
这种接法占用接口多,仅能接少量数码管。
动态接口采用各数码管循环轮流显示的方法,当循环显示的频率较高时,利用人眼的暂留特性,看不出闪烁显示现象,这种显示需要一个接口完成字形码的输出,另一接口完成各数码管的轮流点亮。
2.3系统总体方案
因所设计的篮球比赛计分器功能较少,电路结构也相对简单。
只有两个部分:
开关控制和数码管的显示。
P3口接12个开关,分别作为:
甲、乙队比分+1、+2、+3、-1的控制按键;比分互换;比分归零。
P0口按静态接口方法接两个数码管来显示比分。
3编程设计
3.1定时/计数器
篮球比赛计分器其实就是一个计数器,本次课程设计就是利用单片机中的定时/计数器来实现其计分的功能。
在51单片机中有两个16位的定时/计数器T0,T1,分别由TH0、TL0和TH1、TL1组成,它们均是8位寄存器,在特殊功能寄存器中占地址8AH-8DH。
它们用于存放定时或计数的初始值。
此外,内部还有一个8位的方式寄存器TMOD和一个8位的控制寄存器TCON。
用于选择和控制定时/计数器的工作。
其格式见下面两表:
表3.1方式控制寄存器TMOD
GATE
C/T
M1
M0
GATE
C/T
M1
M0
门控开关
计数/定时
方式选择
门控开关
计数/定时
方式选择
表3.2控制寄存器
TF1
TR1
TF0
TRO
IE1
IT1
IE0
IT0
T1请求
有/无
T1工作
启/停
T0请求
有/无
T0工作
启/停
INT1请求有/无
INT1方式下沿
INT1请求有/无
INT1方式下沿
篮球比赛计分器利用单片机的计数器进行工作,计数器对外部脉冲的下降沿进行加1计数,直至计满回零。
作为可编程器件,单片机中的定时/计数器初始化编程步骤如下:
根据定时时间要求或计数要求计算计数器初值;
将工作方式控制字写入TMOD寄存器;
将计数初值写入THX和TLX寄存器;
启动定时器/计数器,即将TRX置位。
如果工作于中断方式,需置位EA(中断总开关)及ETX(允许定时/计数器中断),并编写中断服务程序。
3.2程序流程图
篮球比赛中,得分可分为1分、2分、3分三种情况,为防止出见加分错误要另设一减分开关。
时间计数属于另外一个系统。
根据这样的设计要求,结合数码管的显示以及51单片机中计数器的工作实现方式、接口应用、中断控制等可设计出程序流程图如下所示:
循环
Y
S1键S2键S3键S4键
图3.1计分流程图
4Proteus软件仿真
4.1Proteus仿真软件简介
Proteus软件是英国Labcenterelectronics公司出版的EDA工具软件。
它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。
它是目前最好的仿真单片机及外围器件的工具。
Protues提供了丰富的资源:
仿真元器件资源:
仿真数字和模拟、交流和直流等数千种元器件,有30多个元件库。
仿真仪表资源:
示波器、逻辑分析仪、虚拟终端、SPI调试器、I2C调试器、信号发生器、模式发生器、交直流电压表、交直流电流表。
理论上同一种仪器可以在一个电路中随意的调用。
Proteus还提供了一个图形显示功能,可以将线路上变化的信号,以图形的方式实时地显示出来,其作用与示波器相似,但功能更多。
这些虚拟仪器仪表具有理想的参数指标。
另外Proteus还提供了比较丰富的测试信号用于电路的测试。
这些测试信号包括模拟信号和数字信号。
在Protues中进行电路仿真时,先绘制好原理图,再调入已编译好的目标代码文件:
*.hex文件,随后便可在Proteus的原理图中模拟的实物运行状态和过程,进行观察从而改良自己的设计方案。
操作简单,非常适合初学者进行单片机的仿真,进而了解其原理,增强实践。
4.2Keil软件的介绍
KeilC51是美国KeilSoftware公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。
Keil提供了包括C编辑器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部分组合在一起。
运行Keil软件需要WIN98、NT、WINDOWS2000、WINDOWSXP、WINDOWS7等操作系统。
图4.1Keil软件运用
4.2仿真过程
在用Protues进行仿真之前,先要用keil软件将我们所编写好的C语言程序或汇编程序编译。
具体方法是新建一项目,之后输入编写的程序,输入完成后保存然后执行项目、编译,在目标文件夹内生成编译好的程序文件,其中*.hex文件就是我们所需要的,在之后电路设计好后用于放入AT89C51中执行其功能。
在生成*.hex文件后,进入Protues软件,此时软件已自动打开一新建项目。
我们可直接在其中构建电路图,点击板面左侧按键P,在弹出的Pickdevices对话框中进行元器件的选择,如下图:
图4.2元器件的查找
元器件都找到后,先进行排版再按照电路图连接,如连接好后如下图所示:
图4.3仿真电路图
在电路连接好后,双击AT89C51在弹出对话框中选择单片机中要输入的程序,见下图:
图4.4向AT89C51中加入程序
程序加入后,开始仿真,运行效果见下图:
图4.5仿真效果图
5调试分析
在仿真成功之后,便可进行实践了。
实物和仿真还是有一定的差别的,制作实物时要考虑的方面比仿真多的多。
做实物时,不仅要考虑到电路正确同时也要注意版面的设计,不仅设计功能要求实现,版面的美观也是必不可少的一方面,这就要注意尽量少的接线。
参考文献
[1]《基于Proteus的51系列单片机设计与仿真》陈忠平著,电子工业出版社
[2]《单片机原理与应用及C51程序设计》杨加国谢维成著,清华大学出版社
[3]《电子线路非线性部分(第四版)》谢佳奎著,高等教育出版社
[4]《单片机高级教程》何立民著,北京航空航天大学出版社
[5]《单片微型计算机原理接口与应用》徐惠民著,北京邮电大学出版社
[6]《电子技术基础数字部分(第五版)》康华光著,高等教育出版社
[7]《电子技术技术基础模拟部分(第五版)》康华光著,高等教育出版社
附录一程序清单
#include
#defineucharunsignedchar
#defineuintunsignedintucharcodetab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff};
ucharb,d,t;
ucharfen=10,miao=0;
ucharflag;
uchartemp;
sbitbeep=P1^7;
voiddelay(uintz)
{uintx,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);}
voiddisplay()
{ucharmiaoge,fenge,miaoshi,fenshi;
miaoge=miao%10;
P2=0x80;
P0=tab[miaoge];
delay
(1);
miaoshi=miao/10;
P2=0x40;
P0=tab[miaoshi];
delay
(1);
fenge=fen%10;
P2=0x20;
P0=tab[fenge];
delay
(1);
fenshi=fen/10;
P2=0x10;
P0=tab[fenshi];
delay
(1);
P2=0x00;}
voiddisplay1(chara)
{ucharge1,shi1;
b=a;
ge1=b%10;
P2=0x02;
P0=tab[ge1];
delay
(1);
shi1=b/10;
P2=0x01;
P0=tab[shi1];
delay
(1);
P2=0x00;}
voiddisplay2(charc)
{ucharge2,shi2;
d=c;
ge2=d%10;
P2=0x08;
P0=tab[ge2];
delay
(1);
shi2=d/10;
P2=0x04;
P0=tab[shi2];
delay
(1);
P2=0x80;}
voidkeyscan()
{chara,c,e,f;
display1(a);
display2(c);
P3=0xfe;
temp=P3;
temp=temp&0xf0;
while(temp!
=0xf0)
{delay(5);temp=P3;
temp=temp&0xf0;
while(temp!
=0xf0)
{temp=P3;
if(temp==0xee)
{delay(5);
if(temp==0xee)
{a++;
if(a>=100)
a=99;
display1(a);}}
if(temp==0xde)
{delay(5);
if(temp==0xde)
{a=a+2;
if(a>=100)
a=99;
display1(a);}}
if(temp==0xbe)
{delay(5);
if(temp==0xbe)
{a=a+3;
if(a>=100)
a=99;
display1(a);}}
if(temp==0x7e)
{delay(5);
if(temp==0x7e)
{a--;
if(a<=-1)
a=0;
display1(a);}}
while(temp!
=0xf0)
{temp=P3;
temp=temp&0xf0;
display1(a);}}}
P3=0xfd;
temp=P3;
temp=temp&0xf0;
while(temp!
=0xf0)
{delay(5);
temp=P3;
temp=temp&0xf0;
while(temp!
=0xf0)
{temp=P3;
if(temp==0xed)
{delay(5);
if(temp==0xed)
{c++;
if(c>=100)
c=99;
display2(c);}}
if(temp==0xdd)
{delay(5);
if(temp==0xdd)
{c=c+2;
if(c>=100)
c=99;
display2(c);}}
if(temp==0xbd)
{delay(5);
if(temp==0xbd)
{c=c+3;
if(c>=100)
c=99;
display2(c);}}
if(temp==0x7d)
{delay(5);
if(temp==0x7d)
{c--;
if(c<=-1)
c=0;
display2(c);}}
while(temp!
=0xf0)
{temp=P3;
temp=temp&0xf0;
display2(c);}}}
P3=0xfb;
temp=P3;
temp=temp&0xf0;
while(temp!
=0xf0)
{delay(5);
temp=P3;
temp=temp&0xf0;
while(temp!
=0xf0)
{temp=P3;
if(temp==0xeb)
{delay(5);
if(temp==0xeb)
{a=0;
display1(a);
c=0;
display2(c);}}
if(temp==0xdb)
{delay(5);
if(temp==0xdb)
{e=a;f=c;a=f;
display1(a);
c=e;
display2(c);}}
if(flag!
=1)
{if(temp==0xbb)
{delay(5);
if(temp==0xbb)
{fen++;
if(fen==99)
fen=0;}}
if(temp==0x7b)
{delay(5);
if(temp==0x7b)
{fen--;
if(fen==-1)
fen=99;}}}
while(temp!
=0xf0)
{temp=P3;
temp=temp&0xf0;
display2(c);}}}
P3=0xf7;
temp=P3;
temp=temp&0xf0;
while(temp!
=0xf0)
{delay(5);
temp=P3;
temp=temp&0xf0;
while(temp!
=0xf0)
{temp=P3;
if(temp==0xe7)
{delay(5);
if(temp==0xe7)
{TR0=1;
flag=1;}}
if(temp==0xd7)
{delay(5);
if(temp==0xd7)
{TR0=0;
flag=0;}}
if(temp==0xb7)
{delay(5);
if(temp==0xb7)
{fen=0;
miao=0;}}
while(temp!
=0xf0)
{temp=P3;
temp=temp&0xf0;
display2(c);}}}}
voidtimer0(void)interrupt1
{TH0=0x4c;
TL0=0x00;
t++;
if(t==20)
{t=0;
miao--;
if(miao==-1)
{fen--;
miao=59;}
if(fen==-1)
{fen=0;
miao=0;
beep=0;}}}
voidinit()
{TMOD=0x01;
TH0=(65536-50000)/256;
TL0=(65535-50000)%256;
ET0=1;
EA=1;
TR0=0;}
voidmain()
{P2=0xfe;
init();
while
(1)
{display();
keyscan();}}
附录二电路原理图
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学校 课程设计 必备 适用于 各种 比赛 基于 单片机 计分 proteus 仿真