单片机课程设计工业顺序控制.doc_第1页
单片机课程设计工业顺序控制.doc_第2页
单片机课程设计工业顺序控制.doc_第3页
单片机课程设计工业顺序控制.doc_第4页
单片机课程设计工业顺序控制.doc_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

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

文档简介

河北工业大学计算机硬件技术基础(MCS-51)2007年课程设计报告一、题目:工业顺序控制二、问题的提出1 目的:(1)培养学生综合利用MCS-51单片机的软硬件知识进行程序设计的能力,解决一些实际问题。(2)进一步加深对MCS-51单片机内部结构和程序设计方法的理解。(3)提高学生建立程序文档、归纳总结的书面表达能力。(4)通过查阅和网上搜索资料,提高学生独立获取知识的能力。(5)在设计的全过程中,通过理论与实践相结合,培养和提高学生的实践能力和创新能力。 三、总体设计1、 分析问题的功能在工业控制中,像冲压、注塑、轻纺、制瓶等生产过程,都是一些继续生产过程,按某种顺序有规律的完成某种预定的动作,对这类继续生产过程称为顺序控制,倒注塑机工艺大致按“合模注射延时开模产伸产退”顺序工作。P1.0P1.6代表控制注塑机的七道工程,模拟控制七只发光二极管的点亮,低电平有效,设每道工序时间为延时,P3.4为开工启动开关,低电平启动,P3.3为外部故障输入模拟开关,低电平报警,P1.7为报警输出,前六道工序只有一位输出,第七道工序中有三位输出。2、 系统总体结构设计根据上述问题描述,本设计运用了两个中断,一个外部INT1中断,一个定时器T/C1中断,四、详细设计:1、画出电路图;LED7SW1SW2RR P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 INT1 T0 P1.7R7Buzz+5V80312. 流程图开始是否开工?(判断P3.4是否为0)开工,并执行七道工序(灯依次点亮)判断有无故障(P3.3=0?)报警(蜂鸣器)故障是否解除(P3.3=1?)YNNYYY3、设计中的主要困难及解决方案1)困难1 实现蜂鸣器与故障中断的同步解决方法:当语句LOOP: JNB P3.3,LOOP 循环执行时,开定时器不断给蜂鸣器高低方波,这样,只要定时器一直开着,蜂鸣器就一直处于鸣响状态,直到外部中断解除。LOOP: JNB P3.3, LOOP SETB P1.7 CLR ET1 RETI 定时器停止工作,工程回到端点继续执行。2)困难2 各工序的用时应该不同我们准备了几个不同的子程序,每个灯亮时就可以调用不同的子程序了,这样等量的时间就不同了。三、程序清单ORG 8000H AJMP MAIN ORG 8013H LJMP INT1SV ORG 801BH LJMP T1SMAIN: MOV SP, #5FH SETB EA ;允许CPU中断 SETB EX1 ;允许INT1中断 CLR IT1 ; INT1为电平触发L0: JNB P3.4, L1 AJMP L0 ;是否开工? L1: ;第一道工序 SETB P1.7 CLR P1.0 ACALL DLAY L3: SETB P1.0 ;第二道工序CLR P1.1ACALL DLAYA AJMP L4 L4:SETB P1.1 ; 第三道工序 CLR P1.2ACALL DLAYB AJMP L5L5: SETB P1.2 ;第四道工序CLR P1.3ACALL DLAY L6: SETB P1.3 ;第五道工序CLR P1.4ACALL DLAYA L7:SETB P1.4 ;第六道工序CLR P1.5ACALL DLAYBL8: SETB P1.5 ;第七道工序CLR P1.6ACALL DLAYA SETB P1.6WAIT: MOV P1, #0ffH MOV R7, #0 Lp: MOV R6, #0 DJNZ R6, $ DJNZ R6, $ DJNZ R6, $ DJNZ R7, LpAJMP L0DLAY: MOV R4, #01H ;延时子程序DLAY1: MOV R5, #0fHDLAY2: MOV R6, #5fHDLAY3: MOV R7, #0ffH DLAY4: DJNZ R7, DLAY4 DJNZ R6, DLAY3 DJNZ R5, DLAY2 DJNZ R4, DLAY1 RETDLAYA: MOV R4, #01H ;延时子程序ADLAYA1: MOV R5, #0fHDLAYA2: MOV R6, #0ffHDLAYA3: MOV R7, #0ffH DLAYA4: DJNZ R7, DLAYA4 DJNZ R6, DLAYA3 DJNZ R5, DLAYA2 DJNZ R4, DLAYA1 RETDLAYB: MOV R3, #01H ;延时子程序BDLAYB1: MOV R4, #0fHDLAYB2: MOV R5, #0fHDLAYB3: MOV R6, #1fH DLAYB4: MOV R7, #0ffH DLAYB5: DJNZ R7, DLAYB5 DJNZ R6, DLAYB4 DJNZ R5, DLAYB3 DJNZ R4, DLAYB2 DJNZ R3, DLAYB1RETINTI中断程序:INT1SV: MOV TMOD, #10H ;选用工作模式寄存器方式1 MOV TH1, #0FFH ;定时器赋初值 MOV TL1, #00H SETB PT1 ;定义T/C1为高优先级中断SETB ET1 ;允许T/C1中断 SETB TR1 ;启动T/C1定时器LOOP: JNB P3.3, LOOP ;有故障则循环等待,故障解除往下运行 SETB P1.7 ;蜂鸣器关闭 CLR ET1 ;关T/C1中断 RETIT1S: MOV TH1, #0FFH MOV TL1, #00H CPL P1.7 ;蜂鸣器报警 RETI END四、调试程序的方法1) 硬件调试方法(确定硬件工作是否正常)在没接线之前,打开电源开关,如果电源灯亮,且没有杂音,则硬件工作正常。2)软件调试方法(如何调试程序的方法)首先接好排线开关,然后将 A2区的INT1接开关SW2,A2区的T0接开关SW1,A2区的PI.7接蜂鸣器。程序运行前,均SW1SW2置一,程序开始运行后,将SW1置零,灯开始闪亮,如果将SW2置零,则第六个灯亮,同时蜂鸣器开始响,再将SW2置一,蜂鸣器停止响,第七个灯灭。如果将SW1置一,六个灯闪亮完一遍后才停止。五、你所设计的程序最终完成的功能1) 说明你编制的程序能完成的功能;P1.0P1.6代表控制注塑机的七道工程,模拟控制七只发光二极管的点亮,低电平有效,设每道工序时间为延时,P3.4为开工启动开关,低电平启动,P3.3为外部故障输入模拟开关,低电平报警,P1.7为报警输出, 本程序中,SW.1,SW.2在开始都置一。所有工序都处于准备状态,程序运行,SW.1置零,相当于打开工序开关,各工序按次序逐步执行,如果执行过程中出现意外,则将SW.2置零。相当于启动故障按钮,这时工程停止在故障处,蜂鸣器响起。只要故障不解除,蜂鸣器便一直处于报警状态,等故障一解除,蜂鸣器便停止报警,工程从原来故障处继续往下执行。根据各工序功能不同,每个灯亮的时间不同,代表每道工序需要的时间。若中途关闭开关,而工序还未完成一遍,则直到工序完成一遍才停止,保证产品的完整。六、对该设计题目有何更完善的方案1、 对自己完成程序进行自我评价。我们这次设计,首先按要求完成了基本功能,实现了工程的连贯进行与故障处理,在完成基本要求的前提下,又进一步完善了程序,每道工序所用时间不同,设置有所不同,报警装置,我们选择了蜂鸣器。以便引起人们的重视。2、对课题提出更完善的方案。虽然这个程序本身要求的简单,但有很多可以完善的地方,例如工程重复执行的次数,可以通过计数器计数显示出来,来显示工程的进度,以便对工程更好的调控。只是因为编程时无法实现数据的显示而没有实现。五、收获及心得体会1、通过本次课程设计,自己在哪些方面的能力有所提高。通过本次课程设计,我对单片机语言从不会到会,从害怕到喜欢,确实有了很大的提高,对中断有了更深层的了解,也发现了它与其它语言的相通之处,每种语言都有它独特的魅力,我却只是因为自己发现的浩瀚大海边的一

温馨提示

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

评论

0/150

提交评论