您好,欢迎访问三七文档
当前位置:首页 > 办公文档 > 述职报告 > 单片机控制8位数码管显示秒表课程设计
137工作室荣誉出品邹部长9931长沙学院《单片机原理及应用》课程设计说明书题目LED数码管显示电子秒表设计系(部)**系专业(班级)*************姓名邹部长9931学号******指导教师***起止日期2016.12.19—2016.12.24137工作室荣誉出品邹部长9931《单片机原理及应用》课程设计任务书1系(部):**系专业:******课题名称LED数码管显示电子秒表设计设计内容及要求1、课题内容:设计一种基于AT89S52单片机的电子计时秒表,要求如下:(1)、能正确显示时间,时钟由八位数码管显示,显示格式为:XX分XX秒XX(十分之一、百分之一)秒。(2)、设置一个独立式按键,第一次按键计时开始,第二次按键暂停,第三次按键清零。2、要求:完成该系统的硬件和软件的设计,在自己焊接好的单片机开发板上调试通过,并提交一篇课程设计说明书。设计工作量1、汇编或C51语言程序设计;2、程序调试;3、在自己焊接好的单片机开发板上调试通过;4、提交一份完整的课程设计说明书,包括设计原理、程序设计、程序分析、调试过程,参考文献、设计总结等。进度安排起止日期(或时间量)设计内容(或预期目标)备注第一天课题介绍,答疑,收集材料,焊接第二天51单片机开发板焊接调试第三天设计方案论证,练习编写C51程序第四天程序调试、仿真第五天系统测试并编写设计说明书教研室意见年月日137工作室荣誉出品邹部长9931长沙学院课程设计鉴定表姓名邹部长9931学号****专业***班级02设计题目LED数码管显示电子秒表设计指导教师**指导教师意见:评定成绩:教师签名:日期:答辩小组意见:评定成绩:答辩小组长签名:日期:教研室意见:最终评定等级:教研室主任签名:日期:说明课程设计成绩分“优秀”、“良好”、“中等”、“及格”、“不及格”五等。137工作室荣誉出品邹部长9931目录摘要..............................................................................................................................................................5第一章概述................................................................................................................................................61.1电子秒表的设计要求........................................................................................................................61.2电子秒表的电路图............................................................................................................................61.3电子秒表的设计原理及方案............................................................................................................7第二章电子秒表的程序设计....................................................................................................................82.1程序设计流程图...............................................................................................................................82.2程序设计源代码..............................................................................................................................10第三章程序的调试..................................................................................................................................16第四章设计总结......................................................................................................................................17参考文献....................................................................................................................................................18137工作室荣誉出品邹部长9931摘要随着经济与社会的发展对智能化和信息化技术要求的不断提高,单片机作为智能控制的核心,逐渐渗透到社会生产和生活的各个方面。而本文则主要阐述基于单片机设计的数码管秒表,这次设计所采用的的单片机为stc89c52单片机,数码管则是使用2个4位共阴LED数码管组成的8位。为减少I/O口,而使用了SM74HC138和74HCT573这2片芯片实现数码管显示8位数据。利用单片机内部定时器实现计时功能,分别显示为:分—秒—0.01秒。控制则是使用一键控制,可实现计时开始,计时暂停,计时清零3个功能的循环。本次的程序设计采用C语言编写,包括显示程序,定时中断服务程序,延时程序。最后在单片机电路板来观察工作状态。137工作室荣誉出品邹部长9931第一章概述1.1电子秒表的设计要求○1显示要求在初始状态显示的是00—00—00,最左边的2位显示分钟,中间2位显示秒,左边2位显示十分之一秒和百分之一秒,还有个2个LED数码管只显示中间那一段,用作间隔符。○2然后还的有一个键用来控制秒表,要求按第一下开始计时,按第二下暂停计时,按第三下清零,以此往复循环控制。○3使用单片机T0方式实现计时0.01秒。1.2电子秒表的电路图137工作室荣誉出品邹部长99311.3电子秒表的设计原理及方案设计原理根据单片机本身的定时计数器实现1秒的计时。再按照要求,确定如下图所示的3个模块。实现的方案:1秒计时采用定时中断完成,利用T0中断设置初值定时为0.01秒,然后在中断程序里加一个计数变量,就是每次次中断,这个变量就加1,也就是每0.01秒加1,加到100也就是一秒的时候进位,以此实现一秒的计时。显示电路的实现则使用LED动态显示方式来时LED数码管显示数字按键功能的实现使用按键扫描的方法实现,每次扫描到有按键按下,设置一个变量使变量加一加到三的时候把变量置零,变量的每个数值代表一个功能,实现一键多功能循环。STC89C52单片机显示电路按键电路时钟电路137工作室荣誉出品邹部长9931第二章电子秒表的程序设计2.1程序设计流程图主程序:开始判断是第几次按下初始化调用按键子程序计时开始计时暂停清零计数器按第一次按第三次按第二次137工作室荣誉出品邹部长9931中断子程序:设置count为最低2位数,a为中间2位数(秒),b为最高2位数(分)定时中断入口count++赋定时初值count=0a++b==60count==1000a==60a=0B++count=0a=0b=0返回主程序是是是否否否137工作室荣誉出品邹部长99312.2程序设计源代码#includereg51.h#defineENABLE0#defineDISABLE1#defineDATAP0unsignedn=0;unsignedchara,b,count=0,i,j=0,x,u[8];sbithc138s_enable=P1^3;sbithc138s_a=P1^0;sbithc138s_b=P1^1;sbithc138s_c=P1^2;sbitk1=P3^4;unsignedcharcodetable[]=//共阴极0~9数码管编码{0x3f,0x06,0x5b,0x4f,//0~30x66,0x6d,0x7d,0x07,//4~70x7f,0x6f//8~9};voiddelay_ms(unsignedintnms);voidchose7s(unsignedcharnum);voidchose7ss(unsignedcharnumm);voidtimer0_init(void){TMOD=0X01;TH0=(65536-10000)/256;TL0=(65536-10000)%256;ET0=1;EA=1;TR0=1;}/*********************************************************************//*用作数码管最初显示状态*//*********************************************************************/voids1(){for(j=0;j8;j++){if(j==2||j==5){chose7s(j);//使能某位数码管DATA=0x40;137工作室荣誉出品邹部长9931delay_ms(2);}else{chose7s(j);DATA=0x3f;delay_ms(2);}}}voids2(){//timer0_init();for(i=0;i10;i++)//扫描{for(j=0;j8;j++){if(j==2||j==5){chose7s(j);DATA=0x40;delay_ms(2);}else{chose7s(j);x=u[j];DATA=table[x];delay_ms(2);}}}}/**************************按键功能*************************************/voidkey1(){if(k1==0){delay_ms(20);if(k1==0){n++;137工作室荣誉出品邹部长9931if(n==3){n=0;count=0;b=0;a=0;}while(!k1);}}}/********************************************************************************函数名:main**函数功能:主函数**输入:无**输出:无********************************************************************************/voidmain(void){while(1){key1();switch(n){case0:s1();break;case1:timer0_init();s2();break;case2:TR0=0;s2();break;}}}/********************************************************************************函数名:chose7s**函数功能:使能某个数码管**输入:数码管编号**输出:无*137工作室荣誉出品
本文标题:单片机控制8位数码管显示秒表课程设计
链接地址:https://www.777doc.com/doc-5296068 .html