课程设计-智能电子钟_第1页
课程设计-智能电子钟_第2页
课程设计-智能电子钟_第3页
课程设计-智能电子钟_第4页
课程设计-智能电子钟_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

.摘要单片机经过几十年的发展,已经广泛应用于生活中的各个领域。单片机以其体积小、功能全、性价比高等诸多优点,在许多行业都得到了广泛应用。在工业控制、家用电器、通信设备、信息处理、尖端武器等各种测控领域的应用中独占鳌头,单片机开发技术已成为电子信息、电气、通信、自动化、机电一体化等专业技术人员必须掌握的技术。 基于单片机的智能电子钟作为设计的课题,因为它有很好的开放性和可发挥性,对作者的要求比较高,不仅考察了对单片机的掌握能力而且强调了对单片机扩展的应用。另外LCD的智能电子钟已经越来越流行,它具有显示清晰直观、走时准确、可以进行夜视等功能,并且还可以扩展出其它多种功能。所以,智能电子钟作为设计课题很有价值。随着科技的发展,单片机的应用正在不断深入,涉及到日常生活的方方面面。本设计是基于单片机AT89S51为控制核心,以液晶为显示的数字时钟。本数字时钟设计的原理相对简单,所以硬件电路也相对简单,难点和重点主要放在C语言的编程上,使用到定时器的子程序、延时程序、时分秒的控制程序、液晶模块和单片机模块的初始化程序、液晶显示的程序等,各个函数交叉调用,配合主程序的运行。关键字:LCD1602 AT89S51 定时器目 录第一章设计要求11.1 LCD电子钟的功能要求11.2智能电子钟的设计要求1第二章方案选择与系统框图及工作原理22.1方案选择22.2系统框图22.3工作原理2第三章硬件电路设计与分析33.1控制模块33.2显示模块43.3按键电路63.4报警部分模块7第四章软件设计与分析84.1基本资源的使用84.2程序设计的基本思路84.3程序的主要流程图9第五章Protues仿真与调试11第六章PCB板的设计13第七章原件明细清单14第八章课程设计总结15致 谢16参考文献17附 录18附件1 硬件电路原理图18附件2 程序清单18整理文档第一章 设计要求1.1 LCD电子钟的功能要求(1)能显示年、月、日、时、分、秒(通常显示时、分、秒);(2)能对年、月、日、时、分、秒进行预置;(3)具有定时功能,定时时间到声光报告。1.2 智能电子钟的设计要求(1)主控部分:选择单片机为核心元件构成系统。(2)1602LCD主要技术参数:显示容量:162个字符;芯片工作电压:4.55.5V;工作电流:2.0mA(5.0V);模块最佳工作电压:5.0V;字符尺寸:2.954.35(WH)mm。(3) 功能设计:采用了AT89S52型单片机,1602LCD液晶显示屏,蜂鸣器、发光二极管。为了实现时钟,定时,闹钟,秒表的功能,用到了单片机的外部中断,计时器中断,及端口。(4)S0显示日期(按下显示日期,弹起后回到显示时间状态);S1显示闹钟(按下显示闹钟,弹起后回到显示时间状态);S2设置日期(按键1次设置年,2次设置月,3次设置日);S3设置时间(按键1次设置星期,2次设置时,3次设置分,4次设置秒);S4设置闹钟(按键1次设置时,2次设置分,3次设置秒);S5增加一(设置中对所选择变量加一);S6减少一(设置中对所选择变量减一)。(5) 主程序循环显示当前的时间并扫描按键S0对应P3.0(显示日期)和按键S1对应P3.1(显示闹钟时刻)是否有按下,并比较判断定时时刻是否到达;按键S2对应INT0中断用来设置日期,每按下一次可分别对年、月、日进行设置,P3.6和P3.7用来对所要设置的属性进行加一和减一操作,S7对应的P2.4统一的返回键,当处在中断设置状态时按此键可以返回至正常显示时间状态;按键S3对应INT1中断用来设置时间,操作同上面的日期设置;按键S4对应定时器T0,让T0工作在计数模式,通过设置计数初值为最大,当P3.3管脚来一个低电平时,加一后计数器产生溢出中断,以此用作外部中断来设置闹钟时刻。第二章 方案选择与系统框图及工作原理2.1 方案选择本次实验采用了AT89S52型单片机,1602LCD液晶显示屏,蜂鸣器、发光二极管。为了实现时钟,定时,闹钟,秒表的功能,用到了单片机的外部中断,计时器中断,及端口2.2 系统框图AT89S52单片机按键模块LCD液晶显示模块蜂鸣器发光二级管图2.1 系统框图2.3 工作原理程序循环显示当前的时间并扫描按键S0对应P3.0(显示日期)和按键S1对应P3.1(显示闹钟时刻)是否有按下,并比较判断定时时刻是否到达;按键S2对应INT0中断用来设置日期,每按下一次可分别对年、月、日进行设置,P3.6和P3.7用来对所要设置的属性进行加一和减一操作,S7对应的P2.4统一的返回键,当处在中断设置状态时按此键可以返回至正常显示时间状态;按键S3对应INT1中断用来设置时间,操作同上面的日期设置;按键S4对应定时器T0,让T0工作在计数模式,通过设置计数初值为最大,当P3.3管脚来一个低电平时,加一后计数器产生溢出中断,以此用作外部中断来设置闹钟时刻。 第三章 硬件电路设计与分析3.1 控制模块1. AT89S52图3.1.1 AT89S52模块2. 晶振电路图3.1.2 晶振电路3. 复位电路图3.1.3 复位电路以上三部分构成了单片机最小系统,其中P0和P2口的部分管脚接显示模块,P3口接控制模块,P2口的部分管脚接报警模块。3.2 显示模块图3.2.1 显示模块1602LCD主要技术参数:显示容量:162个字符芯片工作电压:4.55.5V工作电流:2.0mA(5.0V)模块最佳工作电压:5.0V字符尺寸:2.954.35(WH)mm引脚功能说明:1602LCD采用标准的14脚(无背光)或16脚(带背光)接口,各引脚接口说明如下表3.2.1所示:表3.2.1 引脚接口说明表 编号符号引脚说明编号符号引脚说明1VSS电源地9D2数据2VDD电源正极10D3数据3VL液晶显示偏压11D4数据4RS数据/命令选择12D5数据5R/W读/写选择13D6数据6E使能信号14D7数据7D0数据15BLA背光源正极8D1数据16BLK背光源负极第1脚:VSS为地电源。第2脚:VDD接5V正电源。第3脚:VL为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。第4脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。第5脚:R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和R/W共同为低电平时可以写入指令或者显示地址,当RS为低电平R/W为高电平时可以读忙信号,当RS为高电平R/W为低电平时可以写入数据。第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。第714脚:D0D7为8位双向数据线。第15脚:背光源正极。第16脚:背光源负极。硬件连接原理图如下:图3.2.2 硬件连接原理图3.3 按键电路图3.3.1 按键电路图S0显示日期(按下显示日期,弹起后回到显示时间状态);S1显示闹钟(按下显示闹钟,弹起后回到显示时间状态);S2设置日期(按键1次设置年,2次设置月,3次设置日);S3设置时间(按键1次设置星期,2次设置时,3次设置分,4次设置秒);S4设置闹钟(按键1次设置时,2次设置分,3次设置秒);S5增加一(设置中对所选择变量加一);S6减少一(设置中对所选择变量减一);3.4 报警部分模块图3.4.1 报警部分模块第四章 软件设计与分析4.1 基本资源的使用 本次实验采用了AT89S52型单片机,1602LCD液晶显示屏,蜂鸣器、发光二极管。为了实现时钟,定时,闹钟,秒表的功能,用到了单片机的外部中断,计时器中断,及端口表4.2.1 资源功能表资源功能外部中断外部中断INT1设置时分秒(每按一次改变设置类型)外部中断INT0设置年月日(每按一次改变设置类型)定时器定时器T0用溢出中断设置闹钟(每按一次改变设置类型)定时器T1定时器中断(每隔1S调整一次时间)I/O端口P0,P2,P3LCD接口,蜂鸣器、发光二极管、按键4.2 程序设计的基本思路主程序循环显示当前的时间并扫描按键S0对应P3.0(显示日期)和按键S1对应P3.1(显示闹钟时刻)是否有按下,并比较判断定时时刻是否到达;按键S2对应INT0中断用来设置日期,每按下一次可分别对年、月、日进行设置,P3.6和P3.7用来对所要设置的属性进行加一和减一操作,S7对应的P2.4统一的返回键,当处在中断设置状态时按此键可以返回至正常显示时间状态;按键S3对应INT1中断用来设置时间,操作同上面的日期设置;按键S4对应定时器T0,让T0工作在计数模式,通过设置计数初值为最大,当P3.3管脚来一个低电平时,加一后计数器产生溢出中断,以此用作外部中断来设置闹钟时刻。4.3 程序的主要流程图否否否否是是YES是是开 始S0是否被按下?定时器、计数器初始化S1是否被按下?定时是否到达?显示日期函数显示闹钟函数报警函数S7返回键是否按下?图4.3.1 按键程序流程图否否否否否否否是是是是是是是是是是是是显示日期函数S2按下INT0设置日期中断执行S2按2次?S2按3次?S2按4次?S5有按下?S6有按下?年+1年-1显示日期函数S5有按下?S6有按下?月+1月-1S7有按下?S7有按下?显示日期函数S5有按下?S6有按下?S7有按下?返 回日加一日减一否否否否否否 图4.3.2 年、月、日程序框图第五章 Protues仿真与调试本实验采用Keil 4和Protues 7.7SP2联合仿真调试图5.1 Protues仿真图显示时间:图5.2 时间显示图设置日期:图5.3 日期显示图设置闹钟:图5.4 闹铃显示图仿真结果:经过多次的反复测试与分析,掌握了硬件的设计与分析的能力,对所学的知识得到很大的提高与巩固。最终实现功能:(1)能显示阳历年、月、日、星期、小时、分、秒(2)显示模块采用LCD液晶显示,要求能用按键调整日期、时间和闹钟。(3)能进行定时,并进行声光报警。第六章 PCB板的设计图6.1 PCB板设计图在PCB设计中,布线是完成产品设计的重要步骤,可以说前面的准备工作都是为它而做的, 在整个PCB中,以布线的设计过程限定最高,技巧最细、工作量最大。PCB布线有单面布线、 双面布线及多层布线。布线的方式也有两种:自动布线及交互式布线,在自动布线之前, 可以用交互式预先对要求比较严格的线进行布线,输入端与输出端的边线应避免相邻平行, 以免产生反射干扰。必要时应加地线隔离,两相邻层的布线要互相垂直,平行容易产生寄生耦合。一般先进行探索式布经线,快速地把短线连通, 然后进行迷宫式布线,先把要布的连线进行全局的布线路径优化,它可以根据需要断开已布的线。 并试着重新再布线,以改进总体效果。对目前高密度的PCB设计已感觉到贯通孔不太适应了, 它浪费了许多宝贵的布线通道,为解决这一矛盾,出现了盲孔和埋孔技术,它不仅完成了导通孔的作用, 还省出许多布线通道使布线过程完成得更加方便,更加流畅,更为完善,PCB 板的设计过程是一个复杂而又简单的过程,要想很好地掌握它,自已体会, 才能得到其中的真谛。第七章 原件明细清单表7.1 原件明细清单表名称数量参数电阻1个1K排阻1个10K电阻1个220蜂鸣器1个5v按键9个三极管1个PNP发光二级管1个10-20mALCD显示器1个1602LCD极性电容1个10uF晶振及其插座一套12MHz电阻2个2k,10k电容2个30pF芯片1块AT89S51第八章 课程设计总结本次智能电子时钟的实验课程设计,学习将理论和实践相结合,对数字器件及集成电路有较深入的认识,初步掌握综合运用所学知识分析和设计一般数字系统的基本方法,增强动手解决实际问题的能力。认识到了自身的许多缺点和不足,初步接触到了如何将硬件和软件相连接来实现一定的自动化。在试验板的焊接过程中,更深地意识到焊接技术的重要性。使我明白现实生活中电子钟的工作原理,锻炼了查找资料的能力。通过这次课程设计,我深深体会到这句千古名言的真正含义我今天认真的进行课程设计,学会脚踏实地迈开这一步,就是为明天能稳健地在社会大潮中奔跑打下坚实的基础。通过这次智能电子时钟设计,本人在多方面都有所提高。通过这次智能电子时钟设计,综合运用本专业所学课程的理论和生产实际知识进行智能电子时钟设计工作的实际训练从而培养和提高学生独立工作能力,巩固与扩充了课程所学的内容,掌握智能电子时钟设计的方法和步骤,掌握智能电子时钟设计的工艺方案,了解了智能电子时钟的基本结构,熟悉了规范和标准,同时各科相关的课程都有了全面的复习,独立思考的能力也有了提高。致谢本设计是在叶天凤老师及南光群老师的悉心指导下完成的,老师渊博的知识,严谨的治学态度,一丝不苟的工作作风,平易近人的性格都是我学习的楷模。在实物制作期间,老师给我们细心讲解制作过程和有关的注意事项,我在遇到困难的时候总是能得到及时的得到老师的帮助。在论文的研究及整理期间,老师给了我很大的支持和鼓励,才使得报告得以顺利的完成,在此谨向老师表示忠心的感谢和崇高的敬意。同时感谢实验室的等老师,他们给我们提供了必要的实验器材,提供了很大的方便感谢同实验室的同学,在实验期间,他们不仅在学习上对我有很大的帮助,还在生活上提供方便。这两个星期,我和他们合作的是非常愉快的。同时还要感谢各位同学,他们也给了我很大的支持和帮助。最后,由于本人知识有限,不足之处在所难免,还请老师指点纠正。 参考文献1电气与电子信息工程学院.单片机实验指导书 2高峰编著.单片微型计算机原理与接口技术.北京:科学出版社,20033陈粤初等.单片机应用系统设计与实践.北京:北京航空航天大学出版社,19914邹逢兴主编.计算机硬件技术及应用基础.长沙:国防科技大学出版社,20015黄冰等编著.微机原理及应用. 重庆:重庆大学出版社,20036曾峰等.印制电路板(PCB)设计与制作.北京:电子工业出版社,20057 周润景,张丽娜,刘印群. PROTEUS入门实用教程M.北京:机械工业出版社,2007,314-3258 戴佳,戴卫恒. 51单片机C语言应用程序设计实例精讲M.北京:电子工业出版社,2006,231-2469 徐爱钧,彭秀华 Keil Cx51 V7.0 单片机高级语言编程与uVision2应用实践 M.(第二版)北京:电子工业出版社,2008,156-17110 肖炎根,舒望.基于实时钟芯片的电子万年历设计J.电子技术,2007,卷号(36):91-9411 王怀平,王仁波,胡开明.Proteus仿真设计基于单片机AT89C51的电子万年历J.科技广场,2008,卷号(10):197-19812 鲁刚强. 基于液晶显示器的单片机系统设计J.科技资讯,2008,卷号(35):22-2313 余威明. MCU语音型电子万年历的开发J. 浙江工贸职业技术学院学报,2004,卷号(4):20-2514 邱关源. 电路 M.(第四版)北京: 高等教育出版社, 2006, 241-268.15 陈凯. 液晶显示万年历、时间、星期及温度D.湖南:湖南理工学院,2009.16 张海兵, 李 敏. Protel电路设计实例与分析M. 北京:人民邮电出版社, 2005,119-20517 黄劼, 徐晓秋. 单片机原理及接口技术M. 北京:国防工业出版社,2008,102-11218 刘迎春. MCS-51单片机原理及应用教程 M. 北京:清华大学出版社,2005,145-15719 张齐, 朱宁西.单片机应用系统设计技术:基于C51的Proteus仿真M.(第二版) 北京:电子工业出版社,2009,245-264附录附录1 硬件电路原理图附录2 程序清单/* DISPLAY.H*/#include#define uchar unsigned char#include #define _REG52_H_/*定义端口*/sbit rs = P20;sbit rw = P21;sbit en = P22;struct dateType/定义日期数据类型 unsigned int year;unsigned char month;unsigned char day;struct timeType/定义时间数据类型 unsigned char week;unsigned char hour;unsigned char min;unsigned char sec;/定义全局变量,日期、时间、闹钟和计数器struct dateType dateNow=2000,2,29; /设置默认日期 2000年2月29日struct timeType timeNow=07,23,58,30; /设置默认时间周日23:58:30struct timeType setClock=0,0,05,20; /设置默认的闹铃 00:05:20unsigned char count=0;void lcd_wdat(uchar date);void lcd_wcmd(uchar com);/*延时函数*/void delay2us(uchar k)while(-k);void delay1ms(uchar k)int i,j;for(i=k;i0;i-)for(j=110;j0;j-);void delay(unsigned int count) unsigned int j; while(count-!=0) for(j=0;j=3)flag=0;here1:idisplay_date();if(P3_2=0) goto here1;break; idisplay_date(); if(P3_6=0) dateNow.year+;dis1:idisplay_date(); delay(10);if(P3_6=0) goto dis1; if(P3_7=0) dateNow.year-;dis2:idisplay_date();if(P3_7=0) goto dis2; if(P2_4=0) delay(10); if(P2_4=0) return; case 1: /设置月for(; ;) if(P3_2=0) flag+;if(flag=3)flag=0;here2:idisplay_date();if(P3_2=0) goto here2;break; idisplay_date(); if(P3_6=0) if(dateNow.month1)dateNow.month-;elsedateNow.month=12; dis4:idisplay_date();if(P3_7=0) goto dis4; if(P2_4=0) delay(10); if(P2_4=0) return; case 2:/设置日for(; ;) if(P3_2=0) flag+;if(flag=3)flag=0;here3:idisplay_date();if(P3_2=0) goto here3;break; idisplay_date(); if(P3_6=0) if(dateNow.day1)dateNow.day-;elsedateNow.day=31;dis6:idisplay_date();if(P3_7=0) goto dis6; if(P2_4=0) delay(10); if(P2_4=0) return; /*void set_clock() interrupt 1 /计数器T0扩展为外部中断,设置闹钟 unsigned char flag=2; lcd_wcmd(0x01); /清屏 idisplay_clock(); while(1) switch(flag) case 0:/设置时for(; ;) if(P3_4=0) flag+; if(flag=3) flag=0; here1:idisplay_clock(); if(P3_4=0) goto here1; break; idisplay_clock(); if(P3_6=0) if(setClock.hour0)setClock.hour-; else setClock.hour=23;dis2:idisplay_clock();if(P3_7=0) goto dis2; if(P2_4=0) delay(10); if(P2_4=0) return; case 1:/设置分for(; ;) if(P3_4=0) flag+; if(flag=3) flag=0; here2:idispl

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论