电烙铁依次将管脚压平。接下来最关键的步骤:补锡。先在CPU管脚的一端点少量焊锡,然后将一排管脚涂满松香,快速而缓慢的划过管脚。焊接电路要有分块化的思想,首先焊接电源模块,然后测试各个供电电压;然后焊接CPU模块、Rs232和TTL电平转换模块,通电后通过串口ISP测试CPU是否启动并且可以烧入程序。然后是无线通讯某块和IO串口某块,最后成功后焊接引出的管脚。晶振(Crystal)即为石英振荡器,是一种机电器件,是用电损耗很小的石英晶体经精密切割磨削并镀上电极焊上引线做成。这种晶体有一个很重要的特性,如果给它通电,它就会产生机械振荡,反之,如果给它机械力,它又会产生电,这种特性叫机电效应。它们有一个很重要的特点,其振荡频率与他们的形状,材料,切割方向等密切相关。由于石英晶体化学性能非常稳定,热膨胀系数非常小,其振荡频率也非常稳定,而且控制几何尺寸可以做到很精密,因此,其谐振频率也很准确。根据石英晶体的机电效应,我们可以把它等效为一个电磁振荡回路,即谐振回路。他们的机电效应是机-电-机-电....的不断转换,由电感和电容组成的谐振回路是电场-磁场的不断转换。在电路中的应用实际上是把它当作一个高Q值的电磁谐振回路。由于石英晶体的损耗非常小,即Q值相当高,做振荡器用时,可以产生非常稳定的振荡,作滤波器用,可以获得非常稳定的带通或带阻曲线。 4.2 程序的调试
程序的调试是编写一个程序的重要步骤,根据思想框图写好代码,不是写完就可以运用,由于一些因素可能会造成程序无法编译,这等于代码不能使用,有时候会因为一个小小的标点符号,会使你半天找不到错误,因为目标太小,但却是致命的,debug过程比写程序还要麻烦,有时候你模仿别人的程序写出所需程序,写好了就是无法编译,这是跟编程者的思想息息相关,编写程序最好模块分明,注释明了,使人一目了然,让懂的人一看便知你的思想,这是最重要的,所以要条理清晰,这是我调试程序的一些心得体会。
5 结论
本次设计叙述了篮球赛记分牌的基本原理及使用方法,给出了一种篮球赛记分牌的设计方案,该设计主要利用单片机程序设计原理来实现篮球记分牌的各项功能。此次设计的篮球赛记分牌,电路简单,而且较容易看懂,使操作者使用起来非常便利,设计内容涉及记时,记分,时间终止报警,比分显示等部分,可以是参加比赛的成员、裁判和观众一目了然的看到比赛双方的成绩,该篮球赛记分牌还能广泛用于各类知识竞赛。
13
这次毕业设计使我受益匪浅,之前的我对于单片机的了解很片面,在运用keil uVision软件编写程序和利用Proteus软件进行仿真这两方面的能力较薄弱。此次设计完成过后,我能够比较熟练的掌握这些软件的使用,而且对从大一至大三所学的相关知识做了进一步的巩固和提高,通过网上搜索和在图书馆翻阅相关专业书籍、期刊等掌握了一些以前专业课上未涉及的知识,这让我深刻认识到了自己对专业知识的了解是多么的少;同时也熟悉了很多的硬件设备,更重要的是让我在学习和掌握这些知识的同时,能够使我的思维更加活跃。在此之前,我分析问题和解决问题的能力很差,而这次设计我以较高标准严格要求自己,使得自己在分析问题和解决问题的能力上得到培养和提高。这次毕业设计还锻炼和培养了我的基本素质,它使我做事更加有耐心、细心、谨慎;学会了坚持不懈,不轻言放弃。此次的毕业设计更让我明白要理论与实践相结合,因为我们学习理论就是为了在实践中运用这些理论,而且这次设计中收获的宝贵经验对我将来的工作很有帮助。当然,毕业设计期间,指导老师也给予我耐心的辅导和热情的帮助。对于我解决不了的问题老师更是很有耐心、不厌其烦的给我讲解,并且花费大量时间对设计报告进行了仔细的审阅,提出了适当的修改意见与建议,保证我的设计报告质量。
14
附录1: 部分源程序代码
#include
//定时数码管的段值从P0口输出
unsigned char code LED
Code[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; //数码管0--9的编码 unsigned char minit,second,count,count1; //分,秒,计数器
unsigned char set _limit =12,set_second=0;
sbit add1=P1^0; //甲队加分,每按一次加1分 /比赛前为时间加1分
sbit dec1=P1^1; //甲队减分,每按一次减1分/比赛前为时间减1分 sbit exchange=P1^2;
//交换场地
sbit add2=P1^3; //乙队加分,每按一次加1分/比赛前为时间加1秒 sbit dec2=P1^4; //乙队减分,每按一次减1分/比赛前为时间减1秒 sbit secondpoint=P0^7;
//秒闪动点
//----数码管的位选控制脚,共有10位数码管------ sbit led1=P2^7; sbit led2=P2^6; sbit led3=P2^5; sbit led4=P2^4; sbit led5=P2^3; sbit led6=P2^2; sbit led7=P2^1; sbit led8=P2^0; sbit led9=P3^7; sbit led10=P3^6; sbit alam=P1^7;
bit playon=0; bit timeover=0; bit AorB=0;
//报警
//比赛进行标志位,为1时表示比赛开始,计时开启 //比赛结束标志位,为1时表示比赛结束 //甲乙队交换位置标志位 //半秒标志位
//甲队得分 //乙队得分
15
bit halfsecond=0; unsigned int scoreA;
unsigned int scoreB;
//====================延时================== void Delay5ms(void) { }
void display(void)
{
//-----------显示时间(分钟)--------------
//-------------秒点闪动------------
if(halfsecond==1)
LEDData=0x80;
LEDData=LEDCode[minit/10]; //显示分钟的十位 led1=0;
//开启位选
//延时,以便足以点亮数码管。 //关闭位选
//显示分钟的个位
unsigned int i; for(i=100;i>0;i--);
Delay5ms(); led1=1;
LEDData=LEDCode[minit]; led2=0; Delay5ms(); led2=1;
else
LEDData=0x00;
led2=0; Delay5ms(); led2=1; secondpoint=0;
//-----------显示时间(秒钟)------------
LEDData=LEDCode[second/10]; led3=0; Delay5ms(); led3=1;
16
//显示秒钟的十位