- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验课程:单片机课程设计
专业班级:2013级电信3班
学号: 130101031106
姓名: 徐砚林
指导教师: 卢钢
同组设计者: 曾旻枢
2015年12月29日
电子数字钟
一、设计功能要求
要求利用实验箱上的数码管模拟电子数字钟。显示时、分、秒,并且随时间跳变。在整点时,启动蜂鸣器。
设计要求:
(1) 系统硬件设计:利用单片机实验板完成设计要求;
(2) 系统软件设计:完成控制软件的编写与调试;
(3) 功能要求:
1) 6位数码管显示小时、分钟,秒(例如:15:35:45);
2) 具有整点提示功能(例如蜂鸣器鸣响半分钟),具有整点报时功能(例如十点响十声);
二、设计方案
1、原理依据
电子钟是一种用数字电路技术实现时,分,秒计时的装置,具有整点报时等功能。
本设计主要采用C51单片机作为主控核心,动态数码管作为显示屏显示,蜂鸣器作为整点报时,独立按键K1作为消除闹铃。
数码管
共阳极数码管的8个发光二极管的阳极连接在一起接高电平,其它管脚接各段驱动电路输出端。当某段的输出端为低电平时,则该段所连接的发光二极管导通并点亮,根据发光字段的不同组合可显示出各种数字或字符。
共阴极数码管的8个发光二极管的阴极连接在一起接低电平,其它管脚接各段驱动电路输出端。当某段的输出端为高电平时,则该段所连接的发光二极管导通并点亮,根据发光字段的不同组合可显示出各种数字或字符。因此我们在显示数字的时候首先做的就是给“0-9”十个数字编码,在要它亮什么数字的时候直接把这个编码送到它的阳极就行了。
2、方案设计
(1)、硬件方案
八位动态数码管、蜂鸣器和独立按键:
硬件说明:八位动态数码管为共阴极数码,J16为位选码接口排线,J12为字形码接口排线,字形码经锁存器接到数码管,锁存器LE端经J21短路帽接VCC时,输入数据直通至输出端,当LE端经J21短路帽接JP10时,其输入数据经JP10控制将其锁存至输出端。
连接方法:(1)JP18和J16用8PIN排线连接起来。
(2)JP10和J12用8PIN排线连接起来。
(3)J21 短路帽使LE接VCC,短路帽JP165 断开。
利用P2.0作为独立键盘输入口,独立键盘选K1;P2^1控制蜂鸣器,蜂鸣器JP9接线排的第6引脚与JP15接线排座的一引脚(独立按键K1)用杜邦线连接,使用独立按键K1。
连接方法: JP11和JP1和LED灯的JP1用8PIN排线连接起来。
硬件说明:使用单片机的P2口来驱动8个LED,发光二极管的阳极接高电平,故P2口为低电平时,就可以驱动其点亮
(2)软件方案
利用内部中断T0完成时间计数,时间调整,定时时间为125ms,当时间到达125ms*8,即1S时,秒计数器缓冲器增加1,达到1小时时,则时计数器缓冲器增加1,同时蜂鸣器响,并将时分秒分别放入动态数码管。当分计数器缓冲器和时计数器缓冲器分别到达60min、24h时,对它们清零。
(3)同组设计人员及分工
曾旻枢:编写设计方案以及主程序、中断设置、时间显示及累计处理部分代码,进行试验结果分析
徐砚林:查阅参考文献,汇总整理所得资料,编写延时、时间调整与设置、整点报时功能部分代码
三、系统代码实现
#includereg51.h
sbit ksec=P3^0; //设置秒
sbit kmin=P3^1; //设置分
sbit khour=P3^2; //设置小时
sbit fmq=P3^3;
sbit key=P3^4;
unsigned char secshi=0,secge=0,minshi=0,minge=0,hourshi=0,hourge=0;
unsigned int num=0,sec=0,min=0,hour=0;
unsigned char code table[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
void delay(unsigned int);
void display();
void Adjust_clock();
void Clock();
//-----------------------------------------------------------------
// 主程序
//---------------------------
文档评论(0)