单片机控制LED数码管显示电子秒表设计课程设计_第1页
单片机控制LED数码管显示电子秒表设计课程设计_第2页
单片机控制LED数码管显示电子秒表设计课程设计_第3页
单片机控制LED数码管显示电子秒表设计课程设计_第4页
单片机控制LED数码管显示电子秒表设计课程设计_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、长 沙 学 院?单片机原理及应用?课程设计说明书题目 LED数码管显示电子秒表设计系(部)*系专业(班级)*姓名邹部长9931学号*指导教师*起止日期 ?单片机原理及应用?课程设计任务书1系(部):*系 专业:* 课题名称LED数码管显示电子秒表设计设计内容及要求1、课题内容:设计一种基于AT89S52单片机的电子计时秒表,要求如下:1、能正确显示时间,时钟由八位数码管显示,显示格式为: XX分XX秒XX十分之一、百分之一秒。2、设置一个独立式按键,第一次按键计时开始,第二次按键暂停,第三次按键清零。2、要求:完成该系统的硬件和软件的设计,在自己焊接好的单片机开发板上调试通过,并提交一篇课程设

2、计说明书。设计工作量1、汇编或C51语言程序设计;2、程序调试;3、在自己焊接好的单片机开发板上调试通过;4、提交一份完整的课程设计说明书,包括设计原理、程序设计、程序分析、调试过程,参考文献、设计总结等。进度安排起止日期或时间量设计内容或预期目标备注第一天课题介绍,答疑,收集材料,焊接第二天51单片机开发板焊接调试第三天设计方案论证,练习编写C51程序第四天程序调试、仿真第五天系统测试并编写设计说明书教研室意见年 月 日长沙学院课程设计鉴定表姓名邹部长9931学号*专业*班级02设计题目LED数码管显示电子秒表设计指导教师*指导教师意见:评定成绩: 教师签名: 日期: 辩论小组意见:评定成绩

3、:辩论小组长签名:日期:教研室意见:最终评定等级:教研室主任签名:日期:说明课程设计成绩分“优秀、“良好、“中等、“及格、“不及格五等。目录 TOC o 1-3 h z u HYPERLINK l _Toc470690614 摘要 PAGEREF _Toc470690614 h 5 HYPERLINK l _Toc470690615 第一章 概述 PAGEREF _Toc470690615 h 6 HYPERLINK l _Toc470690616 电子秒表的设计要求 PAGEREF _Toc470690616 h 6 HYPERLINK l _Toc470690617 电子秒表的电路图 PA

4、GEREF _Toc470690617 h 6 HYPERLINK l _Toc470690618 电子秒表的设计原理及方案 PAGEREF _Toc470690618 h 7 HYPERLINK l _Toc470690619 第二章 电子秒表的程序设计 PAGEREF _Toc470690619 h 8 HYPERLINK l _Toc470690620 2.1 程序设计流程图 PAGEREF _Toc470690620 h 8 HYPERLINK l _Toc470690621 程序设计源代码 PAGEREF _Toc470690621 h 10 HYPERLINK l _Toc4706

5、90622 第三章 程序的调试 PAGEREF _Toc470690622 h 16 HYPERLINK l _Toc470690623 第四章 设计总结 PAGEREF _Toc470690623 h 17 HYPERLINK l _Toc470690624 参考文献 PAGEREF _Toc470690624 h 18摘要随着经济与社会的开展对智能化和信息化技术要求的不断提高,单片机作为智能控制的核心,逐渐渗透到社会生产和生活的各个方面。而本文那么主要阐述基于单片机设计的数码管秒表,这次设计所采用的的单片机为stc89c52单片机,数码管那么是使用2个4位共阴LED数码管组成的8位。为减少

6、I/O口,而使用了SM74HC138 和 74HCT573这2片芯片实现数码管显示8位数据。利用单片机内部定时器实现计时功能,分别显示为: 分秒秒。控制那么是使用一键控制,可实现计时开始,计时暂停,计时清零 3个功能的循环。本次的程序设计采用C语言编写,包括显示程序,定时中断效劳程序,延时程序。最后在单片机电路板来观察工作状态。第一章 概述电子秒表的设计要求 eq oac(,1)显示要求 在初始状态显示的是000000,最左边的2位显示分钟,中间2位显示秒,左边2位显示十分之一秒和百分之一秒,还有个2个LED数码管只显示中间那一段,用作间隔符。 eq oac(,2)然后还的有一个键用来控制秒表

7、,要求按第一下开始计时,按第二下暂停计时,按第三下清零,以此往复循环控制。 eq oac(,3)使用单片机T0方式实现计时秒。电子秒表的电路图电子秒表的设计原理及方案设计原理根据单片机本身的定时计数器实现1秒的计时。再按照要求,确定如下列图所示的3个模块。实现的方案:1秒计时采用定时中断完成,利用T0中断设置初值定时为秒,然后在中断程序里加一个计数变量,就是每次次中断 ,这个变量就加1,也就是每秒加1,加到100也就是一秒的时候进位,以此实现一秒的计时。显示电路的实现那么使用LED动态显示方式来时LED数码管显示数字按键功能的实现使用按键扫描的方法实现,每次扫描到有按键按下 ,设置一个变量使变

8、量加一 加到三的时候把变量置零 ,变量的每个数值代表一个功能,实现一键多功能循环。第二章 电子秒表的程序设计 程序设计流程图主程序:开始 初始化调用按键子程序按第二次按第三次按第一次清零计数器计时暂停计时开始判断是第几次按下中断子程序:设置count为最低2位数,a为中间2位数秒,b为最高2位数分否否count+赋定时初值否是是是返回主程序count=0a=0b=0b=60a=0B+count=1000a=60count=0a+定时中断入口 程序设计源代码#include #define ENABLE 0#define DISABLE 1#define DATA P0unsigned n=0;

9、unsigned char a,b,count=0, i, j = 0,x,u8;sbit hc138s_enable = P13;sbit hc138s_a = P10;sbit hc138s_b = P11;sbit hc138s_c = P12;sbit k1=P34;unsigned char code table= /共阴极09数码管编码0 x3f,0 x06,0 x5b,0 x4f, /030 x66,0 x6d,0 x7d,0 x07, /470 x7f,0 x6f/89;void delay_ms(unsigned int nms);void chose7s(unsigned

10、char num);void chose7ss(unsigned char numm); void timer0_init(void)TMOD = 0X01;TH0 = (65536-10000)/256;TL0 = (65536-10000)%256;ET0 = 1;EA = 1;TR0 = 1;/*/* 用作数码管最初显示状态 */*/void s1()for(j=0;j8;j+)if(j=2|j=5) chose7s(j);/使能某位数码管 DATA=0 x40; delay_ms(2);elsechose7s(j);DATA=0 x3f;delay_ms(2);void s2() /

11、timer0_init(); for(i=0;i10;i+)/扫描 for(j=0;j 0; i-) for(j = 55; j 0; j-); /*/* 1/100秒计时 */*/void T0_time() interrupt 1TH0 = (65536-10000)/256;TL0 = (65536-10000)%256; count+;if(count=100) count=0; a+; if(a=60) a=0;b+;if(b=60) b=0;a=0;count=0; u7=count%10;u6=count/10; u4=a%10; u3=a/10; u1=b%10; u0=b/1

12、0;第三章 程序的调试把程序写进keil中 然后点击生成.hex文件,再使用下载软件下载到自己的单片机板子上,在板子上观察程序运行结果,试着按一下接好的按钮,是否到达所设置的效果。调试效果如下列图:经过调试 能到达所设计的效果。第四章 设计总结本次的课程设计是每人抽签决定自己所要做的任务,说实在话,当我看到我抽到的是这个任务是,心里暗喜,因为我觉的这是一个相比拟于其他的任务来说是比拟简单的。然后第二天花了一天的时间去焊接自己的电路板。前面几个学期我们也都焊接过电路板,可是那都是一些大的元器件,而这次那么增大了难度,还得自己焊接贴片,这就很需要耐心和细心的事情,所以通过整整一天的时间才焊接好,很

13、多地方焊的简直不能看,心想希望能用吧,不然时间全白浪费了。功夫不负有心人,最后测试通过。说明可以使用这个板子烧写程序,于是当天晚上我就迫不及待的回到寝室开始设计本次实验的程序。任务要求是设计一个数码管秒表,能正确显示时间,时钟由八位数码管显示,显示格式为: XX分XX秒XX十分之一、百分之一秒。首先我想到的就是利用单片机的本身定时器实现百分之一秒的计时,这个倒是没问题,问题就是最低2位为100进制,而分钟和秒钟那么是要求60进制的。于是我就在定时中断程序里设计3个变量分别来表示,分秒百分之一秒。以此来解决了进制不统一的问题。这个问题解决后,那就该想怎么把数字显示到数码管上面去,我们的板子利用的

14、是74HC138译码器来进行数码管的位选,用74HCT573来控制数码管段选。这2个芯片我都忘的差不多了,于是又去翻阅?数字电子技术?来学习,然后又去请教了学长关于数码管显示的控制,在学长提供的资料下最终确定数码管显示程序的编写。本次按键的多功能实现那么是选择了查询法实现。这些都是设计上的问题。在调试过程中也遇到了很多问题,一开始用的下载工具,怎么也下载不进去,后来问了学长才知道是我没选对单片机型号。可是下载成功后,运行发现数码管显示有点闪烁,上网查阅资料才知道,由于数码管显示使用的是动态扫描,所以在软件设计中的延时程序要设计好,延时过大会产生闪烁,延时过小那么会亮度不够。最后通过一次又一次的试验确定了最总的延时程序,既保证了亮度,也保证了不闪烁。此次课程设计师经过同学,学长和老师的帮助得以完成并且在最后的辩论中老师给予了肯定。通过这

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论