单片机课程设计报告多台设备自动循环控制系统设计.doc

上传人:土8路 文档编号:9949464 上传时间:2021-04-05 格式:DOC 页数:17 大小:815KB
返回 下载 相关 举报
单片机课程设计报告多台设备自动循环控制系统设计.doc_第1页
第1页 / 共17页
单片机课程设计报告多台设备自动循环控制系统设计.doc_第2页
第2页 / 共17页
单片机课程设计报告多台设备自动循环控制系统设计.doc_第3页
第3页 / 共17页
单片机课程设计报告多台设备自动循环控制系统设计.doc_第4页
第4页 / 共17页
单片机课程设计报告多台设备自动循环控制系统设计.doc_第5页
第5页 / 共17页
点击查看更多>>
资源描述

《单片机课程设计报告多台设备自动循环控制系统设计.doc》由会员分享,可在线阅读,更多相关《单片机课程设计报告多台设备自动循环控制系统设计.doc(17页珍藏版)》请在三一文库上搜索。

1、目 录1.课题目的和意义12.方案的论证22.1设计任务22.2设计要求22.3创新部分22.4各部分元器件选用方案论证22.4.1单片机的选用22.4.2显示元器件的选用22.4.3限流电阻的选用32.4.4电源模块的选用32.4.5其他元器件的选用33.系统硬件设计33.1总体设计33.2单片机最小系统43.3中断控制模块53.4设备模块53.5显示模块63.6整体电路64.系统软件设计74.1主程序流程图及程序74.2中断子程序流程图及程序95.软硬件联调105.1软硬件调试中出现的问题及解决措施105.2实物图115.3运行结果11结束语12参考文献13附录13附录一:多台设备自动循环

2、控制系统设计电路原理图(图 附录-1)13附录二:多台设备自动循环控制系统设计PCB图(图 附录-2、附录-3)14附录三:Proteus仿真效果图(图 附录-4)14附录四:多台设备自动循环控制系统设计C语言程序清单14附录五:多台设备自动循环控制系统设计元器件目录表171.课题目的和意义本课题为“多台设备自动循环控制”,旨在用发光二极管模拟工业现场多台设备,通过编程控制8052系列单片机,从而使这些设备按照要求循环运行。从方案的提出到方案的论证到软件仿真、制作实物进行软硬件联调,再到制作印制电路板实现批量生产,通过为期2周的实训,电气专业08级大学生以小组讨论形式进行相关课题的研究、拓展,

3、从而培养了团队意识、创新意识,增强动手能力和工程实践能力。每一位成员均在实训中加强了对单片机的理解和掌握,使所学知识更加牢固,并形成体系。2.方案的论证2.1设计任务用单片机控制多台设备,使设备自动循环运行。2.2设计要求以8只发光二极管代替8台设备,接在P1口上。P3.0和P3.2为控制口,其外部分别与一只按钮连接,通过对按钮的控制从而控制8只发光二极管的亮灭情况。没有按钮按下时,8台设备全部运行,P3.0按钮按下时8只发光二极管以0、1、2、3、4、5、6、7、5、3、1、7、5、3、1、7为一个过程开始循环运行,当P3.2按钮按下时8只发光二极管全部点亮。2.3创新部分用一只8段LED数

4、码管同步显示正在运行的设备的编号,便于工作人员进行过程记录。2.4各部分元器件选用方案论证2.4.1单片机的选用本课题由于要求使用8052系列单片机,故在该系列中选择。市场上现使用较多的52系列单片机有Atmel公司生产的AT89C52、AT89S52,以及STC公司生产的STC89C52、STC89S52,对比两家公司的产品可知,STC公司的产品可多次擦写,一个机械周期只要6个时钟周期,且支持USB在线读写,处理速度优于Atmel公司生产的产品。所以对比后选择使用STC89C52单片机芯片。2.4.2显示元器件的选用通过学习和调研市场行情,我们可以发现,能够用来做显示器使用的有8段数码管、液

5、晶显示屏以及点阵模块等。这其中第一种成本低廉、使用方便、显示明亮,适合显示位数少、线路不复杂的电路;第二种价格较高,引线较多,不但可以显示数字还能显示文字,可显示范围广,一般多用于需要显示文字或字母的电路;第三种不适合做静态显示。由于本课题只需要控制8台设备,位数少且用数码管显示方便,故我们的显示元器件选用8段LED数码管。2.4.3限流电阻的选用由于本课题要求在P1口控制8只LED发光二极管,故需要选用限流电阻来限制流过发光二极管的电流,若选用电阻过小,则二极管容易因过流而烧掉,若选用电阻过大,则二极管容易因电流过小而发光暗淡,所以选用电阻不能太大或太小。查阅发光二极管各项参数后发现,发光二

6、极管正常发光时电流约为10mA,发光二极管导通电阻很小可忽略不计,则根据公式R=(E-U)/I-R0可算出,限流电阻阻值在500左右。故选用阻值为500的电阻。2.4.4电源模块的选用要想使单片机正常运行,可靠、稳定的电源必不可少,在以往的电子设计中,我们一般制作5V电源,这样做的目的是通过变压器变压,将民用220V电直接转为5V电供单片机使用,在没有电脑USB时可以直接找一个插座接上便可使用。但缺点是制作成本较高,且体积较大,烧录程序时还需要另配烧录器。由于我们在课程设计过程中时刻都要使用笔记本电脑,且程序需要在线烧写,故我们购买了USB烧录器,既可以在线烧写程序也可以当作电源使用,方便快捷

7、。2.4.5其他元器件的选用在确定了单片机芯片、8段LED数码管、限流电阻、电源模块后,我们还确定选用8只直径5mm的LED发光二极管、3只按钮、排针、排阻、导线若干以及用于单片机最小系统的电容、晶振、电阻等。3.系统硬件设计3.1总体设计 P0 STC89C52RCP1 RXD INT0RXD、INT0中断控制8台设备数码管显示部分总体设计框架图如图3-1所示:图 3 - 1本设计采用STC89C50032RC单片机作为系统控制芯片,单片机接收INT0、RXD传来的中断信号并转变为对8台设备的控制,以8段LED数码管为显示模块,将正在运行的设备编号同步地显示出来,在控制电路中,主要是由两个按

8、钮来指挥设备的运行方式。3.2单片机最小系统最小系统包括晶振电路、复位电路和电源部分。图3-2为单片机最小系统。图 3 2 单片机最小系统电路图3.3中断控制模块中断控制模块如图3-3所示。图 3 3 中断控制模块该模块主要由两个按钮组成,其中一个按钮与P3.0口相连,另一按钮与P3.2口相连,两个按钮的公共端接地。当按钮被按下时,与该按钮所接的单片机端口变为低电平,信号传入单片机内,申请中断。单片机将响应中断,根据中断程序控制8台设备的运行方式。3.4设备模块设备模块如图3-4所示。图 3 4 设备模块设备模块主要由8只LED发光二极管代替工业现场的8台设备,通过控制发光二极管的亮暗方式从而

9、达到模拟控制工业现场8台设备的目的。8只发光二极管分别于一只500的电阻串联,电阻起限流作用,防止发光二极管因电流过大而烧掉,也防止可能因电流过小而无法正常显示。每只电阻除与发光二极管相连外,另一端与单片机对应P0口相连,从而被单片机所控制。8只发光二极管有一公共端,且接高电平。当P0口输出低电平时,对应的发光二极管点亮。3.5显示模块显示模块如图3-5所示。图 3 5 显示模块该模块主要由102排阻和一只8段LED数码管组成。P0口为双向I/o口,要想保证端口能正确地输出高电平,需要在外部加上拉电阻,故使用102排阻作为上拉电阻。在单片机处于输出状态时排阻将P0口电位拉高。由于共阳极数码管使

10、用时需加驱动电路,增加了电路的复杂度和成本,故我们选用共阴极数码管,其公共端接地。在实际使用时,共阳、共阴极数码管需要用万用表进行区分,且编程时显示代码亦不相同,在这里须注意。3.6整体电路系统整体电路如图3-6所示。图 3 6 整体电路图4.系统软件设计4.1主程序流程图及程序主程序如下:void main()uchar k;IE=0x81; /EA=1开总中断;Ex0=1开外部中断0;P1=0x00;SP=0x7B; /堆栈指针复位while(start); /当P3.0所接按钮按下时开始对设备循环控制while(1) /若外部中断不产生,则一直不跳出该部分flag=1;if(flag=0

11、)break;P1=0x7f;for(i=8;i0;i-)P1=_crol_(P1,1); /左移函数k=P1;switch(k)/数码管显示正在运行的设备编号case 0xfe: P0=0x3f; break;case 0xfd: P0=0x06; break;case 0xfb: P0=0x5b; break;case 0xf7: P0=0x4f; break; case 0xef: P0=0x66; break;case 0xdf: P0=0x6d; break;case 0xbf: P0=0x7d; break;default: P0=0x07; break; delay(500);f

12、or(i=8;i0;i-) P1=_cror_(P1,2);k=P1;switch(k)case 0xfe: P0=0x3f; break;case 0xfd: P0=0x06; break;case 0xfb: P0=0x5b; break;case 0xf7: P0=0x4f; break;case 0xef: P0=0x66; break;case 0xdf: P0=0x6d; break;case 0xbf: P0=0x7d; break;default: P0=0x07; break;delay(500);主程序流程图如图4-1所示。图 4 1 主程序流程图开总中断和外部中断0P1口

13、输出低电平,8台设备全部运行设定堆栈指针值P3.0口所接按钮是否按下?等待被按下设标志为1判断是否收到中断请求使标志变为0跳出主程序进入中断子程序8台设备按控制要求运行,数码管同步显示正在运行的设备的编号NYYN开始4.2中断子程序流程图及程序中断子程序如下:int0() interrupt 0 /外部中断0P1=0x00;flag=0;while(start); /只有P3.0口为低电平时才跳出中断中断子程序流程图如图4-2所示。P1口接低电平,8台设备全部运行设标志为0判断P3.0口是否按下跳出中断,返回主程序NY图 4 2 中断子程序流程图5.软硬件联调5.1软硬件调试中出现的问题及解决

14、措施问题1:将USB烧写器尾部的短路帽子摘掉后插上电脑,程序无法烧写进芯片。解决措施:将烧写器的RX线与芯片上的TXD相连,TX线与芯片上RXD相连后,程序即可烧写进去。问题2:数码管焊接在万能板上后,在8只LED发光二极管正常运行情况下,数码管无法同步正常显示。解决措施:用万用表重新测量数码管的参数后发现勿用了共阳极数码管,在重新换上共阴极数码管后即可。问题3:数码管显示出的数字是乱码。解决措施:检查程序后发现参考代码是用于共阳极数码管的,在更改为共阴极数码管程序后即可。问题4:LED发光二极管发光暗淡。解决措施:自己原配的限流电阻过大,换用学校发的500电阻后,发光强度刚好。问题5:使用A

15、ltium Designer软件画PCB时找不到目标元件如排针、排阻、STC89C52单片机、晶振相对应的元件库或封装。解决措施:用其他元件库代替目标元件,实在无法代替的自己制作元件库或封装。问题6:将PCB图中的导线加粗后始终显示绿色错误状态。解决措施:在菜单栏的Design下点击RulesRoutingWidthWidth,在Constraints栏中修改Max Width和Preferred Width两个值即可。5.2实物图万能板搭电路并测试正确后的实物图如图5-1、图5-2所示。 图 5 1 实物图(正面) 图 5 2 实物图(背面)5.3运行结果运行效果如图5-3所示。 图 5 3

16、 运行效果图结束语经过10多天的设计与制作,我终于较圆满地完成了多台设备自动循环控制这一课题。虽然整体看来,一个不怎么复杂的电路花了10多天时间,效率比较低下,但对于第一次经历这种完整的过程的我来说,其结果还是令人欣慰的。从设计电路到仿真,再到购买元器件,在万能板上搭电路模拟,到用软件画PCB图,再到发送原理图给印制电路板厂家生产PCB板,最终再在做好的PCB板上焊元器件直至完工,其中的艰辛只有我们团队的同学们能够体会得到。我们10个人组成的团队,首先要感谢张兰红老师对我们的悉心指导,她对我们的课题给予了较为详细的讲解,对我们的元器件选择给予了帮助,也同样感谢顾善忠、袁卫卫等同学,他们作为单片

17、机方面较为杰出的学生,对我们课题的调试给予了极大的帮助。作为个人,我要感谢我的团队,正是由于团队每一个人的共同努力才有了我们最终的结果。我的团队成员是B电气081班的李超、B电气082班的周鹏鹏、张本瑞、B电气083班的王霄、陈凯峰、B电气084班的蒋媛、张宁、以及BD电气081班的唐利刚、郁磊。课题终究会结束,但我们的单片机生涯才刚刚开始,今后一定还将遇到更复杂的课题和更难以解决的问题,我相信,只有依靠团队的力量,我们才能取得成功,只有依靠坚忍不拔的毅力我们才能战无不胜!参考文献1.单片机控制实训指导及综合应用实例 张大明 主编 机械工业出版社 2.单片机原理及应用技术 陈益飞主编 国防工业

18、出版社 3.Altium Designer原理图与PCB设计 周润景 张丽敏 王伟 编著 电子工业出版社 4.电工电子实习教程(第3版) 宋学瑞 主编 中南大学出版社 5.基于Proteus的8051单片机实例教程 李学礼 主编 电子工业出版社 6.Proteus教程电子线路设计、制版与仿真 朱清慧 张凤蕊 翟天嵩 王志奎 编著 清华大学出版社 7.21天学通C语言 王正仲 等编著 电子工业出版社 8.新概念51单片机C语言教程入门、提高、开发、拓展全攻略 郭天翔 编著 电子工业出版社 9.电子线路CAD实用教程(第3版) 潘永顺 沙河 编著 西安电子科技大学出版社 附录附录一:多台设备自动循

19、环控制系统设计电路原理图(图 附录-1)图 附录 1 多台设备自动循环控制系统设计电路原理图附录二:多台设备自动循环控制系统设计PCB图(图 附录-2、附录-3) 图 附录 2 PCB图(正面) 图 附录 3 PCB图(背面)附录三:Proteus仿真效果图(图 附录-4)图 附录 4 Proteus仿真效果图附录四:多台设备自动循环控制系统设计C语言程序清单#include/包含52系列单片机头文件#include/包含左右移函数的头文件#define uchar unsigned charuchar code DSY_CODE= 0x3f,0x06,0x5b,0x4f,0x66,0x6d,

20、0x7d,0x07,0x7f,0x6f /共阴09显示;uchar data flag; /设标志位int i,x;sbit start=P30; /P3.0口为循环控制位,低电平时各设备循环运行sbit stop=P32; /P3.2口为全部工作位,低电平时所有设备均运行void delay(x) /延时子程序int t;while(x-) for(t=120;t0;t-)if(flag=0) break; /主程序运行过程中当产生中断时跳出延时子程序int0() interrupt 0 /外部中断0P1=0x00;flag=0;while(start); /只有P3.0口为低电平时才跳出中

21、断void main()uchar k;IE=0x81; /EA=1开总中断;Ex0=1开外部中断0;P1=0x00;SP=0x7B; /堆栈指针复位while(start); /当P3.0所接按钮按下时开始对设备循环控制while(1) /若外部中断不产生,则一直不跳出该部分flag=1;if(flag=0)break;P1=0x7f;for(i=8;i0;i-)P1=_crol_(P1,1); /左移函数k=P1;switch(k)/数码管显示正在运行的设备编号case 0xfe: P0=0x3f; break;case 0xfd: P0=0x06; break;case 0xfb: P0

22、=0x5b; break;case 0xf7: P0=0x4f; break;case 0xef: P0=0x66; break;case 0xdf: P0=0x6d; break;case 0xbf: P0=0x7d; break;default: P0=0x07; break; delay(500);for(i=8;i0;i-) P1=_cror_(P1,2);k=P1;switch(k)case 0xfe: P0=0x3f; break;case 0xfd: P0=0x06; break;case 0xfb: P0=0x5b; break;case 0xf7: P0=0x4f; break;case 0xef: P0=0x66; break;case 0xdf: P0=0x6d; break;case 0xbf: P0=0x7d; break;default: P0=0x07; break; delay(500);附录五:多台设备自动循环控制系统设计元器件目录表序号元器件名称数量1STC89C52单片机1块28段1位LED数码管1个3白色蓝光LED发光二极管8只4500限流电阻8只51k电阻1只610k电阻1只7102排阻1个812M晶振1个930pF电容2只1010F电解电容1只11排针、导线若干12轻触按钮3个

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1