1、强化训练目录摘要 11 设计目的和要求 21.1设计目的 21.2 设计要求 22 系统流程图 33 数字电子钟的组成和工作原理 43.1 秒信号发生器的设计 43.2译码显示电路 53.3校时电路的设计 64 十二进制与二十四进制 75小结与体会 86 参考文献 9附录 10摘要本设计电路包括秒发生器电路,译码显示电路,校正电路。秒发生器电路采用晶体振荡分频电路,具有选频好,较稳定的特点。译码显示电路,秒,分采用六十进制,时采用十二进制或二十四进制。校正电路的作用是来调整时间和切换十二进制和二十四进制。整个电路的功能由单片机来实现。关键词: 数字钟 振荡 计数 校正 1 设计目的和要求 1.
2、1设计目的 1使学生在学完了电子技术基础课程的基本理论,基本知识后,能够综合运用所学理论知识、拓宽知识面,系统地进行电子电路的工程实践训练,锻炼动手能力,培养工程师的基本技能,提高分析问题和解决问题的能力。 2熟悉集成电路的引脚安排, 掌握各芯片的逻辑功能及使用方法了解面包板结构及其接线方法,了解数字钟的组成及工作原理。学会检查电路的故障与排除故障的一般方法 3学会检查电路的故障与排除故障的一般方法,掌握虚拟设计,学会使用一种电路分析软件(EWB或PSPICES)在计算机上进行电路设计与分析的方法。1.2 设计要求 (1)时间计数电路采用24进制,从00开始到23后再回到00; (2)各用2位
3、数码管显示时、分、秒;(3)具有手动校时、校分功能,可以分别对时及分进行单独校时,使其校正到 标准时间; (4)计时过程具有报时功能,当时间到达整点前10秒开始,蜂鸣器1秒响1秒停地响5次。 (5)为了保证计时的稳定及准确,须由晶体振荡器提供时间基准信号。2 系统流程图分显示器秒显示器时显示器译码器译码器译码器计数器计数器计数器时间校正振荡器图1 总的流程图3 数字电子钟的组成和工作原理 3.1 秒信号发生器的设计 方案比较 1 采用555多谐振荡器优点:555内部的比较器灵敏度较高,而且采用差分电路形式,它的振荡频率受电源电压和温度变化的影响很小。缺点:要精确输出1Hz脉冲,对电容和电阻的数
4、值精度要求很高,所以输出脉冲既不够准确也不够稳定。 2 采用晶体振荡分频电路优点:由石英晶体的阻抗频率响应可知,它的选频特非常好,有一个极为稳定的串联谐振频率fs,且等效品质因数Q很高。只有频率为fs的信号最容易通过,且其他频率的信号均会被晶体所衰减。 比较结果:振荡器是数字钟的核心,振荡器的稳定度及频率的精确度决定了数字钟计时的准确程度。为了达到设计要求,获取更高的计时精度,选用晶体振荡器构成振荡器电路。一般来说,振荡器的频率越高,计时精度越高。图如下:图2 晶体振荡分频电路图3.2译码显示电路图3 译码显示电路 74ls245的A0到A7接单片的P2口,输出B0到B5接数码管的123456
5、来驱动显示哪一个数码管。数码管的ABCDEFG和DP接单片机的P0口,来控制数码管显示的大小。电路中有六个数码管,分别来显示秒,分,时,其中秒,分是六十进制,时可以是十二进制或二十四进制。3.3校时电路的设计图4 校时电路三掷开关的三个口接单片机P1的三个口,分别来控制时调节,分调节和十二进制和二十四进制转换,当开关合在哪个口时就控制哪个调节,然后通过按钮按一次时或分就增加一个单位。这就是校时电路的原理。4 十二进制与二十四进制图5 时钟为二十四进制 图6 时钟为十二进制5小结与体会 1、加强了团队合作精神,磨练了我们的意志力。我们各人之间好好的配合,分工合作,设计过程没有一团乱麻。更为可贵的
6、是,我们彼此鼓励,同舟共济地处理每个问题。这种团队精神将是我们美好的回忆。我们花了很多心血来做这个课程设计,由于这两个星期又要考试所以很紧的时间,但凡事不是一帆风顺的,我们遇到了许多困难。有些困难甚至看进来难于解决,确实也是打击了我们的信心,但我们毫不气馁,最后还是克服了种种困难完成了任务。 2、加强我们对电子器件的了解。一直以来,我们都对电子器件都很感兴趣,对电子应用感到好奇。这一次在设计的过程中加深了对电子器件的理解 3、提高了我们使用电脑对电路进行仿真的能力。我们又要学会新的软件 EWB来画电路图,并用它进行仿真。这又让我们的知识增多了。 4、做到理论联系实际。刚刚学过了数电这门课程,还
7、没完全弄懂某些元器件的原理和用途,而此次课程设计恰恰提供了一个好机会,让我们从实践中加深了对所学知识的理解。6 参考文献1、康华光.2006年. 电子技术基础 数字部分(第五版). 北京:高等教育出 版社. 2、模拟电子技术 第五版 康华光主编 高等教育出版社 20063、数字电路实验与课程设计 施云 编著 哈尔滨工程大学 20014、电子线路实验-数字电路实验 沈小丰主编 清华大学出版社 20075 谭会生,张昌凡EDA 技术及应用西安:西安电子科技大学出版社20046 孙晓明EDA实验指导书武汉:武汉理工大学教材中心,20071附录附录1#include#define uint unsig
8、ned int #define uchar unsigned char sbit _led=P17;sbit key1=P10; /调时按键sbit key2=P11;/加按键sbit key3=P12;/减按键sbit key4=P13;/确定建uchar num=0,temp=0,count=0;uchar aa;uchar hour,min,sec;uchar code table=0x60,0xf3,0xa4,0xa1,0x33,0x29,0x28,0xe3,0x20,0x21;/定义共阳极LED显示段码0、1、2、3、4、5、6、7、8、9void delay(uint z);/延时
9、子函数声明void display(uchar a,uchar b,uchar c,uchar d,uchar e,uchar f,uchar aa);/显示子函数声明void read_key();/读按键函数声明void led();void time_change();/时间调整子函数声明/* 主函数 */void main() P2=0xff; hour=12; min=0; sec=0; TMOD=0x11; TH0=(65536-50000)/256; TL0=(65536-50000)%256; TH1=(65536-50000)/256; TL1=(65536-50000)%2
10、56; EA=1; ET0=1; ET1=1; TR0=1; TR1=1; aa=0xff; while(1) time_change(); display(tablehour/10,tablehour%10,tablemin/10, tablemin%10,tablesec/10,tablesec%10,0xff); /* 显示函数 */void display(uchar a,uchar b,uchar c,uchar d,uchar e,uchar f,uchar aa) if(1) P0=0xfb&aa;P1=0xbf;delay(2); P0=0xdf&aa;P1=0xbf;dela
11、y(2); if(num=1) P0=0xfe&aa;P1=a;delay(2); else P0=0xfe;P1=a;delay(2); /hour if(num=1) P0=0xfd&aa;P1=b;delay(2); else P0=0xfd;P1=b;delay(2); /hour if(num=2) P0=0xf7&aa;P1=c;delay(2); else P0=0xf7;P1=c;delay(2); /min if(num=2) P0=0xef&aa;P1=d;delay(2); else P0=0xef;P1=d;delay(2); /min if(num=3) P0=0xb
12、f&aa;P1=e;delay(2); else P0=0xbf;P1=e;delay(2); /sec if(num=3) P0=0x7f&aa;P1=e;delay(2); else P0=0x7f&aa;P1=f;delay(2); /sec /* 定时器0中断函数 */ void timer0() interrupt 1 TH0=(65536-50000)/256; TL0=(65536-50000)%256; temp+; /* 定时器1中断函数 */void timer1() interrupt 3 TH1=(65536-50000)/256; TL1=(65536-50000)%
13、256; count+; if(count=20) count=0; /* 延时子函数 */void delay(uint z) uint j,k; for(j=z;j0;j-) for(k=120;k0;k-);/* 读按键函数 */void read_key() if(key1=0) _led=0; delay(100); if(key1=0) delay(100); _led=1; num+; if(num3)num=0; while(1) if(key1=0) _led=0; delay(10); if(key1=0) num+; if(num3)num=0;break; while(
14、!key1); delay(10); while(!key1); _led=1; if(key2=0) _led=0; delay(80); if(key2=0) if(num=1)hour+;if(hour=24)hour=0; if(num=2)min+;if(min=60)min=0; if(num=3)sec+;if(sec=60)sec=0; while(!key1); delay(10); while(!key1); _led=1; if(key3=0) _led=0; delay(80); if(key3=0) if(num=1)hour-;if(hour=0)hour=23;
15、if(num=2)min-;if(min=0)min=59; if(num=3)sec-;if(sec=0)sec=59; while(!key1); delay(10); while(!key1); _led=1; if(key4=0) _led=0; delay(80); if(key4=0) num=0;break; if(count15) display(tablehour/10,tablehour%10,tablemin/10, tablemin%10,tablesec/10,tablesec%10,0x00); while(!key1); delay(10); while(!key1); _led=1; /* 时间调整函数 */void time_change() read_key(); if(temp=20) temp=0; sec+; if(sec=60) sec=0; min+; if(min=60) min=0; hour+; if(hour=24) hour=0; 附录二:
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1