天津科技大学-微机接口(单片机)期末论文-电子时钟的设计精选.doc

天津科技大学-微机接口(单片机)期末论文-电子时钟的设计精选.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
天津科技大学-微机接口(单片机)期末论文-电子时钟的设计精选

学 院:计算机科学与信息工程学院 专 业:计算机科学与技术 学 号:141011XX 姓 名:XXX 日 期:2016年12月12日 电子时钟的设计 设计要求及目的 电子时钟主控芯片进行显示采用液晶路独立按键进行设置单片机的定时器配置中断 图1-1 整体结构框图 实验环境 软件程序编写实验Keil4 For C51,仿真程序使用Proteus7.8。 元器件列表 类型 数量 蜂鸣器 1 10uF 1 30pF电容 2 LED 1 LCD1602 2 9012 9 10K 1 开关 1 SW-PB按键 4 STC89C52 1 12M 1 表1-1 四、 实验原理 在本次设计中,时钟的设置是相当重要的,通过时钟的设置才能获得良好的时钟频率,这个时钟频率是整个软件系统是否能正常有序地运行的关键。时钟实现可以通过使用时钟芯片或通过单片机内部的定时器来实现。下面为具体方案: 方案一:时钟使用时钟芯片实现。许多类型的时钟芯片,具有相同的原理,内置晶体振荡器和充电电池,同时也有外置晶振的。现在流行的时钟芯片DS1302,DS1307等时钟芯片可以得到一个准确的时钟走时,用简单的程序来实现具有定时功能的智能开关。 方案二:由单片机定时器实现。单片机内部定时器可以实现更准确的时钟时间,1ms的最小定时误差率,可以满足一个电子秒表实现的要求。虽然增加了编程难度,但是简化了电路、降低了成本。 ? 本次设计中对于时钟精度要求不太高,省去时钟芯片还可以降低成本,虽然编程的难度提高,但为了更好地性价比,采用方案二。 本次设计的计数采用AT1单片机的定时器中断,采用显示器显示信息。时钟的分钟小时。 图1-2 整体原理图 LCD1602电路图 本次设计液晶LCD1602显示部分电路图如图1-3所示,显示器的数据端D0-D7连到单片机上,RW,RS,EB分别与单片机的P2^7,P2^5,P2^6相连,单片机驱动LCD1602将电子时钟信息显示出来。 图1-3 显示部分原理图 按键电路图 图1-4 按键部分原理图 本设计需要外加按键来设置电子时钟的时间,按键采用低电平有效的方式进行识别,功能键K1~K4功能如下:K1—进入设置现在的时间 K2—设置小时。K3—设置分钟 K4—确认完成设置。 AT89C51电路图 图1-5 AT89C51原理图 片机控制模块是整个设计方案的核心。AT89C51芯片作为该系统的控制部件,它控制了1602液晶显示的内容以及液晶动态显示方式。单片机最小系统由时钟电路和复位电路构成,这样就可以在接入其他器件,用单片机编程实现对外部器件的控制。全局复位电路、晶振时钟电路和控制器AT89C51组成了单片机的最小系统,如图1-5所示。 程序源代码 #includereg52.h #includeintrins.h #define uchar unsigned char #define uint unsigned int void Lcd_WrData1(uchar row, uchar col, uchar *dat); uint flag_1ms_value = 0; //按键 sbit _Key_1 = P1^0; //设置 sbit _Key_2 = P1^1; //小时 sbit _Key_3 = P1^2; //分钟 sbit _Key_4 = P1^3; //确认 //运行指示灯 sbit LED_R = P3^4; //确认 unsigned char Hour = 0; unsigned char Minute = 0; unsigned char Second = 0; void LED_Dis_Value(void); /*--------------------------------------------------- 延时函数 -----------------------------------------------------*/ void delay(unsigned char ms) // 延时子程序 { unsigned char i; while(ms--) { for(i = 0; i 120; i++); } } uchar Set_Flag = 0; void Scan_Key(

文档评论(0)

586334000 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档