版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
PAGE等级:湖南工程学院应用技术学院课程设计课程名称单片机原理与应用课题名称电子表专业电气工程及其自动化 班级学号姓名指导教师周向红、李晓秀、汪超、肖峰2014年
湖南工程学院应用技术学院课程设计任务书课程名称单片机原理与应用课题电子表专业班级学生姓名学号指导老师周向红、李晓秀、汪超、肖峰审批任务书下达日期2014年5月12日任务完成日期2014年5月21日设计内容与设计要求设计内容:本课题要求以单片机为核心设计一个多功能电子表,具有电子时钟、时钟设置和跑表功能。做时钟时在6位LED显示器上显示时、分、秒,做跑表时显示范围000.0秒~999.9秒,并具有时钟启动、时钟停止、跑表启动、跑表复位、时钟调整功能键。要求焊接好开发板,在开发板上进行调试。设计要求:1)确定系统设计方案; 2)进行系统的硬件设计;3)完成必要元器件选择;4)开发板焊接及测试5)系统软件设计及调试;6)系统联调及操作说明7)写说明书主要设计条件MCS-51单片机实验箱1台;PC机及单片机调试软件,仿真软件proteus;开发板1块;制作工具1套;5、系统设计所需的元器件。说明书格式封面课程设计任务书目录第1章、概述第2章、系统总体方案设计第3章硬件设计第4章开发板焊接及其测试第5章软件设计与说明(包括流程图)第6章调试步骤、结果、使用说明
第7章设计总结第8章参考文献附录:系统电路原理图(用PROTEL99制作)、系统程序清单。电气与信息工程系课程设计评分表进度安排设计时间分为二周第一周星期一、上午:布置课题任务,课题介绍及讲课。下午:借阅有关资料,总体方案讨论。星期二、分班级焊接开发板星期三、确定总体方案,学习与设计相关内容。星期四、各部分方案设计,各部分设计。星期五、设计及上机调试。星期六、设计并调试第二周星期一:设计及上机调试。星期二:调试,中期检查。星期三:调试、写说明书。星期四--星期五上午:写说明书、完成电子版并打印成稿。星期五下午:答辩。参考文献王迎旭编.《单片机原理与应用》[M].机械工业出版社.楼然苗编.《51系列单片机设计实例》[M].北京航空航天大学出版社.黄勤编.《计算机硬件技术基础实验教程》[M].重庆大学出版社4、刘乐善编.《微型计算机接口技术及应用》[M].华中科技大学出版社.5、陈光东编.《单片微型计算机原理及接口技术》[M].华中科技大学出版社.6、周向红编《51系列单片机应用与实践教程》[M].北航出版社目录第一章绪论 1第二章系统总体方案设计 22.1课程设计内容要求 22.2设计思路分析 2第三章硬件设计 33.1系统框图 33.2单片机型号的选择 33.3显示器选择 43.4时钟电路 43.5显示电路 53.6总体电路原理图 5第四章 开发板焊接及测试 6第五章软件设计与说明 75.1软件总体框图 75.2主程序设计 75.3子程序设计 85.4跑秒程序设计框图 8第六章调试和使用说明 9使用说明 9第七章总结与体会 11参考文献 12附录 12电路图 12系统程序清单 13PAGE22第一章绪论单片机是一种集成在电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能。它体积小,成本低,功能强,广泛应用于智能产业和工业自动化上。而51系列单片机是各单片机中最为典型和最有代表性的一种。通过本次课程设计对51单片机的学习以及应用,已经对单片机有了初步的了解和简单的应用能力。数字电子表是采用数字电路实现对时,分,秒,数字显示的计时装置,由于数字集成电路的发展和石英晶体振荡器的广泛应用,使得数字表的精度,远远超过老式的钟表,钟表的数字化给人们生产带来了极大的方便,而且大大的拓展了钟表的报时功能。数字表已经成为人们日常生活中的必须品,广泛应用于家庭,车站,码头,剧院,办公场所等,给我们的生活和学习,工作带来了极大的方便。本课程设计设计了一个基于AT89C51单片机的电子表。并且通过一个控制按键来实现时间的调节和是否进入省电模式,并且在数码管上显示相应的时间。应用Proteus的ISIS软件实现了单片机电子表系统的设计与仿真。此方法仿真效果真实、准确,并且节省了硬件资源。第二章系统总体方案设计2.1课程设计内容要求本课题要求以单片机为核心设计一个多功能电子表,具有电子时钟、时钟设置和跑表功能。做时钟时在6位LED显示器上显示时、分、秒,做跑表时显示范围000.0秒~999.9秒,并具有时钟启动、时钟停止、跑表启动、跑表复位、时钟调整功能键。要求焊接好开发板,在开发板上进行调试。2.2设计思路分析电子表的电路由多个部分组成,如控制按键的输入电路,单片机的时钟电路,复位电路,LED显示器段码驱动电路,LED显示器位码驱动电路,显示器电路和跑表时钟电路组成。然后通过对以上电路的产生和调整设计出总的电路框图。所以可根据上述条件作出相应的实时时钟电路总的框图。然后开始设计内部驱动程序,按照相应的程序实现特定的功能个,之后按照程序的设计,将相应的管脚连接调试,看是否能实现预定的功能。利用MCS-51内部的定时/计数器进行中断定时,配合软件延时实现时、分、秒的计时。配合软件监控实现运行,停止,调时,调分,调秒。该方案节省硬件成本,软件设计做够灵活,且能够使人在定时/计数器的使用、中断及程序设计方面得到锻炼与提高,能够准确走时并实现多功能。因此,本课题采用该方案。第三章硬件设计3.1系统框图图3.13.2单片机型号的选择通过对多种单片机性能的分析,最终认为89C51是最理想的电子表开发芯片。89C51是一种带4K字节闪烁可编程可擦除只读存储器的低电压,高性能CMOS8位微处理器,器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的89C51是一种高效微控制器,而且它与MCS-51兼容,且具有4K字节可编程闪烁存储器和1000写/擦循环,数据保留时间为10年等特点,是最好的选择。图3.23.3显示器选择LED显示器的选择,在应用系统中,设计要求不同,使用的LED显示器的位数也不同,因此生产厂家就生产了多种位数、尺寸、型号不同的LED显示器。在我们的设计中,选择6位一体的时钟型LED显示器。6位7段共阳显示器:六位是同时显示六位阿拉伯数字,而每一个数字又是七段码显示的;七段是指一个数码显示的阿拉伯数字是由七位二进制数控制的,共阳是指相应的二进制为1时不亮,为0时亮。在实验中显示器的作用是显.示时间。3.4时钟电路图3.43.5显示电路图3.53.6总体电路原理图图3.4第五章软件设计与说明5.1软件总体框图图5.15.2主程序设计主程序的初始化内容:所谓初始化,是对将要用到的51系列单片机内部部件或扩展芯片进行初始工作设定。51系列单片机复位后,设置特殊功能寄存器。5.3子程序设计子程序包括了:时钟暂停显示程序,时钟运行显示程序,时钟溢出入口程序,跑秒暂停及循环显示程序,跑秒运行循环显示程序等等。代码转换程序:由于人们日常习惯使用十进制数,而计算机的键盘输入,输出以及显示都采用二进制编码的十进制数或ASCII码。因此,在程序设计时常常要代码转换。LED动态显示程序:采用动态扫描方式时,要使得LED显示得比较均匀和有足够的亮度,需要设置适当的扫描频率。扫描频率在70Hz左右时,能够产生足够的图形和较好的显示效果。5.4跑秒程序设计框图图5.4第六章调试和使用说明本系统可以先在电脑上使用Proteus仿真软件进行电路的仿真进行仿真,编程使用keil、调试工具并生成可执行文件加载到单片机中,在Proteus中点击运行,查看运行结果是否与预期要求相符,如果仿真成功,便可以到实验板上进行实物实验。使用说明按钮开关图如下图6.1仿真按下开始后时钟开始计时时间设定点击PAUSE/START后进入设定模式,点击SEC/MINRESETTIMER进行设置,点击一下增加一。完成以后点击PAUSE/START,即可保存并进行下一项设置,依次下去便可以设置秒、分和时。设置秒设置分设置时设置时间后,程序继续将在设置时间的基础上继续运行跑秒功能第七章总结与体会在这一次课程设计当中,我进行了多方面的学习和实践,虽然当中遇到了许多的困难,但最终还是把它们一一地克服了。学习就是这样的,要做好每一件事,都有很多的因素影响制约着我们,我们必须快速准确的适应这样的环境,通过改变自己来更快的融入社会。有了这份经历,我觉得自己少了一分浮躁,多了一份沉稳。我深深地感到要有科学的思维方法和学习方法是极其重要的。刚刚拿到课程设计的题目时真不知道从哪里开始动手,课题名称里的芯片根本就没听说过。通过上网查找资料,弄清楚了它的功能,才真正开始了设计。但这个东西包括了几个部分,所以一定要把握好它的整体设计思路,在其框架之下,对各部分的单元电路进行分析和设计,最后经过电路的修改,参数的确定,将各个部分连接起来,形成总的电路图。书到用时方恨少,在这次课程设计过程中遇到了很多大大小小的难题,这时才发现在知识的海洋里自己是多么的渺小,但这也激起了我学习的热情,我进行了多方面的学习和实践,最终还是把它们都克服了。在这次课程设计过程中我还学会了与同学交流和沟通,这样才能把自己在设计过程中学到的知识进行交流,在交流中进一步巩固自己的知识。这次课程设计只有两个星期的时间,时间比较紧张,提高工作、学习效率是唯一的办法。有了这份经历,更让我觉得知识海洋的广博,驱使怀着好奇之心的我进一步努力学习告诉我为了填满好奇心,无时无刻不需要学习。每一次新的认识,总是疑问重重,不断的分析解决问题、解决问题,等到最后回想起来都是如此的简单。能学习能提高不容易,更重要的是我学会了如何解决问题,这次课程设计让我增加了自信心,懂得的越来越多,又感觉在以后的路上明白了很多知识。同时也感谢老师的指导和共同探讨研究问题的同学们,希望在以后的学习和工作中能够进一步提高对单片机的认识和应用能力。参考文献1、王迎旭编.《单片机原理与应用》[M].机械工业出版社.2、楼然苗编.《51系列单片机设计实例》[M].北京航空航天大学出版社.3、黄勤编.《计算机硬件技术基础实验教程》[M].重庆大学出版社4、刘乐善编.《微型计算机接口技术及应用》[M].华中科技大学出版社.5、陈光东编.《单片微型计算机原理及接口技术》[M].华中科技大学出版社.6、周向红编《51系列单片机应用与实践教程》[M].北航出版社附录电路图系统程序清单程序分为三个部分Main.c、TaskProc.c、Timer.c第一部分Main.c#include<reg52.h>#include"cext.h"#include"timer.h"voidmain(void){//initializesinternal8052timer.//ClockFrequency=12MHzinit_timer(12e6);//enablesinterruptsEA=1;//loopforeverwhile(1);}第二部分TaskProc.c#include<reg52.h>#include"cext.h"charnum[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//7-segcodeschartimerbuf[]={0,0,0,0,0,0}; //timerbuffercharadd[]={0x0fe,0x0fd,0x0fb,0x0f7,0x0ef,0x0df};//Multiplexingaddresschardpn[]={0,0,0,0,0,0};//Dotsmatrixcharbuf[]={0,0,0,0,0,0};//Counterbuffercharvalue,key_mask,new_key;staticuchard0,d1,d2,d3,d4,d5;staticuchart0,t1,t2,t3;staticucharflag;staticuchardigit_counter,sec_counter=0;staticcharfModel;staticcharset_flag;staticcharset_count;staticcharstop_timer=true;uinttimer;uchardel;//processorswitchcontest.#pragmaregisterbank(1)//MultiplexingTask.Doitevery10msvoidled_mux(){if(fModel==0){//Normalcounting.Displaythecounts.value=buf[digit_counter];P1=num[value]|dpn[digit_counter];}else{//Displayalarmvaluesvalue=timerbuf[digit_counter];P1=num[value]|dpn[digit_counter];}//Drivethedigitactuallymultiplexed.P0=add[digit_counter];for(del=0;del<100;del++);//Increasemultiplexeraddresstothenextdigitdigit_counter++;//Didyoudiplayalldigit?if(digit_counter>=6)//Startagain.digit_counter=0;//PulsehighP0.0,P0.1,P0.2andP0.3P0=P0|0x3f;}//Blinkonandoffthedotswhencountingandalarmison.voidblink_dp(){if(!set_flag&&fModel==0){if(flag) { dpn[1]=0x80; dpn[3]=0x80; }else { dpn[1]=0x0;dpn[3]=0x0; }flag=!flag;} if(fModel==1) { if(flag)dpn[4]=0x80;elsedpn[4]=0x0;flag=!flag; } }//Counter.Countsfrom00.00to59.59min.sec.//TheTimerinterruptisdrivenevery1sec.voidled_counter(){if(!set_flag) sec_counter+=1; if(sec_counter==10) { sec_counter=0; buf[5]++; } if(fModel==1&&!stop_timer) { timerbuf[5]++; } if(timerbuf[5]>9) { timerbuf[5]=0; t3=true; } if(t3) { ++timerbuf[4]; t3=false; } if(timerbuf[4]>9) { timerbuf[4]=0; t2=true; } if(t2) { ++timerbuf[3]; t2=false; } if(timerbuf[3]>9) { timerbuf[3]=0; t1=true; } if(t1) { ++timerbuf[2]; t1=false; } if(timerbuf[2]>9) { timerbuf[2]=0; timerbuf[3]=0; timerbuf[4]=0; timerbuf[5]=0; stop_timer=true; } if(buf[5]>9){buf[5]=0;d5=true;}if(d5){++buf[4];d5=false;}if(buf[4]>5){buf[4]=0;d4=true;}if(d4){++buf[3];d4=false;}if(buf[3]>9){buf[3]=0;d3=true;}if(d3){++buf[2];d3=false;}if(buf[2]>5){buf[2]=0;d2=true;} if(d2) { ++buf[1]; d2=false; } if(buf[1]>9) { buf[1]=0; d1=true; } if(d1) { ++buf[0]; d1=false; } if(buf[0]==2&&buf[1]>3) for(d0=0;d0<6;d0++) buf[d0]=0; }//FourkeysTaskmanager.//Timerinterruptdrivenevery250msvoidget_key(){charvalid_key;chardelay=127;key_mask=P2&0x07;while(--delay>=0);valid_key=P2&0x07;if(key_mask!=valid_key)valid_key=0;while((P2&0x07)!=(0|(valid_key&0x02)));switch(valid_key){case0x01: //setwatchif(fModel==0) { ++set_count;if(set_count==1){//FirsttimeSETispressed.Setssecondsset_flag=true;dpn[0]=0;dpn[1]=0;dpn[2]=0x0;dpn[3]=0x0;dpn[4]=0x80;dpn[5]=0x80;}elseif(set_count==2){//SecondtimeSETispressed.Setminutesset_flag=true;dpn[0]=0;dpn[1]=0;dpn[2]=0x80;dpn[3]=0x80;dpn[4]=0x0;dpn[5]=0x0;} elseif(set_count==3){//SecondtimeSETispressed.Setminutesset_flag=true;dpn[0]=0x80;dpn[1]=0x80;dpn[2]=0x0;dpn[3]=0x0;dpn[4]=0x0;dpn[5]=0x0;}elseif(set_count==4){//LatesttimeSETispressed.Returntotimerfunctions.set_flag=false;set_count=0; dpn[0]=0;} } if(fModel==1) { stop_timer=!stop_timer; }break;case0x02://modelswitch fModel=!fModel; dpn[0]=0; dpn[1]=0; dpn[2]=0; dpn[3]=0; dpn[4]=0; dpn[5]=0;break;case0x04://Setseconds/minutes if(fModel==0) {if(set_count==1){++buf[5];if(buf[5]>9){buf[4]++;buf[5]=0;if(buf[4]>5)buf[4]=0;}}elseif(set_count==2){++buf[3];if(buf[3]>9){buf[2]++;buf[3]=0;if(buf[2]>5)buf[2]=0;}} elseif(set_count==3){++buf[1];if(buf[1]>9){buf[0]++;buf[1]=0;if(buf[0]==2&&buf[1]>4) { buf[1]=0;buf[0]=0; }}} } if(fModel==1) { stop_timer=true; timerbuf[0]=0; timerbuf[1]=0; timerbuf[2]=0; timerbuf[3]=0; timerbuf[4]=0; timerbuf[5]=0; } break;}}第三部分Timer.c#include<reg52.h>#include"cext.h"#include"timer.h"#include"taskproc.h"//interruptperiod(1msec)#definetmr_time1e-3staticucharcounter;staticucharcnt,dpcnt,kbcnt;staticuinttimer_counter;chardelay;voidISR_timer2()interrupt5using1//Timer2isr{//ClearinterruptTF2=0;//Doitat1msled_mux();//Taskprocedure.//Eachtaskrunsevery10msmultipliedbyitsowntaskcounter//S0:if(counter==1) {if(cnt==10){cnt=0;led_counter();}//IncrementoftheTimertaskcounter cnt++; }//S1:if(counter==2){if(dpcnt==20){dpcnt=0;blink_dp();}//Incrementofthedecimalpointtask
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- IT专员岗位职责共8篇可编辑范本
- 石河子大学《新疆地理》2021-2022学年第一学期期末试卷
- 僵尸的小说6篇
- 品牌养生饮茶茶室投资经营项目商业计划书
- 石河子大学《企业经营决策模拟实训》2021-2022学年第一学期期末试卷
- 石河子大学《果树栽培学》2023-2024学年第一学期期末试卷
- 石河子大学《大数据技术基础》2023-2024学年期末试卷
- 沈阳理工大学《有限元法》2021-2022学年第一学期期末试卷
- 沈阳理工大学《文献检索与科技文写作》2022-2023学年第一学期期末试卷
- 国有土地租赁合同协议书范本
- 2024美团外卖服务合同范本
- 2024-2030年飞机内部紧固件行业市场现状供需分析及投资评估规划分析研究报告
- 2023~2024学年第一学期高一期中考试数学试题含答案
- 企业信用修复服务协议
- 部编人教版三年级语文上册期中测试卷5份(含答案)
- 2023年全国中学生英语能力竞赛初三年级组试题及答案
- 一种基于STM32的智能门锁系统的设计-毕业论文
- 部编版道德与法治九年级上册 8.2 共圆中国梦 教学设计
- 英语四级单词表4500.xls
- 阿莫的生病日ppt课件
- 汽车材料概述课件(ppt 119页).ppt
评论
0/150
提交评论