




免费预览已结束,剩余9页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
课程设计任务书 学院 信息科学与工程学院 专业 自动化 学生姓名 学号 设计题目 基于单片机的多功能数字电子钟的设计(软件) 课程设计内容及要求: 内容:1.设计电路,选择器件 2.利用 protel 画原理图 3. 编程,调试 4. 焊接电路,调试 要求:1.电子钟能复位功能,计时功能 2.电子钟能实现省电功能 3.电子钟能实现调时功能 进度及安排:1查资料 2设计电路画电路图 3编程与调试 4焊接硬件电路并调试 5写报告 指导教师(签字): 年 月 日 学院院长(签字): 年 月 日 单片机课程设计 成 绩 评 定 表 学生姓名 班级学号 专 业 自动化 课程设计题目 基于单片机的多动能数字 电子钟的设计(软件) 评 语 组长签字: 成绩 日期 20 年 月 日 目 录 1 功能数字电子钟 .1 1.1 数字电子钟简介 .1 1.2 数字电子钟的原理 .1 2 程序框图 1 3 控制系统的软件计.4 3.1 主程序代码 .4 3.2 程序运行结果分析 8 4 设计总结和体会 9 5 参考文献 .9 单片机课程设计 摘要 随着社会的不断进步,电子技术也飞速的向前发展.特别是大规模集成电路的发展, 把我们带进了电子化时代。电子产品的日益增多,也让我们的生活越来越方便。特别是计 算机的发展,真可谓是突飞猛进。自从 1946 年世界上第一台计算机的诞生以来,还不到 六十年的时间,计算机就取得了举世瞩目的成绩。特别是在通信领域,实现了信息一体 化的时代。作为大学生的我们,更需要加强实践能力的培养。课程设计在一定程度上反 映了我们对理论知识的理解程度,是理论与实践的桥梁。它不仅能锻炼我们的动手能力, 而且能够培养我们对问题的思考能力以及对知识的进一步了解。当你能把你所学到知识 化作为现实的东西时,我们能力就提升到一个新台阶。 很多人都认为学习是枯燥无味的,有时觉得与现实太遥远。在学习之余,我们仍然 可以找到一点有趣的事情,比如说做一个声控灯泡、数字钟等等。生活中我们要找到自 己感兴趣的东西。这次综合课程设计中,我们制作了八路抢答器。 抢答器是为智力竞赛参赛者答题时进行抢答而设计的一种优先判决器电路,广泛应 用于各种知识竞赛、文娱活动等场合。能够实现抢答器功能的方式有多种,可以采用前 期的模拟电路、数字电路或模拟与数字电路相结合的方式,但这种方式制作过程复杂, 而且准确性与可靠性不高,成品面积大,安装、维护困难。本节介绍一种利用 51 单片机 作为核心部件进行逻辑控制及信号产生的八路抢答器。近年来,随着单片机档次的不断 提高,功能的不断完善,其应用日趋成熟、应用领域日趋扩大,特别是工业测控、尖端 武器和日用家电等领域更是因为有了单片机而生辉增色。单片机应用技术已成为一项新 的工程应用技术。本次课程设计我们做的是八路抢答器,我们采用 at89c51 单片机实现 抢答功能,性能更稳定,更易操作调试。 0 1 功能数字电子钟 1.1 数字电子钟简介 1957 年,ventura 发明了世界上第一个电子表,从而奠定了电子时钟的基础,电子时钟 开始迅速发展起来。现代的电子时钟是基于单片机的一种计时工具,采用延时程序产生 一定的时间中断,用于一秒的定义,通过计数方式进行满六十秒分钟进一,满六十分小 时进一,满二十四小时小时清零。从而达到计时的功能,是人民日常生活补课缺少的工 具。 1.2 数字电子钟的原理 该电子时钟由 at89c2051,button,六段数码管等构成,采用晶振电路作为驱动 电路,由延时程序和循环程序产生的一秒定时,达到时分秒的计时,六十秒为一分钟, 六十分钟为一小时,满二十四小时为一天。而电路中唯一的一个控制键却拥有多种不同 的功能,按下又松开,可以实现屏蔽数码管显示的功能,达到省电的目的;直接按下不 松开,则可以通过按键实现分钟的累加,每按一次分钟加一;而连续两次按下按键不放 松,则可实现小时的调节,同样每按一次小时加一。 2 程序框图 开始 定义堆栈区 数据缓冲区、标志位初始化 调用键盘扫描程序 单片机课程设计 1 是否手动按 是 地址指针指向计时缓冲区 调用时间设置程序 主程序流程图 满 18 次? 是 秒单元加 1 60s 到? 是 秒单元清 0,分单元加 1 60 分到? 是 分单元清 0,时单元加 1 24 小时到? 是 时单元清 0 返回 子程序流程图 是否运行中断程序 是 单片机课程设计 2 执行手动操作嗯键 分别调节秒分时 摁第一次,调节秒 摁第二次,调节分钟 摁第四次,调节小时 恩四次,中断停止 执行主程序自动计时 中断程序流程图 3 控制系统的软件设计 3.1 主程序代码 #include #define uchar unsigned char /无符号定义字符串 #define uint 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-); 单片机课程设计 3 void write_com(uchar com) /: 写程序 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(0x38); write_com(0x0c); write_com(0x06); write_com(0x01); write_com(0x80); for(num=0;num15;num+) write_date(tablenum); delay(5); write_com(0x80+0x40); for(num=0;num12;num+) write_date(table1num); delay(5); 单片机课程设计 4 tmod=0x01; 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; ge=date%10; write_com(0x80+0x40+add); write_date(0x30+shi); write_date(0x30+ge); void keyscan() /: 子扫描程序 if(s1=0) delay(5); if(s1=0) s1num+; while(!s1); if(s1num=1) tr0=0; /: 中断截止 write_com(0x80+0x40+10); /:自动写秒 write_com(0x0f); if(s1num=2) write_com(0x80+0x40+7); /: 写分钟 if(s1num=3) write_com(0x80+0x40+4); /:写小时 if(s1num=4) s1num=0; /:sl 为零 单片机课程设计 5 write_com(0x0c); 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(0x80+0x40+10); /;重新计秒 if(s1num=2) fen+; if(fen=60) /: 分调时 fen=0; write_sfm(7,fen); write_com(0x80+0x40+7); if(s1num=3) shi+; if(shi=24) /:小时调时 shi=0; write_sfm(4,shi); write_com(0x80+0x40+4); if(s3=0) 单片机课程设计 6 delay(5); if(s3=0) while(!s3); if(s1num=1) /: 嗯一下秒调时 miao-; /: 秒减程序的执行 if(miao=-1) miao=59; write_sfm(10,miao); /; 写在第十位为秒 write_com(0x80+0x40+10); if(s1num=2) /;分减调时 fen-; if(fen=-1) fen=59; write_sfm(7,fen); write_com(0x80+0x40+7); if(s1num=3) shi-; /:小时减调时 if(shi=-1) shi=23; write_sfm(4,shi); write_com(0x80+0x40+4); void main() /: 定义主程序 init(); /:调用子程序 int t() while(1) /:死循环程序 keyscan(); /: 扫描程序,是否嗯按键 void timer0() interrupt 1 /:中断程序 单片机课程设计 7 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.2 程序运行结果分析 功能太过单调,只能实现时分秒的显示,设计比较简单。电路图的设计过于单调, 用的器件太少,实现调节时间的按钮太少,不能很好的实现时间的调节。在测试过程中, 六位数码显示管只显示五位数字,有一位数字不亮,通过多次的修改程序并在 proteus 软件环境中进行仿真,最终解决了这个问题,同时也透露出本人在单片机电路设计和程 序设计方面的不足。不过最后的仿真效果非常好,实现了预期的效果,能过通过多功能 控制键调节时间和是否进入省电模式,是一个比较令人满意的设计。 单片机课程设计 8 4 设计总结和体会 在这次单片机设计课程的学习中,主要是由我们学生自己来完成,老师在关键的时刻加 以指点。我在这次单片机设计课程学习中收获蛮多的,首先做事情一定要沉下心来,认 真地对待。带着迷惑,自己对以前的书本进行复习,经过一番试验,最终取得理想的效 果。在本次课程设计过程中,我学会了在网络上查找有关本设计的各硬件的资源,其中 包括:8051 单片机及其引脚说明,为本次课程设计提供了一定的资料。由于平时很少进 行课程设计,所以对于课程设计报告的格式也是近期才接触到
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 农发行梅州市丰顺县2025秋招笔试价值观测评题专练及答案
- 农发行运城市河津市2025秋招小语种岗笔试题及答案
- 农发行宜宾市叙州区2025秋招结构化面试经典题及参考答案
- 农发行呼和浩特市托克托县2025秋招笔试价值观测评题专练及答案
- 农发行昆明市西山区2025秋招群面模拟题及高分话术
- 国家能源巴马瑶族自治县2025秋招心理测评常考题型与答题技巧
- 国家能源吉安市井冈山市2025秋招笔试资料分析题专练及答案
- 广州南沙区中储粮2025秋招面试半结构化模拟题30问及答案
- 军训第一天心得体会(合集15篇)
- 2025年宁夏医科大学总医院自主公开招聘高层次工作人员模拟试卷及参考答案详解一套
- 2025房地产中介劳动合同协议书范本
- 教科版科学五年级上册2.1地球的表面教学课件
- 急进性肾小球肾炎患者的护理
- 2025至2030中国克罗恩病药物行业项目调研及市场前景预测评估报告
- 知识分享大讲堂活动方案
- 2026届初三启动仪式校长讲话:初三启航!以信念为舵赴青春与使命之约
- 暖通施工工程方案(3篇)
- 消化内科常见疾病诊疗标准与流程
- XX中小学落实“双减”政策及加强“五项管理”实施方案
- 急性淋巴细胞白血病课件
- 2025-2026学年鲁科版小学劳动技术一年级上册教学计划及进度表
评论
0/150
提交评论