3寸数码管记分牌的设计
2010-02-11李生明
李生明,杨 红
(清远职业技术学院机电工程学院,广东 清远 511510)
记分牌是体育比赛中常见常用的体育用品,在比赛中,计时记分牌是必不可少的,随着比赛规则的进一步完善,相应的计时记分牌也必须随之改进。由于纸质记分牌显示内容极少,观众视角范围小,故设计了一种可用12V储电池和220V交流电的电子记分牌。本设计用STC89C52单片机实现了最新的篮球比赛计时记分系统的软硬件设计,不仅具有软件设定比赛总时间并实现总时间的倒计时以适应最新的比赛规则,而且实现了比赛双方的记分功能。该系统采用按键操作与红外遥控复用、3寸大数码管显示,分别对软件和硬件进行调试,最终达到了软件和硬件的良好结合。该设计采用模块化的设计,程序结构简单,任务明确,易于编写、调试和修改。
1 总体方案的选择及原理设计
选择STC89C52单片机作为控制器;两队分数显示部分由6只3寸高亮红色共阳数码管组成,时间部分由4只3寸高亮红色共阳数码管组成,由单片机控制数码管专用芯片M AX7219,通过MAX 7219控制74LS07的输出电平驱动各数码管的位选、控制ULN2803输出数码管的段选信号;遥控接收使用红外接收头1838,该接收头是一个三端元件,只占 1根 I/O口;用单片机 P0.0口输出1kH z和 500H z的音频信号给音频放大芯片LM 386驱动扬声器,作为时间终了时的提示音。系统设计两种电源供方式,一种是交流电由变压器降压,经过整流,滤波后,再由三端稳压器输出电压给系统;另一种是可用12V的储电池供电。原理设计框图如图1所示。[1]
2 硬件和软件设计
2.1 硬件电路设计
2.1.1 控制器电路
图1 原理设计框图
本设计采用STC89C52单片机作为系统控制器。通过控制数码管驱动电路在大尺寸数码管上显示记分、计时等信息,以及对整个系统进行控制;通过单片编程获取红外遥控及按钮输入信息,实现两队分数加减分和倒计时等。单片机算术运算功能强,软件编程灵活、自由度大,可用软件编程实现各种算法和逻辑控制,并且其功耗低、体积小、技术成熟和成本低等优点。原理图如图2所示。
图2 控制器电路
2.1.2 数码管驱动电路
图3 大尺寸数码管的字段组成
图3是3寸共阳高亮红色数码管各字段的组成。A~G 7个段都是由8只发光二极管串并联而成;DP是小数点,由2只发光二极管串联而成。单个发光二极管的极限和光电参数如表1所示。[2]
表1 大尺寸数码管单个发光二极管的参数
数码管的A~G字段的导通电压为7.2~8V,如何驱动大数码管也成为本设计的亮点。本设计采用动态驱动电路,动态扫描驱动利用人眼视觉暂留的特性,分时进行LED数码管驱动,人眼感受的是有效亮度的平均值。其优点是驱动芯片少,电路简单,成本低。扩充电压、电流的驱动电路如图4所示。
图4 驱动电路
74LS07是6同相电平转换电路,输出级是集电极开路的晶体管,耐压30 V,驱动电流30 mA,在单片机串口电平控制下驱动10个PNP达林顿功率管TIPl27,实现6只共阳数码管的位驱动。ULN2803是8位NPN达林顿阵列,耐压50 V,驱动电流500 mA,R2~R9是大尺寸数码管A~G字段的限流电阻,电阻值和功率根据以下因素计算:[3]
◆大尺寸数码管的供电电压,各段的导通电压;
◆TIPl27和ULN2803的导通压降;
◆组成大尺寸数码管的单个发光二极管的驱动电流。
本设计中,单个发光二极管的驱动电流为45 mA,供电电压12 V,限流电阻选用30Ω,0.5W规格。
本电路占用单片机的I/O口较多,单片机要完成数码管的译码、扫描等任务,负担较重,但对一些小应用来说是不错的选择,可本系统中要驱动10个大数管,所以采用数码管专用芯片MAX7219完成扫描的动态驱动,以减轻单片机的资源占用,只占用了3个I/O口,简化程序设计,效果很好,如图5所示。
图5 MAX7219控制电路
MAX 7219/MAX7221是一种集成化的串行输入/输出共阴极显示驱动器,它连接微处理器与8位数字的7段数字LED显示,也可以连接条线图显示器或者64个独立的LED。其上包括一个片上的B型BCD编码器、多路扫描回路,段字驱动器,而且还有一个8×8的静态RAM用来存储每一个数据。只有一个外部寄存器用来设置各个LED的段电流。
MAX7219可通过加在V+和ISET之间的一个外部电阻来控制显示亮度。段驱动电流一般是流入ISET端电流的100倍。
2.1.3 两队分数显示数码管驱动电路
两队分数显示部分由6只3寸高亮红色共阳数码管(LED1~LED6)组成,由单片机控制MAX7219,通过MAX 7219控制74LS07输出电平驱动U 5~U10 PNP达林顿功率管TIPl27,实现6只共阳数码管的位驱动,由ULN2803输出电平控制A~G的段选。电路图如图6所示。
图6 分数显示数码管电路
2.1.4 时间显示数码管驱动电路
时间部分由4只3寸高亮红色共阳数码管(LED7~LED10)组成,由单片机控制MAX7219,通过M AX7219控制74LS07输出电平驱动U11~U14 PNP达林顿功率管TIPl27,实现4只共阳数码管的字驱动,由 ULN2803输出电平控制A~G的段选,时钟的分隔点由两个发光二极管实现。电路图如图7所示。[4]
图7 时间显示数码管电路
2.1.5 红外遥控电路
遥控接收使用红外接收模块1838,该接收模块是一个3端元件,具有功耗低、抗干扰能力强、输入灵敏度高、只占1根I/O口等特点。如图8所示,1838接单片机的P3.2(外中断0),当1838接收到遥控信号时产生中断,处理遥控数据,处理完后返回。
图8 红外遥控电路
2.1.6 扬声器电路
用单片机P0.0口输出1kHz和500Hz的音频信号给音频放大芯片LM 386驱动扬声器,作为时间终了时的提示音。1kHz信号响100m s,500H z信号响200ms,交替进行,在“音频放大模块”区域中的VOUT端口上接一个8Ω或16Ω的喇叭,电路图如图9所示。
图9 扬声器电路
2.1.7 电源电路
本系统由于用到12V和5V两种电压,而且要考虑到本作品的实用性,所以本系统设计了两种电源供方式,如图10所示,由变压器降压,经过整流,滤波后,由可调三端稳压器输出1~20V可调电压,调节电阻RW 1使其输出12V电压供给系统和数码管,如图11所示,再由系统稳压成5V供给单片机及其他芯片。本作品还设计了电池供电,在没有交流电的球场上,可用12V的储电池供电,插在DC电源插座上即可,开关S1为供电模式选择开关。
图10 电源电路a
图11 电源电路b
2.2 软件设计
程序流程图如图12所示。
软件设计主要从显示和输入信号采集两大部分入手,在没有输入信号时显示球场倒计时时间。当检测到有按键按下或遥控信号时,根据接收到的输入指令确定是设置时间调整还是进行加减分控制,分别进行相应的控制,当倒计时时间到时起动扬声器,提示比赛结束。
图12 程序流程图
3 调试与误差分析
3.1 数码管显示及亮度调试
由于本设计采用动态数码管显示方式,一开始存在亮度不足和闪烁问题,通过程序调试,改变显示延时时间,改善了数码管闪烁问题;数码管亮度不足通过 MAX 7219硬件调整数码管亮度,调整MAX 7219的V+和ISET之间的一个外部电阻来控制显示亮度,以调节到最大亮度,还有通过软件调节MAX 7219的亮度调节寄存器的地址,改变D3~D0这半个字节的值可以调节M AX7219的段驱动平均电流,从而改变数码管的亮度。
3.2 时间倒计时误差调试及分析
本设计的时间计时是利用单片机内部定时器进行定时50m s计数20次产生1s的定时减1,从而实现了倒计时,但系统运行程序需要机器周期,所以产生的定时会存在误差,经过多次调试后,时间1m in存在的误差小于0.1s。
3.3 按钮与红外遥控的复用调试
在调试时,一开始按钮与红外遥控不能复用,存在冲突,但经过多次软件调试,将按钮子程序与红外遥控子程序独立分开处理,从而达到了很好复用的效果。
3.4 结果分析
将上述调试结果进行了比较分析,可以看出,各项指标均达到功能要求,设计较为理想,实验室制作出来的显示样品如图13所示。
图13 显示图样
4 总 结
本设计的出发点旨在针对一些球场不具备购置高额专用的计时记分器具而考虑,通过此计时记分系统的投入,一方面改善了计时记分条件,另一方面成本也不高,适用于大众化场合。
[1]汤竞南,沈国琴.51单片机C语言开发与实例[M].北京:人民邮电出版社,2008.
[2]刘 鲲,孙春亮.单片机 C语言入门[M].北京:人民邮电出版社,2008.
[3]张义和,等.例说51单片机(C语言版)[M].北京:人民邮电出版社,2008.
[4]楼然苗,李光飞.单片机课程设计指导[M].北京:北京航空航天大学出版社,2007.