版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
图4-2所示。图4-2数码管显示流程图4.3篮球计分软件设计篮球计分的软件设计是应该单片机的定时器进行定时,按照篮球比赛的计时方式进行倒计时,需要对定时器进行初始化,实现周期为1秒的计时。如图4-3。图4-3计分软件设计流程图主函数的相关的代码如下所示。voidJS_Count(){ if(JS_Running) { ms--; if(ms==0) { ms=99; sec--; if(sec<=0) { ms=0; sec=0; Buzzer=0; JS_Running=0; } } JS_Refresh=1; }5系统仿真5.1仿真设计电路图设计选用Proteus完成对系统的验证,打开软件绘制系统电路图,和代码进行联机调试。仿真设计图如图5-1。仿真包括显示控制、按键输入、声音控制、主控制器。图5-1系统仿真电路图5.2数码管显示启动仿真,数码管显示内容如图5-2所示。1000表示比赛总时长,24表示表示24秒进攻时间,000表示A对和B对的比分。图5-2系统液晶显示仿真5.3系统启动仿真系统启动仿真后,通过启动按键,比赛开始,比赛时间进行倒计时,24秒进行倒计时。如图5-3所示。图5-3系统启动仿真5.4系统比赛分数控制仿真通过分数设置按键,可以对A队和B队的比分进行设置,如图5-4。A对比分2,B对比分4。图5-4系统比分控制仿真5.5实物测试结果与分析系统调试完成后,购买器件,器件清单如下:准备烙铁、焊锡、吸抢、高温棉、镊子等常用工具。进行实物焊接组装[10]。组装完成后不可立即上电,首先需要用万用板测量电源正负是否短路,防止在焊接过程中有虚焊,造成电源短路,上电是烧坏电路板。电源不短路后,上电测试所有功能。实物效果如图5-5、5-6所示。图5-5实物图图5-6实物图总结在本次实际设计当中使我们对单片机的工作原理及其应用有个更加深刻地认知,同时在系统的设计过程中还更加深入地了解了硬件和软件的各组成部件和相关程序。通过细致且认真地分析,还在设计过程中发现了自己专业知识较为薄弱的方面,这可以为我今后更加全面地学习研究单片机提供借鉴和参考。在本文的设计中,软件程序部分借助了C语言知识,而设计过程中最困难的部分正在于如何实现程序与电路的匹配。在本次设计中,受自身能力的影响还存在着许多的不足,甚至现有设计中也并没做到十全十美,但经过这次的实践,单片机的应用以及与之相关的知识使我能够更加清楚而直观地感受到,此外在操作仿真软件的能力方面也有了大幅提升。尽管此次的设计过程十分艰辛,问题也多种多样,但最终还是在我的努力下,在各位同学和师长的帮助下克服了困难,完成最终的设计,使我受益良多。参考文献[1]夏志华.基于单片机的温度控制系统的研究与实现[J].煤炭技术,2013,(02):191-193.[2]姜宝华,齐强.基于单片机的无线遥控智能小车的设计与制作[J].电子世界,2013,(03):24-25.[3]程望斌,刘凌,杨陈明,李慧,李璇.基于单片机的火灾烟雾报警系统设计[J].湖南理工学院学报(自然科学版),2014,(03):41-44[4]刘兵.基于单片机的家庭报警系统的研究与设计[D].山东大学,2015.[5]李剑雄,梁春美.基于单片机的无线防盗报警器设计研究[J].信息与电脑(理论版),2015,(08):3-4+8.[6]贾应炜.基于STC89C52单片机的火灾报警系统设计[J].机械电子,2015,(04):50-53.[7]刘裕舸.单片机门禁系统的设计与研究[J].电子测试,2016,(07):13+25.聂茹,屈艳.基于单片机的红外报警监控系统设计与实现[J].微处理机,2016,(03):90-92.[8]吴育军.浅析单片机的应用与发展[J].无线互联科技,2016,(13):22-23.[9]马宏坤.51系列单片机C语言应用[J].工业控制计算机,2016,(01):132-134+139.[10]封杰文.单片机的发展与应用[J].电子制作,2016,(12):91.[11]杜洪林.论单片机应用系统的可靠性设计[J].电子技术与软件工程,2016,(06):257.[12]申景,张丽丽.基于单片机的家用无线火灾报警系统设计[J].消防科学技术,2016,(10):1421-1424.[13]杜朝.基于单片机的嵌入式系统开发[J].无线互联科技,2016,(01):56-57.LindaJ,Engelman.InteractingontheInternet.IrwinBookTeam.U.S.A,2016
附录#include<reg51.h>#defineLEDDataP0unsignedcharcodeLEDCode[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};intminit,second,count,count1; //分,秒,计数器charmin=15,sec=0;sbitadd1=P1^0; //甲对加分,每按一次加1分/在未开始比赛时为加时间分sbitdec1=P1^1; //甲对减分,每按一次减1分 /在未开始比赛时为减时间分sbitexchange=P1^2; //交换场地sbitadd2=P1^3; //乙对加分,每按一次加1分 /在未开始比赛时为加时间秒sbitdec2=P1^4; //乙对减分,每按一次减1分 /在未开始比赛时为减时间秒sbitp24_sec=P1^5;sbitsecondpoint=P0^7; //秒闪动点//依次点亮数码管的位sbitled1=P2^7;sbitled2=P2^6;sbitled3=P2^5;sbitled4=P2^4;sbitled5=P2^3;sbitled6=P2^2;sbitled7=P2^1;sbitled8=P2^0;sbitled9=P3^7;sbitled10=P3^6;sbitled11=P3^5;sbitled12=P3^4;sbitalam=P1^7; //报警bitplayon=0; //比赛进行标志位,为1时表示比赛开始,计时开启bittimeover=0; //比赛结束标志位,为1时表示时间已经完bitAorB=0; //甲乙对交换位置标志位bithalfsecond=0; //半秒标志位unsignedintscoreA; //甲队得分unsignedintscoreB; //乙队得分unsignedcharsec24=24; voidDelay5ms(void){ unsignedinti; for(i=100;i>0;i--);}voiddisplay(void){//显示时间分 LEDData=LEDCode[minit/10]; led1=0; Delay5ms(); led1=1; LEDData=LEDCode[minit%10]; led2=0; Delay5ms(); led2=1;//秒点闪动 if(halfsecond==1) LEDData=0x7f; else LEDData=0xff; led2=0; Delay5ms(); led2=1; secondpoint=0;//显示时间秒 LEDData=LEDCode[second/10]; led3=0; Delay5ms(); led3=1; LEDData=LEDCode[second%10]; led4=0; Delay5ms(); led4=1;//显示1组的分数百位 if(AorB==0) LEDData=LEDCode[scoreA/100]; else LEDData=LEDCode[scoreB/100]; led5=0; Delay5ms(); led5=1;//显示1组分数的十位 if(AorB==0) LEDData=LEDCode[(scoreA%100)/10]; else LEDData=LEDCode[(scoreB%100)/10]; led6=0; Delay5ms(); led6=1;//显示1组分数的个位 if(AorB==0) LEDData=LEDCode[scoreA%10]; else LEDData=LEDCode[scoreB%10]; led7=0; Delay5ms(); led7=1;//显示2组分数的百位 if(AorB==1) LEDData=LEDCode[scoreA/100]; else LEDData=LEDCode[scoreB/100]; led8=0; Delay5ms(); led8=1;//显示2组分数的十位 if(AorB==1) LEDData=LEDCode[(scoreA%100)/10]; else LEDData=LEDCode[(scoreB%100)/10]; led9=0; Delay5ms(); led9=1;//显示2组分数的个位 if(AorB==1) LEDData=LEDCode[scoreA%10]; else LEDData=LEDCode[scoreB%10]; led10=0; Delay5ms(); led10=1;//显示时间分 LEDData=LEDCode[sec24/10]; led11=0; Delay5ms(); led11=1; LEDData=LEDCode[sec24%10]; led12=0; Delay5ms(); led12=1;}//=========================按键检测程序================================================voidkeyscan(void){ if(playon==0) { if(add1==0) { display(); if(add1==0); { if(minit<99) minit++; else minit=99; min=minit; } do display(); while(add1==0); } if(dec1==0) { display(); if(dec1==0); { if(minit>0) minit--; else minit=0; min=minit; } do display(); while(dec1==0); } if(add2==0) { display(); if(add2==0); { if(second<59) second++; else second=59; sec=second; } do display(); while(add2==0); } if(dec2==0) { display(); if(dec2==0); { if(second>0) second--; else second=0; sec=second; } do display(); while(dec2==0); } if(exchange==0) { display(); if(exchange==0); { TR1=0; //关闭T1计数器 alam=1; //关报警 AorB=~AorB; //开启交换 minit=min; //并将时间预设为15:00 second=sec; sec24=24; } do display(); while(exchange==0); } } else { if(add1==0) { display(); if(add1==0); { if(AorB==0) { if(scoreA<999) scoreA++; else scoreA=999; } else { if(scoreB<999) scoreB++; else scoreB=999; } } do display(); while(add1==0); } if(dec1==0) { display(); if(dec1==0); { if(AorB==0) { if(scoreA>0) scoreA--; else scoreA=0; } else { if(scoreB>0) scoreB--; else scoreB=0; } } do display(); while(dec1==0); } if(add2==0) { display(); if(add2==0); { if(AorB==1) { if(scoreA<999) scoreA++; else scoreA=999; } else { if(scoreB<999) scoreB++; else scoreB=999; } } do display(); while(add2==0); } if(dec2==0) { display(); if(dec2==0); { if(AorB==1) { if(scoreA>0) scoreA--; else scoreA=0; } else { if(scoreB>0) scoreB--; else scoreB=0; } } do display(); while(dec2==0); } if(p24_sec==0) { display(); if(p24_sec==0) { sec24=24; TR0=1; alam=1; while(p24_sec==0)display(); } } }}//******************************主函数*************************************************voidmain(void){ TMOD=0x11; TL0=0xb0; TH0=0x3c; TL1=0xb0; TH1=0x3c; minit=min; //初始值为15:00 second=sec; EA=1; ET0=1; ET1=1; TR0=0; TR1=0; EX0=1; IT0=1; IT1=1;// EX1=1; PX0=1;// PX1=1; PT0=0; P1=0xFF; P3=0xFF; alam=1; while(1) { keyscan(); display(); }}voidPxInt0(void)interrupt0{ Delay5ms(); EX0=0; alam=1; TR1=0; if(timeover==1) { timeover=0; } if(playon==0) { playon=1; //开始标志位 TR0=1; //开启计时 if((minit+second)==0) { sec24=24; minit=min; second=sec; } } else { playon=0; //开始标志位清零,表示暂停 TR0=0; //暂时计时 } EX0=1; //开中断 }/*voidPxInt1(void)interrupt2{ Delay5ms(); EX1=0; //关中断 if(timeover==1) //比赛结束标志,必须一节结束后才可以交换,中途不能交换场地 { TR1=0; //关闭T1计数器 alam=1; //关报警 Aor
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 学校课题活动策划方案(3篇)
- 2026乌鲁木齐市第三十六中学诚聘初高中教师(18人)参考考试题库及答案解析
- 2026浙江台州市紧急救援中心招聘编制外人员1人参考考试题库及答案解析
- 2026年甘肃省庆阳市西峰环宇中学春季招聘教师备考考试题库及答案解析
- 2026泰安岱岳区事业单位初级综合类岗位招聘工作人员(99人)考试备考试题及答案解析
- 2026广东中山市东凤镇佛奥幼儿园教职工招聘2人笔试模拟试题及答案解析
- 2026中铁建昆仑高速公路运营管理有限公司德遂高速公路路巡队员招聘1人(重庆)参考考试题库及答案解析
- 2026上半年玉溪师范学院招聘6人参考考试题库及答案解析
- 第四单元7静夜思
- 三台公安公开招聘60名警务辅助人员备考考试试题及答案解析
- 四川省南充市2024-2025学年高一上学期期末质量检测英语试题(含答案无听力原文及音频)
- 专题08解题技巧专题:圆中辅助线的作法压轴题三种模型全攻略(原卷版+解析)
- 2024年全国职业院校技能大赛(节水系统安装与维护赛项)考试题库(含答案)
- 24秋人教版英语七上单词表(Vocabulary in Each Unit)总表
- ISO 15609-1 2019 金属材料焊接工艺规程和评定-焊接工艺规程-电弧焊(中文版)
- 肥胖患者麻醉管理
- 小鲤鱼跳龙门电子版
- 2019年急性脑梗死出血转化专家共识解读
- 《混凝土结构工程施工规范》
- 土地证延期申请书
- 硫乙醇酸盐流体培养基适用性检查记录
评论
0/150
提交评论