单片机C51-篮球计时计分器课程设计.doc_第1页
单片机C51-篮球计时计分器课程设计.doc_第2页
单片机C51-篮球计时计分器课程设计.doc_第3页
单片机C51-篮球计时计分器课程设计.doc_第4页
单片机C51-篮球计时计分器课程设计.doc_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

课程名称:电子线路设计与课程设计 指导老师: 李卫民 篮球赛计时计分器 许然平2005111309机电与控制工程学院05自动化3班篮球赛计时计分器一 设计目的 设计并制作一个用于赛场的篮球赛计时计分器,实现如下基本功能:(1) 能记录整个赛程的比赛时间,并能修改比赛时间,暂停比赛时间。(2) 能随时刷新甲,乙两队在整个赛程中的比分。(3) 中场交换场地时,能交换甲,乙两队比分的位置。(4) 比赛时间结束时,能发出报警指令。 二 设计意义 通过篮球计分计时器的制作,可以使我熟悉,了解单片机开发设计实例的过程,并能使读者加深对单片机的理解和运用以及掌握单片机与外围接口的一些方法和技巧,这主要表现在以下的一些方面:(1) 篮球计分计时器包含了8051系列单片机的最小应用系统的构成,同时在此基础上扩展了一些实用性强的外围接口。(2) 掌握键盘接口原理,能正确地把键盘使用到单片机系统中,可以了解到LED显示器的结构,工作原理以及这种显示器的接口实例。(3)学会应用PCB制图软件及掌握PCB电路板的制作过程。 (4)学会调试电路,分析电路故障,积累电路调试经验。三 具体设计内容及PCB制板 1 系统框图构成 基于单片机系统的篮球计分计时器的系统构成框图如下所示:2硬件电路改进: 由于原来的电路比较复杂,用了很多芯片,浪费成本,而且给后期调试的调试会带来较多麻烦,故对原来的硬件电路进行了改动。改动方面主要关于数码管显示的驱动和位选的,前期的电路设计采用了大量的CD4511和CD4094来进行数码管显示的驱动和位选,而这次的电路设计只用了8个三极管就实现了这项功能。下面前期电路设计的计时部分的原理图,还有更为复杂的计分原理图未给出后期改进的整体原理图: Pcb 图如下所示四调试组装:此次调试主要用到了电压表,电烙铁,和ME500实验仪,在软件调试时ME500特别重要,程序可在ME500上调试,也可通过仿真接口对电路板直接调试。ME500如下图所示 (1) 上电检查(不插元器件)这部分主要是检查各部分元器件的供电是否有问题,待确认无误后,可将各个元器件插上去(2)插上元器件的上电测试对于插上元器件的上电测试,要分模块测试,各模块测试正常通过后,才能进行各模块的组装调试 , 这样可以排除各个模块在组装调试时产生的问题A 电源及最小系统的测试(时钟电路和复位电路,EA引脚)时钟电路(晶振),复位电路和EA引脚组成的单片机最小系统是整个电路正常工作的基础,所以是调试首要对象。用万用表测得,单片机的电源电压和EA引脚为4.98V(未接其他元器件时的电压值,接入数码管其他元器件后并且正常工作后电压会降低),接晶振的两个引脚电压差为0.10.2V左右,电源电压和EA引脚,时钟电路测试均没问题复位电路的检测: 按下复位按钮前,单片机复位引脚为低电平,接近零。按下复位按钮的过程中,用万用表可观测得,单片机复位引脚迅速升高,变为高电平,接近电源电压 此时复位电路工作正常B插上其他元器件测试蜂鸣器,绿色状态指示灯,74LS21测试为了测试蜂鸣器,绿色状态指示灯,74LS21测试是否正常工作,我用ME500单片机实验仪将以下程序烧录到单片机AT86S52中去: BEEP BIT P3.7 ; 本程序实现如下效果:按下P1.4 P1.5 P1.6 中任意一个蜂鸣器响 ; 按下P1.7 灯亮同时蜂鸣器响 LOOP: SETB P3.6 JNB P1.4 ,BEEP_BL JNB P1.5 ,BEEP_BL JNB P1.6 ,BEEP_BL JNB P1.7 ,LIGHTING LJMP LOOPLIGHTING:CLR p3.6 BEEP_BL: MOV R3,#50 MOV R2,#200MAIN1: CPL BEEP ;输出频率500Hz LCALL DELAY500 ;延时1ms LCALL DELAY500 DJNZ R2,MAIN1 MOV R2,#200MAIN2: CPL BEEP ;输出频率1KHz LCALL DELAY500 ;延时500us DJNZ R2,MAIN2 DJNZ R3,MAIN1LJMP LOOPDELAY500: MOV R7,#230LOOP1: DJNZ R7,LOOP1 RETEND 经测试,按下K1,K2,K3键中任意一个蜂鸣器就响 ; 按下K4键灯亮同时蜂鸣响 ;用万用表测得按下按钮时,74LS21对应的管脚变为低电平,输出应该为低电平,用万用 表测得输出为低电平。至此,蜂鸣器,绿色状态指示灯,74LS21调试通过。 C 数码管及三极管位选电路测试测得三极管发射极电压值接近于电源电压,将程序烧录到单片机AT86S52中去,运行系统,数码管能正常显示,三极管的各极电压均正常。工作过程中,用手摸三极管,三极管不会异样地发热,数码管及三极管位选电路测试通过。D 复位电路测试按下复位键后,系统各部分回到上电初始状态,复位成功E 补充说明:关于余光现象在还没断开电源供电时,拨动开关,使电路断开,会看到数码管和二极管还会微微发亮。我开始时猜想是断电后,电容放电慢还有残余电量,可给电路供电而导致的现象。用万用表测得数码管共阳端1.65V,二极管1.62V(正常工作时1.8V) ,电容两端电压1.66V,此电压足以驱动数码管和二极管发亮,只是亮度微弱,由此看来数码管和二极管在开关断开后还有余光,确实是电容还有电未放完的缘故。 对电容放电慢原因的解释:电容放电慢可能是因为没有放电回路(默认状态下按钮开关是断开的)如下所示: 按下复位按钮后,将形成回路,可加快电容放电。 因此,除了断开开关外,还要断开供电电源,避免由于电容充电使数码管二极管有余光 ,给电路带来不利干扰(3)软件调试及组装软件的编程调试首先要抓住计分和计时两大模块,在这两大模块成功的基础上再进行其他细小模块的组装和完善。主要编程的问题,所以就概述就举例子概述一下计分模块和计时模块刚开始均会出现显示数值范围不正确或者十位和个位二者之中只显示个位的情况,经软件调试,重新编程后成功的解决了问题。软件细部设计:每当有按键按下,便会发出响声:编程后发现响声时间太长,影响计分计时调整显示效果,便将蜂鸣时间改短(4) 整体检查及细部设计软硬件均调试后,就要进行整个项目的检查和完善细部设计。此时,整体功能的完善主要靠软件来实现。我把所有功能都测试了一遍,最后发现甲乙交换比分后,按下比分调整按钮,发现,甲乙两队的比分又变回原来的,于是便修改程序,解决问题。 五 功能演示: 1 上电: A本供电插座采用杜邦头鳄鱼夹两用排针座 ,提供灵活多变的供电方式 B 开关,电源指示灯: 波动开关,可以看到红色电源指示灯亮2 工作过程: A 开始计时计分显示前,蜂鸣器会发出声音,同时绿色状态指示灯会不断闪烁B 过一会后,数码管会开始显示,计时模块默认显示上半场定时时间为20分钟,秒十位和个位显示为零 ,计分模块甲乙两队默认会显示为零C每次按下计时计分功能调整按钮时, 蜂鸣器均会发出短暂的响声D按下计时功能调整按钮(共2个 分钟加和分钟减)时,可调整上半场比赛的时间,范围可达099分钟。按下启动/暂停键,可随时启动或暂停计时。按下启动键,开始倒计时E 按下计分功能调整按钮时,可随时调整甲乙两队的比分,范围可达0-99F 当按下交换比分按钮时,可随时交换甲乙两队的比分G 当比赛只剩一分钟时 ,绿灯会开始闪烁,以此来进行倒计时提示H 当比赛结束时,蜂鸣器会发出报警声,同时绿色状态指示灯会不断闪烁I 上半场比赛结束, 可按下交换比分按钮,交换甲乙两队的比分,重新调整计时时间为20分钟,按下启动按钮,下半场比赛开始3 复位按下复位键后,系统各部分回到上电初始状态,复位成功4补充: 最后比分减为零时,重新启动计时,有时需要按两下才能重新启动,但并不影响使用 补充细部设计 :1备用I/O口扩展板,我在这块板上焊接了排孔座,以便扩展其他电路 2 可拆卸插座3多用电源接口 4 利用跳线帽设计,本电路没有使用,但以后扩展设计时会使用六心得部分心得体会融汇在前面的文字叙述中 (1)PCB制版后的检查(上电前的检查):检查电路是否有断路,短路出现,电源和各元器件的供电线路是否有短路和正负极性反接的情况。焊接后: 由于芯片引脚间距特别近,容易将相邻的引脚焊接到一起 ,所以焊接好后要特别注意检查各个芯片的各个相邻引脚间是否会短路调试过程中使用万用表使用注意: 1 万用表探针要与所测导线或器件引脚稳定接触后才读数,避免由于接触不良而一起的误读2万用表测线路导通性时不要放在导线上,而最好放在器件引脚上,原因如下:电路板上布了一层焊锡膏,在万用表探针和导线之间隔着一层焊锡膏,这样会使万用表表针探测不到金属导线。3使用万用表测芯片管脚时要小心,不可让万用表的探针同时碰到芯片的管脚,否则会将芯片管脚短路掉。单片机系统一般不易出故障,出故障时问题一般不在于单片机,晶振复位元器件本身,或者是受外界干扰,而在于供电和线路问题。遇到故障先检查电源,电路导通性(断路 虚焊),正负极性器件是否接反等(2)首先要把硬件弄好,这样整个工程进度就快了,硬件调试出不来的话,之前苦苦写出来的程序就泡汤了,软件在后期可以随时修改和完善,而硬件就较难修改。所以必须先保证硬件电路。先将各个模块调试好,确保无误后,再将各个模块组装起来,组装后进行试用,对其进行细部的完善扩展性和灵活性: A基于单片机设计系统 ,易于扩展, 可编程,同样的系统(器件 ),通过编程可实现各种效果B排孔座和芯片插座的使用:元器件可随时使用和拆卸,这次主要是觉得排孔座特别有用,因为有它,电阻,发光二极管,晶振等都可以拆卸了,而且它还能替代芯片插座在进行系统设计时可多仿照现有的成品 ,比如现有的ME500实验仪一下细部设计均是借鉴和仿照的 :1备用I/O口扩展 2 可拆卸插座 3多用电源接口 4 利用跳线帽设计,方便各模块功能的转换,本电路没有使用,但以后扩展设计时会使用(3)补充Pcb制版心得:Pcb图上有极性的需标上,以便查看pcb打印前需先检查电路正确与否,打印后检查焊盘大小,器件是否符合要求。我这次制PCB板就栽倒在这里了。打印后时采用了缩放,而打印后却没检查,导致单片机芯片插不上去。pcb布线时,焊盘尽量弄到背面去,特别是芯片,因为芯片的引脚在正面时给焊接增加了难度。尽量减少过孔电源和地:a 导线要粗,导电性更好,易于和其他普通导线区分开来,容易检查电路b最好不要经过过孔,减少干扰因素 焊接时要先焊好过孔,正面时别忘了焊焊盘,对照pcb图,完成的做记号,按顺序模块来焊,先低后高,这样才不会乱七 器件简要列表单片机:AT89C51四输入与门:74LS21显示器件:7段共阴LED显示器PNP三极管9012按键:欧姆龙按键其它电阻之类在此省略八 篮球赛计时计分器程序流程图及程序 代码如下:K1BITP1.0K2BITP1.1K3 BIT P1.2K4 BIT P1.3K5BITP1.4K6BITP1.5K7 BIT P1.6K8 BIT P1.7 MIN EQU 30H SEC EQU 31H SEC100 EQU 32H DIS_BUF EQU 33H BUF_MIN_HEQUDIS_BUFBUF_MIN_LEQUDIS_BUF+1BUF_SEC_HEQUDIS_BUF+2BUF_SEC_LEQUDIS_BUF+3K_OLD EQU 41HK_NEW EQU 42H DIS_DIGIT EQU 43H DIS_INDEX EQU 44HK_OLD1 EQU 45H K_NEW1 EQU 46HFLAG EQU 47H CONVERT EQU 48H;=ORG0000HJMPMAINORG 0003H LJMP INT_0ORG0000BHLJMPTIMER0ORG0001BHLJMPTIMER1;=ORG 0030HMAIN: MOV SP,#60HMOV P0,#0FFHMOV P2,#0FFHMOV TMOD,#011HMOV TH0,#0FCHMOV TL0,#017HMOV TH1,#0DCHCLR AMOV TL1,A MOV CONVERT,#00H MOV CONVERT+1 ,#00H MOV CONVERT+2,#00H MOV CONVERT+3 ,#00H CLRA MOV MIN,#20 MOV SEC,AMOV SEC100,A MOV BUF_MIN_H,#0A4HMOV BUF_MIN_L,#0C0H MOV BUF_SEC_H,#0C0HMOV BUF_SEC_L,#0C0H MOV DIS_BUF+4,#0C0H MOV DIS_BUF+5,#0C0H MOV DIS_BUF+6,#0C0H MOV DIS_BUF+7,#0C0H MOV FLAG ,#00H MOV K_OLD,#00H BEEP_BL00: MOV R3,#10 MOV R2,#200MAIN1100: CPL p3.7 LCALL DELAY500 LCALL DELAY500 DJNZ R2,MAIN1100 CPL p3.6 LCALL DELAY500 LCALL DELAY500 LCALL DELAY500 MOV R2,#200MAIN2100: CPL p3.7 LCALL DELAY500 DJNZ R2,MAIN2100 DJNZ R3,MAIN1100 LJMP STARTDELAY500: MOV R7,#230LOOP1: DJNZ R7,LOOP1 RETSTART:MOV DIS_DIGIT,#0FEHCLR AMOV DIS_INDEX,A SETB EA SETB ET0 SETBTR0SETB IT0 SETB EX0SETB PT0 MAIN_LP: CALL KEY_PROG SJMPMAIN_LPKEY_PROG: CALL K_SCAN MOV A,K_NEW CJNE A,K_OLD,KEY_P1 JMP END_PROC_KEYKEY_P1: MOV R4,#15KEY_P2: MOV R7,#10 CALL DELAYMS DJNZ R4,KEY_P2 CALL K_SCAN MOV A,K_NEW CJNE A,K_OLD,KEY_P3 JMP END_PROC_KEYKEY_P3: JB ACC.0,PROC_K1 JB ACC.1,PROC_K2 JB ACC.2,PROC_K3 JB ACC.3,PROC_K4 LJMPEND_PROC_KEYPROC_K1:LCALL BEEP_BL001 INC MINMOV A,MIN; CJNE A, #100,UPDATE_MIN21MOV MIN,#00HUPDATE_MIN21:MOV A,MIN MOV B,#10DIV AB; A = MIN / 10MOV DPTR,#DIS_CODEMOVC A,A+DPTRMOV BUF_MIN_H,AMOV A,MIN MOV B,#10DIV ABMOV A,BMOVC A,A+DPTRMOV BUF_MIN_L,ASJMP END_PROC_KEYPROC_K2:LCALL BEEP_BL001 DEC MINMOV A,MIN CJNE A, #255, UPDATE_MIN1MOV MIN,#99UPDATE_MIN1:MOV A,MIN MOV B,#10DIV ABMOV DPTR,#DIS_CODEMOVC A,A+DPTRMOV BUF_MIN_H,AMOV A,MIN LMOV B,#10DIV ABMOV A,BMOVC A,A+DPTRMOV BUF_MIN_L,A SJMP END_PROC_KEY PROC_K3: LCALL BEEP_BL001 PUSH PSW INC FLAG MOV A ,FLAG RRC A JNC STOP CLR P3.6 SETB ET1 SETB TR1POP PSW SJMP END_PROC_KEY STOP:SETB P3.6 CLR ET1 CLR TR1POP PSWSJMP END_PROC_KEY PROC_K4: LCALL BEEP_BL001 MOV R3,CONVERT+1 MOV CONVERT+1,CONVERT+3 MOV CONVERT+3,R3 MOV R3,CONVERT MOV CONVERT,CONVERT+2 MOV CONVERT+2,R3 LCALL CONVETEREND_PROC_KEY:RET ;-; 键扫描子程序K_SCAN: MOV P1,#0FFH MOV K_NEW,#00H MOV A,P1 CPL A ANL A,#0F0H SWAP A MOV K_NEW,A RET;=USING0TIMER0:; 定时器0中断服程序, 用于数码管的动态扫描PUSH ACCPUSH PSWPUSH AR0MOV TH0,#0FCHMOV TL0,#017HMOV P2,#0FFHMOV A,#DIS_BUFADD A,DIS_INDEXMOV R0,AMOV A,R0MOV P0,AMOV P2,DIS_DIGITMOVA,DIS_DIGITRLAMOVDIS_DIGIT,AINCDIS_INDEXMOV R5 , DIS_INDEX CJNE R5,#08H,TT MOV DIS_INDEX ,#00H MOV DIS_DIGIT,#0FEHTT:POP AR0POP PSWPOP ACCRETI ;=TIMER1:; 定时器1中断服务程序, 产生时基信号10msPUSHPSWPUSH ACCPUSH BPUSH DPHPUSH DPLMOV TH1,#0DCHMOV TL1,#00HINC SEC100MOV A,SEC100CJNE A, #100, END_TIMER1MOV SEC100,#00H LCALLDEC_SEC END_TIMER1:POP DPLPOP DPHPOP BPOP ACCPOPPSWRETI ; ;=DEC_SEC:DEC SEC MOV A ,MIN JNZ OBTAIN CPL P3.6 MOV A ,SEC JNZ OBTAIN MOV BUF_SEC_L,#0C0H CLR TR1 CLR ET1 BEEP_BL: MOV R3,#10 MOV R2,#200MAIN11: CPL p3.7 LCALL DELAY500 LCALL DELAY500 DJNZ R2,MAIN11 CPL p3.6 LCALL DELAY500 LCALL DELAY500 LCALL DELAY500 MOV R2,#200MAIN21: CPL p3.7 LCALL DELAY500 DJNZ R2,MAIN21 DJNZ R3,MAIN11 LJMP OBTAINOBTAIN:MOV A,SECCJNE A, #255,UPDATE_SECMOV SEC,#59LCALL DEC_MINUPDATE_SEC:MOV A,SEC MOV B,#10DIV ABMOV DPTR,#DIS_CODEMOVC A,A+DPTRMOV BUF_SEC_H,AMOV A,SEC MOV B,#10DIV ABMOV A,BMOVC A,A+DPTRMOV BUF_SEC_L,ARET DEC_MIN:DEC MINMOV A,MIN CJNE A, #255, UPDATE_MINMOV MIN,#00HUPDATE_MIN:MOV A,MIN MOV B,#10DIV AB; A = MIN / 10MOV DPTR,#DIS_CODEMOVC A,A+DPTRMOV BUF_MIN_H,AMOV A,MIN MOV B,#10DIV ABMOV A,BMOVC A,A+DPTRMOV BUF_MIN_L,ARETRET ;=; 中断INT0服务程序INT_0: PUSHPSWPUSH ACCPUSH BPUSH DPHPUSH DPL JB k1,RKEY1 MOV R7,#30 LCALL DELAYMS JB k1,RKEY1 LJMP KP1 RKEY1 :JB k2,RKEY2 MOV R7,#30 LCALL DELAYMS JB k2,RKEY2 LJMP KP2 RKEY2 :JB k3,RKEY3 MOV R7,#30 LCALL DELAYMS JB k3,RKEY3LJMP KP3RKEY3 : JB k4,RKEY4 MOV R7,#30 LCALL DELAYMS JB k4,RKEY4LJMP KP4RKEY4: LJMP KP5KP1: LCALL BEEP_BL001 INC CONVERT MOV A,CONVERT CJNE A,#0AH,KP5MOV CONVERT ,#00HINC CONVERT+1MOV A,CONVERT+1CJNE A,#0AH,KP5MOV CONVERT+1,#00HLJMP KP5KP2: LCALL BEEP_BL001 DEC CONVERT MOV A,CONVERT CJNE A,#255,KP5MOV CONVERT,#09HDEC CONVERT+1MOV A,CONVERT+1CJNE A,#255,KP5

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论