


版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、数字电子时钟设计报告目录一、设计目的 11、 数字钟的构成12、 设计要求2二、工作原理 2三、系统的组成 21、晶体振荡器 22 、数码管33 、键盘 34 、单片机系统3四、系统软件设计流程41、主程序流程 42 、定时器中断流程53 、时间显示流程6五、心得体会6六、参考文献 7附录A电路原理图7附录B部分程序8附录C元件清单 15数字电子时钟摘要本作品采用的单片机为 AT89C51 ,以 C 语言为程序设计的 基础,设计一个用 8 位数码管显示时、分、秒、日期、并 且还显示闹钟的数字电子钟,通过 LCD 来显示该设计的主 要的功能。一、设计目的 我们的目标是掌握数字电子钟的制作,实现时
2、、分、 秒 的 显示功能,能对数字钟进行校对调时间,了解数码管的逻 辑功能和各管脚功能。1 、数字钟的构成 数字钟是一个将“时”,“分”,“秒”显示与人的 视觉器官的计时装置。它的计时周期为 24 小时,显示满刻 度为 23 时 59 分 59 秒,另外有校时功能和一些显示星 期、闹钟等附加功能。一个基本的数字钟电路主要由译码 显示器、“时”,“分”,“秒”计数器,校时电路、报 时电路和振荡器组成。干电路系统由秒信号发生器、 “时、分、秒”计数器、译码器及显示器、校时电路、整 点报时电路组成。秒信号产生器是整个系统的时基信号, 它直接决定计时系统的精度,一般用振荡器加分频器来实 现。1 、 设
3、计要求: 设计一个基于 51 单片机的数字电子钟,画出防真电 路图,并且能调试时钟的显示方法。二、工作原理整个系统工作时,秒信号产生器是整个系统的时基信号,它直接决定计时系统的精度,将标准秒信号送入“秒计数器”,“秒计数器”采用 60进制计数器,每累计 60秒发出一个“分脉冲”信号,该信号将作为“分计数器”的时钟脉冲。“分计数器”也采用60进制计数器,每累计 60分钟,发出一个“时脉冲”信号,该信号将被送到“时计数器”。“时计数器”采用24进制计时器,可实现对一天24小时的累计。因为计数的起始时间不可能与标准时间<如北京时间)一致,故需要在电路上加一个校时电路三、系统的组成1、晶体振荡器
4、振荡器是数字钟的核心,它的作用是产生一个频率标准时间频率信号,然后再由分频器分秒脉冲,因此,振荡器频率的精度与稳定度基本决定了数字电子钟的质量。振荡器的稳定度及频率的精确度决定了数字钟计时的准确程度。振荡器图2、数码管数码管通常有发光二极管数码管和液晶数码管,我们用的 是液晶数码管。液晶数码管能在低电压、小电流条件下驱 动发光,能与 CMOS、ITL电路兼容体积小,重量轻,抗冲 击性能好,因此它被广泛用作数字仪器仪表、数控装置、 计算机的数显器件。01-09-083、键盘键盘是控制和修改时钟的重要输入模块,通过键盘可以修 改时间,修改闹钟时间,控制显示。4、单片机系统AT89C51是一种低功耗
5、、高性能的片内含有4K字节闪烁可编程可擦除只读存储器,高性能CMOS8位微处理器,俗称单片机。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。单片机是一种集成电路芯片,采用超大规模技术把具有 数据处理能力(如算术运算,逻辑运算、数据传送、中断处 理 的微处理器(CPU,随机存取数据存储器(RAM,只 读程序存储器(ROM,输入输出电路(I/O 口 ,可能还包 括定时计数器,串行通信口 (SCI,显示驱动电路(LCD或 LED驱动电路 ,脉宽调制电路(PWM,模拟多路转换器 及A/D转换器等电路集成到一块单块芯片上,构成一个最 小然而完善的计算
6、机系统。这些电路能在软件的控制下准确、迅速、高效地完成程序设计者事先规定的任务。四、系统软件设计流程1、主程序流程主程序先开始,然后启动定时器,启动后在进行按键检测,然后就可以显示时间。主程序流程图2、定时器中断流程定时器中断时先检测一秒是否到,到的话秒就加 1,没 到就检测分,分到就加 1,没到检测时,时到加 1,没到就 显示时间。3、时间显示流程时间显示是先秒个位计算显示,然后是秒十位,再是分个位,分十位,然后是时个位,时十位。秒个位计算廉示分十位计算显 示时个位计算显吋十位计算區示结束时间显示流程图五、心得体会经过一个学期的单片机学习,使我们收获不少,在这个设 计中,也学到了不少东西,从
7、找设计开始,各种元件的选 择,和同学一起分享画图,敲程序,学到了制作的过程, 对数字电子钟也有了一定的认识。十分感谢老师和同学们一学期以来的帮助。这次实验,不仅学会了电子钟的制作,也对单片机的知道有了更加深入的了解,对自己帮助 非常大,扩展了自己的视野六、参考文献附录ARBi:Vill PT >S D-bUHVs n l丄XI.GRY8T如PTJEvmi .3?R -IS17ijTALlPDIAtJOXTAL2POdiTACI 阳刊Iff FDJmiEl 阳胁帕PQSTAK® PDJACSRSTP04fAW叫砂FZWCTCTALEP2.WA12PZSAGFZJSAUP2,WAS
8、pinFJIMX&fii.iRXIiTXBP1ZFizmnnP13Fjjnrnrf>1(*?3_<IOPISpasmF1.SFuaraPI?P3.TW9*-3TF)附录B#in elude<absacc.h>/ 包含头文件#i nclude<reg52.h>/包含头文件#defineucharun sig nedchar/数据类型定义uchar n=31 o/ 定义月份天数变量并初始化ucharms=0o/定 义毫秒变量 并 初始化ucharh1=0,m 1= 0,s1=0o/定义计时时、分、秒变量并初始化 uchar h2=0,m2=1,s2=1
9、。 / 定义定 时时、分、秒变量并初始化 uchar year=7,month=9,day=8 。 / 定义年、月、日变量并初始化 uchar wday=6。/ 定义星期变量并初始化 uchar *h=&h1,*m=&m1,*s=&s1 。 / 定义显视位变量并初始 化 uchar *p 。/ 定义调节指针 uchar k1=0,k2=0,k3=0,k4=0,k5=0 。 / 定 义 控 制 变 量 并 初 始 化 uchar counter=0 。/ 定义铃声节拍变 量 并 初 始 化ucharcount=0 。/ 定义铃声音符 变 量 并 初 始 化sbitsou
10、nd=PM0。/ 定 义 铃 声 输 出 位 uchar a8=1,2,3,4,5,6,7 。 / 定义显视输出 位 数 组 并 初 始 化 uchar code tt12= 0x3f,0x06,0x5b,0x4f,0x66,0x6d, 0x7d,0x07,0x7f,0x6f,0x40,0x00。code/ 数 码 管 显 视 代 码 uchararray=0x18,0x30,0x1C,0x10,0x20,0x40,0x1C,0x100x18,0x10,0x20,0x10,0x1C,0x10,0x18,0x400x1C,0x20,0x20,0x20,0x1C,0x20,0x18,0x200x2
11、0,0x80,0xFF,0x00,0x20,0x30,0x1C,0x100x18,0x20,0x15,0x20,0x1C,0x20,0x20,0x200x26,0x40,0x20,0x20,0x2B,0x20,0x26,0x200x20,0x20,0x30,0x80,0xFF,0x00,0x20,0x200x1C,0x10,0x18,0x10,0x20,0x20,0x26,0x200x2B,0x20,0x30,0x20,0x2B,0x40,0x20,0x200x1C,0x10,0x18,0x10,0x20,0x20,0x26,0x200x2B,0x20,0x30,0x20,0x2B,0x40,
12、0x20,0x300x1C,0x10,0x18,0x20,0x15,0x20,0x1C,0x200x20,0x20,0x26,0x40,0x20,0x20,0x2B,0x200x26,0x20,0x20,0x20,0x30,0x80,0x20,0x300x1C,0x10,0x20,0x10,0x1C,0x10,0x20,0x200x26,0x20,0x2B,0x20,0x30,0x20,0x2B,0x400x20, 0x15, 0x1F, 0x05, 0x20, 0x10, 0x1C, 0x10,0x20,0x20,0x26,0x20,0x2B, 0x20, 0x30,0x20,0x2B,0x
13、40,0x20,0x30, 0x1C, 0x10, 0x18,0x20,0x15,0x20,0x1C,0x20, 0x20, 0x20, 0x26,0x40,0x20, 0x20, 0x2B, 0x20, 0x26, 0x20, 0x20, 0x20,0x300x30,0x20,0x30,0x1C, 0x10, 0x18,0x40,0x1C,0x20,0x20, 0x20,0x26,0x40,0x13, 0x60,0x18,0x20,0x15, 0x40,0x13,0x40,0x18, 0x80,0x00,0x00/arrayi=0x00代。 表歌曲、亠演唱完毕/arrayi=0xff代表是休
14、止符*函数名称:leap(>* 功能:计算二月份天数*入口参数 : year*出口参数:无ucharleap(ucharyear>/ 判断是否闰年并 返回二月份的天数/闰年返回29,平年返 回 28year+=2000if(year%4=0> if(year%100=0> if(year%400=0> return 29 。*函数名* 功能:计算并返回每个月*出口参uchar mon(uchar month>elsereturn28。return29。return28。称:mon(>的天数*入口参数:month数:无elseelse/ 计算并返回每个月
15、的天数switch(month>case1:case3:case5:case7:case8:case10:case12:return31。break。 /1,3,5,7,8,10,12月每月 31天case4:case6:case9:case11:return30。break。 /4,6,9,11 月每月30天case 2: return leap(year> 。 break。 / 返 回二月份的天数default:break。* 函 数 名* 功 能:音乐节拍控制 * 入口参数:无 void称出口参数:无 music(>music(void> 铃声 counter+
16、。/ 节 拍/音乐次数计/ 节 拍 次 数 判count+=2 。/音符counter=0 。/清0节if(counter>=arraycount+1>判断是否唱宀完count=0 。/返回第*函数名称* 功能:音乐频率设 置 * 入 口参数:无voidtimer1(void>interrupt1 using1if(count>=192>变换拍数 / 一曲个音符 timer1(> 出口参数:无 / 音 调 设 置sound=sound/ 铃 声 输 出TH0=(0xffff-30*arraycount>>>8/TL0=(0xffff-30*
17、arraycount>&0xff音频设置。函厶匕能:中断计时名称入口参数timer3(> 出口参数:void timer3(void> interrupt 3 using 3/ 计 时 中 断TH1=0xd8 。/计数器初值重载TL1=0xef 。/ 定 义 单 位 节 拍 的 延 时 大 小 为 10msif(k5>music(> 。/ 调 用 闹 铃 音 乐 lns elseTR0=0。时间长度关铃声if(+ms=100>/ 计时一秒钟 ms=0 。if(+s1=60>/ 计时一分钟 s1=0 。if(+m1=60> / 计时一小时m
18、1=0 。if(+h1=24> / 计时一天h1=0 。n=mon(month>。每月的天数if(+day>n>/ 计时一个月 day=1 。if(+month>12> / 计时一年month=1 。year+ 。 if(+wday>6>/ 星期计数 wday=0。 k5-。/ 闹铃时间长度倒记时 if(h1=h2&&m1=m2>是否到定时时刻 TR0=1。/ 取/ 判断/ 开铃声中断 lns k5=s2 。*函数名称:d3(>* 功 能:数码管输出显示*入口参数:无*出口参数:voidd3(void>/显示输出
19、ucharsel=0x80,i 。/ 定义 sel 为位选通变量并初使化if(k2>/ 判断是否处于调时状态 if(k2=4>a0=a1=a4=a6=a7=10。 / 星期显示设置if(k1&&(k3-=0>> k3=255 。 / 设置位调节闪烁初值for(i=0 。 i<=8 。i+>/ 循环显示八个数码管P2=0xff 。/ 清屏P0=ttai 。/ 输出显示数值if(k1&&(k3>200>>/ 判断是否闪烁if (k1=1&&(i=6|i=7>>P2=0xff 。 / 时
20、位闪烁else if(k1=2&&(i=3|i=4>>P2=0xff。 / 分位闪烁else if(k1=3&&(i=0|i=1>>P2=0xff。 / 秒位闪烁elseP2=sel 。/ 非闪烁状态elseP2=sel 。/ 非闪烁状态sel=sel>>1 。* 函数名称: d2(>* 功 能:循环调用 * 入口参数:无 * 出口参数:无 void d2(void>while(1>a0=*s%10 。 / 给显示数组赋值 a1=*s/10 。a2=10 。 a3=*m%10 。a4=*m/10 。 a5=1
21、0 。a6=*h%10 。a7=*h/10 。d3(>。名/调用称显示输出函数d1(> 函数* 功能:中断设置*入口参数:无* 出 口 参数:无voidd1(void>TMOD=0x11。TH1=0xff。TH0=0xff。TL1=0xff。TL0=0xff。IE=0x8f。TR1=1。IT0=1。IT1=1。IP=0x02。*函数名称:main(>功 能:程序入口, 调用功能子函数* 入口参数:无* 出口参数:无 void main(void> d1(> 。 / 调 用 中 断 位 设 置 函 数 d2(> 。* 函 数 名 称 : d5(>*
22、 功 能 : 切 换 显 示 菜 单 * 入 口 参 数 : 无 * 出 口 参 数 : 无voidd5(void>casei:h=&hi。m=&mis=&si。 break。/ 菜 单i: 显示 时钟 时间case 2:h=&h2 。 m=&m2。s=&s2 。break。/ 菜单 2:显示定时时刻case 3:h=&year 。m=&months=&day。break。 / 菜单 3: 显示日历年月日case 4:h=&wday。m=&wday s=&wday。break。 / 菜单 4:
23、 显示星期 0-/ 显示 菜 单调节函数switch(k2>6default:k2=0 。 h=&hl。m=&m1 s=&si。break 。/ 复位显示 * 函数名称:d7(>* 功 能:调节限制 , 防止数值调节超出值域 * 入口参数:无 * 出口参数: 无void d7(void>/ 调 节 限 制 函 数 if(k2=1|k2=2>/计时与定时限制if (ki=i&&*p>=24>*p=0 。/ 小 时 限 制elseif(*p>=60>*p=0 。/ 分 、 秒 限 制if(k2=3>/ 日历限制if(ki=i&&*p>=i00>*p=0 。/ 年限制elseif(ki=2&&*p>i2> *p=i 。/ 月限制elseif(ki=3&&*p>n>*p=i
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度智能化安防系统安装与保安劳务服务合同
- 2025版涉外知识产权保护劳动技术服务合同
- 2025年度智能金融服务平台普通借款合同大全
- 2025年度共享办公空间租赁合同
- 2025版商场展位装修材料供应及施工合同
- 2025版道路建设用砂石料批发供应合同
- 2025年教育机构办学承包经营合同
- 植被土壤买卖合同协议书
- 民宿出租合同协议书范本
- 汽车销售合同解除协议书
- 公路隧道建设施工技术规范学习考试题库(400道)
- 严重创伤重症监护
- 新人教版七至九年级英语单词表 汉译英(含音标)
- 《儿童的语文》读书心得分享三2篇(一年级语文组)
- 人教版六年级语文上册生字表(带拼音词组)-2023修改整理
- 2023年山西日报社招聘笔试备考题库及答案解析
- 罐脚手架施工方案
- 团队协作重要性课件
- 初中生自我介绍范文给老师
- GB/T 702-2017热轧钢棒尺寸、外形、重量及允许偏差
- 2023年浙江宁波自考专科07038信息技术与物流管理实复习资料
评论
0/150
提交评论