目录一设计任务 (4)二设计要求 (4)三系统设计方案 (4)系统构成框图 (4)四器件选择 (4)五球赛计时计分器的工作原理过程 (5)六各部件基本功能介绍 (6)计时电路的工作原理 (6)计分电路的工作原理 (7)赛程结束报警 (8)各部件功能图 (9)七篮球赛计时计分器原理图及程序 (9)篮球赛计时计分器程序流程图 (10)计分电路原理图 (11)计时电路原理图 (12)篮球赛计时计分器程序代码 (13)二篮球计时计分器设计一 设计任务设计并制作一个用于赛场的篮球赛计时计分器。
二 设计要求1 能记录整个赛程的比赛时间,并能修改比赛时间﹑暂停比赛时间。
2 能随时刷新甲﹑乙两队在整个赛程中的比分。
3 中场交换比赛场地时,能交换甲﹑乙两队比分的位置。
4 比赛时间结束时,能发出报警指令。
三 系统设计方案系统构成框图基于单片机系统的篮球赛计时计分器的系统构成框图如图所示。
四 器件选择本系统在设计过程中主要选取了以下一些器件: 单片机:8751计时显示复位晶振赛程时间 设置键盘8751CD4094 计分显示74ls21赛程比分 调整键盘球赛计时计分器系统图4511●四—七段BCD译码芯片:CD4511●并行/串行转换芯片:CD4094●四输入与门:74LS21●显示器件:7段共阴LED显示器五球赛计时计分器的工作原理过程整个篮球赛计时计分器的工作过程如下:首先在比赛之前,接通电源,系统自动复位此时计时电路与计分电路的共阴极数码管全部显示为0000和000 000;任何我们按计时电路中的K5按键来设置比赛时间的十位数,例如比赛时间上半场为20分钟,则通过K5键,使数码管1显示“2”即可;再按K6键,设置比赛时间的个位数,使数码管2显示“0”即可。
一般比赛时间为40分钟,所示只需按K5显示4,按K6显示0即可。
时间设置好时,等待赛程开始,当裁判吹响开始哨声时,立即按K7键,启动计时,这时计时电路便工作,计时采用倒计时方式,即从20分钟减为0分钟表示上半场结束。
上半场结束时,蜂鸣器会发出10秒钟响声,通知上半场结束,这时按一下K7键,便完成了甲、乙两队的分数交换。
在整个赛程中,我们还要对两队比分进行及时刷新,这时我们计分电路中的K1~K4键完成此功能,K1和K2键完成甲队加、减分,K3和K4键完成乙队加、减分。
按键每按一下,表示加或减1分。
六各部件基本功能介绍1 计时电路的工作原理计时电路如图所示,主要由按键开关K5~K7,单片机8751,译码器以及LED显示器构成。
其过程如下:当调时(十位)开关K5按下时,产生一个低电平;立即数00H取出,同时,对应调分(十位)控制端P2.0的LE输出高电平,表示此时可以向调分(十位)的CD45111发送数据,但CD45111的输出端a~g不会有输出,因为LE=1时,CD4511锁存。
这时只要将显示数据的代码经P1口的P1.0送到CD4511的输入端A~D端,送完后,将LE清零。
这时便可以将要显示数据的代码经CD4511译码后,从输出端a~g输出,送LED显示器显示。
调时按键开关每按一次,数字自动加1,直到调到需要设置的时间即可。
调时(个位)的操作方法与上一样。
时间设置完后,期待定时器T0开始定时计数。
计时采用倒计时,比如:设置的时间为45分钟,则在LED上显示4500四位数。
定时T0计数60秒后中断返回,继续定时计数下一个60秒;同时则在4位LED显示器上显示4459四位数,表示时间已过去一秒钟,即是44分59秒。
这样一直继续下去。
直到变为“0000”时表示赛程结束。
如果比三赛中,裁判叫暂停,则只要按一下K7键,即可暂停计时。
〈一〉赛程时间设置在计时电路中,按键开关K5、K6用来设置赛程时间。
比如:比赛时间上半场时间为20分钟,则通过按键K5,使数码管1显示“2”即可;再按K6键,设置比赛时间的个位数,使数码管2现实“0”即可。
一般比赛时间为40分钟,所以只需要按K5键使数码管1显示“4”,按K6使数码管2显示“0”即可。
时间设置好后,等待赛程开始。
当比赛结束时,如果由于一些特殊原因需增加比赛时间,这时增加比赛时间同样由按键开关K5、K6用来设置,且方法跟上面一样,但一般情况下只需按K6设置即可。
因为加赛时间只有几分钟。
〈二〉赛程时间启/停设置当时间设置完后,比如设置赛程时间为45分钟,则在图5.9所示的LED显示器上则显示为4500,45表示分钟,00表示秒钟。
这时,如果裁判吹响开始哨声时,则应立即按下按键K7,表示赛程开始,计时显示则由4500变成4459,4458……一直计为0000时表示赛程结束。
在计时电路中按键K7为赛程启动和暂停控制。
2 计分电路的工作原理计分电路主要由单片机8751、串/并转换器、LED显示器、74LS21以及按键开关组成。
其工作过程如下:按键开关K1~K4组成甲、乙两队加减分控制。
按键开关K1~K4一端接地,另一端输入与门74LS21的9脚、10脚、12脚、13脚以及单片机8751的P3.5 、P3.4 、P0.2 、P0.1。
当K1~K4四个按键的任何一个一位按下时,与门的8脚输出都会产生低电平使单片机发生中断,从而使相应LED显示。
因为按键开关按下时为低电平。
例如:现在乙队加分为例,来说明整个过程。
假设比赛刚开始,双方比分为000 000,某一时刻后,当乙队加分时,则按下K3,这时K3=0(低电平),其余K1K2K3=111(低电平),例如:现在一乙队加分为例,来说明整个过程。
假设比赛刚开始,双方比分为000 000,某一刻后,当乙队加分时,则按下K3,这时K3=0(低电平),其余K1K2K4=111(为高电平),K1K2K3K4相与的结果为低电平,这时与门8脚输出低电平到单片机MCS51的P3.2脚,使其外部中断INT0发生中断,从而调用中断服务程序,将要显示的数据从程序中定义的LED显示常数表TAB中取出数据06H(因为LED显示常数表TAB的偏移地址为33H,33H首先是指向LED显示常数TAB中第一个数据3FH的,当K3按下时,相当于将33H地址加1,这时便指向第二个数据06H)经串行四发送端P3.0送至串/并转换器CD4090的输入端第2脚(数据输入DA TA)。
由于串行口的工作方式设置为方式0。
所以在串行数据通过RXD引脚输出时,则TXD引脚会输出多位时钟作为移位脉冲。
将8位数据顺利送到CD4094中。
另外在RXD引脚会输出数据的同时,单片机P3.7脚输出高电平给CD4094的第一脚STR(使能端控),使前一片CD4094中的8位数据从Q′S移位至下一次高电平,这样便使6片CD4094中得到不同的显示代码,然后使单片机P3.7脚输出低电平,将6片CD4904中显示代码送LED显示器显示,便得到显示为000 001。
因为,在程序中定义33H、34H、35H、36H、37H、38H,6地址单元,分别对应乙队、甲队3个显示器在程序中定义的LED显示常数表TAB中的偏移首地址。
单片机的RXD每次发送6 个数据,分别对应以33H、34H、35H、36H、37H、38H为偏移首地址单元里的数据。
例如;乙队加分表示以33H为偏移首地址的单元1,指向第二个数据06H,其他以34H、35H、36H、37H、38H为偏移首地址的单元里的数据仍然指向第一个数据3FH,这样将这6个数据:06H、3FH、3FH、3FH、3FH、3FH、经单片机的RXD发送出去,再在单片机P3.7脚输出的6次高电平作用下产生6次移位,便在6片CD4094中得到显示代码:3FH、3FH、3FH、3FH、3FH、06H。
然后在P3.7=0时显示为:000 0001。
〈一〉比分交换控制比分交换控制由计时电路中K7键完成。
我们知道,因为比分交换是在上半场赛程结束后进行的也就是说比分交换受赛程时间控制,只有当上半场计时器指示为0000时,按K7键,则会暂停比赛,不能交换分数。
如果要继续赛程,再按一次K7即可。
因此,K7键完成三重功能,即:启动、暂停、比分交换。
〈二〉比分刷新控制由于在比赛中,甲、乙两队的比分是不断变化的,所以需设置比分刷新控制装置;此部分功能由计分电路中的按键开关K1~K4完成:●K1键:完成甲队加1分操作;●K2键:完成甲队减1分操作;●K3键:完成乙队加1分操作;●K4键:完成乙队减1分操作。
〈三〉计分计时显示计分计时显示器是采用7段共阴LED显示器。
其中计分是用6个LED显示器,计时用五4个LED显示器;显示格式为000 000和00 00。
3 赛程结束报警当比赛结束时,系统会自动发出10秒种报警声,提示赛程结束。
4 各部件功能图BCD——7段十进制译码器驱动显示接口。
在本次设计中,由于只要求LED显示器显示0~9十个数字,因此我们选用了CD4511为LED显示器的译码芯片,如图所示为CD4511引脚分布图。
CD4511为常用的四——七段BCD码译码器;它可以实现对BCD码的译码,但不对大于9的二进制数译码。
其中,A~D为BCD码输入端;a~g是7段码输出;/L T为试灯脚;/BT为消隐(灭灯);/L T和/BT接高电平(电源);LE端为选通脚,接低电平有效,当./LT=0时LED数码管显示全亮笔段“8”字,可以检查数码管的质量好坏,有无笔段现象。
当/BT=0时强迫显示器消隐;当/BT=0时选通,LE=1时锁存。
使用时,只要将CD4511的输入端与微机系统输出端口的某4个数据位相连,而CD4511的输出直接与LED的a~g相连,便可实现对BCD的显示。
图所示为对1位BCD 码的显示。
端口4端口3端口2端口14位静态LED显示器电路串行/并行转换芯片在图计分电路中,我们使用集成电路CD4094。
CD4094是8位移位寄存器,它主要完成串行输入,并行输出8位数据的功能,所以又叫8位串/并转换器。
其引脚分布图如图5.12所示。
其中2脚DATA为串行数据输入脚;3脚CLOCK为时钟脉冲输入;4、5、6、7、14`.13、12、11脚为并行8位数据输出;8脚接地;16脚接电源5V六七七 篮球赛计时计分器原理图及程序 〈一〉 篮球赛计时计分器程序流程图1A 1B NC 1C 1D 1Y 接地1 2 3 4 5 6 7VCC 2D 2C NC 2B 2A 2Y74LS21引脚分布图比分校正控制电路比分校正控制电路由四输入与门74LS21的12、13脚,完成乙队加、减分控制。
有关74LS21集成电路的引脚分布图及内部构造如图所示。
*974LS21芯片的主要控制引脚说明:● 14脚为电源脚。
● 7脚接地。
● 1、2、4、5、9、10、12、13为与输入脚。
● 6、8脚为与门输出脚。
1 2 3 4 5 6 7 816 15 14 13 12 11 10 9B C /LT /BI LE D A VSSVDD f g a b c d eB C /LT /BI LE D A VSS VDD f g a b c d eCD4511引脚分布图CD4511译码的1位LED 显示电路图八开始定时清零 甲乙两队分数清0设置定时时间 如:20分钟启动键是否按下倒计时开始计时定时时间是否到暂停键是否按下K1﹑K2﹑K3﹑K4是否按 下对应甲乙两队加减分数喇叭响10秒交换键是否按下甲﹑乙两队交换分数,并显示YNYYNYNN7〈四〉篮球赛计时计分器程序代码ORG 0000HAJMP LK1 ;主程序地址ORG 000BH ;定时中断入口地址AJMP CTCOORG 0013H ;外部中断入口地址AJMP CXTLK1: MOV 33H,#00H ;甲队记分清0MOV 34H, #00HMOV 35H, #00HMOV36H, #00H ;乙队记分清0MOV37H, #00HMOV38H, #00HMOV40H, #00H ;计时分钟清0MOV41H, #00HCLR P0.0MP:CLR P2.0 ;计时牌子清零CLR P2.1 ;分分秒秒清0CLR P2.2CLR P2.3MOV P1,#00HNOPNOPSETB P2.0SETB P2.1SETB P2.2SETB P2.3MOV 42H,#05H ;送秒钟初值59秒MOV 43H,#09HMOV SCON #00H ;计分牌子清零程序CLR P3.7MOV R1,#33HMOV R2,#06HLP:MOV A,@R1MOV DPTP,#TAB ;取显示数MOVC A,@A+DPTRMOV SBUF,A ;通过串行口发显示数据JNB TI,$ ;是否发送完毕CLR TI ;清除标志位INC R1DJNZ R2,LP ;6次是否发送完毕九SETB P3.7 ;显示数据LK3:JB P2.4,LK6ACALL D10MSJB P2.4,LK3ACALL D2SLK4:JB P2.4,LK3 ;调整分钟(十位)CLR P2.0 ;显示分钟十位数据MOV P1,40HSETB P2.0ACALL D2S ;调用延时程序INC 40H ;将十位加1MOV A,40HCJNE A,#0AH,LK4 ;十到了没有MOV 40H,#00HAJMP LK4LK6:JB P2.5,LK5ACALL D10MSJB P2.5,LK6ACALL D2SLK7:JB P2.5,LK6 ;调分钟(个位)CLR P2.1 ;显示分钟个位数据MOV P1,41HSETB P2.1ACALL D2S ;调用延时程序INC 41H ;将个位加1MOV A,41HCJNE A,#0AH,LK7 ;十到了没有MOV 41H,#00HAJMP LKLK5:JB P2.6,LK3 ;等待启动计时ACALL D10MSJB P2.6,LK5CLR P2.2 ;显示秒钟十位MOV P1,42HNOPNOPSETB P2.2CLR P2.3 ;显示秒钟个位MOV P1,43HNOPNOPSETB P2.3SETB P0.0 ;点亮计时指示灯MOV TMOD,#01H ;定时中断初始化十MOV TL0,#0B0H ;送地定时初值MOV TH0,#3CHSETB ET0 ;开放定时中断SETB EX1 ;开放外部中断CLR IT0 ;外部中断低电平有效SETB TR0 ;启动定时MOV R0,#14HSJMP $CTCO:JNB P2.6,LK8 ;定时中断程序DJNZ R0,NEXT ;一秒钟是否到MOV R0,#14HDEC 43H ;显示时间CLR P2.3 ;显示秒钟个位MOV P1,43HNOPNOPSETB P2.3CLR P2.2 ;显示秒钟十位MOV P1,42HNOPNOPSETB P2.2CLR P2.1 ;显示分钟个位MOV P1,41HNOPNOPSETB P2.1CLR P2.0 ;显示分钟十位MOV P1,40HNOPNOPSETB P2.0MOV A,43HCJNE A,#00H,NEXT ;秒钟个位回到0没有MOV 43H,#0AH ;秒钟个位送初值10MOV, A,42HCJNE A,00H,LP3 ;秒钟十位回到0没有MOV 42H,#05H ;秒钟十位送初值5MOV A,41HCJNE A,#00H,LP2 ;分钟个位回到0没有MOV 41H,#09H ;分钟个位送初值9MOV A,40HCJNE A,#00H,LP1 ;分钟十位回到0没有CLR P0.0CLR P3.6 ;时间到发出10秒警报ACALL D10SSETB P3.6KP11:JB P2.6,KP11 ;等待交换AJMP KP12 ;去两队分数交换程序LK8:ACALL D10MSJB P2.6,CTCO ;计时暂停处理CLR P0.0LK9:JNB P2.6,LK9 ;等待键按下LK10:JB LK10 ;等待键放开SETB P0.0 ;继续计时AJMP CTCOP3:DEC 42H ;将秒钟十位减10 AJMP NEXTLP1:DEC 40H ;将分钟十位减1 AJMP NEXTLP2:DEC 41H ;将分钟个位减1 NEXT:MOV TL0,#0B0H ;定时中断送初值返回MOV TH0,#3CHRETIKP12:MOV A,33H ;甲乙两队交换分数XCH A,36HMOV 33H,AMOV A,34HXCH A,37HMOV 34H,AMOV A,35HXCH A,38HMOV 35H,AAJMP mp ;返回显示交换后的分数CXT:JNB P3.5,KP1 ;甲队+1JNB P3.4,KP2 ;甲队-1JNB P0.2,KP3 ;乙队+1JNB P0.1,KP4 ;乙队—1AJIMP KP;KP1:JNC 36H ;甲队+1程序MOV A,36HCJNE A,#0AH,KP5MOV 36H,#00HINC 37HMOV A,37HCJNE A,#0AH,KP5MOV 37H,#00HINC 38HAJMP KP5KP2:MOV A,36H ;甲队-1程序CJNE A,#00H,AP1MOV 36H,#09HDEC 37HAJMP KP5AP1:DEC 36HAJMP KP5KP3:INC 33H ;乙队+1程序MOV A,33HCJNE A,#0AH,KP5MOV 33H,#00HINC 34HMOV A,34HCJNE A,#0AH,KP5MOV A,34HCJNE A,#0AH,KP5MOV 34H,#00HINC 35HAJMP KP5KP4: MOV A,33H ;乙队—1程序CJNE A,#00H,AP2MOV 34H,#09HDEC 35HAJMP KP5AP2: DEC 34HKP5: CLR P3.7 ;显示分数MOV R1,#33HMOV R2,#06HLP6: MOV A,@R1MOV DPTR,#TAB ;查找显示数据MOVC A,@A+DPTRMOV SBUF,A ;通过串行口发送显示JNB TI,$ ;串行口是否发送完毕CLR TI ;串行口是否清0INC R1DJNZ R2,L ;6次是否发送完毕SETB P3.7KP6: JNB P3.3,KP6KP: RETITAB: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,00H; D10S: MOV 55H,#05H ;延时程序10秒D2S: MOV R3,#0AH ;延时程序2秒D200MS:MOV R7,#14HD10MS: MOV R6,#05HLOOP3: MOV R5,#0F9HNOPNOPLOOP2: DJNZ R5,LOOP2DJNZ R6,LOOP3DJNZ R7,D10MSDJNZ R3,D200MSDJNZ 50H,D2SRET。