单片机上网计时器
扫描二维码
随时随地手机看文章
拨号上网的个人用户(特别是包月用户)都希望知道自己累计上网的时间和次数,以便加以控制,本文介绍笔者最近设计的单片机计时器电路。
电路如图1。89C2051的P1.4~P1.7输出各位数的BCD码,P1.2、P1.3、P3.0、P3.1输出LED的位选信号。4511实现BCD至七段显示的译码。Sec-point为计时秒位及状态显示,计时时闪烁,不计时时常亮。单片机内置的模拟比较器作电话线上网状态检测,检测电话线电流,一般为防止干扰MODEM用了一只600Ω的音频隔离变压器,这样上网时实测有23mA电流流过光耦的初级,其次级输出三极管导通,P1.0电压高于P1.1,P3.6为高电平。Tel-in为电话线输入插座,tel-out为输出(接线时注意极性)。
开机不上网,显示当前累计小时、分钟数(最长99小时59分,此时不计时),按住开关S4显示上网次数(00~99)。拨号时,P3.7为低电平,Q1导通,蜂鸣器BZ1发声,提醒使用者在拨号成功连网后,按一下开关S1开始计时(蜂鸣器停止发声)。
上完网断开连接,自动停止计时,并将记录数据写入E2PROM(IC1),实现掉电记忆。开机复位后先从E2PROM中读出数据。
本机设计成当开关S2、S3同时按下时,计时数(记录数据)清零,并将零写入E2PROM中。为减小体积,从本机USB接口中获取5V电源。
软件流程图见图2。
数码管选四位共阴中间有两点(秒显用)的,该两点阳极相连,引出阴极分别接CMO2、COM3。
电源制作可外购USB插头,在其两边(①和④脚)各接一根线作正负极,焊接完毕认真检查无误,插入微机的USB口,用万用表测定正负极,按要求接到电路中(要断电操作)。这项工作不得出错,否则可能会使微机受损。S2、S3开关也可不用,在机壳上装一个∮3.5mm立体声插座,接上述三根线,将对应插头三极短路(用胶粘好)作为钥匙。按图示元器件参数安装即可正常工作。