单片机最小系统拓展实时日历时钟显示设计.doc_第1页
单片机最小系统拓展实时日历时钟显示设计.doc_第2页
单片机最小系统拓展实时日历时钟显示设计.doc_第3页
单片机最小系统拓展实时日历时钟显示设计.doc_第4页
单片机最小系统拓展实时日历时钟显示设计.doc_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

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

文档简介

武汉理工大学华夏学院信息工程课程设计报告书课 程 名 称 电子产品制作 课程设计总评成绩 学生姓名、学 号 学 生 专 业 班级 指 导 教 师 姓名 课程设计起止日期 2012.11.52012.11.22 课程设计基本要求课程设计是工科学生十分重要的实践教学环节,通过课程设计,培养学生综合运用先修课程的理论知识和专业技能,解决工程领域某一方面实际问题的能力。课程设计报告是科学论文写作的基础,不仅可以培养和训练学生的逻辑归纳能力、综合分析能力和文字表达能力,也是规范课程设计教学要求、反映课程设计教学水平的重要依据。为了加强课程设计教学管理,提高课程设计教学质量,特拟定如下基本要求。1. 课程设计教学一般可分为设计项目的选题、项目设计方案论证、项目设计结果分析、答辩等4个环节,每个环节都应有一定的考核要求和考核成绩。2. 课程设计项目的选题要符合本课程设计教学大纲的要求,该项目应能突出学生实践能力、设计能力和创新能力的培养;该项目有一定的实用性,且学生通过努力在规定的时间内是可以完成的。课程设计项目名称、目的及技术要求记录于课程设计报告书一、二项中,课程设计项目的选题考核成绩占10%左右。3. 项目设计方案论证主要包括可行性设计方案论证、从可行性方案中确定最佳方案,实施最佳方案的软件程序、硬件电路原理图和PCB图。项目设计方案论证内容记录于课程设计报告书第三项中,项目设计方案论证主要考核设计方案的正确性、可行性和创新性,考核成绩占30%左右。4. 项目设计结果分析主要包括项目设计与制作结果的工艺水平,项目测试性能指标的正确性和完整性,项目测试中出现故障或错误原因的分析和处理方法。项目设计结果分析记录于课程设计报告书第四项中,考核成绩占25%左右。5. 学生在课程设计过程中应认真阅读与本课程设计项目相关的文献,培养自己的阅读兴趣和习惯,借以启发自己的思维,提高综合分和理解能力。文献阅读摘要记录于课程设计报告书第五项中,考核成绩占10%左右。6. 答辩是课程设计中十分重要的环节,由课程设计指导教师向答辩学生提出23个问题,通过答辩可进一步了解学生对课程设计中理论知识和实际技能掌握的程度,以及对问题的理解、分析和判断能力。答辩考核成绩占25%左右。7.学生应在课程设计周内认真参加项目设计的各个环节,按时完成课程设计报告书交给课程设计指导教师评阅。课程设计指导教师应认真指导学生课程设计全过程,认真评阅学生的每一份课程设计报告,给出课程设计综合评阅意见和每一个环节的评分成绩(百分制),最后将百分制评分成绩转换为五级分制(优秀、良好、中等、及格、不及格)总评成绩。8. 课程设计报告书是实践教学水平评估的重要资料,应按课程、班级集成存档交实验室统一管理。一、 课程设计项目名称单片机最小系统拓展实时日历时钟显示设计二、项目设计目的及技术要求设计目的:学会运用51单片机设计实施日历时钟显示系统。技术要求:1在 51 单片机系统中设置、获取、记录实时的日历时钟信息并通过 LED 显示或 LCD 显示。2. 能够进行长时间的记录,并且存储的时间信息在掉电情况下能长期保存。3. 初始的时间信息要求用户用键盘输入或通过 PC 机和单片机的串口通信来设置。4. 利用已有设备进行安装调试 。三、项目设计方案论证(可行性方案、最佳方案、软件程序、硬件电路原理图和PCB图)1.可行性方案1.1单片机芯片的选择方案和论证方案一:采用AT89C52,片内ROM全都采用Flash ROM:能以3V超低压工作;同时也与MCS-51系列单片机完全兼容,该芯片内部存储器为8KB ROM存储空间,同样具有89C51的功能,且具有在线编程可擦除技术,当在对电路进行调试时,由于程序的错误修改或对程序的新增功能需要烧入程序时,不需要对芯片的多次拔插,所以不会对芯片造成一定的损坏。方案二:采用AT89C51芯片作为硬件核心,采用Flash ROM,内部具有4KB ROM存储空间,能于3V的超低压工作,而且与MCS-51系列单片机完全兼容,但是运用于电路设计中时由于不具备ISP在线编程技术,当在对电路进行调试时,由于程序的错误修改或对程序的新增功能需要烧入程序时,对芯片的多次拔插会对芯片造成一定的损坏。1.2显示模块选择方案和论证方案一:采用点阵式数码管显示,点阵式数码管是由八行八列的发光二极管组成,对于显示文字比较适合,如采用在显示数字显得太浪费,且价格也相对较高,所以也不用此种作为显示。方案二:采用LED数码管动态扫描,LED数码管价格适中,对于显示数字最合适,而且采用动态扫描法与单片机连接时,占用的单片机口线少。所以采用了LED数码管作为显示。1.3时钟芯片的选择方案和论证方案一:采用DS1302时钟芯片实现时钟,DS1302芯片是一种高性能的时钟芯片,可自动对秒,分,时,日,周,月,年以及闰年补偿的年进行计数,而且精度高,工作电压2.5V5.5V范围内,2.5V时耗电小于300nA.方案二:直接采用单片机定时计数器提供秒信号,使用程序实现时,分,秒计数。采用此种方案虽然减少芯片的使用,节约成本,但是,实现的时间误差较大。所以不采用此方案。1.4电路设计最佳方案确定综上各方案所述,对此次课程设计的方案选定:以单片机AT89C52为主控制器,时间数据是通过时钟芯片DS1302来读取,并通过LED 数码管显示出来,并用键盘来完成对当前时间的调整。2.硬件设计2.1电路设计框图图1电路设计2.2系统概述本电路是有AT89C52单片机为控制核心,具有在线编程功能,低功耗,能在3V超低压工作;时钟电路由DS1302提供,他是一种高性能,低功耗,带RAM的实时时钟电路,它可以对年,月,日,周日,时,分,秒进行计时,具有闰年补偿功能,工作电压为2.5V5.5V。采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据,DS1302内部有一个31*8的用于临时性存放数据的RAM寄存器。可产生年,月,日,周日,时,分,秒,具有使用寿命长,精度高和低功耗等特点。具有掉电自动保存功能;显示部分由15个数码管,74HS138,74LS244构成。使用动态扫描显示方式对数字的显示。2.3 单片机最小系统设计单片机AT89C52的最小系统电路如图2所示 :图2 AT89C52单片机最小系统 2.4外接电源接口电路图3 外接电源接口电路2.5显示电路图4为显示电路的电路图,采用了LED驱动芯片MAX7219。使用两片MAX7219,实现16为数码管显示。因为本设计要实现显示年(4位数字)、月(2位数字)、日(2位数字)、星期(1位数字)、小时(2位数字)、分钟(2位数字),总共需要13位数码管,而一片MAX7219最多只能支持8位数码管的显示,所以,我们需要单片机分别连接两片MAX7219来实现13位数码管显示。图4显示电路电路图2.6外接晶体引脚图5 外接晶振 2.7复位电路图6 手动复位电路在系统运行的过程中,有时可能对系统需要进行复位,为了避免对硬件系统经常加电和断电造成的损害,设计了手动的复位电路。如图6所示。这种电路的设计,在系统的运行过程中需要复位时,只需使开关闭合,在RST端就会出现一定时间的高电平信号,从而使单片机实现复位。2.8 DS1302时钟电路图图7 DS1302时钟电路3.软件设计 软件的设计是设计控制系统的应用程序。其任务是在整体设计和硬件设计的基础上,确定程序结构,分配内RAM资源,划分功能模块,然后进行主程序和各模块程序的设计,最后连接起来成为一个完整应用程序,与硬件相结合完成相应功能。3.1日历时钟子程序设计DS1302与CPU的连接需要三条线,即SCLK(7),I/O(6),RST(5)。日历时钟DS1302的读写需要初始化时序,读时序,写时序。所有时序都是将主机作为主设备,单总线器件作为从设备。而每一次命令和数据的传输都是从主机启动写时序开始,如果要求但总线器件回送是低位在先。读写都是16位数据高8位是地址低8位是数据,在读写时要严格遵从起读写时序,否则读写将会失效。图8 日历时钟的写和读3.2 实验程序#include #define uchar unsigned char#define uint unsigned intuchar code table=0xC0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,0xff,0x0c,0xbf; /*0-F、灭(16)、P.-*/uchar t0,t1,sec,min,hour,function,a0,a1,a2,a3,a4,a5,a6,a7;bit shan;void delay(uint count) ;uchar keychuli();uchar key();void display(uchar,uchar,uchar,uchar,uchar,uchar,uchar,uchar);void send();void ini();void chuli();/*主函数*void main() ini();while(1)display(16, 16, 16, 16, 16, 16, 16, 17); /没有键按下是侠士P.if(key()=1) /当k1按下后则定时器驱动时钟开始走TR0=1;function=1;shan=0;while(1)send(); / 送数display(a0, a1, a2, a3, a4, a5, a6, a7); / 显示chuli(); /处理/*初始化程序*voidini()TMOD=0x01,TH0=0x3c,TL0=0xb0;TH1=0x3c,TL1=0xb0; / 定时50ms中断一次EA=1,ET0=1,TR0=0;ET1=1;TR1=0;/*键值处理程序*void chuli()switch(key()case 0:break;case 1:/ 当按键k1按下后function+;/ 判断按下的次数switch(function)case 1:TR0=1;TR1=0;shan=0;break;/一次条秒同时闪烁case 2:/两次调分同时闪烁case 3:/三次调分同时闪烁case 4:TR0=0;TR1=1;shan=1;break;/四次跳出调整状态时钟继续走时case 5:function=1;TR0=1;TR1=0;shan=0;break;/轮流循环break;case 2: /k2键上调switch(function) case 1:break;case 2:sec+;if(sec=60)sec=0;break;case 3:min+;if(min=60)min=0;break;case 4:hour+;if(hour=24) hour=0;break;break; case 4: /k3键下调switch(function)case 1:break;case 2:sec-;if(sec=255) sec=59;break;case 3:min-;if(min=255) min=59;break;case 4:hour-;if(hour=255) hour=23;break;break;/*定时器0的中断服务程序*void timer0() interrupt 1 using 3TH0=0x3c,TL0=0xb0;t0+;if(t0=20)t0=0;sec+;if(sec=60)sec=0;min+;if(min=60)min=0;hour+;if(hour=24)hour=0;/*定时器1的中数服务程序,对shan取反,以使灯闪烁*void timer1() interrupt 3 using 2TH0=0x3c,TL0=0xb0;t1+;if(t1=40)t1=0;shan=shan;/*uchar keychuli() uchar k; k=P1; /P1口内容送K k=k; /取反 k=(k&0xff); /屏蔽高4位,如果扫描8键,屏蔽该句。 return(k); /返回键值 /* 函数原型:key();* 功 能:键盘扫描函数,函数返回值即键值。*/uchar key() uchar keyzhi,keyzhii; /电子钟键盘按键键值临时存放 keyzhi=keychuli(); /调P1口处理函数 if(keyzhi!=0) /有键动作延时去抖动,否则函数返回 send(); display(a0, a1, a2, a3, a4, a5, a6, a7); display(a0, a1, a2, a3, a4, a5, a6, a7); keyzhi=keychuli(); /再次调P1口处理函数 if(keyzhi!=0) /真正有键按下,取键值并暂存 keyzhii=keyzhi; while(keyzhi!=0) /判按键是否释放,没有释放延时去抖动等待释放 send(); display(a0, a1, a2, a3, a4, a5, a6, a7); display(a0, a1, a2, a3, a4, a5, a6, a7); keyzhi=keychuli(); keyzhi=keyzhii; /按键释放后恢复按键键值 return(keyzhi); /返回按键键值/*显示子程序*void display(uchar a7,uchar a6,uchar a5,uchar a4,uchar a3,uchar a2,uchar a1,uchar a0)P0=tablea7;P2=0xfe;delay(1);P0=tablea6;P2=0xfd;delay(1); P0=tablea5;P2=0xfb;delay(1); P0=tablea4;P2=0xf7;delay(1);P0=tablea3;P2=0xef;delay(1);P0=tablea2;P2=0xdf;delay(1);P0=tablea1;P2=0xbf;delay(1);P0=tablea0;P2=0x7f;delay(1);/*将数送至缓冲单元,当shan的标志位为1时,再根据此时的此时的功能标示,对该位熄灭*void send() a0=sec%10;a1=sec/10;a2=18;a3=min%10;a4=min/10;a5=18;a6=hour%10;a7=hour/10;if(shan=1)switch(function)case 2:a0=16,a1=16;break;case 3:a3=16,a4=16;break;case 4:a6=16,a7=16;break;/*延时子程序基数为1毫秒*void delay(uint count) uint j; while(count-!=0) for(j=0;j80;j+); 4.单片机最小系统PCB原理图图9 单片机最小系统PCB原理图四、项目设计结果分析(分析试验过程中获得的数据、波形、现象或问题的正确性和必然性,分析产生不正确结果的原因和处理方法)实验结果:当上电后,系统显示提示符P。按下k1后,系统开始正常运行, 此时按其它键均无效当再按下k1后,进入调秒状态,按k2加1,按k3减1,再按一下k1进入调分状态,再按一下,进入调时,再按一下,进入正常的运行状态在调整状态下,当调整该位时,该位会闪烁。较好地完成了设置、获取、记录实时的日历时钟信息并通过 LED 显示或 LCD 显示。掉电后DS1302会转用后备电池供电,在次上电后,时钟显示为当前时间。证明了能够进行长时间的记录,并且存储的时间信息在掉电情况下能长期保存。实验结论:硬件设计中对于单片机最终选择了AT89C51,它是一种带4K字节闪存可编程可擦除只读存储器的低电压,高性能CMOS8位微处理器。单片机是很容易受干扰的控制器,当采用外部晶振时,应尽量让其靠近单片机减少对其干扰,防止程序乱飞现象。同时还可以采用隔离等方式减少干扰。软件设计中要完成键值处理,定时中断,延时,键盘扫描,显示等功能。软件设计是核心部分,具有多样化,灵活性高,易移植等优点,要深深理会各指令的含义才能更加熟练应用,中断的合理利用可以减少CPU利用资源,具有执行效率高等优点,本设计用到定时器中断以减少对CPU的占用,更好的处理其他功能。软件的设计大部分采用模块化设计的方法以方便调试,并使其可读性大大增强,方便更改和移植。 在这次课程设计中,我熟悉了芯片的结构及掌握了各芯片的工作原理和其具体的使用方法。我也发现了一些不足之处,在电路设计中,先仿真后连接实物图,但有时仿真和电路连接是不完全一致的 ,在实际电路的连接图中出错的原因都是界限和芯片的接触不良以及接线错误引起的,因此要学会区分仿真和电路连接图间的区别。 在此次课程设计中,我学会了独立思考并解决问题以及及时向同学求教不懂之处。我认识到了知识要灵活运用的重要性以及要将知识与实际相结合的道理。五、参考文摘(相关文摘不少于5篇,记录每篇文献的作者姓名.文献名称.文献发行城市:文献出版社,出版年;文献内容摘要, 每篇不少于100字)【1】史建芳.智能仪器设计基础.北京:电子工业出版社,2007.摘要:静态显示方式是指显示器显示某一字符时,相应段的发光二极管恒定导通或截止使显示字符的字段连续发光。在静态显示方式中每位数码管都应有各自的驱动器件;为了便于程序控制在选择LED驱动器件时。往往选择带锁存功能器件,用于锁存各自待显示数码。因此,静态显示系统在每一次显示输出后能够保持显示不变。仅在待显示数码需要改变时,才更新其数字显示器中锁存的内容。这种显示方式的优点是亮度高,控制程序简单,显示稳定可靠。【2】李群芳,张士军,黄建.单片微型计算机与接口技术(第三版).北京:电子工业出版社.2008.摘要:从硬件连接方式看,键盘通常可分为独立式键盘和矩阵式键盘两类。所谓独立式键盘是指各按键相互独立,每个按键分别于单片机的I/O口或外扩I/O芯片的一根输入线项链,通常每根输入线上按键的工作状态不会影响其他输入线的工作状态。通过检测输入线的电平就可很容易判断哪个按键被按下。独立式键盘电路配置灵活,软件简单,但在按键数较多时,会占用大量的输入口线

温馨提示

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

评论

0/150

提交评论