1、淮南师范学院电气学院电子信息科学与技术专业proteus课程设计 成绩课程论文题 目: 数字电子钟的设计 学生姓名: 陈东梅 学生学号: 1008050103 系 别: 电气信息工程学院 专 业: 电子信息科学与技术 年 级: 10 级 任课教师: 沈晓波 电气信息工程学院制2013年1月目录1.数字电子钟的研究背景12.数字电子钟设计的基本理论23.1系统框图24.数字电子时钟的电路设计34.1电路原理图设计34.2数字电子时钟设计的理论推导34.2.1LED数码管的结构34.2.2.AT89C51的使用65 数字电路设计的算法流程图66 数字电子时钟设计的实现86.1 仿真86 结论12参
2、考文献12附录12致谢16数字电子时钟设计学生:陈东梅指导教师:沈晓波电气信息工程学院电子信息科学与技术专业专业1.数字电子钟的研究背景近年来,电子技术获得了飞速的发展,在其推动下,现代电子产品渗透了社会的各个领域, 大力推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。 现代生活的人们越来越重视起了时间观念,可以说是时间和金钱划上了等号。对于那些对时间把握非常严格和准确的人或事来说,时间的不准确会带来非常大的麻烦,所以以数码管为显示器的时钟比指针式的时钟表现出了很大的优势。数码管显示的时间简单明了而且读数快、时间准确显示到秒。而机
3、械 式的依赖于晶体震荡器,可能会导致误差。数字钟是采用数字电路实现对“时”“分”“秒”数字显示的计时装置。数字钟的精度、稳定度远远超过老式机械钟。在我的设计中采用了LED 数码管显示时、分、秒,以 24 小时计时方式,根据 数码管动态显示原理来进行显示,用12MHz的晶振产生振荡脉冲,定时器计数。在此次设计中,电路 具有显示时间的其本功能,还可以实现对时间的调整。数字钟是其小巧,价格低廉,走时精度高,使用 方便,功能多,便于集成化而受广大消费的喜爱,因此得到了广泛的使用。2.数字电子钟设计的基本理论 数字电子时钟采用内部硬件定时器来进行计时,计时最小单位sec100为10ms。若sec100每
4、记满100次,表示已经计时1s,则sec100清零且sec加1。如果sec等于60,应将sec清零,同时min加1。如果min等于60,应将min清零并hour加1。如果hour大于23时,应该将hour清零。 用AT89C51对系统进行控制,并加上外部中断按钮K1、K2来实现。3数字电子时钟方案设计 3.1系统框图 图1.电子时钟系统的原理框图4.数字电子时钟的电路设计4.1电路原理图设计 打开Proteus ISIS,在Proteus ISIS编辑窗口中单击元件列表之上的“p”按钮,添加下表所列的元器件。添加元器件后,绘制原理图。表1.元件表单片机AT89C51电解电容CAP-ELEC 1
5、0Uf瓷片电容CAP22pF电阻RES晶振 CRYSTAL11.592MHz数码管7SEG-MPX8-CA-BLUE三极管NPN按钮BUTTON上拉排阻RESPACK-8 图2 原理图4.2数字电子时钟设计的理论推导4.2.1LED数码管的结构使用的LED数码管是7段LED,ag呈“日”字形,结构如下图:图3 LED结构图图4 LED数码管的连接表2.字形代码与十六进制数的对应关系图5 n个LED数码管的连接4.2.2.AT89C51的使用单片机应用系统以单片机为核心,同时配以相应的外围电路及软件来完成某种或几种功能的系统。它包括硬件和软件两部分,硬件是系统的躯体,软件是系统的灵魂。单片机是指
6、一个集成在一块芯片上的完整计算机系统。尽管他的大部分功能集成在一块小芯片上,但是它具有一个完整计算机所需要的大部分部件:CPU、内存、内部和外部总线系统,目前 大部分还会具有外存。同时集成诸如通讯接口、定时器,实时时钟等外围设备。在本设计中,用了INT0和INT1两个中断,分别作为按钮K1和K2。初始化为TMOD=0x01; TH0=0xDC;TL0=0x00; TR0=1; ET0=1; EX0=1; IT0=0; EX1=1;IT1=0; EA=1;加上排阻RESPACK-8,驱动,电流不够,加排阻增加电流嘛,排阻一般有九个脚,一个脚接VCC,其他脚接单片机I/o口。5 数字电路设计的算法
7、流程图 图6.主流程图 图7按键控制处理流程图 图8定时器中断流程图 图9 显示器流程图6 数字电子时钟设计的实现6.1 仿真打开keil uvision4,执行”Project-New Project”,z在弹出的“creat new project”输入项目名,在新建一个“file”,保存并加入“Group”,在“file”中输入C语言程序,检查错误并改错。再生成“.HEX”文件。 画好原理图并电器检测,生成网络表,双击AT89C51,在弹出的“Edit Compeonet”对话框的“Progam File”栏中选择刚刚生产的HEX文件,单击调试按钮,进行调试。如图所示:图10 仿真图1图
8、11 仿真图2点击“Design-Design Explorer”,会看到有没有封装的元件。打开“Ares”封装元件,并加入自己的库里,再回到原理图加封装,“Design-Design Explorer”,元件都封装后。 再生成网络表。执行“Tools-Netlist to ARES”,进入PCB。执行 “File-load netlist”,再执行“Tools-Auto place ”导入元件,再执行“Tools-Auto Router”布线。图12 PCB布线图图13 3D效果图6 结论总结:在这次课程设计中,遇到很多问题,而且发现对proteus软件不是很熟悉,所以做得很慢,对于单片机的
9、掌握也不是很好,还要多做多练。参考文献1陈忠平. 基于Proteus的51系列单片机设计与仿真P.北京:电子工业出版社,2012.05.2谭浩强. C语言程序设计教程P.北京:高等教育出版社,2006.08. 3 谢维成,杨家国.单片机原理与应用及C51程序设计P.第二版清华大学出版社.2003.附录C语言程序: #include#define uchar unsigned char#define uint unsigned intsbit k1=P32;sbit k2=P33; uchar tab=0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80, 0
10、x90,0x88,0x83,0xC6,0xA1,0x86,0x8E,0xBF;uchar dis_buff8;uchar sec100,sec,min,hour;void delay(uint k) uint m,n; for(m=0;mk;m+) for(n=0;n9) P2=0x01; Else P2=0x00; P0=tabdis_buff7; delay(2); void disp_data(void) dis_buff7=hour/10; dis_buff6=hour%10;dis_buff5=16;dis_buff4=min/10; dis_buff3=min%10;dis_buf
11、f2=16; dis_buff1=sec/10; dis_buff0=sec%10; void inc_hour(void) hour+;if(hour23)hour=0; void inc_min(void) min+; if(min59) min=0; inc_hour();void inc_sec(void)sec+; if(sec59) sec=0;inc_min(); void int0() interrupt 0 delay(150); if(INT0=0) inc_hour(); void int1() interrupt 2 delay(150);if(INT1=0)inc_m
12、in(); void timer0() interrupt 1 TH0=0xDC;TL0=0x00; sec100+; if(sec100=100) sec100=0; inc_sec(); void int_init(void) TMOD=0x01;TH0=0xDC; TL0=0x00; TR0=1;ET0=1; EX0=1; EX1=1;IT0=0; IT1=0; EA=1; void main(void) int_init();P0=0xFF; P2=0x00;hour=22; min=59; sec=0; sec100=0; while(1) disp_data(); display(); 致谢 首先必须感谢沈晓波老师在PROTEUS学习过程中对我的辅导,在本学期的学习中了解的不单单是PROTEUS,还弥补了一些在单片机学习过程中的不足。老师给我们补充了很多知识,在做实验过程中,很认真的指导我们,严格的要求我们,而且课堂时间很有趣,总是让人觉得时间好短。老师备课总是很认真,大家都看得出来,沈老师是个负责人的老师。 第 17 页