电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

可调试数字电子时钟电路的设计(吴丹)VIP免费

可调试数字电子时钟电路的设计(吴丹)_第1页
1/12
可调试数字电子时钟电路的设计(吴丹)_第2页
2/12
可调试数字电子时钟电路的设计(吴丹)_第3页
3/12
杭州职业技术学院毕业设计(作品)(2010届)作品名称可调试数字电子时钟电路的设计系别信息电子系专业应用电子技术班级应电0842学号0803402038姓名吴丹指导教师张雪娟2010年5月8日一、作品原理图数字显示时钟的主要功能是用24进制显示一天的时间,在单片机的辅助下能通过对时间进行调试,在断电的情况下能准确的计时。电路如图1所示。在实际电路中主要运用的是ds1320涓流充电时钟芯片(u2)对时间进行24进制的计时,在通过atmega8l-8pi可编程8位控制器(u1)对在四位数码显示管上显示出真确的时间,s1,s2,s3是分别控制时钟调整时间的,在电路中还加入了一个蜂鸣器,当s1,s2,s3中的任何一个按下的时候就会发出声音,这是对以后能更好检查是哪个按钮失灵的好方法。u1单片机的10-14的管脚分别于四位数码显示管上的abcdefg、dp相连,2345的管脚分别和四位数码显示管上的1234,这样的连接就可以在四位数码显示管上真确的显示数字0-9十个数字了,在u2集成块上我们多加了一个电源vcc,在实际的电路中我们运用了一个3v的纽扣电池,在这种情况下即使单片机没有通电,集成块也能精确的记录没电时的时间,在下次通电的时候还是和现在的时间是一致的。1图1电路原理图二、程序设计在程序方面我们运用的是c语言的编程,在这个编程里,我们分别实现了对24进制时间的调整,在正确显示时钟的同时还防止了时钟错误显示的功能。//DefineFPUanddevicedefaults#include"config.h"#include#include#include#include#include"LED47.h"#include"utils.h"#include"keys.h"#include"DS1302.h"2#include"buzzer.h"#defineUPDATE_INTERVAL60#defineBLINKING_CRYCLE3#defineKEY_REPEAT_LIMIT_SET1#defineKEY_REPEAT_LIMIT_SHIFT1#defineKEY_REPEAT_LIMIT_UP1#defineALARM_SECONDS60#defineALARM_STOP0#defineALARM_IN_ACTION1intmain(void){//byteInitVal[7]={dec2bcd(00),dec2bcd(00),dec2bcd(17),dec2bcd(8),dec2bcd(3),dec2bcd(6),dec2bcd(9)};//初始数秒,分,时,日,月,星期,年byteReadVal[7]={0x00,0x00,0x00,0x00,0x00,0x00,0x00};byteSaveSec,DispDot;wordDispNum=0;bytekey;//0:initializedstatus//1:pressedinnormalmode//2:releasedtoentersettingmode//3:pressedinsettingmodebyteSetStatus=0;booleanAlarmSettingMode=false;byteShiftStatus=0,UpStatus=0;byteTempDEC;byteSetCursor=3;byteBlinking=0;byteAlarmHour=12,AlarmMin=0;booleanAlarmFlag=false;byteAlarmStatus=ALARM_STOP;init_devices();//v_Set1302(InitVal);InitTube();InitKeys();//Disp4Digit(8888,1000,3,0);3DispCircle(2,60,1);DispCircle(2,60,0);while(true){//Soundonifalarmreachedandalarmisactiveif(AlarmFlag){if((bcd2dec(ReadVal[2])==AlarmHour)&&(bcd2dec(ReadVal[1])==AlarmMin)){//Stopinoddsecondif((bcd2dec(ReadVal[0]))%2){SoundOff();AlarmStatus=ALARM_STOP;}//Soundinevensecondelse{SoundOn();AlarmStatus=ALARM_IN_ACTION;}}else{if(AlarmStatus==ALARM_IN_ACTION)SoundOff();}}key=ReadKey();switch(key){//SETpressedcaseK_SET_PIN://Togglepressedstate//Normalmode,pressedif(SetStatus==0)SetStatus=1;//Settingmode,pressedelseif(SetStatus==2){Blinking=0;SetStatus=3;}4break;//SETpressedcaseK_SHIFT_PIN:if(ShiftStatus==0)ShiftStatus=1;break;caseK_UP_PIN://Togglepressedstateif(UpStatus==0)UpStatus=1;break;default://///----togglesettingandnormalstatus//Releasedtoentersettingmodeif(SetStatus==1){SetStatus=2;SetCursor=3;beep(10);}//Releasetoenternormalmodeelseif(SetStatus==3){if(!AlarmSettingMode){//Setsecondto0ReadVal[0]=0;//Adjustthetimev_Set1302(ReadVal);beep(20);//EnteralarmmodeAlarmSettingMode=true;//SetSetStatustoalarmsettingmodeSetStatus=1;SetCursor=1;Blinking=0;}//Toggleclockandalarmmodeelse{//EnternormalmodeAlarmSettingMode=false;5SetStatus=0;SetCursor=0;Blinkin...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

可调试数字电子时钟电路的设计(吴丹)

您可能关注的文档

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部