图2 单片机最小系统图
3。2 LED点阵驱动电路
3。2。1 LED点阵显示原理
LED点阵显示分为动态和静态显示两种。其中静态显示原理较为简单,控制起来较方便,但在硬件的接线方面较为复杂。故在日常应用中,大多采用动态的显示方式。
8×8点阵共需64个LED发光二极管组成,结构图如图3所示,并且每个发光二极管是放置在行线与列线的交叉点上,当对应的某一列置1电平,某一行置0电平的时候,则相应的二极管就亮。如果想要实现一根柱形的亮法,其对应的一列为一根竖柱,或者对应的一行为一根横柱,因此实现柱的亮的方法如下。
一根竖柱:对应的列置1,而行则采用扫描的方法来实现。
一根横柱:对应的行置0,而列则采用扫描的方法来实现。
图3 LED点阵结构图
3。2。2 LED点阵驱动电路设计
LED点阵的驱动采用两片74HC595来完成,分别用于行扫描 (U1)和列扫描 (U2)。移位寄存器和存储器是分别的时钟。单片机用P30-P35口与74HC595相连,其中P30-P32分别接U1的11到14引脚,P33-P35接U2的11到14脚,点阵的驱动原理如图4所示。数据在SH_cp的上升沿输入到移位寄存器中,在ST_cp的上升沿输入到存储寄存器中,如果两个时钟连在一起,则移位寄存器总是比存储寄存器早一个脉冲[15]。文献综述
图4 LED点阵驱动原理图
例如显示数字“0”,则形成的相应列代码为00H,00H,FEH,82H,82H,FEH,00H,00H,将代码分别送到相应的列线上面,就可实现数字“0”的显示。送第一行线代码到P34端口,同时置第一列线为“1”,其它行线为“0”,延时4ms,送第二列线代码到P34端口,同时置第二列线为“1”,其它行线为“0”,延时4ms,如此下去,直到送完最后一列代码,又从头开始送。
3。3 按键电路的设计
键盘扫描电路设计:本设计分配七个按键,其中每个比赛队各三个按键。分别接在P20-P26。其中P20和P24代表局按键,按下按键对应队的局数加1;P21和P25代表分数加按键,P22和P26代表分数减按键,P23代表分数清零键。当其中某个按键被按下后,单片机的I/O口和地导通,这样该I/O口的电平为高电平。单片机通过读取P2口前五位的状态可以判断出哪个按键被按下。键盘电路如图5所示。
图5 按键电路图
为了便于使用,本设计将排球计分器设计成便携式设备,电源电路采用电池为系统各模块供电,设计中其它部分的工作电压均为DC5V左右,选择五伏的锂电池供电。
4。 系统的软件设计
4。1开发环境介绍
KEIL软件是51系列单片机的软件编译环境,软件内部提供许多的库函数可以实现数学运算。KEIL的功能强大,它可以实现C语言和汇编语言的的开发和在线调试, 软件支持Window下进行开发,并且生成的汇编代码非常容易理解,因此在大型程序的开发中得到了广泛的应用。使用用KEIL软件可以实现对51全系单片机的程序编译和在线实时仿真,KEIL软件内部具有C编译器和宏汇编等常用的编译器,如果硬件上在配置一个强悍的仿真调试器,这样就可以很好的实现大型软件的开发[16-17]。来:自[优E尔L论W文W网www.youerw.com +QQ752018766-
4。2 主函数流程
程序首先执行单片机各个寄存器的初始化工作,待系统初始化完成后,程序进入一个无限的死循环函数,此时会检测是否有按键按下,如果有按键按下,就会进入按键处理函数环节,待更新显示后返回;如果无按键按下,继续返回检测按键函数处执行