1、指导教师:2015年9月一、课程设计性质和目的 11、 Proteus 12、 Keil uVision4 2三、设计要求及原理说明 21 、课程设计的任务与要求 22 、原理说明 2四、设计主要流程 3六、电路的设计与仿真 7七、总结 11一、课程设计性质和目的单片机课程设计是单片机原理与应用及C51程序设计课程结束后的一门综合性实践课。利用所学知识用单片机实现顺序控制。所选题目单片机实现的顺序控制紧密结合所学的主要内容,加深巩固所学知识,同时对所学内容进行扩展,有一定的深度和广度。通过电路设计、安装、调试等一系列环节的实施使我对单片机有了更进一步的了解,并且是我有了以下收获。(1)加强了对
2、单片机和C语言的认识,充分掌握和理解设计各部分的工作原理、设计过程、选择芯片器件、模块化编程等多项知识。(2)用单片机模拟实现具体应用,使个人设计能够真正使用。(3)把理论知识与实践相结合,充分发挥个人能力,并在实践中锻炼。(4)提高了利用已学知识分析和解决问题的能力。二、软件介绍1、 ProteusProtues软件是英国Lab Center Electronics公司出版的EDA工具软件(该软件中国总代理为广州风标电子技术有限公司)。它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。它是目前比较好的仿真单片机及外围器件的工具。虽然目前国内推广刚起步,但已受到单片机爱好者、从
3、事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。Proteus是世界上着名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2010年又增加了Cortex和DSP系列处理器,并持续增加其他系列处理器模型。在编译方面,它也支持IAR、Keil和MATLAB等多种编译器。2、 Keil uV
4、ision4KeilC51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。Keil提供了包括C编译器、宏汇编、链接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(Vision)将这些部分组合在一起。运行Keil软件需要WIN98、NT、WIN2000、WINXP等操作系统。如果你使用C语言编程,那么Keil几乎就是你的不二之选,即使不使用C语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会令你事半功倍。三、设计要求及原理说明1
5、、课程设计的任务与要求在工业生产中,利用单片机的数字量输出可实现顺序控制。例如,注塑机工艺过程大致按“合模注射延时开模产伸产退”顺序动作,用单片机控制很容易实现。单片机的P1.0-P1.6控制注塑机的7道工序,7道工序用控制7只发光二极管的点亮来模拟。设定每道工序时间转换以延时来表示。P3.3为“故障”开关,合上为故障报警。控制P1.7上的音响发出报警声响。报警声响只有在工作期间才会响起,而停止工作期间报警不会响起。P3.4脚上的单刀双掷开关作为“启动”或“停止”开关。设定前6道工序中只有一位输出,只点亮1只发光二极管,第7道工序有3位同时输出(P1.6、P1.5、P1.4上的3只发光二极管同
6、时点亮)。2 、原理说明本题目利用单片机的P1.0-P1.6输出的高低电平来控制发光二极管的亮与灭,表示工业生产过程的顺序控制进程,P1.7输出的高低电平控制是否发出警报声响。P3.3与P3.4作为输出,单片机检测P3.3与P3.4的输出电平,来判断“故障”或“停止”开关的状态。四、设计主要流程先分析设计要求,根据设计要求来设定代码程序,然后进行代码的编写,接着对代码进行编译校验,检查错误,改正错误。接着根据设计要求和代码,进行顺序控制器的原理电路图设计,此步要在Protues软件进行绘制仿真,然后根据设计要求对绘制出的原理电路图进行测试,如若不符合设计要求继续更改,直至符合要求为止。然后进行
7、电路模拟,将符合设计要求的电路先行保存。再将源程序代码用Keil软件生成hex文件。再利用stc软件将生成的hex文件传输到单片机中完成验证。大致设计流程如下图所示。(“生成hex文件并传输到单片机中”,这一设计步骤由于电脑原因无法连接C51单片,所以无法实现。) 流程图 五、顺序程序设计通过分析设计要求可知,需要完成单片机P1.0-P1.6输出的高低电平来控制发光二极管的亮与灭,表示工业生产过程的顺序控制进程,P1.7输出的高低电平控制是否发出警报声响。则设计程序代码及其解释如下:void main() EX1=1; /外部中断1允许 IT1=0; /电平触发中断 EA=1; /总中断允许
8、while(1) P1&=0xfe; /工序1,完成后进入工序2 Delay(2000);=0xfd; /工序2,完成后进入工序3=0xfb; =0xf7;=0xef;=0xdf;=0x8f; /7道工序完成,重新开始循环 void int1_isp() interrupt 2 /外部中断1中断服务函数 P=P3_4; /报警 在keil软件中测试如下:六、电路的设计与仿真顺序控制器的原理电路及仿真如下图2所示。电路中的7个发光二极管从上到下分别代表7道工序。仿真运行,发光二极管将按顺序控制规律来点亮。P3.4引脚上的单刀双掷开关用来选择控制操作启动(向上)或停止(向下)。P3.3引脚上的开关
9、闭合,表示发生故障,从而控制P1.7上的音响发出警报响。报警声响只有在工作期间才会响起,而停止工作期间警报不会响起。P1口的P1.0P1.6接七只发光二极管,P1.7接报警器,P3.4接开工启动开关,P3.2接外部故障输入模拟开关。主程序流程图:当程序启动,开启中断,并使P1、P3口初始化,当给start开始信号即P3.4得电时,运行主程序中使发光二极管得电的程序,从L0至L7,按顺序每次只点亮一只二极管,并延时一段时间,然后点亮下一只二极管,当第七只二极管得电延时完成后,程序跳转到工序1开始的地方,按此规律从工序1到工序7依次循环进行下去。中断服务子程序:当外部故障输入模拟开关即P3.3得电
10、时,运行中断子程序,先使P1=0x00即关闭输出保护现场,speak=1使报警器报警。然后判断故障情况,如果故障清除,则恢复现场跳出中断子程序回到主程序;如果故障没有清除,则报警器继续报警直至故障清除。 图2. 顺序控制器的原理电路对原理电路进行仿真调试如下:图3.仿真电路调试1(一)、在调试过程1中,当按下按钮开关后会发现7个发光二极管会从上到下依次由“亮”到“灭”,而此时P3.4引脚上的单刀双掷开关置于启动(向上)处,此时电路正常工作。如图2所示(二)、当单刀双掷开关置于停止(向下)处时电路状态如图3所示。最后三个发光二极管会亮,前四个会灭,并保持这种状态。(三)、当单刀双掷开关置于启动(
11、向上)处时,将P3.3引脚上的开关闭合,此时电路状态如图4所示。此时电路处在“故障”状态,LS1处SOUNDER 会发出警报声,表示电路故障。图4.仿真电路调试2图5.仿真电路调试3七、总结通过本课程设计,我对单片机的工作原理以及运用要求有了更进一步的了解,对我的动手能力,编程能力都有很大的帮助。这次课程设计的控制要求有:用七只发光二极管模拟工业控制中的7道工序,高电平点亮,每道工序用定时器进行工序间的顺序转换。我首先收集了大量的资料,查找有关集成芯片和器件的文献,只有对各种元器件有了充分的了解之后在实际的操作才会更快。在操作过程中我发现自己的电路图接对了,但是却无法仿真出来,仔细检查后发现没
12、有把代码加入电路中。可见如果不对整个设计的每一个细节都了解的清清楚楚的话,哪怕做对了,你都搞不懂这是怎么回事。这告诉我们,以后无论在工作还是在生活中,都要认真对待每一个细节,不能得过且过,不求甚解。在编程方面一直是我的弱项,好多程序我都搞不明白,这个时候我都会尽量去问同学,在课程设计的过程中,同学之间的相互帮助是相当重要的,有时自己的一个坎半天都过不去,但是说不定同学的一个点拨,我们就通了。所以,我们要学会团结协作,这样,才会事半功倍。这次的课程设计教会我们的不止是专业知识,在生活道理上也教会了很多,让我们终生受益。八、参考书籍、单片机原理与应用及C51程序设计(第3版) 清华大学出版社、基于Protues的单片机课程的基础实验与课程设计 人民邮电出版社、单片机课程设计实例指导 北京航空航天大学出版社
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1