




已阅读5页,还剩14页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
单片机课程设计报告秒表设计电子科学系班级: 姓名: 学号: 指导老师: 2013.12.01课程设计任务书 专业和班级课程名称单片机与接口技术姓名指导教师学号设计题目秒表设计(0099秒)设计开始时间2013.12.01设计结束时间2012.12.24设计目的:为了能在短时间内独立完成课程设计,又考虑到要设计原理图、画PCB做电路板等因素,我选择做秒表。本次设计结合了所学的课程:单片机、protel dxp 2004 sp2、数电、模电等课程。也算是对所学知识巩固和应用。 设计任务:a、方案比较及认证 b、硬件原理,完整电路图 c、程序设计 d、在面包板上搭建电路e、腐蚀刻板 f、调试程序及结果分析 g、总结设计难点:原理图和PCB的设计、腐蚀刻板设计进度:第13周:选出课题后,查阅相关资料并确定下一步任务。第14周:按设计要求完成程序的编写和调试,并在面包板上搭建电路进行实验。第15周:开始画单片机最小系统及相关模块的原理图和PCB。第16周:在实验室腐蚀刻板和完成元器件的焊接,焊接完成后烧录程序到单片机进行测试和调整。并开始写课程设计报告。第17周:进一步修改和完善设计报告的内容。摘要:在生活中我们常常用到秒表作为计时器,为了更深刻理解它的工作原理。本次课程设计以STC89S51单片机为控制核心,以2位共阴数码管作为显示器。并用外部中断0控制秒表的清零和用外部中断1控制秒表的开始/暂停。利用Altium.Designer 10.0设计原理图和PCB。设计完成后在面包板上搭建电路进行验证和调试。实验成功后,利用化学方法进行腐蚀刻板。通过一个个多次实验修改,最后设计出了一个能从0099秒计时的秒表。此外后文还对对本次课程设计进行了归纳与总结。关键词:单片机、数码管、中断、Altium.Designer、腐蚀刻板目录一、设计要求:5二、方案论证:52.1总方案设计方框图:52.2方案选择:52.2.1显示电路:52.2.2按键控制:5三、硬件设计:63.1系统主芯片STC89C51单片机介绍:63.2电源电路:63.3时钟电路:73.4复位电路:73.5显示电路:73.6键盘电路:83.7扩展电路:83.8硬件总电路图设计:8四、软件设计94.1系统主程序设计94.2定时器T1中断:94.3 外部中断0流程图:104.4 外部中断1流程图:104.5数码管显示程序:10五、设计中遇到的问题及解决方法:115.1设计原理图和画PCB遇到问题及解决方法:115.1.1设计原理图:115.1.2 绘制PCB:115.2 在面包板调试时遇到问题及解决方法:115.3在腐蚀刻板时遇到问题及解决方法:115.3.1打印PCB印菲林纸:115.3.2在涂蓝油过程中:115.3.3在显影过程中:115.4焊接完成后遇到问题及解决方法:11结束语12谢辞12参考文献:12附录A:秒表设计的源程序13附录B:元件清单:15附录C: 秒表的原理图和PCB图:16附录D:成绩评定表:17附录E:实物图(已通过验证)18秒表设计一、设计要求:1.1用89C51设计一个2位的LED数码作为“秒表”。 1.2显示时间为0099秒,每秒自动加11.3设计一个“开始/暂停”键和一个“复位”键。1.4扩展:按下按键时蜂鸣器会发出滴滴响 二、方案论证:2.1总方案设计方框图:按照设计要求,该作品需要电源电路、时钟电路、复位电路、按键电路、显示电路等。总方案设计方框图如图2.1所示:STC89C51蜂鸣器复位电路按键电路时钟电路电源电路显示电路图2.1总方案设计方框图2.2方案选择:2.2.1显示电路:方案一:利用共阴数码管的静态控制。静态显示程序简单,显示稳定,但是占用端口比较多;而且在PCB布线时比较麻烦。方案二:利用共阴数码管的动态控制。动态显示所使用的端口比较少,可以节省单片机的I/O口。布线相对简单。此次采用方案二,用P0口输出并用74HC573驱动显示。由于P0口的输出级是开漏电路,用它驱动时需要外接上拉电阻才能输出高电平2.2.2按键控制: 方案一:采用查询方式,它是一直在循环主程序中通过查询语句判断条件是否满足,因主程序执行周期的影响,查询实效性很低,占用了CPU资源。方案二: 采用中断方式,因为中断是实行分时操作的,提高 CPU 的效率,只有当服务对象向 CPU 发出中断申请时 才去为它服务。此次设计采用方案二。这样就可以大大提高CPU 的工作效率,实现实时准确计时。三、硬件设计:3.1系统主芯片STC89C51单片机介绍:ST89C51是一种带4K字节闪烁可编程可擦除只读存储器的低电压,高性能CMOS 8位微处理器。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片上。故ST89C51是一种高效的微控制器。它主要包括下列几个部件:一个8位CPU、一个片内振荡器及时钟电路、4KBROM程序存储器、128字节RAM数据存储器、32条可编程的I/O线(4个8位并行I/O端口)两个16位的定时/计数器、一个可编程全双工串行口及5个中断源、两个优先级嵌套中断结构。图3.1 主芯片STC89C513.2电源电路:电源电路是系统最基本的部分,任何电路都离不开电源部分。本次设计采用LM1117-5V芯片提供 +5V稳压电压。图3.2电源电路3.3时钟电路:选用12MHZ的内部振荡方式,电路如下:电容器C1,C2起稳定振荡频率,快速起振的作用,C1和C2在5-30PF之间均可。接线时要使晶体振荡器X1尽可能接近单片机。图3.3时钟电路3.4复位电路:当单片机已在运行之中时,按下复位键能使用使RST持续一段时间的高电平,从而实现上电加开关复位的操作。这不仅能使单片机复位,而且还能使单片机的外围芯片也同时复位。当程序出现错误时,也可以随时使电路复位。电路图如下:图3.4 复位电路3.5显示电路:用P0口输出并用74HC573驱动显示。由于P0口的输出级是开漏电路,用它驱动时需要外接上拉电阻才能输出高电平。电路图如下所示:图3.5 显示电路3.6键盘电路:本次设计的按键较少且为了使程序简化提高效率,用P3.2外部中断INT0作为清零控制口, P3.3的外部中断INT1作为开始/暂停控制口,另外用软件法消除抖动。电路如下:图3.6 键盘电路3.7扩展电路:三极管8550是一种常用的普通三极管。 它是一种低电压,大电流,小信号的PNP型硅三极管。利用PNP型8550三极管作为蜂鸣器的驱动。 图3.7 扩展电路3.8硬件总电路图设计:基于Altium.Designer画出的硬件原理图如图所示:图3.8 总电路图设计四、软件设计4.1系统主程序设计:本设计中,计时采用定时器T1、外部中断(INT0)中断、外部中断(INT1)中断完成,其余状态循环调用显示子程序,当端口按键按下时,转入子程序执行程序。流程图如下:开始中断定时器的初始化循环显示00等待中断结束图4.1 系统主程序流程图 4.2定时器T1中断: T1中断是否溢出NY秒数加1并判断是否溢出赋初值中断返回定时器T1用于脉冲计数,中断进入后,秒数加一,并判断是否需要进位。T1中断服务程序执行流程如下:图4.2定时器T1中断流程图4.3 外部中断0流程图:一个按键与P3.2口相连,用于秒表清零 外部中断0装载显示初值00秒数清零中断返回 图4.3外部中断0流程图 4.4 外部中断1流程图:另一个按键与P3.3口相连,用于秒表开始/暂停外部中断1TR1取反中断返回 图4.4外部中断0流程图4.5数码管显示程序:在主程序中用while让程序处在死循环显示00。一直等待中断的请求从而改变显示的计数值;用P0口输出并用74HC573驱动显示。通过控制74HC573中的使能端LE来控制段选的输出。位选用P2口的P2.0和P2.1控制。其中P2.1控制数码管的个位显示,P2.0控制数码管的十位显示。74HC573:当锁存使能端为高时,这些器件的锁存对于数据是透明的,当锁存使能变低时,符合建立时间和保持时间的数据会被锁存。74HC573功能表如下: 图4.5 74HC573功能表五、设计中遇到的问题及解决方法:5.1设计原理图和画PCB遇到问题及解决方法: 5.1.1设计原理图:在画原理图时,遇到有些元器件没有对应的原理图库或者不知道元器件在哪一个库。最后在网上查阅相关资料就把问题解决了。另外,刚开始时不知如何确定abcdefg脚的编号,我是用万用表逐一测试管脚和通过网站中相关资料确定了每个脚的编号。 5.1.2 绘制PCB:因为覆铜板大小的限制,而且又是单面板,所以对PCB的走线来说就相对布双面板的要难一些,布线布了好几次最后还是有些线会交叉,尝试了多次后,最后只能通过放置一个过孔就把问题解决了。另外,在绘制过程中还遇到一个比较麻烦的问题是元器件没有对应的PCB库封装。而且自己之前也没画过PCB元件库,最后跟同学借了一本Altium Designer 原理图与PCB设计及仿真的书,最后自己按照书中的方法把问题解决了。5.2 在面包板调试时遇到问题及解决方法: 搭建好最小系统后,便开始用下载线下载程序到单片机上。下载时发现一个问题:程序不能烧录到单片机。刚开始我以为是程序的问题或者是导线的问题,确定程序和导线没有问题后,还是不 能烧录。最后发现两个原因:该单片机最小系统的GND没有和下载线的GND相连。而且我把下载线的RXD和单片机的RXD,下载线的TXD和单片机的TXD相连了。最后我把GND连了,以及把下载线的RXD和TXD位置对调了下,结果就烧录成功了。5.3在腐蚀刻板时遇到问题及解决方法:5.3.1打印PCB印菲林纸:在腐蚀刻板前要先打PCB印菲林纸即把PCB打印到菲林纸上。第一次打印时由于设置的问题没打印成功。经过了自己两次修改最后打印成功了。5.3.2在涂蓝油过程中: 第一次涂蓝油时,由于光线太暗的原因,搞的我把蓝油涂得太厚了,用吹风筒吹了半个小时后发现蓝油还未干,起初我怀疑蓝油过期了。后来打听到有人已经用该蓝油做板成功了。最后问了一下有经验的师兄,发现蓝油太厚了。没办了,只能再涂一次。5.3.3在显影过程中: 显影时发现有些线未能显影出来。我在网上查阅了相关资料后发现出现这个问题原因主要有:紫外光不够强、曝光时间不够长、曝光不均匀、蓝油涂得太厚等。最后我就按照这四个可疑的原因一一尝试了一遍。发现是紫外光不够强。因为我把紫外灯固定的太高了,导致照到铜板上的光线不够强。我把它调低后就不会遇到那个问题了。5.4焊接完成后遇到问题及解决方法:经过一天的腐蚀刻板把秒表的电路板做出来了。开始以为烧录一个程序到单片机里就能达到预期的效果。发现一个问题:蜂鸣器不会响,其他部分都正常。因为程序不会有错,因为做板前已经用该程序仿真调试过。那问题就出在硬件电路上。我一边对照电路图一边对着焊好的电路板也没有发现问题。最后我用万用表测了一下蜂鸣器两个引脚的电流和电压发现有点问题。当时我就看了一下三极管发现我用错三极管了。我把NPN 8050型的三极管当成了PNP 8550型的三极管。换了个三极管后问题就解决了。结束语 在这次课程设计中,遇到了很多问题,同时也学到了很多东西。刚开始感觉题目比较简单,应该能很快就完成,就像平时做数电实验一样。可是我发现平时我们做数电实验也就连一下导线,什么显示器脉冲信号都是给好了的,但是课程设计不一样,它是要求从根本上理解和运用,这让我深深体会到了设计过程的辛苦与甘甜。首先,我花了一两天时间在图书馆里翻阅相关资料,其间,我经常在网上搜阅资料,网上的资料浩如烟海,找到自己需要的东西也不易;最后,我确定做秒表了这个设计方案了。这一过程真的好辛苦,以前可没有这种感受,不过,这一过程同时也是甘甜的,因为我学到了好多知识,感到很充实,将自己所学知识用于实物制作也感到很自豪。真正感觉是自己在设计,在制作,而不是机械地对着书连线而已。总之,这次的课程设计,它锻炼了我找寻资料的能力,锻炼了我自主解决问题的能力,更锻炼了我的动手能力。它让我体会知识的重要性,更让我真实的体会到了学与用的不可分割性。学习知识是一个长期的过程,这个过程也就是我们不断的遇到问题、解决问题。通过我们解决问题,就可掌握新的知识。这次是我第一次独立完成课程设计,对我来说是一个难得的历练机会,尽管它很短暂,但我收获颇多,让我明白了以后怎样学习知识,也为以后的毕业设计制作打下了基础。谢辞刚开始进行课程设计的时候,我表现出了极大的热情。上网查资料、询问师兄的经验,我时刻猜测着我会从中获得什么,这是一个难得的锻炼机会。 秒表是一个比较常见也是比较容易的课程设计,因为它同实际联系的比较紧密,所以做起来会很有兴趣。在设计的过程中,我发现了我理论知识上的一些漏洞,这给了我不少压力,于是我又挤出时间努力加深文化知识。我总是尽自己所能解决这些问题,有时是因为设计错误,有时是三极管选择错误。但在整个设计过程中也请教了老师和同学。 我在此感谢学校给了我这么好实践的机会,也感谢老师和同学帮助我完成这次课程设计!参考文献:1李群芳,肖看等.单片微型计算机与接口技术.电子工业出版社.2012.12陈海宴.51单片机原理及应用.北京:北京航空航天电子大学出版社.2010.73郭勇等.Protel DXP 2004 SP2 印制电路板设计教程.机械工业出版社.2012.34谢龙汉,鲁力等.Altium Designer 原理图与PCB设计及仿真.电子工业出版社.2012.1附录A:秒表设计的源程序/*两位数码管实现0099的显示*/#include #define uchar unsigned char /宏定义#define uint unsigned int /宏定义sbit LE=P10; /声明74HC573N使能端P1.0上sbit K1=P32; /声明P3.2为开始/暂停按钮sbit K2=P33; /声明P3.3为复位按钮sbit beep=P15; /声明P1.5为蜂鸣器uchar code dis_tab=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40; /共阴数码管09段码uchar LED2= 0x3f, 0x3f ; /初始显示00 uchar code disp2= 0xfd, 0xfe; /共阴数码管位选控制uchar seconds=1; / 秒数uchar count_T1=0; /记录中断次数uchar j=0;/*延时1毫秒子程序*/void delay1ms(uchar c) uchar a,b; for(;c0;c-) for(b=142;b0;b-) for(a=2;a0;a-) ;/*主程序开始*/main() IE=0x8d; /EA=1,ET1=1,EX1=1,ET0=1 IT0=1; /设定外部中断0下降沿触发 IT1=1; /设定外部中断1下降沿触发 TMOD=0x10; /设定定时器T1为工作方式1 TH1=(65636-50000)/256; /定时50ms高8位初值 TL1=(65636-50000)%256; /定时50ms低8位初值 TR1=0; /先关闭定时器T0 while(1) /循环显示每秒更新的秒数 for(j=0;j2;j+) /j=0时,显示个位;j=1时,显示十位 beep=1; /关闭蜂鸣器 delay1ms(1) ; /延时1ms LE=0; /关闭74HC573N的使能端P0=LEDj; /向P0送段码 LE=1; /开启74HC573N的使能端P2=dispj; /向P2送位选码delay1ms(6); /延时6ms /* T1中断子程序*/ /*计算并装载显示秒数值 */void time1_1s(void) interrupt 3 TH1=(65636-50000)/256; /定时50ms高8位初值 TL1=(65636-50000)%256; /定时50ms低8位初值 if (+count_T1=20) /中断20次,即1秒 count_T1=0; /重新计数 LED1=dis_tabseconds/10; /装载十位数显示值 LED0=dis_tabseconds%10; /装载个位数显示值 seconds+; / 秒数加1 if (seconds=100)seconds=0; / 若超过100秒,seconds清零,并重新开始 /* 外部中断0子程序*/*秒表清零(即装载显示00秒数值)*/void int0_rst(void) interrupt 0 Delay1ms(20); TR1=0; /关闭定时器T0 beep=0; /打开蜂鸣器 LED0=0x3f; /个位装载显示00的初值 LED1=0x3f; /十位装载显示00的初值 seconds=0; /秒数清零 P2=0xfc; /位选选定两个数码管1111,1100 LE=1; /开启74HC573N的使能端 delay1ms(5) ; /延时5ms/* 外部中断1子程序*/*-*秒表开始/暂停 */void int1_sta(void) interrupt 2 Delay1ms(20); beep=0; /开启蜂鸣器 delay1ms(5) ; /延时5ms TR1=TR1
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 城市新能源汽车购车指南
- 养殖业降本增效提升方案
- 农村生产环境监管预案
- 时间管理与工作效率提升策略
- 2025中信银行长沙分行社会招聘考试含答案
- UML模型优化方案
- 家电维修知识总结
- 船舶驾驶员证书管理制度
- 2025烟台市工会社会工作者招聘40人笔试备考试题及答案解析
- 四六级考试写作答题技巧与范文评析
- 2025四川成都崇州市国有资产监督管理局市属国有企业面向社会招聘中层管理人员和员工19人笔试模拟试题及答案解析
- 2025年山西省建设工程专业高级职称评审考试(建筑工程管理)历年参考题库含答案详解(5卷)
- 2025年《医疗器械质量管理规范》培训试题(附答案)
- 2025年小学生宪法素养竞赛题库
- 2025年php考试题及答案笔试
- 医院医疗质量安全专项整治自查表
- 骨折固定与康复技术新进展
- 美国学前教育史
- 海关AEO高级认证供应链安全培训2025.7.14(一)
- 防压疮护理课件
- 2025-2030中国医院经营管理模式与创新发展规划研究报告
评论
0/150
提交评论