基于单片机的数字秒表设计 联系客服

发布时间 : 星期四 文章基于单片机的数字秒表设计更新完毕开始阅读2ad58caaa3c7aa00b52acfc789eb172dec639941

图2.2.2

数码管显示电路设计

一般来说,不直接用I/O端口直接连接数码管,如图2.2.3,本设计采用74ls48译码器和共阴极数码管。

图2.2.3 74ls48芯片是一种常用的七段数码管译码器驱动器,常用在各种数字电路和单片机系统的显示系统中,如下图,为74Ls48真值表以及特性表。 图2.2.4真值表 图2.2.5特性表 因为74ls48输出电流最大为6mA,在数码管的工作电流之内,所以不必用电阻。 共阴极数码管是指将所有发光二极管的阴极接到一起形成公共阴极(COM)的数码管。共阴数码管在应用时应将公共极COM接到地线GND上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮。当某一字段的阳极为低电平时,x相应字段就不亮。

图2.2.6数码管引脚图 图2.2.7数码管真值表

精心整理

将共阴极数码管一端接地,一端接在单片机上,通过操纵单片机的高低电平,从而控制数码管。

图2.2.5

如图2.2.5,当按钮没有按下时,单片机的I/O口直接连接电源,所以须要上拉电阻进行限流,计算的灌电流为2.5mA,查看AT89S51的数据手册知该电流在其范围内,满足设计要求。 软件设计 软件设计流程图 开始 否 数码管显示是 否 消除开关抖动 否 计时 否 否 第1次按钮按是 是 精心整理 第2次按钮按

当手指按下开关时,如果我们的动作足够完美,那么P1.0应该立即出现一个低电平,并且这个低电平一直保持到我们抬起手指为止。但实际情况是,我们没有经过专业的按开关训练和开关自身存在着接触点接触不良的问题,导致在按下开关的过程中产生一个微妙的跳变电平接触过程:开关在一个很短的时间内,会出现多次的接通与断开过程。这样在P1.0端口出现一个电平在VCC和0V之间抖动的过程。这对于具有高灵敏触角的单片机来说,会产生误动作。因此,如图2.3.1,本设计采用延时程序设计来避开抖动电平。 图2.3.1延时程序 上述程序所花时间为(248*2+2+2)*60=30ms,30ms足以消除抖动。 数码管延时显示程序 在本次的秒表系统电路设计图中,两位七段数码管与P0口相连,并分别占了P0.0-P0.3和P0.4-P0.7.因为有译码器为接口,只要控制I/O口输出BCD码便能得到相应数字了。如显示0,由于0的BCD码为0000,所以指令为MOVP0,#00H。 秒表启动后,当第一次按下按钮开关后秒表开始计时。系统延时1秒,然后利用ADD指令,把显示的数字加一,这样就显示01,再延时再显示,如此循环,直到显示至99后,又返回00重新开始计时。 延时1秒的程序 精心整理

MOVR5,#10 ADD_1: MOVR6,#200 CALLDELAY DJNZR5,ADD_1 DELAY: MOVR7,#248 JNBP1.0,PRESS_2 DJNZR7,$ DJNZR6,DELAY RET 上述程序所花时间为(2+2+248*2)*200*10=1s。软件调试和结果 将完整的程序在uVision中进行编辑和汇编,编译成功后就可以通过51开发板下载到硬件平台中。 软件调试与下载

精心整理