资源预览内容
第1页 / 共17页
第2页 / 共17页
第3页 / 共17页
第4页 / 共17页
第5页 / 共17页
第6页 / 共17页
第7页 / 共17页
第8页 / 共17页
第9页 / 共17页
第10页 / 共17页
亲,该文档总共17页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
盐城工学院课程设计说明书(2011)目 录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附录一:多台设备自动循环控制系统设计电路原理图(图 附录-1)13附录二:多台设备自动循环控制系统设计PCB图(图 附录-2、附录-3)14附录三:Proteus仿真效果图(图 附录-4)14附录四:多台设备自动循环控制系统设计C语言程序清单14附录五:多台设备自动循环控制系统设计元器件目录表171.课题目的和意义本课题为“多台设备自动循环控制”,旨在用发光二极管模拟工业现场多台设备,通过编程控制8052系列单片机,从而使这些设备按照要求循环运行。从方案的提出到方案的论证到软件仿真、制作实物进行软硬件联调,再到制作印制电路板实现批量生产,通过为期2周的实训,电气专业08级大学生以小组讨论形式进行相关课题的研究、拓展,从而培养了团队意识、创新意识,增强动手能力和工程实践能力。每一位成员均在实训中加强了对单片机的理解和掌握,使所学知识更加牢固,并形成体系。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数码管同步显示正在运行的设备的编号,便于工作人员进行过程记录。2.4各部分元器件选用方案论证2.4.1单片机的选用本课题由于要求使用8052系列单片机,故在该系列中选择。市场上现使用较多的52系列单片机有Atmel公司生产的AT89C52、AT89S52,以及STC公司生产的STC89C52、STC89S52,对比两家公司的产品可知,STC公司的产品可多次擦写,一个机械周期只要6个时钟周期,且支持USB在线读写,处理速度优于Atmel公司生产的产品。所以对比后选择使用STC89C52单片机芯片。2.4.2显示元器件的选用通过学习和调研市场行情,我们可以发现,能够用来做显示器使用的有8段数码管、液晶显示屏以及点阵模块等。这其中第一种成本低廉、使用方便、显示明亮,适合显示位数少、线路不复杂的电路;第二种价格较高,引线较多,不但可以显示数字还能显示文字,可显示范围广,一般多用于需要显示文字或字母的电路;第三种不适合做静态显示。由于本课题只需要控制8台设备,位数少且用数码管显示方便,故我们的显示元器件选用8段LED数码管。2.4.3限流电阻的选用由于本课题要求在P1口控制8只LED发光二极管,故需要选用限流电阻来限制流过发光二极管的电流,若选用电阻过小,则二极管容易因过流而烧掉,若选用电阻过大,则二极管容易因电流过小而发光暗淡,所以选用电阻不能太大或太小。查阅发光二极管各项参数后发现,发光二极管正常发光时电流约为10mA,发光二极管导通电阻很小可忽略不计,则根据公式R=(E-U)/I-R0可算出,限流电阻阻值在500左右。故选用阻值为500的电阻。2.4.4电源模块的选用要想使单片机正常运行,可靠、稳定的电源必不可少,在以往的电子设计中,我们一般制作5V电源,这样做的目的是通过变压器变压,将民用220V电直接转为5V电供单片机使用,在没有电脑USB时可以直接找一个插座接上便可使用。但缺点是制作成本较高,且体积较大,烧录程序时还需要另配烧录器。由于我们在课程设计过程中时刻都要使用笔记本电脑,且程序需要在线烧写,故我们购买了USB烧录器,既可以在线烧写程序也可以当作电源使用,方便快捷。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数码管为显示模块,将正在运行的设备编号同步地显示出来,在控制电路中,主要是由两个按钮来指挥设备的运行方式。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台设备,通过控制发光二极管的亮暗方式从而达到模拟控制工业现场8台设备的目的。8只发光二极管分别于一只500的电阻串联,电阻起限流作用,防止发光二极管因电流过大而烧掉,也防止可能因电流过小而无法正常显示。每只电阻除与发光二极管相连外,另一端与单片机对应P0口相连,从而被单片机所控制。8只发光二极管有一公共端,且接高电平。当P0口输出低电平时,对应的发光二极管点亮。3.5显示模块显示模块如图3-5所示。图 3 5 显示模块该模块主要由102排阻和一只8段LED数码管组成。P0口为双向I/o口,要想保证端口能正确地输出高电平,需要在外部加上拉电阻,故使用102排阻作为上拉电阻。在单片机处于输出状态时排阻将P0口电位拉高。由于共阳极数码管使用时需加驱动电路,增加了电路的复杂度和成本,故我们选用共阴极数码管,其公共端接地。在实际使用时,共阳、共阴极数码管需要用万用表进行区分,且编程时显示代码亦不相同,在这里须注意。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)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);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);主程序流程图如图4-1所示。图 4 1 主程序流程图开总中断和外部中断0P1口输出低电平,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软硬件调试中出现的问题及解决措施问题1:将USB烧写器尾部的短路帽子摘掉后插上电脑,程序无法烧写进芯片。解决措施:将烧写器的RX线与芯片上的TXD相连,TX线与芯片上RXD相连后,程序即可烧写进去。问题2:数码管焊接在万能板上后,在8只LED发光二极管正常运行情况下,数码管无法同步正常显示。解决措施:用万用表重新测量数码管的参数后发现勿用了共阳极数码管,在重新换上共阴极数码管后即可。问题3:数码管显示出的数字是乱码。解决措施:检查程序后发现参考代码是用于共阳极数码管的,在更改为共阴极数码管程序后即可。问题4:LED发光二极管发光暗淡。解决措施:自己原配的限流电阻过大,换用学校发的500电阻后,发光强度刚好。问题5:使用Altium Designer软件画PCB时找不到目标元件如排针、
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号