




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、课程设计任务书 学院学院信息科学与工程学院信息科学与工程学院专业专业自动化自动化 学生姓名学生姓名学号学号 设计题目设计题目基于单片机的多功能数字电子钟的设计(软件)基于单片机的多功能数字电子钟的设计(软件) 课程设计内容及要求:课程设计内容及要求: 内容:内容:1.设计电路,选择器件 2.利用 protel 画原理图 3. 编程,调试 4. 焊接电路,调试 要求:要求:1.电子钟能复位功能,计时功能 2. .电子钟能实现省电功能 3.电子钟能实现调时功能 进度及安排:进度及安排:1查资料 2设计电路画电路图 3编程与调试 4焊接硬件电路并调试 5写报告 指导教师(签字):指导教师(签字):
2、年年 月月 日日 学院院长(签字):学院院长(签字): 年年 月月 日日 成成 绩绩 评评 定定 表表 学生姓名班级学号 专 业自动化课程设计题目 基于单片机的多动能数字 电子钟的设计(软件) 评 语 组长签字: 成绩 日期 20 年 月 日 目 录 1 功能数字电子钟 .1 1.1 数字电子钟简介.1 1.2 数字电子钟的原理.1 2 程序框图 .1 3 控制系统的软件计.4 3.1 主程序代码.4 3.2 程序运行结果分析.8 4 设计总结和体会 .9 5 参考文献 .9 摘要摘要 随着社会的不断进步,电子技术也飞速的向前发展.特别是大规模集成电路的发展, 把我们带进了电子化时代。电子产品
3、的日益增多,也让我们的生活越来越方便。特别是计 算机的发展,真可谓是突飞猛进。自从 1946 年世界上第一台计算机的诞生以来,还不到 六十年的时间,计算机就取得了举世瞩目的成绩。特别是在通信领域,实现了信息一体 化的时代。作为大学生的我们,更需要加强实践能力的培养。课程设计在一定程度上反 映了我们对理论知识的理解程度,是理论与实践的桥梁。它不仅能锻炼我们的动手能力, 而且能够培养我们对问题的思考能力以及对知识的进一步了解。当你能把你所学到知识 化作为现实的东西时,我们能力就提升到一个新台阶。 很多人都认为学习是枯燥无味的,有时觉得与现实太遥远。在学习之余,我们仍然 可以找到一点有趣的事情,比如
4、说做一个声控灯泡、数字钟等等。生活中我们要找到自 己感兴趣的东西。这次综合课程设计中,我们制作了八路抢答器。 抢答器是为智力竞赛参赛者答题时进行抢答而设计的一种优先判决器电路,广泛应 用于各种知识竞赛、文娱活动等场合。能够实现抢答器功能的方式有多种,可以采用前 期的模拟电路、数字电路或模拟与数字电路相结合的方式,但这种方式制作过程复杂, 而且准确性与可靠性不高,成品面积大,安装、维护困难。本节介绍一种利用 51 单片机 作为核心部件进行逻辑控制及信号产生的八路抢答器。近年来,随着单片机档次的不断 提高,功能的不断完善,其应用日趋成熟、应用领域日趋扩大,特别是工业测控、尖端 武器和日用家电等领域
5、更是因为有了单片机而生辉增色。单片机应用技术已成为一项新 的工程应用技术。本次课程设计我们做的是八路抢答器,我们采用 at89c51 单片机实现 抢答功能,性能更稳定,更易操作调试。 1 1 功能数字电子钟功能数字电子钟 1.11.1 数字电子钟简介数字电子钟简介 1957 年,ventura 发明了世界上第一个电子表,从而奠定了电子时钟的基础,电子时钟 开始迅速发展起来。现代的电子时钟是基于单片机的一种计时工具,采用延时程序产生 一定的时间中断,用于一秒的定义,通过计数方式进行满六十秒分钟进一,满六十分小 时进一,满二十四小时小时清零。从而达到计时的功能,是人民日常生活补课缺少的工 具。 1
6、.21.2 数字电子钟的原理数字电子钟的原理 该电子时钟由 at89c2051,button,六段数码管等构成,采用晶振电路作为驱动 电路,由延时程序和循环程序产生的一秒定时,达到时分秒的计时,六十秒为一分钟, 六十分钟为一小时,满二十四小时为一天。而电路中唯一的一个控制键却拥有多种不同 的功能,按下又松开,可以实现屏蔽数码管显示的功能,达到省电的目的;直接按下不 松开,则可以通过按键实现分钟的累加,每按一次分钟加一;而连续两次按下按键不放 松,则可实现小时的调节,同样每按一次小时加一。 2 2 程序框图程序框图 开始 定义堆栈区 数据缓冲区、标志位初始化 调用键盘扫描程序 是否手动按 是 地
7、址指针指向计时缓冲区 调用时间设置程序 主程序流程图 满 18 次? 是 秒单元加 1 60s 到? 是 秒单元清 0,分单元加 1 60 分到? 是 分单元清 0,时单元加 1 24 小时到? 是 时单元清 0 返回 子程序流程图 是否运行中断程序 是 执行手动操作嗯键 分别调节秒分时 摁第一次,调节秒 摁第二次,调节分钟 摁第四次,调节小时 恩四次,中断停止 执行主程序自动计时 中断程序流程图 3 3 控制系统的软件设计控制系统的软件设计 3.13.1 主程序代码主程序代码 #include #define uchar unsigned char /无符号定义字符串 #define uin
8、t unsigned int / 定义无符号整数 sbit rs=p35; / 位定义 sbit lcden=p34; sbit s1=p30; sbit s2=p31; sbit s3=p32; uchar count,s1num; char miao,shi,fen; uchar code table= now time is ; /定义数据组 uchar code table1= 00:00:00; void delay(uint z) /设置延时程序 uint x,y; for(x=z;x0;x-) for(y=110;y0;y-); void write_com(uchar com)
9、 /: 写程序 rs=0; lcden=0; p2=com; delay(5); /: 调用延时程序 lcden=1; delay(5); lcden=0; void write_date(uchar date) /: 写数组 rs=1; lcden=0; p2=date; delay(5); lcden=1; delay(5); lcden=0; void init() /: 定义调时子程序 uchar num; lcden=0; write_com(0 x38); write_com(0 x0c); write_com(0 x06); write_com(0 x01); write_com
10、(0 x80); for(num=0;num15;num+) write_date(tablenum); delay(5); write_com(0 x80+0 x40); for(num=0;num12;num+) write_date(table1num); delay(5); tmod=0 x01; th0=(65536-50000)/256; /:初始化程序 tl0=(65536-50000)%256; ea=1; et0=1; tr0=1; void write_sfm(uchar add,uchar date) /:子写程序 uchar shi,ge; shi=date/10; g
11、e=date%10; write_com(0 x80+0 x40+add); write_date(0 x30+shi); write_date(0 x30+ge); void keyscan() /: 子扫描程序 if(s1=0) delay(5); if(s1=0) s1num+; while(!s1); if(s1num=1) tr0=0; /: 中断截止 write_com(0 x80+0 x40+10); /:自动写秒 write_com(0 x0f); if(s1num=2) write_com(0 x80+0 x40+7); /: 写分钟 if(s1num=3) write_co
12、m(0 x80+0 x40+4); /:写小时 if(s1num=4) s1num=0; /:sl 为零 write_com(0 x0c); tr0=1; /: 中断起作用,手动调时 if(s1num!=0) if(s2=0) delay(5); if(s2=0) while(!s2); /:s2 不为 0 if(s1num=1) /:摁一下摁键 miao+; /:加计时 if(miao=60) /: 秒为 60 时 miao=0; /:秒复位 write_sfm(10,miao); /:写入秒在 10 位 write_com(0 x80+0 x40+10); /;重新计秒 if(s1num=
13、2) fen+; if(fen=60) /: 分调时 fen=0; write_sfm(7,fen); write_com(0 x80+0 x40+7); if(s1num=3) shi+; if(shi=24) /:小时调时 shi=0; write_sfm(4,shi); write_com(0 x80+0 x40+4); if(s3=0) delay(5); if(s3=0) while(!s3); if(s1num=1) /: 嗯一下秒调时 miao-; /: 秒减程序的执行 if(miao=-1) miao=59; write_sfm(10,miao); /; 写在第十位为秒 wri
14、te_com(0 x80+0 x40+10); if(s1num=2) /;分减调时 fen-; if(fen=-1) fen=59; write_sfm(7,fen); write_com(0 x80+0 x40+7); if(s1num=3) shi-; /:小时减调时 if(shi=-1) shi=23; write_sfm(4,shi); write_com(0 x80+0 x40+4); void main() /: 定义主程序 init(); /:调用子程序 int t() while(1) /:死循环程序 keyscan(); /: 扫描程序,是否嗯按键 void timer0(
15、) interrupt 1 /:中断程序 th0=(65536-50000)/256; tl0=(65536-50000)%256; count+; if(count=18) /:数为 18 开始计数 count=0; miao+; /:自动秒计时 if(miao=60) miao=0; fen+; /:分计时 if(fen=60) fen=0; shi+; /: 小时计时 if(shi=24) shi=0; write_sfm(4,shi); /: 写入时的位地址 write_sfm(7,fen); write_sfm(10,miao); 3.23.2 程序运行结果分析程序运行结果分析 功能
16、太过单调,只能实现时分秒的显示,设计比较简单。电路图的设计过于单调, 用的器件太少,实现调节时间的按钮太少,不能很好的实现时间的调节。在测试过程中, 六位数码显示管只显示五位数字,有一位数字不亮,通过多次的修改程序并在 proteus 软件环境中进行仿真,最终解决了这个问题,同时也透露出本人在单片机电路设计和程 序设计方面的不足。不过最后的仿真效果非常好,实现了预期的效果,能过通过多功能 控制键调节时间和是否进入省电模式,是一个比较令人满意的设计。 4 4 设计总结和体会设计总结和体会 在这次单片机设计课程的学习中,主要是由我们学生自己来完成,老师在关键的时刻加 以指点。我在这次单片机设计课程学习中收获蛮多的,首先做事情一定要沉下心来,认 真地对待。带着迷惑,自己对以前的书本进行复习,经过一番试验,最终取得理想的效 果。在本次课程设计过程中,我学会了在网络上查找有关本设计的各硬件的资源,其中 包括:8051 单片机及其引脚说明,为本次课程设计提供了一定的资料。由于平时很少进 行课程设计,所以对于课程设计报告的格式也是近期才接触到
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 网络安全设备配置与防护题库 (信息安全领域实战项目)
- 幼儿园课件-认识蔬菜
- 肺癌放疗饮食护理
- 眩晕护理方案及护理常规
- 视网膜毛细血管前小动脉阻塞的临床护理
- 秋季运动会开幕式发言稿模版
- 心内科护士实习总结模版
- 幼儿园语言教育与活动设计 课件 第1-3章 儿童语言与儿童发展 - 幼儿园语言教育活动设计的原理
- 创伤性湿肺的临床护理
- 资质管理部工作总结
- 基于深度学习的西北地区沙尘天气级联预测模型研究
- 2024-2025统编版道德与法治六年级下册期末考试卷附答案 (共3套)
- 2025年辽宁省本溪市中考一模英语试题(原卷版+解析版)
- DeepSeek赋能设计行业:AI提示词生成与3D建模自动化
- 2025新能源汽车充电桩建设合同
- 2025年江苏省南通市如东县实验中学中考一模英语试题(原卷版+解析版)
- 馅料间管理制度
- 2025年消防知识培训
- 上海健康医学院《SpringSpringMVCMyBais》2023-2024学年第二学期期末试卷
- 马尔代夫旅游介绍
- 保险行业档案管理培训
评论
0/150
提交评论